# Set API tokenexportPDTOKEN="your_api_token_here"# Set default region (for EU accounts)exportPD_API_BASE="https://api.eu.pagerduty.com"# Set default user emailexportPD_USER_EMAIL="user@example.com"
ANHANG Loggen Sie sich in PagerDuty Web-Schnittstelle
2. Navigieren Sie zu ** Konfiguration → API Access**
3. Klicken Sie hier Neue API-Schlüssel erstellen
4. Wählen Sie User Token* oder **Account Token
5. Token kopieren und sicher speichern
# Integration keys are service-specific# Find them at: Service → Integrations → Integration Key# Use in agent:pd-send-k"your_integration_key"-ttrigger-d"Alert message"# Use in Events API v2:curl-XPOSThttps://events.pagerduty.com/v2/enqueue\-H"Content-Type: application/json"\-d'{ "routing_key": "your_integration_key", "event_action": "trigger", "payload": { "summary": "Server down", "severity": "critical", "source": "prod-server-01" } }'
{"service":{"name":"Production API","description":"Main production API service","escalation_policy":{"id":"ESCALATION_POLICY_ID","type":"escalation_policy_reference"},"alert_creation":"create_alerts_and_incidents","incident_urgency_rule":{"type":"constant","urgency":"high"},"auto_resolve_timeout":14400,"acknowledgement_timeout":1800}}
Häufige Anwendungsfälle
Use Case 1: Trigger and Resolving Incident from Monitoring¶
# Trigger incident when issue detectedpd-send-kR0123456789ABCDEF0123456789ABCDEF\-ttrigger\-d"Database connection pool exhausted"\-scritical\-idb_pool_incident_001
# Add context as incident developspd-send-kR0123456789ABCDEF0123456789ABCDEF\-ttrigger\-d"Connection count: 500/500"\-idb_pool_incident_001
# Resolve when fixedpd-send-kR0123456789ABCDEF0123456789ABCDEF\-tresolve\-idb_pool_incident_001
Use Case 2: Überprüfen Sie, wer On-Call vor der Bereitstellung ist¶
# Get current on-call engineerspdoncall:list--json|jq-r'.oncalls[] | "\(.escalation_policy.summary): \(.user.summary)"'# Get on-call for specific escalation policypdoncall:list--escalation-policy-idsEP123456--json|jq-r'.oncalls[].user.summary'# Check schedule for next 7 dayspdschedule:show--idSCHEDULE_ID--since$(date-u+%Y-%m-%dT%H:%M:%SZ)--until$(date-u-d'+7 days'+%Y-%m-%dT%H:%M:%SZ)
Use Case 3: Bulk Incident Management während Outage¶
# Get all triggered incidents for a serviceINCIDENTS=$(pdincident:list--service-idsSERVICE_ID--statustriggered--json|jq-r'.incidents[].id')# Acknowledge all incidentsecho"$INCIDENTS"|xargs-I{}pdincident:ack--id{}# Add note to all incidentsecho"$INCIDENTS"|xargs-I{}pdincident:notes--id{}--note"Mass outage - investigating root cause"# Resolve all incidents after fixecho"$INCIDENTS"|xargs-I{}pdincident:resolve--id{}
Use Case 4: Incident mit Konferenzbrücke erstellen¶
# Get incidents from last weekLAST_WEEK=$(date-u-d'7 days ago'+%Y-%m-%dT%H:%M:%SZ)NOW=$(date-u+%Y-%m-%dT%H:%M:%SZ)pdincident:list--since$LAST_WEEK--until$NOW--json|\jq-r'.incidents[] | [.created_at, .urgency, .status, .title] | @csv'>weekly_incidents.csv
# Count incidents by servicepdincident:list--since$LAST_WEEK--until$NOW--json|\jq-r'.incidents[] | .service.summary'|sort|uniq-c|sort-rn
# Calculate mean time to acknowledgepdincident:list--since$LAST_WEEK--until$NOW--json|\jq'[.incidents[] | select(.status == "resolved") | (.first_trigger_log_entry.created_at as $trigger | .acknowledgements[0].at as $ack | ($ack | fromdateiso8601) - ($trigger | fromdateiso8601))] | add / length / 60'# Result in minutes
oder Best Practices
**Einfallsschlüssel für Deduplizierung verwenden*: Geben Sie immer konsistente Vorfallsschlüssel (-i_ flag) an, um doppelte Warnungen für das gleiche Problem zu verhindern
** Stellen Sie geeignete Dringlichkeiten*: Verwenden high Dringlichkeit für kritische Produktionsfragen, low für nicht-chirurgische Meldungen, um Alarmermüdung zu vermeiden
**Verwalten der Autoauflösung*: Konfigurieren von Diensten mit auto_resolve_timeout, um die Ereignisse automatisch zu schließen, wenn die Überwachung die Wiederherstellung zeigt
** Umsetzung der Eskalationsrichtlinien*: Erstellen Sie mehrstufige Eskalationsrichtlinien, um sicherzustellen, dass Vorfälle jemanden erreichen, der antworten kann
** Kontext zu Vorfällen hinzufügen*: Fügen Sie relevante Details in Vorfallbeschreibungen, Notizen und benutzerdefinierte Felder ein, um die Auflösung zu beschleunigen
**Benutzen Sie Fahrplanüberschreitungen*: Planen Sie Urlaubs- und Zeitplanänderungen, indem Sie Überschreitungen erstellen, anstatt Basispläne zu ändern
**Tag und kategorisieren Vorfälle*: Verwenden Sie die konsequente Markierung für Vorfälle, um eine bessere Berichterstattung und Trendanalyse zu ermöglichen
**Test-Integrationen regelmäßig*: Testwarnungen senden, um zu überprüfen, ob die Überwachungsintegration richtig funktioniert
**Review Vorfallanalyse*: Regelmäßig MTTA (Mean Time to Acknowledge) und MTTR (Mean Time to Resolve) Metriken analysieren
**Dokumente-Laufbücher*: Link Vorfälle zu Runbooks und Dokumentationen, um den Befragten zu helfen, häufige Probleme zu lösen
Benutzen Sie Statusseiten: Halten Sie Stakeholder durch die Verbindung von Vorfällen zu Statusseiten für transparente Kommunikation informiert
Fehlerbehebung
Issue
Solution
Authentication fails with "Invalid token"
Verify token with INLINE_CODE_72. Generate new token at Configuration → API Access. Ensure token has correct permissions.
Agent not sending events
Check agent status: INLINE_CODE_73. View logs: INLINE_CODE_74. Verify integration key is correct. Test connectivity: INLINE_CODE_75
Incidents not triggering
Verify service is enabled: INLINE_CODE_76. Check integration key matches. Ensure service has valid escalation policy assigned.
No notifications received
Check user contact methods: INLINE_CODE_77. Verify notification rules: INLINE_CODE_78. Test contact method in PagerDuty UI.
CLI returns "Service Unavailable"
Check PagerDuty status at status.pagerduty.com. Verify API endpoint (use INLINE_CODE_79 for EU accounts). Check network connectivity and firewall rules.
Duplicate incidents created
Use consistent incident keys with INLINE_CODE_80 flag. Configure alert grouping in service settings. Set appropriate deduplication time windows.
Schedule shows wrong on-call person
Verify timezone settings in schedule configuration. Check for active overrides: INLINE_CODE_81. Ensure schedule layers are configured correctly.
API rate limit exceeded
Implement exponential backoff in scripts. Use bulk operations where possible. Cache frequently accessed data. Check rate limit headers in API responses.