How we built the Datadog heatmap to visualize distributions over time at arbitrary scale (새 탭에서 열림)

단순한 백분위수(Percentile) 선 그래프는 데이터의 전체적인 형상과 그 안에 숨겨진 다양한 패턴(Mode)을 왜곡하거나 가릴 수 있습니다. Datadog은 DDSketch 알고리즘을 활용한 히트맵(Heatmap) 시각화를 통해 수조 개의 데이터 포인트를 성능 저하 없이 고해상도로 구현하여, 집계된 지표 뒤에 숨겨진 시스템의 실제 동작을 명확하게 드러냅니다. 이를 통해 엔지니어는 단순 수치 이상의 풍부한 컨텍스트를 파악하고 대규모 인프라의 복잡한 성능 문제를 효과적으로 해결할 수 있습니다.

집계 데이터 시각화의 한계와 히트맵의 이점

  • 선 그래프(p50, p99 등)는 수많은 이벤트를 단일 값으로 집계하여 특정 시점의 성능은 보여주지만, 데이터 분포의 전체적인 모습은 설명하지 못함.
  • 히트맵은 데이터를 과도하게 집계하지 않고 시각화하여, 서로 다르게 동작하는 여러 시스템 그룹(Modes)을 시각적 아티팩트로 분리해 보여줌.
  • 이를 통해 특정 벤치마킹 서비스로 인한 주기적 지연이나 헬스 체크 요청의 패턴 등 백분위수 그래프에서는 노이즈로 보일 수 있는 현상을 직관적으로 식별 가능함.

무한한 확장을 위한 엔지니어링: DDSketch

  • DDSketch를 사용하여 정밀도를 미세하게 희생하는 대신, 방대한 양의 데이터를 '실제 값에 충분히 가까운' 형태로 효율적으로 표현함.
  • 프론트엔드 전송 시 전체 포인트 목록 대신 '빈(bin)과 카운트(count)' 구조를 사용하여 데이터 페이로드 크기를 일정하게 유지함.
  • 각 빈의 카운트 저장에 float32 타입을 채택하여, 이론적으로 수조 년 동안 매초 발생하는 호출도 수용할 수 있는 수치적 확장성을 확보함.

고해상도 구현 및 데이터 정렬 기술

  • 수백조 개의 데이터 포인트를 시각화하기 위해 각 시간 범위(Time bucket)의 경계 값을 일렬로 정렬하고 저장 구조를 최적화함.
  • 데이터 보고 주기와 히트맵의 시간 버킷 간격이 일치하지 않을 때 발생하는 에일리어싱(Aliasing) 현상을 방지하기 위해 데이터 정렬 알고리즘을 적용함.
  • 선형 스케일 외에도 로그 스케일을 지원하여 소스 데이터의 해상도에 근접한 시각적 정밀도를 제공함.

색상 설계와 인지적 다이내믹 레인지 유지

  • 색상 팔레트는 가독성을 위해 연한 파란색에서 보라색을 거쳐 주황색(Hot)으로 전환되도록 설계하며, 경고 느낌을 주는 빨간색은 의도적으로 배제함.
  • 인간의 시각이 밝기 차이를 비선형적으로 인지한다는 '스티븐스의 멱법칙(Stevens' Power Law)'을 시각화 로직에 반영함.
  • 데이터가 멱법칙 분포(롱테일)를 따를 때 선형 색상 보간을 사용하면 정보가 손실되므로, 비선형 보간법을 통해 미세한 빈도의 차이도 눈으로 식별할 수 있게 함.

실용적인 제언 성능 분석 시 단순히 선 그래프의 추세에만 의존하기보다는 히트맵을 병행하여 사용하는 것이 권장됩니다. 특히 대규모 분산 시스템에서 발생하는 간헐적인 지연이나 특정 노드 그룹의 이상 행동은 히트맵을 통해서만 명확한 '시각적 패턴'으로 드러나기 때문에, 근본 원인 분석(RCA) 시간을 획기적으로 단축할 수 있습니다.