PagerDuty es una plataforma de gestión de incidentes que dota a los equipos de TI de una visibilidad inmediata de los incidentes, permitiendo respuestas proactivas y eficaces para mantener la estabilidad operativa y la resiliencia.
Para integrar tu cuenta de PagerDuty con métricas de DORA:
Ve a Integrations > Developer Tools (Integraciones > Herramientas de desarrollo) en PagerDuty y haz clic en Generic Webhooks (v3) (Webhooks genéricos (v3)).
Haz clic en + New Webhook (+ Nuevo webhook) e introduce los siguientes datos:
Variable | Description |
---|
Webhook URL | Add https://webhook-intake./api/v2/webhook/ . |
Scope Type | Select Account to send incidents for all PagerDuty services in your account. Alternatively, you can send incidents for specific services or teams by selecting a different scope type. |
Description | A description helps distinguish the webhook. Add something like Datadog DORA Metrics integration . |
Event Subscription | Select the following events: -incident.acknowledged -incident.annotated -incident.custom_field_values.updated -incident.delegated -incident.escalated -incident.priority_updated -incident.reassigned -incident.reopened -incident.resolved -incident.triggered -incident.unacknowledged |
Custom Headers | Click Add custom header, enter DD-API-KEY as the name, and input your Datadog API key as the value.
Optionally, you can add an environment to all of the PagerDuty incidents sent from the webhook by creating an additional custom header with the name dd_env and the desired environment as the value. |
Para guardar el webhook, haz clic en Add Webhook (Añadir webhook).
La gravedad del incidente en el producto métricas de DORA se basa en la prioridad del incidente en PagerDuty.
Nota: Al crear el webhook, se crea un nuevo secreto que se utiliza para firmar todas las cargas útiles del webhook. Este secreto no es necesario para que funcione la integración, ya que la autenticación se realiza mediante la clave de la API.
Cuando se recibe un evento de incidente de un servicio PagerDuty específico, Datadog intenta recuperar el servicio Datadog y el equipo relacionado desde cualquier monitor de Datadog que lo active y desde el Catálogo de software.
El algoritmo de concordancia funciona en los siguientes pasos:
Si el evento de incidente de PagerDuty se activó desde un monitor de Datadog:
- Si el monitor está en modo de alerta múltiple, las métricas y los eventos de incidentes se emiten con los
env
, service
y team
del grupo alertado. - Si el monitor tiene etiquetas (tags) de
env
, service
o team
:env
: Si el monitor tiene una etiqueta única env
, las métricas y los eventos de incidentes se emiten con el entorno.service
: Si el monitor tiene una o más etiquetas service
, las métricas y los eventos de incidentes se emiten con los servicios proporcionados.team
: Si el monitor tiene una etiqueta única team
, las métricas y los eventos de incidentes se emiten con el equipo.
Si la URL de servicio del incidente coincide con la URL de servicio de PagerDuty para cualquier servicio del Catálogo de software:
- Si un único servicio Datadog coincide, las métricas y los eventos de incidentes se emiten con el servicio y el equipo.
- Si varios servicios Datadog coinciden, las métricas y los eventos de incidentes se emiten con el equipo.
Para obtener más información sobre la configuración de la URL de servicio de PagerDuty para un servicio Datadog, consulta Uso de integraciones con el Catálogo de software.
Si el nombre de servicio de PagerDuty del incidente coincide con un nombre de servicio del Catálogo de software, las métricas y los eventos de incidentes se emiten con el servicio y el equipo.
Si el nombre de equipo de PagerDuty del incidente coincide con un nombre de equipo del Catálogo de software, las métricas y los eventos de incidentes se emiten con el equipo.
Si el nombre de servicio de PagerDuty del incidente coincide con un nombre de equipo del Catálogo de software, las métricas y los eventos de incidentes se emiten con el equipo.
Si no hubo coincidencias hasta este momento, las métricas y los eventos de incidentes se emiten con el servicio de PagerDuty y el equipo de PagerDuty proporcionados en el incidente.
Para enviar tus propios eventos de incidentes, utiliza la API de métricas de DORA. Los eventos de incidentes se utilizan para calcular el porcentaje de despliegues fallidos y el tiempo medio de recuperación.
Incluye el atributo finished_at
en un evento de incidente para marcar que el incidente está resuelto. Puedes enviar eventos al inicio del incidente y después de la resolución del incidente. Los eventos incidentes coinciden con los atributos env
, service
y started_at
.
Se requieren los siguientes atributos:
services
o team
(al menos uno debe estar presente)started_at
Puedes añadir opcionalmente los siguientes atributos a los eventos de incidentes:
finished_at
para incidentes resueltos. Este atributo es necesario para calcular el tiempo de recuperación del servicio.id
para identificar incidentes cuando se crean y resuelven. Este atributo es generado por el usuario; si no se proporciona, el endpoint devuelve un UUID generado por Datadog.name
para describir el incidente.severity
env
para filtrar tus métricas de DORA por entorno en la página de métricas de DORA.repository_url
commit_sha
Para ver la especificación completa y ejemplos de código adicionales, consulta la documentación de referencia de la API de métricas de DORA.
Ejemplo (cURL) de API
Para la siguiente configuración, sustituye <DD_SITE>
por :
curl -X POST "https://api.<DD_SITE>/api/v2/dora/incident" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "DD-API-KEY: ${DD_API_KEY}" \
-d @- << EOF
{
"data": {
"attributes": {
"services": ["shopist"],
"team": "shopist-devs",
"started_at": 1693491974000000000,
"finished_at": 1693491984000000000,
"git": {
"commit_sha": "66adc9350f2cc9b250b69abddab733dd55e1a588",
"repository_url": "https://github.com/organization/example-repository"
},
"env": "prod",
"name": "Web server is down failing all requests",
"severity": "High"
}
}
}
EOF