flapjack 1.6.0 → 2.0.0b1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (301) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +4 -6
  3. data/.gitmodules +1 -1
  4. data/.rspec +1 -1
  5. data/.ruby-version +1 -1
  6. data/.travis.yml +12 -13
  7. data/CHANGELOG.md +2 -9
  8. data/CONTRIBUTING.md +7 -2
  9. data/Gemfile +4 -13
  10. data/LICENCE +1 -0
  11. data/README.md +8 -2
  12. data/Rakefile +2 -2
  13. data/bin/flapjack +3 -12
  14. data/build.sh +4 -2
  15. data/etc/flapjack_config.toml.example +273 -0
  16. data/features/ack_after_sched_maint.feature +18 -21
  17. data/features/cli.feature +11 -71
  18. data/features/cli_flapjack-feed-events.feature +14 -15
  19. data/features/cli_flapjack-nagios-receiver.feature +12 -41
  20. data/features/cli_flapper.feature +12 -41
  21. data/features/cli_purge.feature +5 -6
  22. data/features/cli_receive-events.feature +6 -7
  23. data/features/cli_simulate-failed-check.feature +5 -6
  24. data/features/events.feature +206 -181
  25. data/features/events_check_names.feature +4 -7
  26. data/features/notification_rules.feature +144 -223
  27. data/features/notifications.feature +65 -57
  28. data/features/rollup.feature +45 -47
  29. data/features/steps/cli_steps.rb +4 -5
  30. data/features/steps/events_steps.rb +163 -373
  31. data/features/steps/notifications_steps.rb +408 -264
  32. data/features/steps/packaging-lintian_steps.rb +0 -4
  33. data/features/steps/time_travel_steps.rb +0 -26
  34. data/features/support/daemons.rb +6 -31
  35. data/features/support/env.rb +65 -74
  36. data/flapjack.gemspec +22 -24
  37. data/lib/flapjack.rb +14 -7
  38. data/lib/flapjack/cli/flapper.rb +74 -173
  39. data/lib/flapjack/cli/maintenance.rb +278 -109
  40. data/lib/flapjack/cli/migrate.rb +950 -0
  41. data/lib/flapjack/cli/purge.rb +19 -22
  42. data/lib/flapjack/cli/receiver.rb +150 -326
  43. data/lib/flapjack/cli/server.rb +8 -235
  44. data/lib/flapjack/cli/simulate.rb +42 -57
  45. data/lib/flapjack/configuration.rb +51 -37
  46. data/lib/flapjack/coordinator.rb +138 -129
  47. data/lib/flapjack/data/acknowledgement.rb +177 -0
  48. data/lib/flapjack/data/alert.rb +97 -158
  49. data/lib/flapjack/data/check.rb +611 -0
  50. data/lib/flapjack/data/condition.rb +70 -0
  51. data/lib/flapjack/data/contact.rb +226 -456
  52. data/lib/flapjack/data/event.rb +96 -184
  53. data/lib/flapjack/data/extensions/associations.rb +59 -0
  54. data/lib/flapjack/data/extensions/short_name.rb +25 -0
  55. data/lib/flapjack/data/medium.rb +428 -0
  56. data/lib/flapjack/data/metrics.rb +194 -0
  57. data/lib/flapjack/data/notification.rb +22 -281
  58. data/lib/flapjack/data/rule.rb +473 -0
  59. data/lib/flapjack/data/scheduled_maintenance.rb +244 -0
  60. data/lib/flapjack/data/state.rb +221 -0
  61. data/lib/flapjack/data/statistic.rb +112 -0
  62. data/lib/flapjack/data/tag.rb +277 -0
  63. data/lib/flapjack/data/test_notification.rb +182 -0
  64. data/lib/flapjack/data/unscheduled_maintenance.rb +159 -0
  65. data/lib/flapjack/data/validators/id_validator.rb +20 -0
  66. data/lib/flapjack/exceptions.rb +6 -0
  67. data/lib/flapjack/filters/acknowledgement.rb +23 -16
  68. data/lib/flapjack/filters/base.rb +0 -5
  69. data/lib/flapjack/filters/delays.rb +53 -43
  70. data/lib/flapjack/filters/ok.rb +23 -14
  71. data/lib/flapjack/filters/scheduled_maintenance.rb +3 -3
  72. data/lib/flapjack/filters/unscheduled_maintenance.rb +12 -3
  73. data/lib/flapjack/gateways/aws_sns.rb +65 -49
  74. data/lib/flapjack/gateways/aws_sns/alert.text.erb +2 -2
  75. data/lib/flapjack/gateways/aws_sns/alert_subject.text.erb +2 -2
  76. data/lib/flapjack/gateways/aws_sns/rollup_subject.text.erb +1 -1
  77. data/lib/flapjack/gateways/email.rb +107 -90
  78. data/lib/flapjack/gateways/email/alert.html.erb +19 -18
  79. data/lib/flapjack/gateways/email/alert.text.erb +20 -14
  80. data/lib/flapjack/gateways/email/alert_subject.text.erb +2 -1
  81. data/lib/flapjack/gateways/email/rollup.html.erb +14 -13
  82. data/lib/flapjack/gateways/email/rollup.text.erb +13 -10
  83. data/lib/flapjack/gateways/jabber.rb +679 -671
  84. data/lib/flapjack/gateways/jabber/alert.text.erb +9 -6
  85. data/lib/flapjack/gateways/jsonapi.rb +164 -350
  86. data/lib/flapjack/gateways/jsonapi/data/join_descriptor.rb +44 -0
  87. data/lib/flapjack/gateways/jsonapi/data/method_descriptor.rb +21 -0
  88. data/lib/flapjack/gateways/jsonapi/helpers/headers.rb +63 -0
  89. data/lib/flapjack/gateways/jsonapi/helpers/miscellaneous.rb +136 -0
  90. data/lib/flapjack/gateways/jsonapi/helpers/resources.rb +227 -0
  91. data/lib/flapjack/gateways/jsonapi/helpers/serialiser.rb +313 -0
  92. data/lib/flapjack/gateways/jsonapi/helpers/swagger_docs.rb +322 -0
  93. data/lib/flapjack/gateways/jsonapi/methods/association_delete.rb +115 -0
  94. data/lib/flapjack/gateways/jsonapi/methods/association_get.rb +288 -0
  95. data/lib/flapjack/gateways/jsonapi/methods/association_patch.rb +178 -0
  96. data/lib/flapjack/gateways/jsonapi/methods/association_post.rb +116 -0
  97. data/lib/flapjack/gateways/jsonapi/methods/metrics.rb +71 -0
  98. data/lib/flapjack/gateways/jsonapi/methods/resource_delete.rb +119 -0
  99. data/lib/flapjack/gateways/jsonapi/methods/resource_get.rb +186 -0
  100. data/lib/flapjack/gateways/jsonapi/methods/resource_patch.rb +239 -0
  101. data/lib/flapjack/gateways/jsonapi/methods/resource_post.rb +197 -0
  102. data/lib/flapjack/gateways/jsonapi/middleware/array_param_fixer.rb +27 -0
  103. data/lib/flapjack/gateways/jsonapi/{rack → middleware}/json_params_parser.rb +7 -6
  104. data/lib/flapjack/gateways/jsonapi/middleware/request_timestamp.rb +18 -0
  105. data/lib/flapjack/gateways/oobetet.rb +222 -170
  106. data/lib/flapjack/gateways/pager_duty.rb +388 -0
  107. data/lib/flapjack/gateways/pager_duty/alert.text.erb +13 -0
  108. data/lib/flapjack/gateways/slack.rb +56 -48
  109. data/lib/flapjack/gateways/slack/alert.text.erb +1 -1
  110. data/lib/flapjack/gateways/slack/rollup.text.erb +1 -1
  111. data/lib/flapjack/gateways/sms_aspsms.rb +155 -0
  112. data/lib/flapjack/gateways/sms_aspsms/alert.text.erb +7 -0
  113. data/lib/flapjack/gateways/sms_aspsms/rollup.text.erb +2 -0
  114. data/lib/flapjack/gateways/sms_messagenet.rb +77 -57
  115. data/lib/flapjack/gateways/sms_messagenet/alert.text.erb +3 -2
  116. data/lib/flapjack/gateways/sms_nexmo.rb +53 -51
  117. data/lib/flapjack/gateways/sms_nexmo/alert.text.erb +2 -2
  118. data/lib/flapjack/gateways/sms_nexmo/rollup.text.erb +1 -1
  119. data/lib/flapjack/gateways/sms_twilio.rb +79 -62
  120. data/lib/flapjack/gateways/sms_twilio/alert.text.erb +3 -2
  121. data/lib/flapjack/gateways/web.rb +437 -345
  122. data/lib/flapjack/gateways/web/middleware/request_timestamp.rb +18 -0
  123. data/lib/flapjack/gateways/web/public/css/bootstrap.css +3793 -4340
  124. data/lib/flapjack/gateways/web/public/css/bootstrap.css.map +1 -0
  125. data/lib/flapjack/gateways/web/public/fonts/glyphicons-halflings-regular.eot +0 -0
  126. data/lib/flapjack/gateways/web/public/fonts/glyphicons-halflings-regular.svg +273 -214
  127. data/lib/flapjack/gateways/web/public/fonts/glyphicons-halflings-regular.ttf +0 -0
  128. data/lib/flapjack/gateways/web/public/fonts/glyphicons-halflings-regular.woff +0 -0
  129. data/lib/flapjack/gateways/web/public/fonts/glyphicons-halflings-regular.woff2 +0 -0
  130. data/lib/flapjack/gateways/web/public/js/bootstrap.js +1637 -1607
  131. data/lib/flapjack/gateways/web/public/js/self_stats.js +1 -2
  132. data/lib/flapjack/gateways/web/views/_pagination.html.erb +19 -0
  133. data/lib/flapjack/gateways/web/views/check.html.erb +159 -121
  134. data/lib/flapjack/gateways/web/views/checks.html.erb +82 -41
  135. data/lib/flapjack/gateways/web/views/contact.html.erb +59 -71
  136. data/lib/flapjack/gateways/web/views/contacts.html.erb +32 -8
  137. data/lib/flapjack/gateways/web/views/index.html.erb +2 -2
  138. data/lib/flapjack/gateways/web/views/{layout.erb → layout.html.erb} +7 -23
  139. data/lib/flapjack/gateways/web/views/self_stats.html.erb +32 -33
  140. data/lib/flapjack/gateways/web/views/tag.html.erb +32 -0
  141. data/lib/flapjack/gateways/web/views/tags.html.erb +51 -0
  142. data/lib/flapjack/logger.rb +34 -3
  143. data/lib/flapjack/notifier.rb +180 -112
  144. data/lib/flapjack/patches.rb +8 -63
  145. data/lib/flapjack/pikelet.rb +185 -143
  146. data/lib/flapjack/processor.rb +323 -191
  147. data/lib/flapjack/record_queue.rb +33 -0
  148. data/lib/flapjack/redis_proxy.rb +66 -0
  149. data/lib/flapjack/utility.rb +21 -15
  150. data/lib/flapjack/version.rb +2 -1
  151. data/libexec/httpbroker.go +218 -14
  152. data/libexec/oneoff.go +13 -10
  153. data/spec/lib/flapjack/configuration_spec.rb +286 -0
  154. data/spec/lib/flapjack/coordinator_spec.rb +103 -157
  155. data/spec/lib/flapjack/data/check_spec.rb +175 -0
  156. data/spec/lib/flapjack/data/contact_spec.rb +26 -349
  157. data/spec/lib/flapjack/data/event_spec.rb +76 -291
  158. data/spec/lib/flapjack/data/medium_spec.rb +19 -0
  159. data/spec/lib/flapjack/data/rule_spec.rb +43 -0
  160. data/spec/lib/flapjack/data/scheduled_maintenance_spec.rb +976 -0
  161. data/spec/lib/flapjack/data/unscheduled_maintenance_spec.rb +34 -0
  162. data/spec/lib/flapjack/gateways/aws_sns_spec.rb +111 -60
  163. data/spec/lib/flapjack/gateways/email_spec.rb +194 -161
  164. data/spec/lib/flapjack/gateways/jabber_spec.rb +961 -162
  165. data/spec/lib/flapjack/gateways/jsonapi/methods/check_links_spec.rb +155 -0
  166. data/spec/lib/flapjack/gateways/jsonapi/methods/checks_spec.rb +426 -0
  167. data/spec/lib/flapjack/gateways/jsonapi/methods/contact_links_spec.rb +217 -0
  168. data/spec/lib/flapjack/gateways/jsonapi/methods/contacts_spec.rb +425 -0
  169. data/spec/lib/flapjack/gateways/jsonapi/methods/events_spec.rb +271 -0
  170. data/spec/lib/flapjack/gateways/jsonapi/methods/media_spec.rb +257 -0
  171. data/spec/lib/flapjack/gateways/jsonapi/methods/medium_links_spec.rb +163 -0
  172. data/spec/lib/flapjack/gateways/jsonapi/methods/metrics_spec.rb +8 -0
  173. data/spec/lib/flapjack/gateways/jsonapi/methods/rule_links_spec.rb +212 -0
  174. data/spec/lib/flapjack/gateways/jsonapi/methods/rules_spec.rb +289 -0
  175. data/spec/lib/flapjack/gateways/jsonapi/methods/scheduled_maintenance_links_spec.rb +49 -0
  176. data/spec/lib/flapjack/gateways/jsonapi/methods/scheduled_maintenances_spec.rb +242 -0
  177. data/spec/lib/flapjack/gateways/jsonapi/methods/tag_links_spec.rb +274 -0
  178. data/spec/lib/flapjack/gateways/jsonapi/methods/tags_spec.rb +302 -0
  179. data/spec/lib/flapjack/gateways/jsonapi/methods/unscheduled_maintenance_links_spec.rb +49 -0
  180. data/spec/lib/flapjack/gateways/jsonapi/methods/unscheduled_maintenances_spec.rb +339 -0
  181. data/spec/lib/flapjack/gateways/jsonapi_spec.rb +1 -1
  182. data/spec/lib/flapjack/gateways/oobetet_spec.rb +151 -79
  183. data/spec/lib/flapjack/gateways/pager_duty_spec.rb +353 -0
  184. data/spec/lib/flapjack/gateways/slack_spec.rb +53 -53
  185. data/spec/lib/flapjack/gateways/sms_aspsms_spec.rb +106 -0
  186. data/spec/lib/flapjack/gateways/sms_messagenet_spec.rb +111 -54
  187. data/spec/lib/flapjack/gateways/sms_nexmo_spec.rb +50 -51
  188. data/spec/lib/flapjack/gateways/sms_twilio_spec.rb +108 -48
  189. data/spec/lib/flapjack/gateways/web_spec.rb +144 -216
  190. data/spec/lib/flapjack/notifier_spec.rb +132 -1
  191. data/spec/lib/flapjack/pikelet_spec.rb +111 -50
  192. data/spec/lib/flapjack/processor_spec.rb +210 -40
  193. data/spec/lib/flapjack/redis_proxy_spec.rb +45 -0
  194. data/spec/lib/flapjack/utility_spec.rb +11 -15
  195. data/spec/service_consumers/fixture_data.rb +547 -0
  196. data/spec/service_consumers/pact_helper.rb +21 -32
  197. data/spec/service_consumers/pacts/flapjack-diner_v2.0.json +4652 -0
  198. data/spec/service_consumers/provider_states_for_flapjack-diner.rb +279 -322
  199. data/spec/service_consumers/provider_support.rb +8 -0
  200. data/spec/spec_helper.rb +34 -44
  201. data/spec/support/erb_view_helper.rb +1 -1
  202. data/spec/support/factories.rb +58 -0
  203. data/spec/support/jsonapi_helper.rb +15 -26
  204. data/spec/support/mock_logger.rb +43 -0
  205. data/spec/support/xmpp_comparable.rb +24 -0
  206. data/src/flapjack/transport_test.go +30 -1
  207. data/tasks/dump_keys.rake +82 -0
  208. data/tasks/events.rake +7 -7
  209. data/tasks/support/flapjack_config_benchmark.toml +28 -0
  210. data/tasks/support/flapjack_config_benchmark.yaml +0 -2
  211. metadata +175 -222
  212. data/Guardfile +0 -14
  213. data/etc/flapjack_config.yaml.example +0 -477
  214. data/features/cli_flapjack-populator.feature +0 -90
  215. data/features/support/silent_system.rb +0 -4
  216. data/lib/flapjack/cli/import.rb +0 -108
  217. data/lib/flapjack/data/entity.rb +0 -652
  218. data/lib/flapjack/data/entity_check.rb +0 -1044
  219. data/lib/flapjack/data/message.rb +0 -56
  220. data/lib/flapjack/data/migration.rb +0 -234
  221. data/lib/flapjack/data/notification_rule.rb +0 -425
  222. data/lib/flapjack/data/semaphore.rb +0 -44
  223. data/lib/flapjack/data/tagged.rb +0 -48
  224. data/lib/flapjack/gateways/jsonapi/check_methods.rb +0 -206
  225. data/lib/flapjack/gateways/jsonapi/check_presenter.rb +0 -221
  226. data/lib/flapjack/gateways/jsonapi/contact_methods.rb +0 -186
  227. data/lib/flapjack/gateways/jsonapi/entity_methods.rb +0 -223
  228. data/lib/flapjack/gateways/jsonapi/medium_methods.rb +0 -185
  229. data/lib/flapjack/gateways/jsonapi/metrics_methods.rb +0 -132
  230. data/lib/flapjack/gateways/jsonapi/notification_rule_methods.rb +0 -141
  231. data/lib/flapjack/gateways/jsonapi/pagerduty_credential_methods.rb +0 -139
  232. data/lib/flapjack/gateways/jsonapi/report_methods.rb +0 -146
  233. data/lib/flapjack/gateways/pagerduty.rb +0 -318
  234. data/lib/flapjack/gateways/pagerduty/alert.text.erb +0 -10
  235. data/lib/flapjack/gateways/web/public/css/select2-bootstrap.css +0 -87
  236. data/lib/flapjack/gateways/web/public/css/select2.css +0 -615
  237. data/lib/flapjack/gateways/web/public/css/tablesort.css +0 -67
  238. data/lib/flapjack/gateways/web/public/img/select2-spinner.gif +0 -0
  239. data/lib/flapjack/gateways/web/public/img/select2.png +0 -0
  240. data/lib/flapjack/gateways/web/public/img/select2x2.png +0 -0
  241. data/lib/flapjack/gateways/web/public/js/backbone.js +0 -1581
  242. data/lib/flapjack/gateways/web/public/js/backbone.jsonapi.js +0 -322
  243. data/lib/flapjack/gateways/web/public/js/flapjack.js +0 -82
  244. data/lib/flapjack/gateways/web/public/js/jquery.tablesorter.js +0 -1640
  245. data/lib/flapjack/gateways/web/public/js/jquery.tablesorter.widgets.js +0 -1390
  246. data/lib/flapjack/gateways/web/public/js/modules/contact.js +0 -520
  247. data/lib/flapjack/gateways/web/public/js/modules/entity.js +0 -28
  248. data/lib/flapjack/gateways/web/public/js/modules/medium.js +0 -40
  249. data/lib/flapjack/gateways/web/public/js/select2.js +0 -3397
  250. data/lib/flapjack/gateways/web/public/js/tablesort.js +0 -44
  251. data/lib/flapjack/gateways/web/public/js/underscore.js +0 -1276
  252. data/lib/flapjack/gateways/web/views/edit_contacts.html.erb +0 -173
  253. data/lib/flapjack/gateways/web/views/entities.html.erb +0 -30
  254. data/lib/flapjack/gateways/web/views/entity.html.erb +0 -51
  255. data/lib/flapjack/rack_logger.rb +0 -47
  256. data/lib/flapjack/redis_pool.rb +0 -42
  257. data/spec/lib/flapjack/data/entity_check_spec.rb +0 -1418
  258. data/spec/lib/flapjack/data/entity_spec.rb +0 -872
  259. data/spec/lib/flapjack/data/message_spec.rb +0 -30
  260. data/spec/lib/flapjack/data/migration_spec.rb +0 -104
  261. data/spec/lib/flapjack/data/notification_rule_spec.rb +0 -232
  262. data/spec/lib/flapjack/data/notification_spec.rb +0 -53
  263. data/spec/lib/flapjack/data/semaphore_spec.rb +0 -24
  264. data/spec/lib/flapjack/filters/acknowledgement_spec.rb +0 -6
  265. data/spec/lib/flapjack/filters/delays_spec.rb +0 -6
  266. data/spec/lib/flapjack/filters/ok_spec.rb +0 -6
  267. data/spec/lib/flapjack/filters/scheduled_maintenance_spec.rb +0 -6
  268. data/spec/lib/flapjack/filters/unscheduled_maintenance_spec.rb +0 -6
  269. data/spec/lib/flapjack/gateways/jsonapi/check_methods_spec.rb +0 -315
  270. data/spec/lib/flapjack/gateways/jsonapi/check_presenter_spec.rb +0 -223
  271. data/spec/lib/flapjack/gateways/jsonapi/contact_methods_spec.rb +0 -131
  272. data/spec/lib/flapjack/gateways/jsonapi/entity_methods_spec.rb +0 -389
  273. data/spec/lib/flapjack/gateways/jsonapi/medium_methods_spec.rb +0 -231
  274. data/spec/lib/flapjack/gateways/jsonapi/notification_rule_methods_spec.rb +0 -169
  275. data/spec/lib/flapjack/gateways/jsonapi/pagerduty_credential_methods_spec.rb +0 -114
  276. data/spec/lib/flapjack/gateways/jsonapi/report_methods_spec.rb +0 -590
  277. data/spec/lib/flapjack/gateways/pagerduty_spec.rb +0 -249
  278. data/spec/lib/flapjack/gateways/web/views/check.html.erb_spec.rb +0 -21
  279. data/spec/lib/flapjack/gateways/web/views/contact.html.erb_spec.rb +0 -24
  280. data/spec/lib/flapjack/gateways/web/views/index.html.erb_spec.rb +0 -16
  281. data/spec/lib/flapjack/redis_pool_spec.rb +0 -29
  282. data/spec/service_consumers/pacts/flapjack-diner_v1.0.json +0 -4702
  283. data/tasks/entities.rake +0 -151
  284. data/tasks/profile.rake +0 -282
  285. data/tmp/acknowledge.rb +0 -13
  286. data/tmp/create_config_yaml.rb +0 -16
  287. data/tmp/create_event_ok.rb +0 -30
  288. data/tmp/create_event_unknown.rb +0 -30
  289. data/tmp/create_events_failure.rb +0 -34
  290. data/tmp/create_events_ok.rb +0 -32
  291. data/tmp/create_events_ok_fail_ack_ok.rb +0 -53
  292. data/tmp/create_events_ok_failure.rb +0 -41
  293. data/tmp/create_events_ok_failure_ack.rb +0 -53
  294. data/tmp/dummy_contacts.json +0 -43
  295. data/tmp/dummy_entities.json +0 -37
  296. data/tmp/generate_nagios_test_hosts.rb +0 -16
  297. data/tmp/notification_rules.rb +0 -73
  298. data/tmp/parse_config_yaml.rb +0 -7
  299. data/tmp/redis_find_spurious_unknown_states.rb +0 -52
  300. data/tmp/test_json_post.rb +0 -19
  301. data/tmp/test_notification_rules_api.rb +0 -171
