메인 콘텐츠로 건너뛰기
Event deltas는 쿼리를 작성하지 않고도 지연 시간 히트맵과 자동 속성 분석을 결합해 트레이스 데이터의 양상을 파악하고, 느린 스팬이 왜 다른지 확인할 수 있게 해줍니다. 사용하는 방법은 세 가지입니다:
  • 분포 모드 (항상 켜짐): 히트맵에서 선택한 영역이 없으면 현재 스팬 집합에 대한 각 속성의 값 분포가 표시됩니다. 지배적인 값이나 유난히 드문 값(cardinality 이상치)을 찾는 데 유용합니다.
  • 비교 모드: 히트맵에서 사각형을 드래그해 내부의 스팬(선택 영역)과 외부의 모든 스팬(배경)을 비교합니다. 편차를 분리해 파악하는 데 유용합니다.
  • 반복적 드릴다운: 막대를 클릭해 해당 값으로 필터링하거나 제외합니다. 그러면 필터링된 집합을 기준으로 히트맵이 다시 렌더링되므로, 원인이 분명해질 때까지 범위를 계속 좁혀갈 수 있습니다.
위 스크린샷에서 히트맵의 오른쪽 끝은 대략 10 ms에 머물러 있으며, 오전 내내 유지되던 1 ms 기준선으로는 아직 돌아가지 않았습니다. 성능 저하는 아직 진행 중이므로, 현재는 장애가 진행되는 도중의 상태를 포착한 것입니다.

사전 요구사항

Event deltas를 사용하려면 duration 표현식이 있는 Trace 데이터 소스가 필요합니다. 스팬 데이터를 생성하는 OpenTelemetry 계측 서비스라면 모두 사용할 수 있습니다. 모든 ClickStack 배포 환경(Managed, Open Source, ClickHouse Cloud)에서 사용할 수 있습니다.

시작하기

  1. Data Source 드롭다운에서 트레이스를 담고 있는 소스를 선택합니다. 소스 이름은 임의로 지정할 수 있으며, 중요한 것은 해당 소스가 Trace 유형으로 구성되어 있어야 한다는 점입니다. Event Deltas 탭은 이런 소스에서만 활성화됩니다.
  2. Analysis Mode 섹션에서 Event Deltas 탭을 클릭합니다.
Event deltas는 Results TableEvent Patterns와 나란히 제공되는 별도의 분석 모드입니다. 이 모드로 전환하면 보기가 히트맵과 속성 분석 그리드로 전환되지만, 검색 필터와 시간 범위는 유지되며 언제든지 다시 전환할 수 있습니다.

히트맵

히트맵은 두 차원에 걸쳐 스팬을 표시합니다:
  • X축: 시간
  • Y축: 숫자 값이며, 기본값은 밀리초 단위의 스팬 지속 시간(로그 스케일)입니다
색상의 강도는 버킷당 이벤트 수를 나타내며, 더 밝을수록 스팬이 많습니다. 히트맵만 봐도 패턴을 바로 파악할 수 있습니다. 예를 들어, 지연 시간이 두 봉우리로 나뉘는 패턴, 특정 시점의 지연 시간 급증, 지속적으로 느린 스팬의 띠, 또는 시간이 지날수록 위로 올라가는 느린 띠(서서히 진행되는 성능 회귀) 등을 확인할 수 있습니다. 특정 영역을 조사하려면 해당 영역 위에서 사각형을 그리듯 클릭한 채 드래그하십시오. 그러면 해당 영역이 Selection이 되며, 아래 분석이 비교 모드로 전환됩니다.

분포 모드: 카디널리티 이상치

