컴포짓(composite) 모니터링

개요

Composite Monitor는 개별 모니터를 하나의 모니터로 결합하여 구체적 알림 조건을 정의합니다.

기존 모니터를 선택하여 복합 모니터를 생성하세요. (예: 모니터 AB) 그런 다음 A && B과 같은 부울 연산자를 사용하여 트리거 조건을 설정합니다. 개별 모니터들이 복합 모니터 트리거 조건이 True가 되는 값을 동시에 가질 때 복합 모니터가 트리거됩니다.

복합 모니터 예시

구성 목적의 측면에서 복합 모니터는 이를 구성하는 모니터와 독립적으로 작동합니다. 복합 모니터의 알림 정책은 구성 모니터의 정책에 영향을 미치지 않고 수정할 수 있으며, 그 반대의 경우도 마찬가지입니다. 또한, 복합 모니터를 삭제하더라도 구성 모니터는 삭제되지 않습니다. 복합 모니터는 다른 모니터를 소유하지 않으며, 그 결과만 사용합니다. 또, 다수의 복합 모니터가 동일한 개별 모니터를 참조할 수도 있습니다.

참고

  • individual monitors, constituent monitors, non-composite monitors 용어는 모두 복합 모니터가 상태를 계산하는 데 사용되는 모니터를 나타냅니다.
  • 복합 결과를 산출하려면 공통 그룹화가 필요합니다. 공통 그룹화가 없는 모니터를 선택하면, 표현식에서 선택한 모니터가 복합 결과를 산출하지 않을 수도 있습니다.
  • 복합 모니터는 다른 복합 모니터에 기반할 수 없습니다.

모니터링 생성

Datadog에서 복합 모니터를 생성하려면 메인 내비게이션 Monitors –> New Monitor –> Composite을 사용합니다.

모니터 선택 및 트리거 조건 설정

모니터 선택

복합 모니터에서 사용할 개별 모니터를 최대 10개까지 선택할 수 있습니다. 모니터는 서로 다른 알림 유형(단순 알림, 다중 알림 또는 이 둘의 조합)으로 설정할 수 있습니다. 개별 모니터는 그 자체로 복합 모니터가 될 수 없습니다. 첫 번째 모니터를 선택하면 UI에 해당 알림 유형과 현재 상태가 표시됩니다.

다중 알림 모니터를 선택하면 UI에 모니터의 그룹화(Group-by) 절과 현재 보고 중인 고유 소스 수(예: Returns 5 host groups)가 표시됩니다. 다중 알림 모니터를 조합할 때 이러한 정보를 통해 함께 페어링되는 모니터를 자연스럽게 선택할 수 있습니다.

복합 모니터 예시

동일한 그룹을 가진 모니터를 선택해야 합니다. 그러지 않으면 UI가 복합 모니터가 트리거되지 않을 수 있다는 경고를 표시합니다.

복합 모니터 공통 그룹

동일한 그룹을 가진 다중 알림 모니터를 선택하더라도, 모니터에 공통 보고 소스(공통 그룹이라고도 부름)가 없는 경우 여전히 Group Matching Error가 표시될 수 있습니다. 공통 보고 소스가 없는 경우 Datadog은 복합 모니터 상태를 컴퓨팅할 수 없으며 트리거되지 않습니다. 그러나 경고를 무시하고 모니터를 만들 수 있습니다. 자세한 내용은 복합 모니터가 공통 보고 소스를 선택하는 방법을 참조하세요.

경고가 나타나지 않는 두 번째 모니터를 선택하면 UI에 기본 트리거 조건 a && bTrigger when 필드가 채워지고, 제안된 복합 모니터의 상태가 표시됩니다.

트리거 조건 설정

Trigger when 필드에 부울 연산자를 사용하여 원하는 트리거 조건을 작성하고, 개별 모니터를 a, b, c 형식의 레이블로 참조하세요. 괄호를 사용하여 연산자 우선순위를 제어하고 더 복잡한 조건을 만들 수 있습니다.

