쿼리
쿼리 (Querying)
메트릭, 로그, 트레이스, 모니터, 대시보드, 노트북 등 무엇을 쓰든 Datadog의 모든 그래프는 동일한 기본 기능을 갖고 있어요. 이 페이지는 그래픽 편집기로 쿼리하는 방법을 설명합니다. 고급 사용자는 JSON으로 그래프를 만들고 편집할 수 있어요.
출처: 문서
본문
개요
메트릭, 로그, 트레이스, 모니터, 대시보드, 노트북 등을 사용하든, Datadog의 모든 그래프는 동일한 기본 기능을 가져요. 이 페이지는 그래픽 편집기로 쿼리하는 방법을 설명해요. 고급 사용자는 JSON으로 그래프를 만들고 편집할 수 있는데, 자세한 내용은 JSON으로 그래프 만들기를 참고하세요.
대시보드나 노트북 페이지의 그래프 편집기를 사용해 쿼리할 수 있고, 어느 페이지에서나 사용할 수 있는 Quick Graphs를 사용할 수도 있어요. 아무 페이지에서 G를 눌러 Quick Graphs를 여세요. 자세한 내용은 Quick Graphs 가이드를 참고하세요.
그래핑 편집기
위젯에서 오른쪽 상단의 연필 아이콘을 클릭해 그래핑 편집기를 여세요. 그래핑 편집기에는 다음 탭이 있어요:
- Share: 그래프를 외부 웹 페이지에 임베드.
- JSON: 더 유연한 편집기이며, 그래프 정의 언어에 대한 지식이 필요해요.
- Edit: 그래핑 옵션을 위한 기본 UI 탭.
그래핑 편집기를 처음 열면 Edit 탭에 있어요. 여기서 UI를 사용해 대부분의 설정을 고를 수 있어요. 예시:
{% image source="https://docs.dd-static.net/images/dashboards/querying/references-graphing-edit-window-with-y-2.e2fead6b04aa6c492e75b947ea44b51f.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/dashboards/querying/references-graphing-edit-window-with-y-2.e2fead6b04aa6c492e75b947ea44b51f.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Graphing Edit Tab" /%}
그래프 구성하기
대시보드에서 그래프를 구성하려면 다음 과정을 따르세요:
- 시각화 선택
- 메트릭 정의
- 메트릭 필터
- 시간 집계 구성
- 공간 집계 구성
- 함수 적용
- 그래프 제목 지정
시각화 선택
사용 가능한 위젯에서 시각화를 선택하세요.
메트릭 정의
Metric 옆의 드롭다운에서 검색하거나 선택해 그래프로 그릴 메트릭을 고르세요. 어떤 메트릭을 써야 할지 모르겠다면, 메트릭 드롭다운이 unit, type, interval, description, tags, tag values 수 같은 추가 정보를 제공해요.
Datadog 또는 OpenTelemetry 소스 표시기를 볼 수도 있어요. 환경에서 둘 다 사용한다면, Datadog의 Telemetry source 쿼리 수정자를 사용해 단일 그래프에서 Datadog과 OpenTelemetry 메트릭을 함께 쿼리할 수 있어요.
{% image source="https://docs.dd-static.net/images/dashboards/querying/metric_dropdown.449f537c445abddd9e92e768c897c21e.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/dashboards/querying/metric_dropdown.449f537c445abddd9e92e768c897c21e.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Metric Selector Dropdown" /%}
Metrics Explorer, 노트북으로 메트릭을 더 탐색하거나, Metrics Summary 페이지에서 메트릭 목록을 확인하세요.
필터
선택한 메트릭은 메트릭 오른쪽의 from 드롭다운을 사용해 호스트나 태그로 필터링할 수 있어요. 기본 필터는 *(everywhere)*예요.
{% image source="https://docs.dd-static.net/images/dashboards/querying/filter-3.951eb67212f9ea09268f61caca4cf512.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/dashboards/querying/filter-3.951eb67212f9ea09268f61caca4cf512.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Filter the graph with the 'from' field, using template variables and boolean logic" /%}
from드롭다운에서 고급 필터링을 사용해 불리언 필터 또는 와일드카드 필터 쿼리를 평가하세요.- 템플릿 변수를 사용해 쿼리를 동적으로 필터링하세요. 태그 키와 함께
$를 추가하면 그래프가 템플릿 변수 드롭다운에서 선택한 태그를 자동으로 적용해요. 자세한 내용은 템플릿 변수 문서를 참고하세요.
태그에 대해 더 알아보려면 태깅 문서를 참고하세요.
집계와 롤업
집계 방법
집계 방법은 필터 드롭다운 옆에 있어요. 기본값은 avg by지만, 방법을 max by, min by, sum by로 바꿀 수 있어요. 대부분의 경우 메트릭은 많은 호스트나 인스턴스에서 오는 여러 값을 각 시간 간격에 가져요. 선택한 집계 방법에 따라 메트릭이 단일 선으로 집계되는 방식이 결정돼요.
시간 집계 구성
위에서 선택한 옵션과 관계없이, 그래프를 담는 창의 물리적 크기 제약 때문에 항상 어떤 데이터 집계가 발생해요. 메트릭이 매초 업데이트되고 4시간 분량의 데이터를 본다면, 모든 것을 표시하려면 14,400개의 포인트가 필요해요. 표시되는 각 그래프는 한 번에 약 300개의 포인트를 보여줘요. 따라서 화면에 표시되는 각 포인트는 48개의 데이터 포인트를 나타내요.
실제로 메트릭은 Agent가 15-20초마다 수집해요. 따라서 하루 분량 데이터는 4,320개의 데이터 포인트예요. 단일 그래프에 하루 분량의 데이터를 표시하면 Datadog이 자동으로 데이터를 롤업해요. 시간 집계에 대한 자세한 내용은 메트릭 소개를 참고하세요. 롤업 간격과 Datadog이 데이터 포인트를 자동으로 롤업하는 방식에 대해 더 알아보려면 Rollup 문서를 참고하세요.
데이터를 수동으로 롤업하려면 rollup 함수를 사용하세요. 시그마 아이콘을 클릭해 함수를 추가하고 드롭다운 메뉴에서 rollup을 선택하세요. 그런 다음 데이터 집계 방식과 간격(초)을 선택하세요.
이 쿼리는 1분 버킷으로 롤업된 모든 머신의 평균 사용 가능 디스크 공간의 총합을 나타내는 단일 선을 만들어요:
{% image source="https://docs.dd-static.net/images/dashboards/querying/references-graphing-rollup-example-minutes.7d9c1b4e7eb570db0e906e8f9b4a3275.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/dashboards/querying/references-graphing-rollup-example-minutes.7d9c1b4e7eb570db0e906e8f9b4a3275.png?auto=format&fit=max&w=850&dpr=2 2x" alt="rollup example of the system.disk.free metric across all machines" /%}
JSON 보기로 전환하면 쿼리는 다음과 같아요:
"query": "avg:system.disk.free{*}.rollup(avg, 60)"
전체 JSON은 다음과 같아요:
{
"viz": "timeseries",
"requests": [
{
"formulas": [
{
"formula": "query1"
}
],
"queries": [
{
"data_source": "metrics",
"name": "query1",
"query": "avg:system.disk.free{*}.rollup(avg, 60)"
}
],
"response_format": "timeseries",
"type": "line",
"style": {
"palette": "dog_classic",
"type": "solid",
"width": "normal"
}
}
],
"yaxis": {
"scale": "linear",
"min": "auto",
"max": "auto",
"include_zero": true,
"label": ""
},
"markers": []
}
JSON 보기 사용에 대해 더 알아보려면 JSON으로 그래프 만들기를 참고하세요.
공간 집계 구성
집계 방법 드롭다운 옆에서 그래프에서 선이나 그룹을 구성하는 것이 무엇인지 선택하세요. 예를 들어 host를 선택하면 모든 host에 대한 선이 있어요. 각 선은 선택한 방법으로 집계된 특정 host의 선택된 메트릭으로 구성돼요.
또한 메트릭 정의에 사용된 메트릭 드롭다운의 태그를 클릭해 데이터를 그룹화하고 집계할 수 있어요.
중첩 쿼리 (Nested Queries)
Datadog의 중첩 쿼리 기능을 사용하면 기존 메트릭 쿼리의 결과에 추가적인 시간 및/또는 공간 집계 레이어를 추가할 수 있어요. 이 고급 쿼리 기능은 count/rate/gauge 유형 메트릭의 집계된 쿼리 결과에 백분위수와 표준편차를 계산하고, 과거 시간 프레임에 걸쳐 더 높은 해상도의 쿼리에 접근할 수 있게 해 줘요.
자세한 내용은 중첩 쿼리 문서를 참고하세요.
고급 그래핑
분석 요구에 따라 쿼리에 다른 수학 함수를 적용할 수 있어요. 예로는 rate와 미분, 평활화 등이 있어요. 사용 가능한 함수 목록을 참고하세요.
Datadog은 다양한 산술 연산과 비교 함수로 메트릭, 로그, 트레이스 및 기타 데이터 소스를 그래프로 그리는 기능도 지원해요. +, -, /, *, minimum(), maximum()을 사용해 그래프에 표시되는 값을 수정하세요. 이 구문은 정수 값과 여러 메트릭을 사용한 산술을 모두 허용해요.
메트릭을 별도로 그래프로 그리려면 쉼표(,)를 사용하세요. 예: a, b, c.
참고: 쉼표를 사용한 쿼리는 시각화에서만 지원되며, 모니터에서는 동작하지 않아요. 모니터에서 여러 메트릭을 결합하려면 불리언 연산자나 산술 연산을 사용하세요.
{% collapsible-section %}
정수를 사용한 메트릭 산술
산술 연산을 수행해 그래프에서 메트릭의 표시 값을 수정하세요. 예를 들어 특정 메트릭의 두 배를 시각화하려면 그래프 편집기에서 Advanced… 링크를 클릭하세요. 그런 다음 Formula 상자에 산술을 입력하세요. 이 경우 a * 2:
{% image source="https://docs.dd-static.net/images/dashboards/querying/arithmetic_4.1149385306d2e7e1ade42c5450eea1b6.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/dashboards/querying/arithmetic_4.1149385306d2e7e1ade42c5450eea1b6.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Formula example - multiply" /%}
{% /collapsible-section %}
{% collapsible-section %}
두 메트릭 간의 산술
한 메트릭을 다른 메트릭으로 나눠 메트릭의 백분율을 시각화하세요. 예:
jvm.heap_memory / jvm.heap_memory_max
그래프 편집기에서 Advanced… 옵션을 사용하고 Add Query를 선택하세요. 각 쿼리는 알파벳 순서로 문자를 할당받아요: 첫 메트릭은 a, 두 번째 메트릭은 b 등으로 표시돼요.
그런 다음 Formula 상자에 산술을 입력하세요(이 예시에서는 a / b). 수식 결과만 표시하려면 시각화에서 쿼리 숨기기(Hide a query from the visualization)를 참고하세요.
{% image source="https://docs.dd-static.net/images/dashboards/querying/arithmetic_5.9bec8c5e13c3d3e54e6fce3380c8b006.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/dashboards/querying/arithmetic_5.9bec8c5e13c3d3e54e6fce3380c8b006.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Formula example - ratio" /%}
error 로그와 info 로그 간의 비율을 그래프로 그리는 방법을 보여주는 또 다른 예시예요.
status:error / status:info
{% image source="https://docs.dd-static.net/images/dashboards/querying/arithmetic_6.d03ea7d3a672d242b134d87d1a0703b9.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/dashboards/querying/arithmetic_6.d03ea7d3a672d242b134d87d1a0703b9.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Formula example - logs ratio" /%}
참고: 수식에는 문자가 지정되지 않아요. 수식 간에는 산술을 할 수 없어요. {% /collapsible-section %}
시각화에서 쿼리 숨기기
위젯에 여러 쿼리와 수식이 있으면 개별 쿼리를 숨겨 그래프에 수식 결과만 나타나게 할 수 있어요. 쿼리의 문자 라벨을 클릭해 그래프에서 가시성을 토글하세요. 파란 라벨은 쿼리가 표시됨을, 회색 라벨은 숨겨짐을 나타내요. 숨겨진 쿼리는 수식 계산에 여전히 사용돼요.
{% collapsible-section %}
두 쿼리 간의 Minimum 또는 Maximum
minimum()과 maximum()을 사용해 두 쿼리를 포인트별로 비교하고 각 타임스탬프에서 더 낮거나 더 높은 값을 반환하세요.
참고: 산술 비교에 min()과 max()를 사용하는 것은 더 이상 사용하지 않아요(deprecated). 대신 minimum()과 maximum()을 사용하세요. 이 폐기는 산술 비교 구문에만 적용돼요. min by, max by 같은 집계 방법과 min/max를 사용한 중첩 쿼리 집계는 변경되지 않아요.
다음은 두 가용성 영역 간의 최대 CPU 사용량을 찾기 위해 maximum()을 사용한 예시예요.
maximum(system.cpu.user{availability-zone:eastus-1}, system.cpu.user{availability-zone:eastus-2})
{% image source="https://docs.dd-static.net/images/dashboards/querying/minmax_metrics_example.f07b8697703d10937353d6cc4a7f3872.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/dashboards/querying/minmax_metrics_example.f07b8697703d10937353d6cc4a7f3872.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Formula example for 'maximum' showing the higher value between two metric queries" /%}
또한 서로 다른 제품의 두 쿼리 간의 최소값을 계산할 수도 있어요. 다음은 error 상태와 warning 상태의 로그 간의 최소값을 찾기 위해 minimum()을 사용한 또 다른 예시예요.
minimum(status:error, status:warn)
{% image source="https://docs.dd-static.net/images/dashboards/querying/minmax_logs_platform_example.3e6070a42547b405393f1d204f9a101f.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/dashboards/querying/minmax_logs_platform_example.3e6070a42547b405393f1d204f9a101f.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Formula example for 'minimum' showing the lower value between two log queries" /%}
{% /collapsible-section %}
{% collapsible-section %}
time() 함수
time() 함수는 현재 Unix 시간을 초 단위로 timeseries로 반환해요. 수식에서 메트릭의 타임스탬프를 현재와 비교하는 데 사용하세요. 데이터 신선도를 모니터링하거나 만료까지의 시간을 계산하는 데 도움이 돼요.
예를 들어 마지막 백업이 보고된 이후 경과된 시간(초)을 계산하려면 time()을 사용해 현재와 백업 메트릭의 타임스탬프 간의 차이를 구할 수 있어요.
time() - max:backup.last_completed_timestamp{*}
{% /collapsible-section %}
별칭 만들기 (Create an alias)
데이터 소스에 커스텀 별칭을 만들어 사용자가 그래프 결과를 더 쉽게 해석할 수 있게 해 주세요.
{% image source="https://docs.dd-static.net/images/dashboards/querying/custom_alias.3c5231edc1ffe4a6f3c7ff5b2349a00c.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/dashboards/querying/custom_alias.3c5231edc1ffe4a6f3c7ff5b2349a00c.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Custom alias" /%}
제목 만들기
제목을 입력하지 않으면 선택 사항을 기반으로 자동으로 생성돼요. 하지만 그래프의 목적을 설명하는 제목을 만드는 것이 권장됩니다.
저장
Done을 클릭해 작업을 저장하고 편집기를 종료하세요. 언제든 편집기로 돌아와 그래프를 변경할 수 있어요. 저장하고 싶지 않은 변경을 했다면 Cancel을 클릭하세요.
추가 옵션
이벤트 오버레이 (Event overlays)
{% image source="https://docs.dd-static.net/images/dashboards/querying/event_overlay_example.7b8bdf995454a3db2da9bf1d3b2d0e9e.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/dashboards/querying/event_overlay_example.7b8bdf995454a3db2da9bf1d3b2d0e9e.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Timeseries widgets showing RUM error rates with deployment events overlaid" /%}
Timeseries 시각화의 그래핑 편집기에 있는 Event Overlays 섹션을 사용해 이벤트 상관관계를 보세요. 검색 필드에 텍스트나 구조화된 검색 쿼리를 입력하세요. 이벤트 검색은 로그 검색 구문을 사용해요.
이벤트 오버레이는 모든 데이터 소스를 지원해요. 이를 통해 비즈니스 이벤트와 Datadog 서비스의 데이터 간 상관관계를 더 쉽게 파악할 수 있어요.
이벤트 오버레이를 사용하면 조직 내 작업이 애플리케이션과 인프라 성능에 어떻게 영향을 미치는지 빠르게 볼 수 있어요. 몇 가지 예시 사용 사례:
- 배포 이벤트가 겹쳐진 RUM 오류율
- 추가 서버 프로비저닝 관련 이벤트와 CPU 사용량 상관관계
- 의심스러운 로그인 활동과 송신 트래픽 상관관계
- 적절한 알림이 구성되었는지 확인하기 위해 모니터 알림과 모든 timeseries 데이터 상관관계
스플릿 그래프 (Split graph)
스플릿 그래프로 메트릭 시각화를 태그별로 분리해서 볼 수 있어요.
{% image source="https://docs.dd-static.net/images/dashboards/querying/split_graph_beta.a7234bd927065b96a14b4c2bc1eb4a57.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/dashboards/querying/split_graph_beta.a7234bd927065b96a14b4c2bc1eb4a57.png?auto=format&fit=max&w=850&dpr=2 2x" alt="View split graphs of metric container.cpu.usage in the fullscreen widget" /%}
- 그래프를 볼 때 Split Graph 탭을 통해 이 기능에 접근합니다.
- metric별로 정렬을 변경해 그래프로 그리려는 데이터와 다른 메트릭 간의 관계를 볼 수 있어요.
- limit 값을 변경해 표시되는 그래프 수를 제한할 수 있어요.
더 알아보기 (Learn more)
도움이 되는 추가 문서, 링크, 아티클이에요: