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

메트릭

원문 보기 위키 갱신

메트릭 (Metrics)

{% callout %}

인에이블먼트 웹inar 세션 참여

커스텀 메트릭을 위한 Foundation Enablement 세션을 살펴보고 등록하세요. 커스텀 메트릭이 방문자 수, 평균 고객 장바구니 크기, 요청 대기 시간, 커스텀 알고리즘의 성능 분포 같은 애플리케이션 KPI를 추적하는 데 어떻게 도움이 되는지 배워요.

SIGN UP {% /callout %}

이 문서는 Datadog의 메트릭에 대한 소개와 왜 유용한지 설명해요. 이 섹션에는 다음 주제가 포함돼요:

메트릭을 Datadog에 제출하기

메트릭 시각화 및 쿼리

커스텀 메트릭 볼륨과 비용 이해 및 관리

출처: 문서

본문

개요

메트릭이란 무엇인가요?

메트릭은 환경에 대한 모든 것을 시간에 따라 추적할 수 있는 숫자 값이에요. 대기 시간부터 오류율, 사용자 가입 수까지 다양해요.

Datadog에서 메트릭 데이터는 값과 타임스탬프가 있는 데이터 포인트로 수집·저장돼요:

[ 17.82,  22:11:01 ]

데이터 포인트 시퀀스는 시계열(timeseries)로 저장돼요:

[ 17.82,  22:11:01 ]
[  6.38,  22:11:12 ]
[  2.87,  22:11:38 ]
[  7.06,  22:12:00 ]

초 단위 미만의 타임스탬프를 가진 메트릭은 가장 가까운 초로 반올림돼요. 여러 포인트가 같은 타임스탬프를 가지면 가장 최신 포인트가 이전 것들을 덮어써요.

메트릭이 왜 유용한가요?

메트릭은 시스템의 전반적인 그림을 제공해요. 이를 사용해 환경의 상태를 한눈에 평가할 수 있어요. 예를 들어 사용자가 얼마나 빨리 웹사이트를 로드하는지, 서버의 평균 메모리 사용량을 시각화할 수 있어요. 문제를 식별하면 로그와 트레이싱으로 추가 문제 해결을 할 수 있어요.

시스템 상태를 추적하는 메트릭은 1,000개 이상의 서비스에 대한 Datadog의 통합을 통해 자동으로 제공돼요. 비즈니스에 특화된 메트릭(커스텀 메트릭이라고도 함)도 추적할 수 있어요. 사용자 로그인 수, 장바구니 크기, 팀의 코드 커밋 빈도 같은 것을 추적할 수 있어요.

또한 메트릭을 사용하면 고객의 수요에 맞게 환경 규모를 조정할 수 있어요. 정확히 얼마만큼의 리소스를 소비해야 하는지 알면 비용을 절약하거나 성능을 개선하는 데 도움이 돼요.

Datadog에 메트릭 제출하기

메트릭은 여러 곳에서 Datadog로 보낼 수 있어요.

  • Datadog 지원 통합: Datadog의 1,000개 이상 통합은 메트릭을 기본으로 포함해요. 이 메트릭에 접근하려면 서비스의 특정 통합 페이지로 이동해서 설치 안내를 따르세요. 예를 들어 EC2 인스턴스를 모니터링해야 한다면 Amazon EC2 통합 문서로 가면 돼요.

  • Datadog 플랫폼 내에서 직접 메트릭을 생성할 수 있어요. 예를 들어 로그에 나타나는 오류 상태 코드를 세고 그것을 새 메트릭으로 저장할 수 있어요.

  • 비즈니스 관련 메트릭(예: 사용자 로그인 수, 가입 수)을 추적해야 하는 경우가 많아요. 이 경우 커스텀 메트릭을 만들 수 있어요. 커스텀 메트릭은 Agent, DogStatsD, 또는 HTTP API를 통해 제출할 수 있어요.

  • 또한 Datadog Agent는 CPU, 디스크 사용량 같은 여러 표준 메트릭을 자동으로 전송해요.

모든 메트릭 제출 소스와 방법 요약은 메트릭 유형 문서를 참고해요.

메트릭 유형과 실시간 메트릭 가시성

메트릭 유형

Datadog는 서로 다른 사용 사례를 지원하는 여러 메트릭 유형을 지원해요: count, gauge, rate, histogram, distribution. 메트릭 유형은 앱에서 메트릭과 함께 사용할 수 있는 그래프와 함수를 결정해요.

Datadog Agent는 전송하는 모든 데이터 포인트에 대해 Datadog 서버에 별도 요청을 하지 않아요. 대신 플러시 시간 간격 동안 수집된 값을 보고해요. 메트릭 유형은 이 간격 동안 호스트에서 수집된 값이 제출을 위해 어떻게 집계되는지 결정해요.

count 유형은 시간 간격 동안 제출된 모든 값을 합산해요. 예를 들어 웹사이트 방문 횟수를 추적하는 메트릭에 적합해요.

rate 유형은 count를 시간 간격 길이로 나눠요. 초당 방문 수에 관심이 있다면 유용해요.

