Maintainer
¶ ↑
Sends maintenance events to Riemann.
Getting started¶ ↑
gem install maintainer maintainer --help
Usage¶ ↑
Generates a maintenance event that you can inject into the Riemann index and use to indicate a host is in maintenance mode.
The state of the event defaults to active
but you can specify an alternate state with the --event-state
flag.
The :service
field defaults to maintenance-mode
but can be overridden with the --event-service
flag. The host defaults to the host the command is run on but can be overridden with the --event-host
flag.
Starting maintenance¶ ↑
maintainer --host riemann.example.com --event-service apache2 {:host server.example.com, :service apache2, :state active, :description Maintenance is active, :type maintenance-mode, :metric nil, :tags nil, :time 1457278453, :ttl Infinity}
You will see a new attribute called :type
with a value of maintenance-mode
that you could also use for filtering.
Ending maintenance¶ ↑
maintainer --host riemann.example.com --event-service apache2 --event-state inactive {:host server.example.com, :service apache2, :state inactive, :description Maintenance is inactive, :type maintenance-mode, :metric nil, :tags nil, :time 1457278567, :ttl Infinity}
Riemann configuration¶ ↑
We would define a function that checks for maintenance events.
(defn maintenance-mode? "Is it currently in maintenance mode?" [event] (->> '(and (= host (:host event)) (= service "maintenance-mode")) (riemann.index/search (:index @core)) first :state (= "active")))
And then use that function to control when notifications are generated:
(where (not (maintenance-mode? event)) (pagerduty))