소진율 알림

서비스 수준 목표(SLO)에 대한 알림 정책을 만들어 SLO를 위반할 위험이 있는지 알려줄 수 있습니다. 모니터링할 SLO를 선택한 다음 조건을 위반할 때 알림을 트리거하는 조건을 설정합니다. 일반적으로 조건은 위반을 구성하는 임계값과 위반이 허용되는 기간을 선택하여 표현합니다. 임계값이 허용된 기간을 초과하면 알림 정책이 트리거됩니다.

이 페이지에서는 오류 예산의 소진율에 대한 알림 정책을 설정하는 방법을 설명합니다. 알림 정책에 대한 자세한 내용은 다루지 않습니다. 조건 및 알림 채널의 기본 개념을 이미 알고 있다고 가정합니다. 알림 정책 및 알림 정책을 만드는 방법에 대한 일반적인 내용은 알림 정책 사용을 참조하세요.

오류 예산의 소진율

규정 준수 기간의 오류 예산은 100% - SLO%입니다. SLO 목표가 95%라면 오류 예산은 실적의 5%입니다. 소진율은 오류 예산을 얼마나 빠르게 소비하는지를 알려줍니다. 자세한 내용은 오류 예산을 참조하세요.

소진율 측정항목은 시계열 선택기 select_slo_burn_rate로 검색합니다. 소진율 알림 정책은 오류 예산이 평소보다 빨리 소진될 때 알려줍니다.

다른 시계열 선택기가 있습니다. 자세한 내용은 SLO 데이터 검색을 참조하세요. 다른 시계열 선택기를 사용하는 알림 정책을 만들 수 있지만 Cloud Monitoring API를 사용하여 만들어야 합니다.

개요: SLO에서 알림 정책 만들기

SLO에 대한 알림 정책은 다른 측정항목에 대한 알림 정책을 만드는 것과 매우 유사합니다.

이 섹션에서는 일반적인 단계를 검토하고 다음 섹션에서 자세히 설명합니다.

SLO에 대한 알림 정책을 만들려면 다음 단계를 따르세요.

  1. 알림 정책을 기반으로 할 SLO를 식별합니다.

  2. 선택한 SLO를 사용하는 알림 정책 조건을 생성합니다. 이 조건에서 시계열 선택기를 사용하여 SLO의 데이터를 검색합니다. 예를 들어 소진율에 시계열 선택기를 사용하면 검색된 데이터에 선택한 SLO에 대한 오류 예산의 소진율이 반영됩니다.

    또한 이 조건에서 경고를 트리거하기 전에 SLO 위반의 임계값과 기간을 지정합니다. 예를 들어 알림을 트리거하기 전에 소진율이 일정 기간 동안 원하는 속도를 약간 상회해야 합니다. '약간 상회'의 값은 조건의 임계값이고 '일정 기간'의 값은 조건의 기간입니다.

  3. 알림 정책에 사용할 알림 채널을 식별하거나 만듭니다.

  4. 사용자에게 알림 정책을 트리거한 내용을 설명하는 문서 제공

  5. 이러한 요소를 호출로 어셈블하여 알림 정책을 만듭니다.

알림 정책 및 알림 정책을 만드는 방법에 대한 일반적인 내용은 알림 정책 사용을 참조하세요.

알림 정책 및 전환 확인 기간

시계열 선택기로 SLO 데이터를 검색할 때 SLO 식별자와 전환 확인 기간을 지정합니다. 전환 확인 기간에 따라 데이터를 가져올 기간이 결정됩니다. 전환 확인 기간은 해당 기간의 정상적인 실적을 파악하는 데 사용됩니다.

오류 예산의 일일 사용에 대해 알리려면 24시간의 전환 확인 기간을 선택합니다. 시간당 소비에 대해 알리려면 1시간의 전환 확인 기간을 선택합니다.

오류 예산 알림의 유형

오류 예산을 모니터링하도록 알림 정책을 설정할 때 다음 두 가지 관련 알림 정책을 설정하는 것이 좋습니다.

  • 빠른 소진 알림: 급격한 소비 변화를 시정하지 않으면 오류 예산이 빠르게 소진된다는 경고입니다. “지금 이 속도라면 한 달의 오류 예산을 2일 만에 소진할 것입니다!.”

    이와 같은 조건에서는 전환 확인 기간이 짧을 수 있습니다. 잠재적으로 비극적인 상황이 발생했는지, 그리고 잠깐이라도 지속되는지를 알고 싶습니다. 정말 비극이라면 오래 기다릴 필요가 없습니다.

    여기에서 알리는 소비 속도의 임계값은 전환 확인 기간에 적합한 기준치보다 훨씬 높습니다.

  • 느린 소진 알림: 소비 속도를 바꾸지 않으면 규정 준수 기간이 끝나기 전에 오류 예산이 소진될 것이라는 경고입니다. 이러한 유형의 조건은 빠른 소진 조건보다 덜 긴급합니다. "현재 이달에 도달하고 싶은 위치를 약간 초과하지만 아직 큰 문제가 아닙니다."

    느린 소진 조건의 경우 전환 확인 기간이 길어지면 단기 소비의 변화가 고르게 분산됩니다.

    여기에서 알리는 소비 속도의 임계값은 전환 확인 기간에 적합한 기준보다 높지만 유의미한 차이는 아닙니다. 높은 임계값을 가진 짧은 전환 확인 기간을 기반으로 하는 정책은 장기 소비가 균등해지면 알림을 너무 많이 생성할 수 있습니다. 하지만 소비량이 약간 높은 상태가 장기간 이어지면 결국 모든 오류 예산을 소비하게 됩니다.

SLO 알림 만들기: API

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

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

SLO에 대한 알림 정책은 다른 알림 정책과 여러 모로 유사하지만 정책에 측정항목 임계값 조건이 있음을 알립니다. 이 정책이 다른 알림 정책과 한 가지 구체적으로 다른 점은 조건의 MetricThreshold 사양에 있는 filter가 측정항목 및 모니터링 리소스 유형 대신 시계열 선택기를 사용한다는 것입니다.

SLO 기반 알림 정책의 조건

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

측정항목 임계값 조건에는 두 쌍의 시계열 구성이 포함될 수 있는데 그 중 하나가 filteraggregations이고 비율 빌드의 경우에는 denominatorFilterdenominatorAggregations입니다. SLO 데이터는 표준 모니터링 필터를 사용하여 검색하지 않으므로 SLO 조건에서만 사용되는 필드는 filter 필드입니다.

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

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

      "conditions": [
        {
          "displayName":"SLO burn rate alert for ${SLO_ID} exceeds 2",
          "conditionThreshold": {
            "filter": [TO_BE_DETERMINED],
            "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 normal 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
        

콘솔을 사용하여 SLO 기반 알림 정책 만들기

Anthos Service Mesh의 SLO 기반 알림 정책에 대한 자세한 내용은 Anthos Service Mesh 문서: SLO에 대한 알림 정책 만들기를 참조하세요.