gauge 유형은 간격 동안 보고된 마지막 값을 가져와요. 이 유형은 RAM이나 CPU 사용량을 추적할 때 적합해요. 마지막 값을 가져오는 것이 시간 간격 동안 호스트의 동작을 대표하는 그림을 제공하기 때문이에요. 이 경우 count 같은 다른 유형을 사용하면 부정확하고 극단적인 값이 나올 수 있어요. 올바른 메트릭 유형을 선택하면 정확한 데이터가 보장돼요.

histogram은 제출된 값을 요약하는 다섯 가지 값을 보고해요: 평균, 개수, 중앙값, 95번째 백분위수, 최대값. 이로 인해 다섯 개의 서로 다른 시계열이 생성돼요. 이 메트릭 유형은 대기 시간 같은 것에 적합해요. 평균 값만 아는 것으로는 부족하기 때문이에요. histogram을 사용하면 모든 데이터 포인트를 기록하지 않고도 데이터가 어떻게 분포했는지 이해할 수 있어요.

distribution은 histogram과 유사하지만 환경의 모든 호스트에 걸쳐 시간 간격 동안 제출된 값을 요약해요. 여러 백분위수(p50, p75, p90, p95, p99)를 선택해 보고할 수도 있어요. 이 강력한 기능에 대해 자세히 알아보려면 분포 문서를 참고해요.

각 메트릭 유형의 더 자세한 예시와 제출 안내는 메트릭 유형 문서를 참고해요.

메트릭 쿼리

Datadog 전체에서 메트릭을 시각화하고 그래프를 만들 수 있어요: 메트릭 탐색기, 대시보드, 노트북에서요.

팁: Datadog 전역 검색에서 Metrics Summary 페이지를 열려면 Cmd/Ctrl + K를 누르고 metrics를 검색하세요.

시계열 시각화 예시는 다음과 같아요:

{% image source="https://docs.dd-static.net/images/metrics/introduction/timeseries_example.e5c8f05d164e5120ee2fbe69325a4dc8.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/metrics/introduction/timeseries_example.e5c8f05d164e5120ee2fbe69325a4dc8.png?auto=format&fit=max&w=850&dpr=2 2x" alt="A timeseries graph displays a latency metric represented by a single blue line with several spikes" /%}

이 선 그래프는 사용자가 경험하는 대기 시간(밀리초)을 y축에, 시간을 x축에 플로팅해요.

추가 시각화

Datadog는 사용자가 메트릭을 쉽게 그래프로 그리고 표시할 수 있도록 다양한 시각화 옵션을 제공해요.

메트릭 쿼리는 동일한 두 평가 단계(시간 집계와 공간 집계)로 시작해요. 자세한 내용은 메트릭 쿼리 해부를 참고해요.

Metrics 사용자가 유용하게 쓰는 두 가지 시각화 제공물은:

또한 Datadog는 시각화를 위한 다양한 다른 유형의 그래프와 위젯을 가지고 있어요. Datadog의 메트릭 그래프에 관한 블로그 시리즈에서 더 자세히 알아볼 수 있어요.

대시보드, 노트북, 모니터를 사용하든 그래프 경험은 일관돼요. 그래핑 에디터 UI를 사용하거나 원시 쿼리 문자열을 직접 변경해 그래프를 만들 수 있어요. 쿼리 문자열을 편집하려면 맨 오른쪽의 </> 버튼을 사용하세요.

메트릭 쿼리 해부

Datadog의 메트릭 쿼리는 다음과 같아요:

{% image source="https://docs.dd-static.net/images/metrics/introduction/newanatomy.61308aa931fc6e126925be9cd094643c.jpg?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/metrics/introduction/newanatomy.61308aa931fc6e126925be9cd094643c.jpg?auto=format&fit=max&w=850&dpr=2 2x" alt="Example query with color-coded sections" /%}

이 쿼리를 몇 단계로 나눌 수 있어요:

메트릭 이름

먼저 Metric 옆의 드롭다운에서 검색하거나 선택해서 그래프로 그릴 특정 메트릭을 선택하세요. 어떤 메트릭을 사용할지 확실하지 않다면 Metrics Explorer나 노트북으로 시작해요. Metrics Summary 페이지에서 활발하게 보고되는 메트릭 목록도 볼 수 있어요.

메트릭 필터링

메트릭을 선택한 후 태그를 기반으로 쿼리를 필터링할 수 있어요. 예를 들어 account:prod로 쿼리를 범위(scoped) 하면 프로덕션 호스트의 메트릭만 포함할 수 있어요. 자세한 내용은 태깅 문서를 참고해요.

시간 집계 구성

다음으로 time rollup으로 데이터의 세분성을 선택하세요. 이 예에서는 매 시간(3600초)마다 데이터 포인트가 하나씩 있다고 정의했어요. 각 시간 버킷에서 데이터를 집계하는 방식을 선택할 수 있어요. 기본적으로 avg가 적용되지만 sum, min, max, count 옵션도 사용할 수 있어요. 함수나 인앱 수정자로 메트릭 데이터를 집계·버킷하는 방식을 커스텀할 수도 있어요. 예를 들어 max를 적용하고 캘린더 정렬 쿼리로 메트릭 데이터를 시간에 맞춰 롤업·버킷하고 싶다면 .rollup(max, 60)을 사용하면 돼요. 자세한 내용은 함수, 롤업, 인앱 수정자 문서를 참고해요.