다음은 모두 유효한 트리거 조건입니다.

!(a && b)
a || b && !c
(a || b) && (c || d)

고급 알림 조건

데이터 없음

복합 모니터가 데이터 없음 상태일 때는 Do not notify 또는 Notify입니다. 여기서 무엇을 선택하든 개별 모니터의 Notify no data 설정에는 영향을 미치지 않지만, 복합 모니터의 데이터 없음 알림을 받으려면 개별 모니터와 복합 모니터 모두 데이터가 없을 때 Notify로 설정되어 있어야 합니다.

기타 옵션

고급 알림 옵션(자동 해결 등)에 대한 자세한 지침은 모니터 설정 페이지를 참조하세요.

알림

알림에서 복합 모니터의 구성 모니터 템플릿 변수를 사용하는 방법에 대한 지침은 복합 모니터 변수를 참조하세요. Configure notifications and automations 섹션에 대한 자세한 지침은 알림 페이지를 참조하세요.

API

API를 사용할 때 복합 모니터의 쿼리는 ID를 모니터링하는 하위 모니터의 관점에서 정의됩니다.

예를 들어, 비복합 모니터 두 개는 다음 쿼리와 ID를 갖습니다.

"avg(last_1m):avg:system.mem.free{role:database} < 2147483648" # Monitor ID: 1234
"avg(last_1m):avg:system.cpu.system{role:database} > 50" # Monitor ID: 5678

상기 모니터를 조합한 복합 모니터의 쿼리는 "1234 && 5678", "!1234 || 5678" 등이 될 수 있습니다.

복합 모니터 작동 방식

본 섹션에서는 예시를 통해 트리거 조건이 컴퓨팅되는 방식과 다양한 시나리오에서 수신할 수 있는 알림의 수를 보여줍니다.

트리거 조건 컴퓨팅

각기 다른 복합 모니터 상태 4가지가 있으며, 이 중 3가지는 경고할 가치가 있는 것으로 간주됩니다.

상태경고 가치심각도
AlertTrue4(심각도 가장 높음)
WarnTrue3
No DataTrue2
OkFalse1(심각도 가장 낮음)

사용된 부울 연산자(&&, ||, !)는 복합 모니터 상태 경고 가치에 따라 작동합니다.

  • A && B가 경고할 가치가 있다면 경우 결과는 A와 B 중 가장 낮은 심각도 상태가 됩니다.
  • A || B가 경고할 가치가 있다면 결과는 A와 B 중 가장 높은 심각도 상태가 됩니다.
  • ANo Data인 경우 !ANo Data입니다.
  • A가 경고할 가치가 있다면 !AOK입니다.
  • A가 경고할 가치가 없다면 !AAlert입니다.

두 개의 개별 모니터(AB)를 사용하는 복합 모니터를 예로 들어 보겠습니다. 다음 표는 트리거 조건(&& 또는 ||)에 따른 복합 모니터의 결과 상태와 개별 모니터의 서로 다른 상태를 나타냅니다(경고 가치 여부는 T 또는 F로 표시).

모니터 A모니터 B조건데이터 없음 알림복합 모니터 상태알림 트리거 여부
알림(T)경고(T)A && B경고(T)
알림(T)경고(T)A || B알림(T)
알림(T)확인(F)A && B확인(F)
알림(T)확인(F)A || B알림(T)
경고(T)확인(F)A && B확인(F)
경고(T)확인(F)A || B경고(T)
데이터 없음(T)경고(T)A && BTrue데이터 없음(T)
데이터 없음(T)경고(T)A || BTrue경고(T)
데이터 없음(T)경고(T)A && BFalse가장 최근 확인
데이터 없음(T)경고(T)A || BFalse경고(T)
데이터 없음(T)확인(F)A && BFalse확인(F)
데이터 없음(T)확인(F)A || BFalse가장 최근 확인
데이터 없음(T)확인(F)A && BTrue확인(F)
데이터 없음(T)확인(F)A || BTrue데이터 없음(T)
데이터 없음(T)데이터 없음(T)A && BTrue데이터 없음(T)
데이터 없음(T)데이터 없음(T)A || BTrue데이터 없음(T)

