본문 바로가기
WIKI 기술 지식 베이스

다운타임 범위 지정

원문 보기 위키 갱신

다운타임 범위 지정 (Scoping Downtime)

다운타임(Downtime)은 시스템 종료, 오프라인 유지보수, 업그레이드 기간을 모니터의 경보를 유발하지 않고 예약하기 위해 사용해요. 다운타임은 모든 모니터 경보와 알림을 음소거(mute)하지만, 모니터 상태 전환을 막지는 않아요.

대부분의 경우 예정된 유지보수와 무관한 중요한 경보를 놓칠 위험이 있기 때문에 모든 모니터 알림을 완전히 음소거하는 것은 바람직하지 않아요. 이 가이드에서는 UI를 통해 다운타임을 제대로 범위 지정(scoping)하는 방법을 설명해요. 다운타임 범위 지정은 두 단계로 이루어져요:

  1. 다운타임을 적용할 모니터를 선택해요.
  2. 각 모니터에서 음소거할 정확한 알림을 걸러내도록 쿼리의 범위를 지정해요.

출처: 문서

본문

음소거할 모니터 선택하기 (Choose which monitors to silence)

다운타임으로 대상으로 삼을 모니터를 정의해요. 특정 모니터 하나, 여러 모니터, 또는 모든 모니터를 대상으로 하는 세 가지 옵션이 있어요.

특정 모니터 하나를 대상으로 하기 (Target one specific monitor)

특정 모니터 하나를 일시적으로 음소거하도록 선택할 수 있어요. 예를 들어 해당 모니터가 지금 많은 경보를 보내고 있거나, 다가오는 유지보수의 영향을 받는 유일한 모니터일 때 유용해요.

다운타임 구성에서 By Monitor Name(모니터 이름으로) 을 선택하고 해당 모니터를 검색하면 돼요.

모니터 태그를 기준으로 여러 모니터를 대상으로 하기 (Target multiple monitors based on monitor tags)

{% alert level="info" %} 모니터 태그(monitor tags)는 Agent나 통합(integrations)이 보내는 태그, 그리고 여러분이 쿼리하는 데이터에 할당된 태그와는 독립적이에요. {% /alert %}

모니터 태그를 기준으로 다운타임을 예약할 수 있고, 모니터 쿼리에서 그룹화된 태그로 추가 범위를 좁힐 수 있어요. By Monitor Tags(모니터 태그로) 를 선택하고 대상으로 삼을 모니터 태그를 입력하면 돼요.

참고: 태그는 덧셈적으로(additive) 동작해요. 즉 env:dev team:automations를 입력하면 두 태그 모두, env:dev AND team:automations로 태그된 모니터를 대상으로 삼아요.

모든 모니터를 대상으로 하기 (Target all monitors)

By Monitor Name과 By Monitor Tags 두 옵션 모두에서, 드롭다운 메뉴의 첫 번째 항목인 All Monitors(모든 모니터) 를 선택하면 모든 모니터를 대상으로 범위를 지정할 수 있어요.

다운타임을 세밀하게 범위 지정하기 (Granularly scope downtimes)

그룹 범위(group scope)를 사용해 다운타임에 추가 필터를 적용하고 어떤 모니터를 음소거할지 세밀하게 제어할 수 있어요. 다운타임의 그룹 범위는 모니터별 대상이 정해진 이후에 매칭돼요. 모니터 태그로 여러 모니터를 대상으로 하는 경우, 그룹 범위를 매칭하기 전에 먼저 해당 태그로 태그된 모니터를 찾아야 해요.

이 가이드의 예시는 멀티 알림(multi alert) 그룹화가 구성된 모니터에 그룹 범위를 적용하는 방법을 보여줘요.

특정 태그에 대해 모니터 음소거하기 (Mute monitors for a specific tag)

  1. 한 그룹(이 경우 service:web-store)에만 다운타임을 예약하려면, 그 그룹을 Group scope(그룹 범위) 필드에 입력해요.
  2. Preview affected monitors(영향받는 모니터 미리보기) 를 클릭해서 선택한 모니터가 여전히 범위 안에 있는지 확인해요. 그래야 예약된 다운타임 동안 service:web-store 그룹의 경보가 음소거돼요.

{% image source="https://docs.dd-static.net/images/monitors/downtimes/downtime_example_byname.93f7e1f794f32b109e7f4dc9b9ca9ecf.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/monitors/downtimes/downtime_example_byname.93f7e1f794f32b109e7f4dc9b9ca9ecf.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Downtime example of 'By Monitor Name' with preview of affected monitors" /%}

예약된 다운타임이 시작된 후에는 이 모니터의 service:web-store 그룹에 대한 경보만 음소거돼요.

이렇게 하면 service:web-store 태그를 포함하는 모든 경보가 음소거돼요. 예를 들어:

Monitor Group Muted
host:A, service:web-store Yes
host:A, host:B, service:synthesizer, service:demo, service:web-store Yes
host:A, host:B, service:synthesizer No (missing service:web-store)

