Pingdom Event Source

The Pingdom Event Source allows you to configure Pingdom's website monitoring service as an Event Source to alert via FireHydrant's Signals.

Configuring the Webhook

Pingdom can be configured to fire webhooks to external destinations upon state changes to your uptime checks. In FireHydrant, you can find the Pingdom source URL by going to Signals > Event Sources and clicking the Copy URL button in the Pingdom row.

Copy that URL in FireHydrant, and set this URL as the destination when configuring the webhook in Pingdom. For instructions on configuring a webhook in Pingdom, visit Pingdom's Webhook Docs.

Transposer Defaults

The following Pingdom webhook parameters are transposed to FireHydrant's Signals Events Data Model:

Pingdom ParameterSignal Parameter(s)
check_ididempotency_key AND
annotations.check_id
descriptionsummary
long_descriptionbody
check_nameannotations.check_name
check_typeannotations.check_type
importance_levellevel - If HIGH on Pingdom then the Alert is ERROR on FireHydrant. If LOW then it is WARN on FireHydrant
tagstags
current_statestatus - If DOWN on Pingdom then the Alert is OPEN on FireHydrant. Otherwise, the alert is CLOSED on FireHydrant

Subsequently, the following webhook from Pingdom:

{
  "check_id": 12345,
  "check_name": "Name of HTTP check",
  "check_type": "HTTP",
  "check_params": {
    "basic_auth": false,
    "encryption": true,
    "full_url": "https://www.example.com/path",
    "header": "User-Agent:Pingdom.com_bot",
    "hostname": "www.example.com",
    "ipv6": false,
    "port": 443,
    "url": "/path"
  },
  "tags": [
    "service:web",
    "env:production"
  ],
  "previous_state": "UP",
  "current_state": "DOWN",
  "importance_level": "HIGH",
  "state_changed_timestamp": 1451610061,
  "state_changed_utc_time": "2016-01-01T01:01:01",
  "long_description": "Long error message",
  "description": "Short error message",
  "first_probe": {
    "ip": "123.4.5.6",
    "ipv6": "2001:4800:1020:209::5",
    "location": "Stockholm, Sweden"
  },
  "second_probe": {
    "ip": "123.4.5.6",
    "ipv6": "2001:4800:1020:209::5",
    "location": "Austin, US",
    "version": 1
  }
}

...will be transposed to the following Signal in FireHydrant:

{
  "summary": "Short error message",
  "body": "Long error message",
  "level": 2,
  "links": [],
  "images": [],
  "tags": ["service:web", "env:production"],
  "annotations": {
    "check_id": "12345",
    "check_name": "Name of HTTP check",
    "check_type": "HTTP"
  },
  "idempotency_key": "12345",
  "status": 0
}