참고: 복합 모니터의 notify_no_data가 False로 설정되어 있고 하위 모니터의 평가 결과가 복합 모니터에서 No Data 상태가 되어야 하는 경우, 복합 모니터는 가장 최근 상태를 대신 사용합니다.

복합 모니터 및 다운타임

복합 모니터와 개별 모니터는 서로 독립적입니다.

복합 모니터의 다운타임

조건이 A || B인 두 개의 개별 모니터로 구성된 복합 모니터 C를 떠올려 보세요. 복합 모니터에 다운타임을 생성하면 C에서만 알림이 억제됩니다.

모니터 A 또는 모니터 B가 각 모니터 구성에서 서비스나 팀에 알림을 전송한다면, 복합 모니터 C의 다운타임은 A 또는 B가 보내는 알림을 음소거하지 않습니다. A 또는 B의 알림을 음소거하려면 해당 모니터에서 다운타임을 설정합니다.

복합 모니터에서 사용되는 개별 모니터의 다운타임

복합 모니터 내에서 사용되는 개별 모니터 A에 다운타임을 생성해도 복합 모니터는 음소거되지 않습니다.

예를 들어, 다운타임은 모니터 A, 특히 해당 그룹 env:staging을 음소거합니다. env:staging 그룹이 경고할 가치가 있는 상태가 되면, 개별 모니터가 보내는 알림은 억제되고 복합 모니터가 알림을 전송합니다.

알림 수

수신하는 알림의 수는 개별 모니터 알림 유형에 따라 달라집니다. 모든 개별 모니터가 단순 알림인 경우 복합 모니터 역시 단순 알림 유형입니다. AB 쿼리가 동시에 모두 true인 경우 복합 모니터 단일 알림이 트리거됩니다.

개별 모니터가 한 개라도 다중 알림인 경우 복합 모니터도 다중 알림이 됩니다. 한 번에 전송할 수 있는 알림의 _개수_는 복합 모니터가 하나 또는 여러 개의 멀티 알림 모니터를 사용하는지에 따라 달라집니다.

일반 보고 소스

다중 알림 모니터를 많이 사용하는 모니터는 개별 모니터의 공통 보고 소스만 고려합니다.

다중 알림 예시

모니터 AB가 다중 알림이고 호스트별로 그룹화되어 있는 시나리오를 떠올려 보세요.

  • host:web01~ host:web05 호스트가 A 모니터를 보고하고 있습니다.
  • host:web04~ host:web09 호스트가 B 모니터를 보고하고 있습니다.

복합 모니터는 일반 소스(web04web05)만 고려합니다. 하나의 평가 사이클에 알림을 두 개까지 받을 수 있습니다.

그룹 이름이 다른 공통 그룹 값

복합 모니터는 태그 (web04)만 확인하고 태그 (host)는 확인하지 않습니다. 위 예시에 단일 보고 소스 service:web04가 있는 service로 그룹화된 다중 알림 모니터 C가 포함된다면, 복합 모니터는 A, B, C의 단일 공통 보고 소스로 web04를 고려합니다.

두 개 이상의 차원으로 모니터 그룹화

두 개 이상의 태그로 분할된 다중 알림 모니터의 경우, 모니터 그룹은 태그 전체 조합에 해당합니다. 예를 들어, 모니터 1device,host별 멀티 알림이고, 모니터 2host별 멀티 알림인 경우, 모니터 1과 모니터 2를 복합 모니터로 결합할 수 있습니다.

알림 작성

하지만 host,url별 다중 알림 모니터3을 고려해 보세요. 모니터 1 및 모니터 3은 그룹이 너무 달라서 복합 모니터 결과가 생성되지 않을 수 있습니다:

알림 작성

참고 자료