복합 메트릭스 이벤트

필요한 배경 지식

본 문서를 이해하기 위해서는 아래의 개념이 필요합니다.

복합 메트릭스 이벤트란?

복합 메트릭스 이벤트는 메트릭스 이벤트보다 더 고도화된 이벤트 조건이 필요할 때 사용할 수 있습니다.

복합 메트릭스 이벤트를 설정하려면 이벤트 설정 권한이 있어야 합니다.

복합 메트릭스은 아래와 같은 상황에서 효과적으로 사용됩니다.

  1. 여러 에이전트에서 수신된 데이터에 대해서 종합적으로 이벤트 판정을 해야할 때

  2. 과거 데이터와 현재 데이터를 비교해서 이벤트 판정을 해야할 때

메트릭스 이벤트는 에이전트로부터 메트릭스를 수신할 때마다 이벤트 판정을 합니다. 반면에, 복합 메트릭스 이벤트는 각 에이전트에서 수집된 메트릭스들을 데이터베이스에 저장합니다. 그리고 다시 조회해서 이벤트 판정을 합니다. 이와 같은 특성 덕분에 여러 에이전트의 데이터를 종합적으로 활용하거나 과거의 데이터를 활용할 수 있게 됩니다. 하지만 MXQL이라는 Whatap 고유의 데이터 조회 언어를 사용해야한다는 진입장벽이 존재합니다. 따라서 사용자들이 기초적인 MXQL만 이해하더라도 효과적으로 이벤트를 설정할 수 있도록 이벤트 템플릿을 제공합니다. MXQL 기초 사용자는 이벤트 대상 필터링이벤트 조건에 대한 쿼리만 수정해서 이벤트를 적용할 수 있습니다.

설명에 앞서, 아래와 같이 이벤트를 설정했다고 가정하겠습니다.

composite metrics setting
Figure 1. 복합메트릭스 이벤트 샘플

데이터 조회 범위

복합 메트릭스 이벤트는 DB에 저장된 메트릭스를 조회해서 활용합니다. 따라서 데이터를 조회할 시간 범위를 먼저 지정해야 합니다. 데이터 조회 시간을 5분으로 선택하면, 최근 5분동안 수집된 데이터를 조회해서 이벤트 발생 조건을 확인합니다. 최근 데이터에 대해서 이벤트를 설정할 때에는 짧게, 넓은 시간에 대해서 통계적으로 접근하고 싶을 때에는 길게 설정할 수 있습니다.

실제 사용 예시는 아래 [템플릿]에서 제공됩니다.

이벤트 판정 주기

복합 메트릭스 이벤트를 설정할 때에는 반드시 인터벌 값을 지정해야합니다.

인터벌은 해당 이벤트가 판정될 주기입니다. 1분, 5분, 10분, 30분, 1시간, 12시간을 지정할 수 있습니다. 복합 메트릭스가 DB에 저장된 메트릭스를 조회한 뒤 이벤트 판정을 한다는 관점에서는, DB에 저장된 데이터를 조회하는 주기라고 할 수 있습니다.

이벤트 설정

복합 메트릭스는 아래와 같은 이벤트에 필요한 설정들을 모두 MXQL을 통해서 진행합니다.

  1. 데이터 조회 시간 (선택) : 지정하지 않으면 데이터 조회 범위에서 설정한 값이 사용됩니다. 만약 MXQL 쿼리에서 지정하면 해당 범위를 사용합니다.

  2. 카테고리 : MXQL에서는 반드시 카테고리 1개를 선택해야 합니다.

  3. 이벤트 대상 필터링 : 이벤트 대상을 선택할 수 있습니다. 개별 에이전트를 선택(oid)할 수도 있고, 에이전트의 종류(okind)를 기준으로 선택할 수도 있습니다.

  4. 데이터 가공 : 조회된 데이터를 이벤트 목적에 맞게 가공합니다.

  5. 이벤트 조건 : MXQL을 통해서 가공된 필드 값의 이름을 사용합니다.

  6. 무음 : 각 에이전트에 대해서 알림이 한 번 발생된 이후 다시 알림을 발생시키지 않을 시간을 설정합니다. 너무 잦은 알림 발생을 막을 수 있는 기능입니다.

  7. 이벤트 규칙 테스트 : 위에서 설정한 값들이 적절하게 지정됐는지 시뮬레이션해볼 수 있는 기능입니다.

이벤트 규칙 테스트

이벤트 설정에 포함된 대부분의 내용들이 MXQL을 사용해서 지정됩니다. MXQL이 적절하게 작성되었는지 시뮬레이션할 수 있는 기능이 제공됩니다. 시뮬레이션 기능은 과거의 24시간 데이터를 조회해서 이벤트 판정을 한 뒤, 몇 건의 메트릭스가 조회되었고 그 중 몇 건에서 이벤트 판정이 성공했는지 알려줍니다.

위에서 설정했던 이벤트 샘플의 경우, 21년 11월 17일 24시간 데이터에 대해서 1분마다 최근 1분 데이터를 조회합니다. 조회된 1440건(60(분) * 24(시간)) 중에서 MXQL 쿼리를 수행한 경과 1419건이 남았고, 이 중에서 "apdex < 0.7"이라는 이벤트 조건까지 통과한 메트릭스는 7건입니다. 즉, 미래에도 21년 11월 17일과 비슷하다면 7번정도 이벤트가 발생할 조건이라고 예상해볼 수 있습니다.

템플릿

composite metric alert template list
Figure 2. 복합 메트릭스 템플릿 목록
  1. 여러 에이전트에서 수신된 데이터에 대해서 종합적으로 이벤트 판정을 해야할 때

    • Inactive agents has been found.

    • Very slow active transactions detected.

  2. 과거 데이터와 현재 데이터를 비교해서 이벤트 판정을 해야할 때

    • TPS has changed by more than 30% compared to the previous week.

Inactive agents has been found.

  • 목적 : 프로젝트에 포함된 모든 에이전트 중 정상상태인 에이전트의 수가 6개 미만으로 떨어졌을 때 이벤트가 발생한 경우 알림을 발생시킵니다.

  • 조건 : num_of_current_agents < 6

Very slow active transactions detected.

  • 목적 : 프로젝트에 포함된 특정 okind에 속한 에이전트에서 8초 이상이 소요되는 트랜잭션의 수의 합이 10개 초과 발생했을 때

  • 조건 : very_slow_tx_cnt_m5_avg > 10

TPS has changed by more than 30% compared to the previous week.

  • 목적 : 프로젝트에 포함된 특정 okind에 속한 에이전트들의 TPS합이 7일 전과 비교했을 때 30% 초과 달라졌을 때 알림을 발생시킵니다.

  • 조건 : one_week_diff_abs > current_tps * 0.3