data/Guardfile DELETED
@@ -1,14 +0,0 @@
1
-
2
- guard 'rspec', :cli => '--format Fuubar --format html --out tmp/spec.html --require ./spec/support/uncolored_doc_formatter.rb --format UncoloredDocFormatter --out tmp/spec_doc.txt --require ./spec/support/profile_all_formatter.rb --format ProfileAllFormatter --out tmp/spec_profile.txt', :version => 2 do
3
- watch(%r{^spec/.+_spec\.rb$})
4
- watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
5
- watch('spec/spec_helper.rb') { "spec" }
6
- end
7
-
8
- # NB: seems to be buggy with the default --progress formatter, was
9
- # causing failures to parse the features
10
- guard 'cucumber', :cli => '--no-profile --color --strict' do
11
- watch(%r{^features/.+\.feature$})
12
- watch(%r{^features/support/.+$}) { 'features' }
13
- watch(%r{^features/step_definitions/(.+)_steps\.rb$}) { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'features' }
14
- end
@@ -1,477 +0,0 @@
1
- ---
2
-
3
- production:
4
- pid_dir: /var/run/flapjack/
5
- log_dir: /var/log/flapjack/
6
- daemonize: yes
7
- logger:
8
- level: INFO
9
- syslog_errors: yes
10
- redis:
11
- host: 127.0.0.1
12
- port: 6380
13
- db: 0
14
- # Processes monitoring events off the *events* queue (a redis list) and decides
15
- # what actions to take (generate notification event, record state changes, etc)
16
- processor:
17
- enabled: yes
18
- queue: events
19
- notifier_queue: notifications
20
- archive_events: true
21
- events_archive_maxage: 10800
22
- # Flapjack sets scheduled maintenance on new check results so contacts aren't
23
- # notified as soon as Flapjack becomes aware of an entity to notify on.
24
- # This is useful is cases where your monitoring starts checking something
25
- # before it is completely provisioned
26
- # Value parsed by https://github.com/hpoydar/chronic_duration
27
- # You can disable this setting by specifying "0 seconds".
28
- new_check_scheduled_maintenance_duration: 100 years
29
- new_check_scheduled_maintenance_ignore_tags:
30
- - bypass_ncsm
31
- logger:
32
- level: INFO
33
- syslog_errors: yes
34
- # Processes notification events off the *notifications* queue (a redis list) and
35
- # works out who to notify, and on which media, and with what kind of notification
36
- # message. It then creates jobs for the various notification gateways below.
37
- notifier:
38
- enabled: yes
39
- queue: notifications
40
- email_queue: email_notifications
41
- sms_queue: sms_notifications
42
- sms_nexmo_queue: sms_nexmo_notifications
43
- slack_queue: slack_notifications
44
- sms_twilio_queue: sms_twilio_notifications
45
- sns_queue: sns_notifications
46
- jabber_queue: jabber_notifications
47
- pagerduty_queue: pagerduty_notifications
48
- notification_log_file: /var/log/flapjack/notification.log
49
- default_contact_timezone: UTC
50
- logger:
51
- level: INFO
52
- syslog_errors: yes
53
- nagios-receiver:
54
- fifo: "/var/cache/nagios3/event_stream.fifo"
55
- pid_dir: "/var/run/flapjack/"
56
- log_dir: "/var/log/flapjack/"
57
- nsca-receiver:
58
- fifo: "/var/lib/nagios3/rw/nagios.cmd"
59
- pid_dir: "/var/run/flapjack/"
60
- log_dir: "/var/log/flapjack/"
61
- gateways:
62
- # Generates email notifications
63
- email:
64
- enabled: no
65
- # the redis queue this pikelet will look for notifications on
66
- queue: email_notifications
67
- logger:
68
- level: INFO
69
- syslog_errors: yes
70
- # these values are passed directly through to EventMachine::Protocols::SmtpClient configuration,
71
- # and can be omitted if the defaults are acceptable
72
- smtp_config:
73
- # from: "Flapjack Example <flapjack@noreply.example>"
74
- # reply_to: "flapjack@support.example"
75
- host: 127.0.0.1
76
- # 1025 is the default port for http://mailcatcher.me
77
- port: 1025
78
- starttls: false
79
- #auth:
80
- # type:
81
- # username:
82
- # password:
83
- # location of custom alert templates
84
- #templates:
85
- # rollup_subject.text: '/etc/flapjack/templates/email/rollup_subject.text.erb'
86
- # alert_subject.text: '/etc/flapjack/templates/email/alert_subject.text.erb'
87
- # rollup.text: '/etc/flapjack/templates/email/rollup.text.erb'
88
- # alert.text: '/etc/flapjack/templates/email/alert.text.erb'
89
- # rollup.html: '/etc/flapjack/templates/email/rollup.html.erb'
90
- # alert.html: '/etc/flapjack/templates/email/alert.html.erb'
91
- # Sends SMS notifications via MessageNet (Australia only)
92
- sms:
93
- enabled: no
94
- # the redis queue this pikelet will look for notifications on
95
- queue: sms_notifications
96
- endpoint: 'https://www.messagenet.com.au/dotnet/Lodge.asmx/LodgeSMSMessage'
97
- username: "ermahgerd"
98
- password: "xxxx"
99
- logger:
100
- level: INFO
101
- syslog_errors: yes
102
- # location of custom alert templates
103
- #templates:
104
- # rollup.text: '/etc/flapjack/templates/sms/rollup.text.erb'
105
- # alert.text: '/etc/flapjack/templates/sms/alert.text.erb'
106
- # Sends notifications via Slack
107
- slack:
108
- enabled: no
109
- queue: slack_notifications
110
- account_sid: "webhookbot"
111
- endpoint: "https://hooks.slack.com/services/xxx/yyy/"
112
- auth_token: "zzzzz"
113
- from: ""
114
- logger:
115
- level: INFO
116
- syslog_errors: yes
117
- # location of custom alert templates
118
- #templates:
119
- # rollup.text: '/etc/flapjack/templates/slack/rollup.text.erb'
120
- # alert.text: '/etc/flapjack/templates/slack/alert.text.erb'
121
- # Sends SMS notifications via Twilio
122
- sms_twilio:
123
- enabled: no
124
- queue: sms_twilio_notifications
125
- account_sid: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
126
- auth_token: "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy"
127
- from: "+1xxxxxxxxxx"
128
- logger:
129
- level: INFO
130
- syslog_errors: yes
131
- # location of custom alert templates
132
- #templates:
133
- # rollup.text: '/etc/flapjack/templates/sms_twilio/rollup.text.erb'
134
- # alert.text: '/etc/flapjack/templates/sms_twilio/alert.text.erb'
135
- # Sends SMS notifications via Nexmo
136
- sms_nexmo:
137
- enabled: no
138
- queue: sms_nexmo_notifications
139
- from: "xxxxxxxxx"
140
- api_key: "APIKEY"
141
- secret: "s3cr3t"
142
- logger:
143
- level: INFO
144
- syslog_errors: yes
145
- # location of custom alert templates
146
- #templates:
147
- # rollup.text: '/etc/flapjack/templates/sms/rollup.text.erb'
148
- # alert.text: '/etc/flapjack/templates/sms/alert.text.erb'
149
- # Generates SNS notifications
150
- sns:
151
- enabled: no
152
- queue: sns_notifications
153
- #region_name: us-east-1
154
- # Don't forget to use an IAM user's credentials here so revocation is easy!
155
- access_key: AKIAIOSFODNN7EXAMPLE
156
- secret_key: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
157
- # Connects to an XMPP (jabber) server, sends notifications (to rooms and individuals),
158
- # handles acknowledgements from jabber users and other commands.
159
- jabber:
160
- enabled: no
161
- # the redis queue this pikelet will look for notifications on
162
- queue: jabber_notifications
163
- server: "jabber.example.com"
164
- port: 5222
165
- jabberid: "flapjack@jabber.example.com"
166
- password: "good-password"
167
- alias: "flapjack"
168
- # List of strings that this pikelet user will respond to
169
- identifiers:
170
- - "@flapjack"
171
- # the Multi-User Chats the pikelet should join and announce to
172
- rooms:
173
- - "gimp@conference.jabber.example.com"
174
- - "log@conference.jabber.example.com"
175
- logger:
176
- level: INFO
177
- syslog_errors: yes
178
- # location of custom alert templates
179
- #templates:
180
- # rollup.text: '/etc/flapjack/templates/jabber/rollup.text.erb'
181
- # alert.text: '/etc/flapjack/templates/jabber/alert.text.erb'
182
- # Sends notifications to and accepts acknowledgements from [PagerDuty](http://www.pagerduty.com/)
183
- # (NB: contacts will need to have a registered PagerDuty account to use this)
184
- pagerduty:
185
- enabled: no
186
- # the redis queue this pikelet will look for notifications on
187
- queue: pagerduty_notifications
188
- logger:
189
- level: INFO
190
- syslog_errors: yes
191
- # location of custom alert templates
192
- #templates:
193
- # alert.text: '/etc/flapjack/templates/pagerduty/alert.text.erb'
194
- # Browsable web interface
195
- web:
196
- enabled: yes
197
- #bind_address: 0.0.0.0
198
- port: 3080
199
- timeout: 300
200
- # Seconds between auto_refresh of entities/checks pages. Set to 0 to disable
201
- auto_refresh: 120
202
- access_log: "/var/log/flapjack/web_access.log"
203
- # Main URL for this service eg: "http://flapjack.example/"
204
- #base_url: "/"
205
- # URL for accessing the JSONAPI service from the browser
206
- api_url: "http://localhost:3081/"
207
- # Full path to location of logo file, e.g. /etc/flapjack/custom_logo.png
208
- #logo_image_path: "/etc/flapjack/web/custom_logo/flapjack-2013-notext-transparent-300-300.png"
209
- show_exceptions: false
210
- logger:
211
- level: INFO
212
- syslog_errors: yes
213
- # HTTP API server
214
- jsonapi:
215
- enabled: yes
216
- #bind_address: 0.0.0.0
217
- port: 3081
218
- timeout: 300
219
- access_log: "/var/log/flapjack/jsonapi_access.log"
220
- base_url: "http://localhost:3081/"
221
- logger:
222
- level: INFO
223
- syslog_errors: yes
224
- # "out-of-band" end-to-end testing, used for monitoring other instances of
225
- # flapjack to ensure that they are running correctly
226
- oobetet:
227
- enabled: no
228
- server: "jabber.example.com"
229
- port: 5222
230
- # jabberid, password, alias, rooms: see the jabber pikelet
231
- jabberid: "flapjacktest@jabber.example.com"
232
- password: "nuther-good-password"
233
- alias: "flapjacktest"
234
- # The check oobetet should watch for the state change
235
- watched_check: "PING"
236
- # The entitiy that the check should be associated with
237
- watched_entity: "foo.example.com"
238
- # The maximum amount of time allowed to pass between state changes on that check
239
- max_latency: 300
240
- # The API key for a service in PagerDuty that the oobetet will use to alert you
241
- pagerduty_contact: "11111111111111111111111111111111"
242
- # Jabber rooms to join
243
- rooms:
244
- - "flapjacktest@conference.jabber.example.com"
245
- - "gimp@conference.jabber.example.com"
246
- - "log@conference.jabber.example.com"
247
- logger:
248
- level: INFO
249
- syslog_errors: yes
250
-
251
- development:
252
- pid_dir: tmp/pids/
253
- log_dir: log/
254
- daemonize: yes
255
- logger:
256
- level: DEBUG
257
- syslog_errors: yes
258
- redis:
259
- host: 127.0.0.1
260
- port: 6379
261
- db: 13
262
- # Processes monitoring events off the *events* queue (a redis list) and decides
263
- # what actions to take (generate notification event, record state changes, etc)
264
- processor:
265
- enabled: yes
266
- queue: events
267
- notifier_queue: notifications
268
- archive_events: true
269
- events_archive_maxage: 10800
270
- # Flapjack sets scheduled maintenance on new check results so contacts aren't
271
- # notified as soon as Flapjack becomes aware of an entity to notify on.
272
- # This is useful is cases where your monitoring starts checking something
273
- # before it is completely provisioned
274
- # Value parsed by https://github.com/hpoydar/chronic_duration
275
- # You can disable this setting by specifying "0 seconds".
276
- new_check_scheduled_maintenance_duration: 100 years
277
- new_check_scheduled_maintenance_ignore_tags:
278
- - bypass_ncsm
279
- logger:
280
- level: DEBUG
281
- syslog_errors: yes
282
- # Processes notification events off the *notifications* queue (a redis list) and
283
- # works out who to notify, and on which media, and with what kind of notification
284
- # message. It then creates jobs for the various notification gateways below.
285
- notifier:
286
- enabled: yes
287
- queue: notifications
288
- email_queue: email_notifications
289
- sms_queue: sms_notifications
290
- sms_nexmo_queue: sms_nexmo_notifications
291
- sms_twilio_queue: sms_twilio_notifications
292
- jabber_queue: jabber_notifications
293
- pagerduty_queue: pagerduty_notifications
294
- notification_log_file: log/notification.log
295
- default_contact_timezone: UTC
296
- logger:
297
- level: DEBUG
298
- syslog_errors: yes
299
- nagios-receiver:
300
- fifo: "/var/cache/nagios3/event_stream.fifo"
301
- pid_dir: "tmp/pids/"
302
- log_dir: "log/"
303
- nsca-receiver:
304
- fifo: "/var/lib/nagios3/rw/nagios.cmd"
305
- pid_dir: "tmp/pids/"
306
- log_dir: "log/"
307
- gateways:
308
- # Generates email notifications
309
- email:
310
- enabled: no
311
- # the redis queue this pikelet will look for notifications on
312
- queue: email_notifications
313
- logger:
314
- level: DEBUG
315
- syslog_errors: yes
316
- # these values are passed directly through to EventMachine::Protocols::SmtpClient configuration,
317
- # and can be omitted if the defaults are acceptable
318
- smtp_config:
319
- # from: "Flapjack Example <flapjack@noreply.example>"
320
- # reply_to: "flapjack@support.example"
321
- host: 127.0.0.1
322
- # 1025 is the default port for http://mailcatcher.me
323
- port: 1025
324
- starttls: false
325
- #auth:
326
- # type:
327
- # username:
328
- # password:
329
- # location of custom alert templates
330
- #templates:
331
- # rollup_subject.text: '/etc/flapjack/templates/email/rollup_subject.text.erb'
332
- # alert_subject.text: '/etc/flapjack/templates/email/alert_subject.text.erb'
333
- # rollup.text: '/etc/flapjack/templates/email/rollup.text.erb'
334
- # alert.text: '/etc/flapjack/templates/email/alert.text.erb'
335
- # rollup.html: '/etc/flapjack/templates/email/rollup.html.erb'
336
- # alert.html: '/etc/flapjack/templates/email/alert.html.erb'
337
- # Generates sms notifications
338
- sms:
339
- enabled: no
340
- # the redis queue this pikelet will look for notifications on
341
- queue: sms_notifications
342
- endpoint: 'https://www.messagenet.com.au/dotnet/Lodge.asmx/LodgeSMSMessage'
343
- username: "ermahgerd"
344
- password: "xxxx"
345
- logger:
346
- level: DEBUG
347
- syslog_errors: yes
348
- # location of custom alert templates
349
- #templates:
350
- # rollup.text: '/etc/flapjack/templates/sms/rollup.text.erb'
351
- # alert.text: '/etc/flapjack/templates/sms/alert.text.erb'
352
- # Sends SMS messages via Twilio
353
- sms_twilio:
354
- enabled: no
355
- queue: sms_twilio_notifications
356
- account_sid: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
357
- auth_token: "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy"
358
- from: "+1xxxxxxxxxx"
359
- logger:
360
- level: INFO
361
- syslog_errors: yes
362
- # location of custom alert templates
363
- # location of custom alert templates
364
- #templates:
365
- # rollup.text: '/etc/flapjack/templates/sms_twilio/rollup.text.erb'
366
- # alert.text: '/etc/flapjack/templates/sms_twilio/alert.text.erb'
367
- # Sends SMS notifications via Nexmo
368
- sms_nexmo:
369
- enabled: no
370
- queue: sms_nexmo_notifications
371
- from: "xxxxxxxxx"
372
- api_key: "APIKEY"
373
- secret: "s3cr3t"
374
- logger:
375
- level: INFO
376
- syslog_errors: yes
377
- # location of custom alert templates
378
- #templates:
379
- # rollup.text: '/etc/flapjack/templates/sms/rollup.text.erb'
380
- # alert.text: '/etc/flapjack/templates/sms/alert.text.erb'
381
- # Connects to an XMPP (jabber) server, sends notifications (to rooms and individuals),
382
- # handles acknowledgements from jabber users and other commands.
383
- jabber:
384
- enabled: no
385
- # the redis queue this pikelet will look for notifications on
386
- queue: jabber_notifications
387
- server: "jabber.example.com"
388
- port: 5222
389
- jabberid: "flapjack@jabber.example.com"
390
- password: "good-password"
391
- alias: "flapjack"
392
- # List of strings that this pikelet user will respond to
393
- identifiers:
394
- - "@flapjack"
395
- # the Multi-User Chats the pikelet should join and announce to
396
- rooms:
397
- - "gimp@conference.jabber.example.com"
398
- - "log@conference.jabber.example.com"
399
- logger:
400
- level: DEBUG
401
- syslog_errors: yes
402
- # location of custom alert templates
403
- #templates:
404
- # rollup.text: '/etc/flapjack/templates/jabber/rollup.text.erb'
405
- # alert.text: '/etc/flapjack/templates/jabber/alert.text.erb'
406
- # Sends notifications to and accepts acknowledgements from [PagerDuty](http://www.pagerduty.com/)
407
- # (NB: contacts will need to have a registered PagerDuty account to use this)
408
- pagerduty:
409
- enabled: no
410
- # the redis queue this pikelet will look for notifications on
411
- queue: pagerduty_notifications
412
- logger:
413
- level: INFO
414
- syslog_errors: yes
415
- # location of custom alert templates
416
- #templates:
417
- # alert.text: '/etc/flapjack/templates/pagerduty/alert.text.erb'
418
- # Browsable web interface
419
- web:
420
- enabled: yes
421
- #bind_address: 0.0.0.0
422
- port: 3080
423
- timeout: 300
424
- # Seconds between auto_refresh of entities/checks pages. Set to 0 to disable
425
- auto_refresh: 120
426
- access_log: "log/web_access.log"
427
- api_url: "http://localhost:3081/"
428
- # Full path to location of logo file, e.g. /etc/flapjack/custom_logo.png
429
- #logo_image_path: "/etc/flapjack/web/custom_logo/flapjack-2013-notext-transparent-300-300.png"
430
- show_exceptions: true
431
- logger:
432
- level: DEBUG
433
- syslog_errors: yes
434
- # HTTP API server
435
- jsonapi:
436
- enabled: yes
437
- #bind_address: 0.0.0.0
438
- port: 3081
439
- timeout: 300
440
- access_log: "log/jsonapi_access.log"
441
- base_url: "http://localhost:3081/"
442
- logger:
443
- level: DEBUG
444
- syslog_errors: yes
445
- # "out-of-band" end-to-end testing, used for monitoring other instances of
446
- # flapjack to ensure that they are running correctly
447
- oobetet:
448
- enabled: no
449
- server: "jabber.example.com"
450
- port: 5222
451
- # jabberid, password, alias, rooms: see the jabber pikelet
452
- jabberid: "flapjacktest@jabber.example.com"
453
- password: "nuther-good-password"
454
- alias: "flapjacktest"
455
- # The check oobetet should watch for the state change
456
- watched_check: "PING"
457
- # The entitiy that the check should be associated with
458
- watched_entity: "foo.example.com"
459
- # The maximum amount of time allowed to pass between state changes on that check
460
- max_latency: 300
461
- # The API key for a service in PagerDuty that the oobetet will use to alert you
462
- pagerduty_contact: "11111111111111111111111111111111"
463
- # Jabber rooms to join
464
- rooms:
465
- - "flapjacktest@conference.jabber.example.com"
466
- - "gimp@conference.jabber.example.com"
467
- - "log@conference.jabber.example.com"
468
- logger:
469
- level: DEBUG
470
- syslog_errors: yes
471
-
472
- test:
473
- pid_dir: tmp/pids/
474
- log_dir: log/
475
- redis:
476
- db: 14
477
- driver: ruby