Esta página detalla la configuración para queRootly responda a eventos de PagerDuty.

Escuchar eventos de PagerDuty

Para responder a eventos de PagerDuty, necesitarásconfigurar un webhook en PagerDuty para que tu cuenta de Rootly pueda recibir los eventos.

Configuraciones de flujo de trabajo

Seleccionatipo de flujo de trabajo. Dado que los eventos de PagerDuty se crearán en Rootly como alertas, necesitaremos usar unAlert tipo de flujo de trabajo de alertas.

Seleccionadisparadores del flujo de trabajo.Alert Created será la única opción para seleccionar aquí. Esto significa que el flujo de trabajo se iniciará cada vez que se cree una nueva alerta en Rootly.

Configura las condiciones de ejecución. Configura tu flujo de trabajo para que solo se ejecute si…

  • La alertasource es dePagerduty
  • La alertalabels:
    • Opción 1: contains all of el siguientelabels (esto es si quieres responder a un nuevo incidente de PagerDuty siendo activado)
      • action:incident.triggered
      • service_id:PLVWMVW (esta etiqueta es opcional - inclúyela solo si quieres responder a alertas de un servicio específico de PagerDuty)
    • Opción 2: contains all of el siguientelabels (esto es si quieres responder a un incidente existente de PagerDuty siendo reconocido)
      • action:incident.acknowledged
      • service_id:PLVWMVW (esta etiqueta es opcional - inclúyela solo si quieres responder a alertas de un servicio específico de PagerDuty)
    • Opción 3: contains all of el siguientelabels (esto es si quieres responder a un incidente existente de PagerDuty siendo resuelto)
      • action:incident.resolved
      • service_id:PLVWMVW (esta etiqueta es opcional - inclúyela solo si quieres responder a alertas de un servicio específico de PagerDuty)
    • Opción 4: contains all of el siguientelabels (esto es si quieres responder a un respondedor siendo añadido a un incidente existente de PagerDuty)
      • action:incident.responder.added
  • La alertapayload tiene el$.object.specific_field igual a/specific_value/i
    • Sintaxis de ruta JSON se usa para filtrar un campo específico de la carga útil de la alerta (por ejemplo, $.issue.fields.issuetype.name). Puedes previsualizar tu sintaxis enJSON Path Explorer.
    • Expresión regular de Ruby se puede usar para especificar qué valor coincide. Puedes probar tu expresión regular en estaherramienta Rubular.

Actualmente, solo se puede filtrar por unúnico campo de carga útil. Así que, trata de configurar tus condiciones de ejecución para filtrar porLabel tanto como puedas antes de recurrir a filtrar porPayload.

Exploraremos la posibilidad de soportar el filtrado por múltiples campos de carga útil en el futuro.

Crear Incidente

La acciónCrear Incidente se usa para declarar un incidente en Rootly. Dado que esta acción hará referencia a datos de alerta, los campos dinámicos serán{{ alert.<properties> }}.

Rootly NO vincula automáticamente las alertas al incidente. Necesitarás incluir el siguiente mapeo personalizado para vincular el incidente de PagerDuty al incidente de Rootly recién declarado.

{
"pagerduty_incident_id": "{{ alert.data.data.id }}", 
"pagerduty_incident_number": "{{ alert.data.data.number }}",
"pagerduty_incident_url": "{{ alert.external_url }}"
}

Actualizar Incidente

La acciónActualizar Incidente se usa para actualizar un incidente existente en Rootly. Asegúrate de establecer el campoAttribute to Match apagerduty_incident_id yAttribute Value a{{ alert.data.data.id }}. Estos campos son necesarios para que Rootly sepa qué incidente actualizar.

Mapeo de Campos Personalizados

Si necesitas un mapeo más dinámico de las propiedades del incidente de Rootly, puedes introducir la siguiente sintaxis en el campoCustom Fields Mapping.

Automáticamenteregistrar el tiempo de reconocimiento.

Esto debe estar emparejado con laOpción 2 (responder a un incidente existente de PagerDuty siendo reconocido) de las condiciones de ejecución del flujo de trabajo de alertas.

{
  "acknowledged_at":"{{ alert.created_at }}"
}

Automáticamenteasignar el rol del incidente al usuario que reconoció el incidente de PagerDuty.

Esto debe estar emparejado con laOpción 2 (responder a un incidente existente de PagerDuty siendo reconocido) de las condiciones de ejecución del flujo de trabajo de alertas.

{% assign pd_user_email = team.pagerduty_users | find: 'id', alert.data.agent.id | get: 'email' %}
{% assign rootly_user_id = team.users | find: 'email', pd_user_email | get: 'id' %}

{
    "incident_role_assignments_attributes": {
      "0": {
         // Change below this to your role id
         "incident_role_id": "801dd6f8-f810-4819-9c3c-e77bc7038581",
         "user_id": "{{ rootly_user_id }}"
      }
   }
}

Establecercampo personalizado para el incidente de Rootly.

//Setting Rootly text to hard-coded value
{
  "form_field_selections_attributes":[
    {
      "form_field_id":"e041106e-cb9a-404b-8ae1-51a1d6213a68",
      "value": "Nifty Gateway"
    }
  ]
}

//Setting Rootly text to value from the alert payload
{
  "form_field_selections_attributes":[
    {
      "form_field_id":"e041106e-cb9a-404b-8ae1-51a1d6213a68",
       "value":"{{alert.data.organization.name}}"
    }
  ]
}


//Setting Rootly single select or multi-select field
{
  "form_field_selections_attributes":[
    {
      "form_field_id":"e041106e-cb9a-404b-8ae1-51a1d6213a68",
       "selected_option_ids":["option_id"]
    }
  ]
}

Depuración

A continuación se muestran errores comunes que podrías encontrar durante tu proceso de configuración. Para ver la respuesta de error, puedes localizar el flujo de trabajo específico que estás tratando de depurar, seleccionar… > Ver Ejecuciones > Ver.

Tipo de ErrorComentario
unknown attribute 'incident_property' for Incident.Razón del error…
Esto significa que la propiedad del incidente especificada que estás tratando de establecer no es un atributo que puedas establecer o la sintaxis es incorrecta.

Cómo solucionarlo…
Asegúrate de que el campo que estás intentando establecer esté habilitado para ser establecido a través del flujo de trabajo y que tu sintaxis sea correcta.
unexpected token at '{ "incident_property": }'Razón del error…
Tu sintaxis de mapeo personalizado es incorrecta.

Cómo solucionarlo…
Corrige tu sintaxis de mapeo.

Soporte

Si necesitas ayuda o más información sobre esta integración, por favor contacta asupport@rootly.com o inicia un chat navegando aAyuda > Chatear con Nosotros.