Esta página detalla la configuración para que Rootly responda a Jira.

Escuchar eventos de Jira

Para responder a los eventos de Jira, necesitará configurar un webhook en Jira para que su plataforma Rootly pueda recibir los eventos.

Configuraciones de flujo de trabajo

Seleccione tipo de flujo de trabajo. Dado que los eventos de Jira se crearán en Rootly como alerts, necesitaremos usar un Alert tipo de flujo de trabajo.

Seleccione los disparadores. 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.

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

  • La alerta source es de Jira
  • La alerta labels:
    • Opción 1: contains all of la siguiente labels (esto es si quiere responder a la creación de un nuevo problema en Jira)
      • event:jira:issue_created
      • project_key:RD1 (esta etiqueta es opcional - inclúyala solo si quiere responder a problemas de un proyecto específico de Jira)
    • Opción 2: contains all of la siguiente labels (esto es si quiere responder a la actualización de un problema existente en Jira)
      • event:jira:issue_updated
      • project_key:RD1 (esta etiqueta es opcional - inclúyala solo si quiere responder a problemas de un proyecto específico de Jira)
  • La alerta payload tiene el $.object.specific_fied igual a /specific_value/i
    • Sintaxis de ruta JSON se utiliza para filtrar un campo específico de la carga útil de la alerta (por ejemplo, $.issue.fields.issuetype.name). Puede previsualizar su sintaxis en JSON Path Explorer.
    • Expresión regular de Ruby se puede usar para especificar qué valor coincide. Puede probar su expresión regular en esta herramienta Rubular.

Actualmente, solo se puede filtrar un único campo de carga útil. Por lo tanto, intente configurar sus condiciones de ejecución para filtrar por Etiqueta tanto como sea posible antes de recurrir al filtrado por Payload.

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

Crear Incidente

La acción Crear Incidente se 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 ticket de Jira al incidente de Rootly recién declarado.

{
  "jira_issue_id": "{{ alert.data.issue.id }}",
  "jira_issue_url": "https://your-jira-instance.atlassian.net/browse/{{alert.data.issue.key}}"
}

Actualizar Incidente

La acción Actualizar Incidente se utiliza para actualizar un incidente existente en Rootly. Asegúrese de establecer el campo Atributo para Coincidir en jira_issue_id y Attribute Value en {{ alert.data.issue.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 campo Custom Fields Mapping.

Establecer dinámicamente la severidad del incidente de Rootly.

{
  {% if alert.data.issue.fields.priority.name == 'Highest' %}
    "severity_id": "SEV0"
  {% elsif alert.data.issue.fields.priority.name == 'High' %}
    "severity_id": "SEV1"
  {% elsif alert.data.issue.fields.priority.name == 'Medium' %}
    "severity_id": "SEV2"
  {% else %}
    "severity_id": "SEV3"
  {% endif %}
}

Establecer dinámicamente el estado del incidente de Rootly.

{
  {% if alert.data.issue.fields.status.name == '<alert_status>' %}
    "status":"open"
  {% elsif alert.data.issue.fields.status.name == '<alert_status>' %}
    "status":"mitigated"
  {% elsif alert.data.issue.fields.status.name == '<alert_status>' %}
    "status":"resolved"
  {% else %}
    "status":"cancelled"
  {% endif %}
}

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 puede encontrar durante su proceso de configuración. Para ver la respuesta de error, puede localizar el flujo de trabajo específico que está intentando depurar, seleccionar > Ver Ejecuciones > Ver.

ErrorComentario
unknown attribute 'incident_property' for Incident.Razón del error…
Esto significa que la propiedad del incidente especificada que está intentando establecer no es un atributo que pueda configurar o la sintaxis es incorrecta.

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

Cómo solucionarlo…
Corrija la sintaxis de su mapeo.

Soporte

Si necesita ayuda o más información sobre esta integración, por favor contacte asupport@rootly.como inicie un chat navegando aAyuda > Chatear con nosotros.