이 페이지는 다음을 위한 구성을 상세히 설명합니다Rootly가 PagerDuty 이벤트에 응답하도록 하는 것.

PagerDuty 이벤트 수신

PagerDuty 이벤트에 응답하기 위해서는웹훅을 설정해야 합니다 PagerDuty에서 Rootly 계정이 이벤트를 수신할 수 있도록 합니다.

워크플로우 구성

선택워크플로우 유형. PagerDuty 이벤트가 Rootly에 알림으로 생성되므로,Alert 워크플로우 유형을 사용해야 합니다.

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

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

  • 알림source의 출처가Pagerduty
  • 알림labels:
    • 옵션 1: contains all of 다음labels (새로운 PagerDuty 인시던트가 트리거되는 것에 응답하려는 경우)
      • action:incident.triggered
      • service_id:PLVWMVW (이 레이블은 선택 사항 - 특정 PagerDuty 서비스의 알림에만 응답하려는 경우에만 포함)
    • 옵션 2: contains all of 다음labels (기존 PagerDuty 인시던트가 확인되는 것에 응답하려는 경우)
      • action:incident.acknowledged
      • service_id:PLVWMVW (이 레이블은 선택 사항 - 특정 PagerDuty 서비스의 알림에만 응답하려는 경우에만 포함)
    • 옵션 3: contains all of 다음labels (기존 PagerDuty 인시던트가 해결되는 것에 응답하려는 경우)
      • action:incident.resolved
      • service_id:PLVWMVW (이 레이블은 선택 사항 - 특정 PagerDuty 서비스의 알림에만 응답하려는 경우에만 포함)
    • 옵션 4: contains all of 다음labels (기존 PagerDuty 인시던트에 응답자가 추가되는 것에 응답하려는 경우)
      • action:incident.responder.added
  • 알림payload$.object.specific_field가 다음과 같음/specific_value/i
    • JSON 경로 구문은 알림 페이로드에서 특정 필드를 필터링하는 데 사용됩니다 (예: $.issue.fields.issuetype.name). 다음에서 구문을 미리 볼 수 있습니다JSON Path Explorer.
    • Ruby 정규 표현식을 사용하여 일치시킬 값을 지정할 수 있습니다. 이Rubular 도구에서 정규식을 테스트할 수 있습니다.

현재는단일 페이로드 필드에 대해서만 필터링할 수 있습니다. 따라서 실행 조건을 구성할 때Label로 최대한 필터링하고 나서Payload로 필터링하는 것이 좋습니다.

향후 여러 페이로드 필드로 필터링하는 기능을 지원할 가능성을 검토할 예정입니다.

인시던트 생성

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

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

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

인시던트 업데이트

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

사용자 정의 필드 매핑

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

자동으로확인 시간 기록.

이는옵션 2(기존 PagerDuty 인시던트가 확인되는 것에 응답)와 함께 사용해야 합니다.

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

자동으로인시던트 역할을 확인한 사용자에게 할당합니다.

이는옵션 2(기존 PagerDuty 인시던트가 확인되는 것에 응답)와 함께 사용해야 합니다.

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

사용자 정의 필드를 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로 문의하거나도움말 > 채팅하기로 이동하여 채팅을 시작하세요.