├── .gitignore ├── .rspec ├── LICENSE ├── README.rdoc ├── Rakefile ├── TODO.md ├── bin └── critical ├── examples ├── config │ └── critical_config.rb ├── metrics │ ├── df.rb │ ├── freemem.rb │ ├── integration_monitor.rb │ └── rest.rb └── monitors │ └── system.rb ├── lib ├── critical.rb └── critical │ ├── application.rb │ ├── application │ ├── cli_option_parser.rb │ ├── configuration.rb │ ├── daemon.rb │ └── main.rb │ ├── config_data.rb │ ├── data_stash.rb │ ├── dsl.rb │ ├── dsl │ ├── config_data.rb │ ├── hostname.rb │ ├── metric_dsl.rb │ ├── monitor_dsl.rb │ ├── story_monitor_dsl.rb │ └── top_level.rb │ ├── file_loader.rb │ ├── heartbeat_file.rb │ ├── loggable.rb │ ├── metric_base.rb │ ├── metrics │ ├── cluster.rb │ ├── cpu_utilization.rb │ ├── disk_utilization.rb │ ├── memory_utilization.rb │ └── nginx_stats.rb │ ├── monitor_collection.rb │ ├── monitor_runner.rb │ ├── monkey_patch │ ├── array.rb │ └── string.rb │ ├── output_handler.rb │ ├── output_handler │ ├── base.rb │ ├── deferred.rb │ ├── dispatcher.rb │ └── text.rb │ ├── process_manager.rb │ ├── protocol.rb │ ├── scheduler.rb │ ├── story_monitor.rb │ └── trending │ └── graphite.rb └── spec ├── behaviors └── metric_output_handler_behavior.rb ├── fixtures ├── config │ └── basic.rb ├── config_data │ ├── ignore_me.foo │ ├── json_file.json │ └── plain_text ├── critical │ └── metrics │ │ ├── disk_utilization_example.rb │ │ └── memory_utilization_example.rb ├── file_loader │ ├── file_loader_context_spy.rb │ ├── file_loader_data.rb │ └── file_loader_data2.rb ├── more_source_files │ ├── five.rb │ ├── four.rb │ └── six.rb └── some_source_files │ ├── one.rb │ ├── three.rb │ └── two.rb ├── spec_helper.rb └── unit ├── application ├── cli_option_parser_spec.rb ├── configuration_spec.rb └── main_spec.rb ├── config_data_spec.rb ├── data_stash_spec.rb ├── dsl ├── metric_dsl_spec.rb ├── monitor_dsl_spec.rb ├── story_monitor_dsl_spec.rb └── top_level_spec.rb ├── file_loader_spec.rb ├── heartbeat_file_spec.rb ├── loggable_spec.rb ├── metric_base_spec.rb ├── monitor_collection_spec.rb ├── monitor_runner_spec.rb ├── monkey_patch ├── array_spec.rb └── string_spec.rb ├── output_handler ├── base_spec.rb ├── deferred_spec.rb ├── dispatcher_spec.rb └── text_spec.rb ├── output_handler_spec.rb ├── process_manager_spec.rb ├── protocol_spec.rb ├── scheduler_spec.rb ├── story_monitor_spec.rb └── trending └── graphite_spec.rb /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/.gitignore -------------------------------------------------------------------------------- /.rspec: -------------------------------------------------------------------------------- 1 | -cbfs -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/LICENSE -------------------------------------------------------------------------------- /README.rdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/README.rdoc -------------------------------------------------------------------------------- /Rakefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/Rakefile -------------------------------------------------------------------------------- /TODO.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/TODO.md -------------------------------------------------------------------------------- /bin/critical: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/bin/critical -------------------------------------------------------------------------------- /examples/config/critical_config.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/examples/config/critical_config.rb -------------------------------------------------------------------------------- /examples/metrics/df.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/examples/metrics/df.rb -------------------------------------------------------------------------------- /examples/metrics/freemem.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/examples/metrics/freemem.rb -------------------------------------------------------------------------------- /examples/metrics/integration_monitor.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/examples/metrics/integration_monitor.rb -------------------------------------------------------------------------------- /examples/metrics/rest.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/examples/metrics/rest.rb -------------------------------------------------------------------------------- /examples/monitors/system.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/examples/monitors/system.rb -------------------------------------------------------------------------------- /lib/critical.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/lib/critical.rb -------------------------------------------------------------------------------- /lib/critical/application.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/lib/critical/application.rb -------------------------------------------------------------------------------- /lib/critical/application/cli_option_parser.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/lib/critical/application/cli_option_parser.rb -------------------------------------------------------------------------------- /lib/critical/application/configuration.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/lib/critical/application/configuration.rb -------------------------------------------------------------------------------- /lib/critical/application/daemon.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/lib/critical/application/daemon.rb -------------------------------------------------------------------------------- /lib/critical/application/main.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/lib/critical/application/main.rb -------------------------------------------------------------------------------- /lib/critical/config_data.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/lib/critical/config_data.rb -------------------------------------------------------------------------------- /lib/critical/data_stash.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/lib/critical/data_stash.rb -------------------------------------------------------------------------------- /lib/critical/dsl.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/lib/critical/dsl.rb -------------------------------------------------------------------------------- /lib/critical/dsl/config_data.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/lib/critical/dsl/config_data.rb -------------------------------------------------------------------------------- /lib/critical/dsl/hostname.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/lib/critical/dsl/hostname.rb -------------------------------------------------------------------------------- /lib/critical/dsl/metric_dsl.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/lib/critical/dsl/metric_dsl.rb -------------------------------------------------------------------------------- /lib/critical/dsl/monitor_dsl.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/lib/critical/dsl/monitor_dsl.rb -------------------------------------------------------------------------------- /lib/critical/dsl/story_monitor_dsl.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/lib/critical/dsl/story_monitor_dsl.rb -------------------------------------------------------------------------------- /lib/critical/dsl/top_level.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/lib/critical/dsl/top_level.rb -------------------------------------------------------------------------------- /lib/critical/file_loader.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/lib/critical/file_loader.rb -------------------------------------------------------------------------------- /lib/critical/heartbeat_file.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/lib/critical/heartbeat_file.rb -------------------------------------------------------------------------------- /lib/critical/loggable.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/lib/critical/loggable.rb -------------------------------------------------------------------------------- /lib/critical/metric_base.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/lib/critical/metric_base.rb -------------------------------------------------------------------------------- /lib/critical/metrics/cluster.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/lib/critical/metrics/cluster.rb -------------------------------------------------------------------------------- /lib/critical/metrics/cpu_utilization.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/lib/critical/metrics/cpu_utilization.rb -------------------------------------------------------------------------------- /lib/critical/metrics/disk_utilization.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/lib/critical/metrics/disk_utilization.rb -------------------------------------------------------------------------------- /lib/critical/metrics/memory_utilization.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/lib/critical/metrics/memory_utilization.rb -------------------------------------------------------------------------------- /lib/critical/metrics/nginx_stats.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/lib/critical/metrics/nginx_stats.rb -------------------------------------------------------------------------------- /lib/critical/monitor_collection.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/lib/critical/monitor_collection.rb -------------------------------------------------------------------------------- /lib/critical/monitor_runner.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/lib/critical/monitor_runner.rb -------------------------------------------------------------------------------- /lib/critical/monkey_patch/array.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/lib/critical/monkey_patch/array.rb -------------------------------------------------------------------------------- /lib/critical/monkey_patch/string.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/lib/critical/monkey_patch/string.rb -------------------------------------------------------------------------------- /lib/critical/output_handler.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/lib/critical/output_handler.rb -------------------------------------------------------------------------------- /lib/critical/output_handler/base.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/lib/critical/output_handler/base.rb -------------------------------------------------------------------------------- /lib/critical/output_handler/deferred.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/lib/critical/output_handler/deferred.rb -------------------------------------------------------------------------------- /lib/critical/output_handler/dispatcher.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/lib/critical/output_handler/dispatcher.rb -------------------------------------------------------------------------------- /lib/critical/output_handler/text.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/lib/critical/output_handler/text.rb -------------------------------------------------------------------------------- /lib/critical/process_manager.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/lib/critical/process_manager.rb -------------------------------------------------------------------------------- /lib/critical/protocol.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/lib/critical/protocol.rb -------------------------------------------------------------------------------- /lib/critical/scheduler.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/lib/critical/scheduler.rb -------------------------------------------------------------------------------- /lib/critical/story_monitor.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/lib/critical/story_monitor.rb -------------------------------------------------------------------------------- /lib/critical/trending/graphite.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/lib/critical/trending/graphite.rb -------------------------------------------------------------------------------- /spec/behaviors/metric_output_handler_behavior.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/spec/behaviors/metric_output_handler_behavior.rb -------------------------------------------------------------------------------- /spec/fixtures/config/basic.rb: -------------------------------------------------------------------------------- 1 | $config_file_loaded = true -------------------------------------------------------------------------------- /spec/fixtures/config_data/ignore_me.foo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/spec/fixtures/config_data/ignore_me.foo -------------------------------------------------------------------------------- /spec/fixtures/config_data/json_file.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/spec/fixtures/config_data/json_file.json -------------------------------------------------------------------------------- /spec/fixtures/config_data/plain_text: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/spec/fixtures/config_data/plain_text -------------------------------------------------------------------------------- /spec/fixtures/critical/metrics/disk_utilization_example.rb: -------------------------------------------------------------------------------- 1 | $disk_utilization_example = true 2 | -------------------------------------------------------------------------------- /spec/fixtures/critical/metrics/memory_utilization_example.rb: -------------------------------------------------------------------------------- 1 | $memory_utilization_example = true -------------------------------------------------------------------------------- /spec/fixtures/file_loader/file_loader_context_spy.rb: -------------------------------------------------------------------------------- 1 | $loaded_in_context_of = self -------------------------------------------------------------------------------- /spec/fixtures/file_loader/file_loader_data.rb: -------------------------------------------------------------------------------- 1 | @spy_variable = :pass -------------------------------------------------------------------------------- /spec/fixtures/file_loader/file_loader_data2.rb: -------------------------------------------------------------------------------- 1 | @another_variable = :pass -------------------------------------------------------------------------------- /spec/fixtures/more_source_files/five.rb: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /spec/fixtures/more_source_files/four.rb: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /spec/fixtures/more_source_files/six.rb: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /spec/fixtures/some_source_files/one.rb: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /spec/fixtures/some_source_files/three.rb: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /spec/fixtures/some_source_files/two.rb: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /spec/spec_helper.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/spec/spec_helper.rb -------------------------------------------------------------------------------- /spec/unit/application/cli_option_parser_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/spec/unit/application/cli_option_parser_spec.rb -------------------------------------------------------------------------------- /spec/unit/application/configuration_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/spec/unit/application/configuration_spec.rb -------------------------------------------------------------------------------- /spec/unit/application/main_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/spec/unit/application/main_spec.rb -------------------------------------------------------------------------------- /spec/unit/config_data_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/spec/unit/config_data_spec.rb -------------------------------------------------------------------------------- /spec/unit/data_stash_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/spec/unit/data_stash_spec.rb -------------------------------------------------------------------------------- /spec/unit/dsl/metric_dsl_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/spec/unit/dsl/metric_dsl_spec.rb -------------------------------------------------------------------------------- /spec/unit/dsl/monitor_dsl_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/spec/unit/dsl/monitor_dsl_spec.rb -------------------------------------------------------------------------------- /spec/unit/dsl/story_monitor_dsl_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/spec/unit/dsl/story_monitor_dsl_spec.rb -------------------------------------------------------------------------------- /spec/unit/dsl/top_level_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/spec/unit/dsl/top_level_spec.rb -------------------------------------------------------------------------------- /spec/unit/file_loader_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/spec/unit/file_loader_spec.rb -------------------------------------------------------------------------------- /spec/unit/heartbeat_file_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/spec/unit/heartbeat_file_spec.rb -------------------------------------------------------------------------------- /spec/unit/loggable_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/spec/unit/loggable_spec.rb -------------------------------------------------------------------------------- /spec/unit/metric_base_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/spec/unit/metric_base_spec.rb -------------------------------------------------------------------------------- /spec/unit/monitor_collection_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/spec/unit/monitor_collection_spec.rb -------------------------------------------------------------------------------- /spec/unit/monitor_runner_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/spec/unit/monitor_runner_spec.rb -------------------------------------------------------------------------------- /spec/unit/monkey_patch/array_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/spec/unit/monkey_patch/array_spec.rb -------------------------------------------------------------------------------- /spec/unit/monkey_patch/string_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/spec/unit/monkey_patch/string_spec.rb -------------------------------------------------------------------------------- /spec/unit/output_handler/base_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/spec/unit/output_handler/base_spec.rb -------------------------------------------------------------------------------- /spec/unit/output_handler/deferred_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/spec/unit/output_handler/deferred_spec.rb -------------------------------------------------------------------------------- /spec/unit/output_handler/dispatcher_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/spec/unit/output_handler/dispatcher_spec.rb -------------------------------------------------------------------------------- /spec/unit/output_handler/text_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/spec/unit/output_handler/text_spec.rb -------------------------------------------------------------------------------- /spec/unit/output_handler_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/spec/unit/output_handler_spec.rb -------------------------------------------------------------------------------- /spec/unit/process_manager_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/spec/unit/process_manager_spec.rb -------------------------------------------------------------------------------- /spec/unit/protocol_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/spec/unit/protocol_spec.rb -------------------------------------------------------------------------------- /spec/unit/scheduler_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/spec/unit/scheduler_spec.rb -------------------------------------------------------------------------------- /spec/unit/story_monitor_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/spec/unit/story_monitor_spec.rb -------------------------------------------------------------------------------- /spec/unit/trending/graphite_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielsdeleo/critical/HEAD/spec/unit/trending/graphite_spec.rb --------------------------------------------------------------------------------