히트맵에서 아무것도 선택하지 않으면 분석 패널에 속성별 막대 차트가 하나씩 표시되며, 이는 일치하는 모든 스팬을 기준으로 계산됩니다. 범례에는 모든 스팬이라고 표시됩니다(위의 개요 스크린샷에서 확인할 수 있습니다). 속성은 값이 얼마나 집중되어 있는지에 따라 순위가 매겨집니다. 소수의 값에 의해 좌우되는 속성이 먼저 표시되고, 균일하고 엔트로피가 높은 속성은 우선순위가 낮아집니다. 데이터의 카디널리티 형태를 이해하려면 분포 모드를 사용하십시오:
  • 높은 값: 어떤 서비스, 엔드포인트, 상태 코드 또는 호스트가 스팬 집합의 대부분을 차지합니까? 대개 트래픽의 대부분을 처리하는 단일 테넌트, 버전 또는 경로를 드러냅니다.
  • 낮은 값: 존재하지만 드물게 나타나는 값입니다. 전체 스팬 중 0.5%에만 나타나는 상태 코드나 거의 보이지 않는 호스트 하나가 가장 흥미로운 신호일 수 있습니다. 긴 꼬리 구간에는 회귀와 문제를 일으키는 주체가 숨어 있는 경우가 많습니다.
먼저 검색창과 함께 사용해 집합을 좁힌 다음(예: 오류 스팬만, 클라이언트 스팬만, 하나의 엔드포인트만) 해당 부분 집합의 분포를 확인하십시오.

비교 모드: 정상 상태와의 차이

히트맵에서 직사각형 영역을 클릭해 드래그하면 비교 모드로 들어갑니다. 선택한 스팬은 Selection(주황색 막대)이 되고, 선택 영역 밖의 모든 항목은 Background(초록색 막대)가 됩니다. 그러면 각 속성 차트에 두 집단이 나란히 표시되며, 차이가 가장 큰 속성이 먼저 오도록 정렬됩니다. 거의 한쪽에만 존재하거나 한쪽에서는 아예 나타나지 않는 값이 무엇이 다른지 보여 주는 가장 유력한 후보입니다. 어떤 모양의 직사각형을 그리느냐에 따라 던지는 질문도 달라집니다. 일반적으로 사용하는 두 가지 형태를 아래에 설명합니다.

사용 사례 1: 회귀 전후 비교

히트맵에서 타임라인을 따라 지연 시간이 점차 높아지는 모습이 보이면(느린 대역이 두꺼워지거나, 밝은 대역이 위로 올라가거나, 정상 구간과 성능 저하 구간이 뚜렷한 변곡점으로 갈리는 경우), 그 상승 변곡점부터 윈도우의 오른쪽 끝까지 사각형을 드래그하십시오. 비교를 더 선명하게 하려면 사각형의 아래쪽 경계를 축 맨 아래가 아니라 정상 기준선에 맞추십시오. 이렇게 하면 같은 시간대에 있다는 이유로 아직 정상인 빠른 스팬까지 포함하지 않고, 성능이 저하된 윈도우에서 평소보다 실제로 더 느린 스팬만 분리할 수 있습니다. 히트맵 아래의 속성 막대는 차이가 가장 큰 항목이 먼저 오도록 정렬됩니다. 이 예시에서는 맨 윗줄 차트가 가장 강한 신호를 보여줍니다. SpanKind, SpanName, ScopeName은 각각 느린 Selection과 정상적인 Background 사이의 뚜렷한 주황색 대 녹색 분리를 나타냅니다. 이들을 함께 보면 변곡점에서 무엇이 바뀌었는지 분명하게 드러납니다. 이는 “무엇이 바뀌었는가?”를 묻고 싶을 때 적합한 형태입니다. 더 좁은 변형도 같은 워크플로를 사용합니다. 대체로 잠잠한 대역 안에 느린 스팬의 작은 덩어리가 있을 때(오른쪽 끝의 짧은 급증이나 안정적인 구간 한가운데의 군집)에는 그 군집만 둘러싸는 작은 상자를 대신 그리십시오. 형태가 바뀌면 질문도 바뀝니다. 세로 띠는 시간에 따라 무엇이 바뀌었는가 를 묻고, 작고 집중된 상자는 이 군집에는 무엇이 특별한가 를 묻습니다.

사용 사례 2: 느림과 빠름

