이 페이지는 다음을 위한 구성에 대해 설명합니다 Rootly가 Jira에 응답하도록 하기.

Jira 이벤트 수신하기

Jira 이벤트에 응답하려면 웹훅을 설정해야 합니다 Jira에서 Rootly 플랫폼이 이벤트를 수신할 수 있도록 합니다.

워크플로우 구성

선택 워크플로우 유형. Jira 이벤트는 Rootly에 alerts로 생성되므로, Alert 워크플로우 유형을 사용해야 합니다.

워크플로우 트리거를 선택하세요. Alert Created가 여기서 선택할 수 있는 유일한 옵션입니다. 이는 Rootly에 새 알림이 생성될 때마다 워크플로우가 초기화된다는 의미입니다.

구성 실행 조건. 워크플로우가 다음 경우에만 실행되도록 설정하세요…

  • 알림 source이(가) 다음으로부터 옴 Jira
  • 알림 labels:
    • 옵션 1: contains all of 다음 labels (새로운 Jira 이슈가 생성되는 것에 응답하고 싶은 경우)
      • event:jira:issue_created
      • project_key:RD1 (이 레이블은 선택 사항입니다 - 특정 Jira 프로젝트의 이슈에만 응답하고 싶은 경우에만 포함하세요)
    • 옵션 2: contains all of 다음 labels (기존 Jira 이슈가 업데이트되는 것에 응답하고 싶은 경우)
      • event:jira:issue_updated
      • project_key:RD1 (이 레이블은 선택 사항입니다 - 특정 Jira 프로젝트의 이슈에만 응답하고 싶은 경우에만 포함하세요)
  • 알림 payload이(가) $.object.specific_field와(과) 같음 /specific_value/i
    • JSON 경로 구문은 알림 페이로드에서 특정 필드를 필터링하는 데 사용됩니다 (예: $.issue.fields.issuetype.name). 다음에서 구문을 미리 볼 수 있습니다 JSON Path Explorer.
    • Ruby 정규 표현식을 사용하여 일치시킬 값을 지정할 수 있습니다. 이 Rubular 도구에서 정규식을 테스트할 수 있습니다.

현재는 단일 페이로드 필드만 필터링할 수 있습니다. 따라서 Payload로 필터링하기 전에 가능한 한 레이블로 실행 조건을 구성하려고 노력하세요.

향후 여러 페이로드 필드로 필터링을 지원할 수 있는 가능성을 탐색할 예정입니다.

인시던트 생성

인시던트 생성 액션은 Rootly에서 인시던트를 선언하는 데 사용됩니다. 이 액션은 알림 데이터를 참조할 것이므로 동적 필드는 {{ alert.properties }}입니다.

Rootly는 자동으로 알림을 인시던트에 연결하지 않습니다. 새로 선언된 Rootly 인시던트에 Jira 티켓을 연결하려면 다음과 같은 사용자 정의 매핑을 포함해야 합니다.

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

인시던트 업데이트

인시던트 업데이트 액션은 Rootly에서 기존 인시던트를 업데이트하는 데 사용됩니다. 일치시킬 속성 필드를 jira_issue_id로 설정하고 Attribute Value{{ alert.data.issue.id }}로 설정해야 합니다. 이 필드들은 Rootly가 어떤 인시던트를 업데이트할지 알기 위해 필요합니다.

사용자 정의 필드 매핑

Rootly 인시던트 속성을 더 동적으로 매핑해야 하는 경우, 다음 구문을 Custom Fields Mapping 필드에 입력할 수 있습니다.

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 %}
}

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 %}
}

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"]
    }
  ]
}

디버깅

아래는 구성 과정에서 발생할 수 있는 일반적인 오류입니다. 오류 응답을 보려면 디버그하려는 특정 워크플로우를 찾아 > 실행 보기 > 보기를 선택하세요.

오류설명
unknown attribute 'incident_property' for Incident.오류 이유…
이는 설정하려는 지정된 인시던트 속성이 설정할 수 있는 속성이 아니거나 구문이 잘못되었음을 의미합니다.

해결 방법…
설정하려는 필드가 워크플로우를 통해 설정할 수 있도록 활성화되어 있는지 확인하고 구문이 올바른지 확인하세요.
unexpected token at '{ "incident_property": }'오류 이유…
사용자 정의 매핑 구문이 잘못되었습니다.

해결 방법…
매핑 구문을 수정하세요.

지원

이 통합에 대해 도움이나 추가 정보가 필요하면 support@rootly.com로 문의하거나 다음으로 이동하여 채팅을 시작하세요 도움말 > 채팅하기.