공간 집계 구성

Datadog에서 "공간(space)"은 메트릭이 여러 호스트와 태그에 걸쳐 분포되는 방식을 의미해요. 제어할 수 있는 공간의 두 가지 측면이 있어요: 집계자(aggregator)와 그룹화(grouping).

*집계자(Aggregator)*는 각 그룹의 메트릭이 어떻게 결합되는지 정의해요. 사용 가능한 네 가지 집계가 있어요: sum, min, max, avg.

*그룹화(Grouping)*는 그래프에서 무엇이 하나의 선을 구성하는지 정의해요. 예를 들어 수백 대의 호스트가 4개 리전에 걸쳐 있다면 리전별로 그룹화하면 각 리전마다 하나의 선을 그래프로 그릴 수 있어요. 이렇게 하면 시계열 수가 4개로 줄어요.

함수 적용 (선택 사항)

수학적 함수로 그래프 값을 수정할 수 있어요. 이는 정수와 메트릭 간 산술(예: 메트릭에 2 곱하기)을 수행하거나, 두 메트릭 간 산술(예: jvm.heap_memory / jvm.heap_memory_max처럼 메모리 사용률에 대한 새 시계열 만들기)을 수행하는 것을 의미할 수 있어요.

시간 및 공간 집계

시간 집계와 공간 집계는 모든 쿼리의 중요한 두 구성 요소예요. 이러한 집계가 어떻게 동작하는지 이해하면 그래프를 잘못 해석하는 것을 피하는 데 도움이 되므로 아래에서 더 자세히 설명할게요.

시간 집계

Datadog는 많은 양의 포인트를 저장하며 대부분의 경우 모두를 그래프에 표시하는 것은 불가능해요. 픽셀보다 데이터 포인트가 더 많기 때문이에요. Datadog는 시간 집계로 데이터 포인트를 시간 버킷으로 결합해서 이 문제를 해결해요. 예를 들어 4시간을 조사할 때 데이터 포인트는 2분 버킷으로 결합돼요. 이를 *롤업(rollup)*이라고 해요. 쿼리에 정의한 시간 간격이 늘어나면 데이터의 세분성은 줄어들어요.

각 시간 버킷에서 데이터를 결합하는 데 적용할 수 있는 다섯 가지 집계가 있어요: sum, min, max, avg, count.

시간 집계는 모든 쿼리에 항상 적용된다는 것을 기억하는 게 중요해요.

공간 집계

공간 집계는 단일 메트릭을 호스트, 컨테이너, 리전 같은 태그로 여러 시계열로 분할해요. 예를 들어 EC2 인스턴스의 대기 시간을 리전별로 보려면 공간 집계의 그룹화 기능을 사용해 각 리전의 호스트를 결합해야 해요.

공간 집계를 사용할 때 적용할 수 있는 집계자는 네 가지가 있어요: sum, min, max, avg. 위 예시에서 호스트가 us-east-1, us-east-2, us-west-1, us-west-2 네 리전에 걸쳐 있다고 가정해요. 각 리전의 호스트는 집계자 함수로 결합해야 해요. max 집계자를 사용하면 각 리전의 호스트에서 경험한 최대 대기 시간이 되고, avg 집계자는 리전별 평균 대기 시간을 산출해요.

중첩 쿼리

UI나 API의 중첩 쿼리로 기존 쿼리 결과에 추가적인 시간·공간 집계 레이어를 추가하세요. 자세한 내용은 중첩 쿼리 문서를 참고해요.

메트릭에 대한 실시간 정보 보기

Metrics Summary 페이지는 지정된 기간(지난 시간, 하루, 주) 동안 Datadog에 보고된 메트릭 목록을 표시해요. 메트릭은 메트릭 이름이나 태그로 필터링할 수 있어요.

메트릭 이름을 클릭하면 더 자세한 정보가 있는 세부 사이드패널이 표시돼요. 세부 사이드패널에는 해당 메트릭의 메타데이터(유형, 단위, 간격), 고유 메트릭 수, 보고 호스트 수, 제출된 태그 수, 메트릭에 제출된 모든 태그를 담은 표 등 핵심 정보가 표시돼요. 메트릭에 어떤 태그가 제출되고 있는지 보면 그 메트릭에서 보고되는 고유 메트릭 수를 이해하는 데 도움이 돼요. 이 수는 태그 값 조합에 의존하기 때문이에요.

참고: Metrics Summary의 세부 사이드패널에 보고된 고유 메트릭 수는 청구를 결정하지 않아요. 지난 달 사용량의 정확한 계산은 사용량 세부 정보를 참고하세요.

자세한 내용은 메트릭 요약 문서를 참고해요.

더 알아보기 (Learn more)

메트릭을 계속하려면 다음을 확인하세요: