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

Escuchar eventos de PagerDuty

Para responder a los eventos de PagerDuty, necesitaráconfigurar un webhooken PagerDuty para que su cuenta de Rootly pueda recibir los eventos.

Configuraciones de flujo de trabajo

Seleccionetipo de flujo de trabajo. Dado que los eventos de PagerDuty se crearán en Rootly como alertas, necesitaremos usar unAlerttipo de flujo de trabajo de alerta.

Seleccione losdisparadoresdel flujo de trabajo.Alert Created”Alerta creada” 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.

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

  • La alertasourcees dePagerduty
  • La alertalabels:
    • Opción 1: contains all oflos siguienteslabels(esto es si quiere responder a un nuevo incidente de PagerDuty siendo activado)
      • action:incident.triggered
      • service_id:PLVWMVW(esta etiqueta es opcional - inclúyala solo si quiere responder a alertas de un servicio específico de PagerDuty)
    • Opción 2: contains all oflos siguienteslabels(esto es si quiere responder a un incidente existente de PagerDuty siendo reconocido)
      • action:incident.acknowledged
      • service_id:PLVWMVW(esta etiqueta es opcional - inclúyala solo si quiere responder a alertas de un servicio específico de PagerDuty)
    • Opción 3: contains all oflos siguienteslabels(esto es si quiere responder a un incidente existente de PagerDuty siendo resuelto)
      • action:incident.resolved
      • service_id:PLVWMVW(esta etiqueta es opcional - inclúyala solo si quiere responder a alertas de un servicio específico de PagerDuty)
    • Opción 4: contains all oflos siguienteslabels(esto es si quiere responder a un responsable siendo añadido a un incidente existente de PagerDuty)
      • action:incident.responder.added
  • La alertapayloadtiene el$.object.specific_fiedigual a/specific_value/i
    • Sintaxis de ruta JSONse utiliza para filtrar un campo específico de la carga útil de la alerta (por ejemplo, $.issue.fields.issuetype.name). Puede previsualizar su sintaxis enJSON Path Explorer.
    • Expresión regular de Rubyse puede usar para especificar qué valor coincide. Puede probar su expresión regular en estaherramienta Rubular.

Actualmente, solo se puede filtrar porun único campo de carga útil. Por lo tanto, intente configurar sus condiciones de ejecución para filtrar porLabeltanto como pueda antes de recurrir a filtrar porPayload.

Estamos explorando la posibilidad de admitir el filtrado por múltiples campos de carga útil en el futuro.

Crear Incidente

La acciónCrear Incidentese utiliza 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á 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 Incidentese utiliza para actualizar un incidente existente en Rootly. Asegúrese de establecer el campoAttribute to Matchenpagerduty_incident_idy elAttribute Valueen{{ alert.data.data.id }}. Estos campos son necesarios para que Rootly sepa qué incidente actualizar.

Mapeo de Campos Personalizados

Si necesita un mapeo más dinámico de las propiedades del incidente de Rootly, puede ingresar 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 de incidente al usuario que reconoció el incidente de PagerDuty.

Esto debe estar emparejado con Opción 2 (responder a un incidente existente de PagerDuty que ha sido 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 }}"
      }
   }
}

Establecer campo 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 presentan 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 intentando 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 intentando establecer no es un atributo que puedas configurar o la sintaxis es incorrecta.

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

Cómo solucionarlo…
Corrige la sintaxis de tu mapeo.

Soporte

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