히트맵에 duration 축을 따라 두 개의 지연 시간 집단이 뚜렷하게 분리되어 보이면, 전체 시간 범위를 가로지르면서도 위쪽의 선명하게 분리된 밴드만 포함하도록 넓은 rectangle을 드래그하십시오. 그러면 느린 집단은 Selection이 되고, 빠른 대다수 집단은 Background가 됩니다. rectangle은 위쪽 밴드에 딱 맞게 그리되, 해당 밴드와 조밀한 대다수 집단 사이에 눈에 띄는 수평 간격이 남도록 하십시오. 빠른 집단까지 번져 들어가는 느슨한 rectangle은 차이를 희석시킵니다. 100 s 상한선 자체도 중요한 단서입니다. 둥근 값에서 일정하게 유지되는 수평선은 고정된 timeout의 전형적인 신호입니다. 두 집단을 구분해 주는 스팬 속성이 없다면, 그것 또한 유용한 결과입니다. 이는 원인이 스팬 속성이 아니라 호스트 및 런타임 수준의 메트릭(GC 일시 중지, I/O 경합, 스케줄러 지연 시간, 콜드 캐시 효과, noisy neighbor)에 있음을 시사합니다. 이는 특정 이상 현상을 추적하기보다 「느린 스팬이 빠른 스팬과 무엇이 다른가?」를 묻고 싶을 때 적합한 형태입니다. 차이를 보이는 속성은 코드 경로나 입력 측 원인을 가리키고, 차이가 없는 비교 결과는 시스템 전반의 원인을 가리킵니다.

반복적 드릴다운

비교 모드와 분포 모드는 함께 연결해 사용할 때 가장 강력합니다. 막대를 클릭하면 세 가지 작업이 있는 팝오버가 열립니다.
  • Filter: 이 값을 가진 스팬만 남깁니다
  • Exclude: 이 값을 가진 스팬을 제외합니다
  • Copy: 값을 클립보드에 복사합니다
Filter 또는 Exclude를 적용하면 히트맵 선택이 해제되고, 히트맵이 새 모집단을 기준으로 다시 렌더링되며, 분포 모드는 필터링된 집합을 기준으로 다시 적용됩니다. 히트맵 형태가 어떻게 바뀌는지 확인하십시오. 필터가 제대로 적용되면 느린 구간이 눈에 띄게 사라지거나, 이봉 분포의 분리가 합쳐지거나, 우상향 드리프트가 완화됩니다. 이 과정을 반복하십시오. 다음으로 의심스러운 값을 찾고, 필터링한 뒤, 새 히트맵과 새 분포를 확인하십시오. 보통 몇 번만 반복해도 회귀 문제의 범위를 한두 개의 속성으로 좁힐 수 있습니다.
빈도가 낮은 값을 묶은 집계된 Other (N) 버킷은 클릭할 수 없습니다. 해당 버킷 안의 특정 값으로 필터링하려면 search bar를 직접 사용하십시오.
모집단이 충분히 작아지면 Results Table 탭으로 전환해 개별 트레이스를 확인하십시오. 적용한 필터는 그대로 유지됩니다.

히트맵 사용자 지정

