알림 정책 만들기

오류 예산의 소진율에 대한 알림 정책은 SLO 데이터 검색에 설명된 시계열 선택기 select_slo_burn_rate를 기반으로 합니다. 다른 시계열 선택기가 있으며 이 중 일부를 알림 정책의 기반으로 사용할 수 있습니다. SLO 기반 알림 정책에 대한 자세한 내용은 소진율 알림을 참조하세요.

alertPolicies.create 메서드를 사용하여 알림 정책을 만듭니다. 이 메서드의 일반적인 사용 방법은 알림 정책 관리에 설명되어 있습니다.

SLO에 대한 알림 정책은 다른 측정항목 임곗값 알림 정책과 비슷하지만 한 가지 구체적인 차이점이 있습니다. MetricThreshold 사양의 filter는 측정항목 및 모니터링 리소스 유형 쌍 대신 시계열 선택기를 사용합니다.

SLO 기반 알림 정책 조건

알림 정책에는 하나 이상의 조건이 있어야 합니다. SLO 기반 조건의 경우 MetricThreshold 유형 조건을 사용합니다.

측정항목 임곗값 조건에는 filteraggregations, 두 쌍의 시계열 구성이 포함됩니다. SLO 데이터는 다른 시계열 데이터와 다르게 검색되므로 SLO 조건에서만 사용되는 필드는 filter 필드입니다.

SLO 조건은 comparison, thresholdValue, duration, trigger 필드입니다.

이 예시에서는 소진율이 정상 속도의 2배를 초과할 때 위반되는 조건을 만듭니다. 구조는 다음과 같습니다.

  "conditions": [
    {
      "displayName":"SLO burn rate alert for ${SLO_ID} exceeds 2",
      "conditionThreshold": {
        "filter": DATA_RETRIEVAL_FILTER_FOR_SLO,
        "comparison":"COMPARISON_GT",
        "thresholdValue": 2,
        "duration": {
          "seconds":"0",
        },
      },
    }
  ],

filter 필드를 설정하려면 특정 SLO의 리소스 이름이 필요합니다. 이 값은 projects/${PROJECT}/services/${SERVICE_ID}/serviceLevelObjectives/${SLO_ID} 형식입니다. SLO ID 찾기에 대한 자세한 내용은 SLO 나열을 참조하세요.

소진율에 대한 알림을 만들려면 시계열 선택기 select_slo_burn_rate를 사용합니다. 이 선택기는 대상 SLO와 전환 확인 기간, 이 2개 값을 취합니다. 자세한 내용은 select_slo_burn_rate를 참조하세요.

예를 들어, 다음 필터는 1시간의 전환 확인 기간이 있는 대상 SLO의 소진율을 가져옵니다.

"filter":"select_slo_burn_rate(\"projects/${PROJECT}/services/${SERVICE_ID}/serviceLevelObjectives/${SLO_ID}\", \"60m\")"

나머지 알림 정책

알림 정책을 완료하려면 나머지 필드에 값을 지정합니다.

  • displayName: 알림 정책에 대한 설명입니다.
  • combiner: 조건 결합 로직을 설명합니다. 이 정책에는 하나의 조건만 있으므로 AND 또는 OR이 작동합니다.
  • notificationChannels: 알림 정책이 트리거될 때 사용할 기존 알림 채널의 배열입니다. 알림 채널을 찾고 만드는 방법에 대한 자세한 내용은 알림 채널을 참조하세요.
  • documentation: 수신자가 문제를 진단하는 데 도움이 될 수 있도록 조건을 위반할 때 전송되는 정보입니다. 자세한 내용은 Documentation를 참조하세요.

알림 정책 만들기

다음 예에서는 API를 사용하여 소진율 알림 정책을 만듭니다. 알림 정책 나열, 수정 및 삭제에 대한 자세한 내용은 API를 통한 알림 정책 관리를 참조하세요.

프로토콜

curl을 사용하여 알림 정책을 만들려면 https://monitoring.googleapis.com/v3/projects/${PROJECT_ID}/alertPolicies 엔드포인트에 POST 메시지를 보내고 요청 본문에 알림 정책을 제공합니다. 요청 본문의 JSON은 1시간의 전환 확인 기간이 있는 select_slo_burn_rate 시계열 선택기를 기준으로 임곗값 조건을 사용하는 알림 정책을 설명합니다.

  1. 요청 본문을 저장할 변수를 만듭니다.

    CREATE_ALERT_POST_BODY=$(cat <<EOF
    {
      "displayName":"SLO burn-rate alert for ${SLO_ID} with a threshold of 2",
      "combiner":"AND",
      "conditions": [
        {
          "displayName":"SLO burn rate alert for ${SLO_ID} exceeds 2",
          "conditionThreshold": {
            "filter":"select_slo_burn_rate(\"projects/${PROJECT}/services/${SERVICE_ID}/serviceLevelObjectives/${SLO_ID}\", \"60m\")",
            "comparison":"COMPARISON_GT",
            "thresholdValue": 2,
            "duration": {
              "seconds":"0",
            },
          },
        }
      ],
      "notificationChannels": ["${NOTIFICATION_CHANNEL}", ],
      "documentation": {
         "content": "SLO burn for the past 60m exceeded twice the acceptable budget burn rate.",
         "mime_type": "text/markdown",
      },
    }
    EOF
    )
    
  2. 엔드포인트에 요청을 게시합니다.

    curl  --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}" --header "Content-Type: application/json" -X POST -d "${CREATE_ALERT_POST_BODY}" https://monitoring.googleapis.com/v3/projects/${PROJECT_ID}/alertPolicies