여러 태그로 범위가 지정된 모니터 음소거하기 (Mute monitors scoped to multiple tags)

  1. 여러 그룹(예: service:web-store와 env:prod)에 다운타임을 예약하려면, 그 그룹들을 Group scope 필드에 입력해요.
  2. Preview affected monitors를 클릭해서 범위 안에 있는 모니터를 확인해요.
  3. 예약된 다운타임이 시작된 후에는 env:prod AND service:web-store 그룹에 대한 경보가 음소거돼요.
Monitor Group Muted
env:prod, service:web-store Yes
env:prod, env:dev, service:synthesizer, service:demo, service:web-store Yes
env:dev, env:demo, service:web-store No (missing env:prod)
env:prod, env:demo, service:synthesizer No (missing service:web-store)

태그의 합집합으로 모니터 음소거하기 (Mute monitors by the union of tags)

여러 태그 값을 결합해 더 복잡한 범위를 만들려면 한 다운타임 안에서 OR 합집합을 사용할 수 있어요. 예를 들어 개발(dev) 또는 스테이징(staging) 환경과 관련된 모든 알림을 음소거하고 싶다면, 범위 쿼리로 env:(dev OR staging)을 사용하면 돼요.

참고: 서로 다른 태그의 합집합(예: env:dev OR service:web-store)은 지원되지 않아요. 이런 경우에는 각 태그별로 별도의 다운타임을 만들어야 해요.

쿼리 env:(dev OR staging)

Monitor Group Muted
env:staging, service:web-store Yes
env:dev, env:prod, service:web-store Yes
env:demo, env:staging, service:web-store Yes
env:demo, env:prod, service:web-store No (missing both env:dev and env:staging)

와일드카드 범위로 모니터 음소거하기 (Mute monitors with wildcard scopes)

인프라에서 대규모 업그레이드를 실행하는 것은 드문 일이 아니에요. 다운타임은 별다른 스크립팅 없이도 영향을 받는 모든 엔티티를 음소거하는 데 도움을 줄 수 있어요. 예를 들어 특정 서비스의 모든 호스트를 업그레이드한다고 해 볼게요. 이런 호스트들은 조직의 명명 규칙을 따르는 경우가 많아서 관련 애플리케이션으로 접두사가 붙기도 해요. 그 결과 host:mydemoapplication-host-1, host:mydemoapplication-host-2 같은 이름의 호스트가 수백 개 생길 수 있어요.

이 경우 host:mydemoapplication-* 범위로 다운타임을 만들면 해당 접두사로 시작하는 모든 호스트가 매칭되어 음소거돼요. 반대로 host:*-mydemoapplication 범위로 다운타임을 만들어 mydemoapplication으로 끝나는 모든 호스트를 매칭·음소거할 수도 있어요.

음소거 대상에서 그룹 제외하기 (Exclude groups from being muted)

여러 환경에서 애플리케이션과 인프라를 운영한다면, 보통 프로덕션 환경 하나와 여러 개의 비프로덕션 환경(테스트, 회귀 테스트, 데모 등)이 있을 거예요. 비프로덕션 환경에 대한 경보를 받지 않으려면 env:* -env:prod 범위로 다운타임을 설정하면 돼요. 이 범위는 env 태그가 설정된 모든 경보를 대상으로 삼은 다음, 두 번째 단계로 프로덕션 환경을 제외해요.

같은 태그로 범위가 지정된 여러 모니터 (Multiple monitors scoped with the same tag)

  1. Monitor A는 여러 service 그룹에 걸쳐 평균화된 메트릭을 보고하는 호스트에 대한 멀티 알림 모니터예요.
  2. Monitor B는 service:web-store에 대해 같은 메트릭을 보고하는 호스트에 대한 멀티 알림 모니터예요.
  3. downtime:true 모니터 태그를 가진 모든 모니터에 대해 다운타임이 예약돼요.
  4. 이 다운타임은 service:web-store 그룹으로 제한돼요.
  5. Preview affected monitors를 클릭해서 범위 안에 있는 모니터를 확인해요. 이 예시에서는 두 모니터 모두 service:web-store 그룹이 범위 안에 있음을 보여줘요.

{% image source="https://docs.dd-static.net/images/monitors/downtimes/downtime_examplebytag1_downtime.f5932475ccd321e2a582af6030e42aee.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/monitors/downtimes/downtime_examplebytag1_downtime.f5932475ccd321e2a582af6030e42aee.png?auto=format&fit=max&w=850&dpr=2 2x" alt="downtime example of 'By Monitor Tags' with preview of affected monitors" /%}

Monitor A는 범위 안에 있는 그룹인 service:web-store에 대해서만 다운타임이 시작된 것을 보여줘요.

Monitor B는 service:web-store에 대해 다운타임이 시작된 것을 보여줘요. 이 모니터의 모든 그룹(호스트별)이 service:web-store에 속하기 때문에, 결과적으로 이 모니터는 다운타임 동안 모든 호스트가 음소거돼요.

더 알아보기 (Learn more)