히트맵 오른쪽 상단의 톱니바퀴 아이콘을 클릭하면 Display Settings 드로어가 열립니다.
매개변수기본값설명
ScaleLogLog는 넓은 지연 시간 범위를 다루는 데 적합하고, Linear는 좁고 균일한 분포에 더 적합합니다.
Value(Duration)/1e6응답 크기, 오류율, 사용자 지정 스팬 속성 등 임의의 숫자 표현식을 사용할 수 있습니다.
Countcount()색상을 결정하는 집계입니다. avg(), sum(), p95() 또는 countDistinct(field) 같은 표현식으로 바꿀 수 있습니다.
히트맵을 업데이트하려면 Apply를 클릭하십시오. 그러면 아래의 속성 분석도 함께 업데이트됩니다.
대시보드의 히트맵동일한 히트맵을 dashboard tile로도 사용할 수 있으며, Event Deltas 드릴다운 흐름 밖에서 시간에 따른 분포 형태를 모니터링할 때 유용합니다.
다음은 이러한 기본값을 변경하는 대표적인 상황입니다.
  • 지연 시간 범위가 좁을 때는 Scale을 Linear로 전환하십시오(예: 모든 스팬이 5~50 ms 사이에서 실행되는 서비스). Log 스케일은 데이터가 없는 상단 구간에 세로 범위를 낭비합니다.
  • Y축에 Duration 이외의 값을 표시합니다. ValueSpanAttributes.http.response.size로 설정하면 느리면서 응답을 조사할 수 있습니다. if(StatusCode = 'Error', 1, 0) 같은 표현식은 서비스 전반에서 시간에 따른 오류 빈도를 표시합니다.
  • count 이외의 값으로 색상을 지정합니다. Countp95(Duration)로 설정하면 각 버킷이 볼륨이 아니라 꼬리 지연 시간을 기준으로 색상화되어, count 기반 보기에서는 묻히는 드물지만 느린 구간을 드러낼 수 있습니다. countDistinct(TraceId)는 하나의 trace가 많은 스팬을 생성할 때 trace 볼륨과 스팬 볼륨을 구분해 줍니다.

효과적으로 사용하기 위한 팁

몇 가지 방법만 실천해도 Event deltas를 훨씬 더 유용하게 활용할 수 있습니다:
  • 먼저 단일 서비스로 필터링하세요. 서비스마다 지연 시간이 크게 달라 여러 서비스를 섞으면 신호가 흐려집니다. 시작하기 전에 검색 창에서 ServiceName 하나(또는 엔드포인트 하나)로 범위를 좁혀, 히트맵과 분포가 서로 비교 가능한 모집단을 반영하도록 하십시오.
  • 시각적 대비가 분명한 선택 영역을 고르세요. 비교 모드는 Selection 구간이 Background와 눈에 띄게 구분될 때 가장 효과적입니다. 예를 들어, 식별 가능한 시점부터 시작되는 성능 저하 구간이나, 전체 분포의 대부분과 뚜렷하게 분리된 느린 꼬리 구간이 여기에 해당합니다. 나머지 데이터와 많이 겹치는 선택 영역은 실제 편차보다 잡음을 더 드러내는 경향이 있습니다.
  • 필터, 히트맵, 필터 순으로 반복하세요. 한 번의 선택만으로 원인을 찾아내는 경우는 드뭅니다. 첫 번째 비교를 가설로 보고, 가장 차이가 큰 값으로 필터링한 뒤 새 히트맵과 분포를 다시 확인하십시오. 보통 23번 반복하면 회귀의 범위를 12개의 속성으로 좁힐 수 있습니다.
  • 아직 선택 영역 없이 분포 모드를 사용하세요. 아직 시각적 대비가 보이지 않을 때(문제가 있다는 것은 알지만 히트맵이 균일해 보일 때) 특히 유용합니다. 오류 스팬만, 클라이언트 스팬만, 또는 특정 엔드포인트 하나만 포함하는 가설 기반 필터를 적용하고, 사각형을 그리기 전에 속성 분포를 통해 영향이 가장 큰 값을 먼저 파악하십시오.

문제 해결

Event Deltas 탭이 보이지 않습니다

Analysis Mode 아래의 Event Deltas 탭은 duration 표현식이 있는 Trace 소스를 선택한 경우에만 표시됩니다. 데이터 소스가 Trace 유형으로 구성되어 있고, duration 정보가 포함된 스팬 데이터가 있는지 확인하세요.

속성 차트에 결과가 거의 없거나 전혀 표시되지 않는 경우

샘플이 너무 작으면(스팬이 수십 개 미만이면) 분포가 통계적으로 유의미하지 않을 수 있습니다. 시간 범위를 넓히거나 검색 필터를 완화하세요.
마지막 수정일 2026년 6월 10일