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.

Field Mappings/Behaviors

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

Pingdom Parameter

Signal Parameter(s)

check_id

idempotency_key AND
annotations.check_id

description

summary

long_description

body

check_name

annotations.check_name

check_type

annotations.check_type

importance_level

level - If HIGH on Pingdom then the Alert is ERROR on FireHydrant. If LOW then it is WARN on FireHydrant

tags

tags

current_state

status - 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
}