Skip to content

Instantly share code, notes, and snippets.

View ryanhoskin's full-sized avatar

Ryan Hoskin ryanhoskin

View GitHub Profile
@ryanhoskin
ryanhoskin / query_incidents.py
Last active August 29, 2015 14:01
Query all PagerDuty incidents within a specified time period
#!/usr/bin/env python
import requests
import sys
import json
import time
from datetime import date, timedelta
#Your PagerDuty API key. A read-only key will work for this.
AUTH_TOKEN = 'YOUR_API_KEY'
define contact {
contact_name pagerduty
alias PagerDuty Pseudo-Contact
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,r
service_notification_commands notify-service-by-pagerduty
host_notification_commands notify-host-by-pagerduty
pager 1ebf75f79c8d495ca90a64e18c3e93c5
@ryanhoskin
ryanhoskin / get_on_call.py
Last active August 29, 2015 14:02
Get who's on-call for an escalation policy
#!/usr/bin/env python
import requests
SUBDOMAIN='pdt-dank'
API_ACCESS_KEY='HjEs6A6KozribnKqm1tX'
def get_escalation_policy_oncall():
url = 'https://{0}.pagerduty.com/api/v1/escalation_policies/on_call'.format(SUBDOMAIN)
#!/usr/bin/env python
import requests
SUBDOMAIN='pdt-dank'
API_ACCESS_KEY='HjEs6A6KozribnKqm1tX'
def get_incidents():
headers = {
@ryanhoskin
ryanhoskin / reassign_incidents.py
Created June 24, 2014 15:40
Reassign PagerDuty incidents
#!/usr/bin/env python
import json
import requests
SUBDOMAIN='pdt-dank'
API_ACCESS_KEY='HjEs6A6KozribnKqm1tX'
REQUESTER_ID='PJR28TQ'
INCIDENT_ID='PBI9MB9'
@ryanhoskin
ryanhoskin / pd-zabbix-proxy.py
Created October 24, 2014 15:41
zabbix pagerduty integration with a proxy
#!/usr/bin/env python
#
# Python script to submit Zabbix events to PagerDuty. This script has
# been tested with Python 2.6.
#
# Copyright (c) 2012, PagerDuty, Inc. <info@pagerduty.com>
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#!/usr/bin/env python
#
# Python script to submit Zabbix events to PagerDuty. This script has
# been tested with Python 2.6.
#
# Copyright (c) 2012, PagerDuty, Inc. <info@pagerduty.com>
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
@ryanhoskin
ryanhoskin / trigger.ps1
Created November 21, 2014 21:58
Trigger a PagerDuty incident
#This script can trigger an incident in PagerDuty
#Hit the PagerDuty Integrations API, echo results
function POST_Request ($url,$parameters) {
$http_request = New-Object -ComObject Msxml2.XMLHTTP
$http_request.open('POST', $url, $false)
$http_request.setRequestHeader("Content-type", "application/json")
$http_request.setRequestHeader("Content-length", $parameters.length)
$http_request.setRequestHeader("Connection", "close")
$http_request.send($parameters)
#!/usr/bin/env perl
# Nagios/Icinga plugin that sends Nagios/Icinga events to PagerDuty.
#
# Copyright (c) 2011-2012, PagerDuty, Inc. <info@pagerduty.com>
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
@ryanhoskin
ryanhoskin / get_incident_subjects.py
Created November 24, 2014 18:22
Get PagerDuty incidents and include the subject/description and dump them to a CSV
#!/usr/bin/env python
import requests
import sys
import json
import time
from datetime import date, timedelta
#Your PagerDuty API key. A read-only key will work for this.
AUTH_TOKEN = 'YOUR_API_TOKEN'