riemann.pagerduty
Forwards events to Pagerduty
pagerduty
(pagerduty config)Creates a PagerDuty adapter. By default, use the pagerduty v1 API. You can use the v2 API by setting the :version option to :v2.
Returns a map of functions which trigger, acknowledge, and resolve events.
General options:
:service-keyPagerduty service key (also called integration key or routing key):formatterFormatter for the pagerduty event. You can override the default formatter. The formatter must be a function that accepts an event and emits a hash. (optional):optionsExtra HTTP options. (optional):versionset to:v2to use Pagerduty v2 API. (optional)
v1 API:
By default, event host and service will be used as the incident key. The PD description will be the host, service, state, and metric. The full event will be attached as the details.
v2 API:
By default, event host will be used as the source. The PD summary will be the host, service, state, and metric. The severity is the state. The full event will be attached as the details.
Each event can also contains a :dedup-key key to handle alert de-duplication.
Example, using the v1 API with a custom formatter:
(defn pd-format-event
[event]
{:incident_key 'Incident key', :description 'Incident Description',
:details 'Incident details'})
(let [pd (pagerduty { :service-key "my-service-key" :formatter pd-format-event})]
(changed-state
(where (state "ok") (:resolve pd))
(where (state "critical") (:trigger pd))))
request-body-v1
(request-body-v1 service-key event-type formatter event)Generate PD v1 API request body. event-type is one of :trigger, :acknowledge, :resolve
request-body-v2
(request-body-v2 service-key event-action formatter event)Generate PD v2 API request body. event-action is one of :trigger, :acknowledge, :resolve