포인트 플롯 위젯
포인트 플롯 위젯 (Point Plot Widget)
출처: 문서
본문
포인트 플롯(point plot)은 시간에 따른 개별 이벤트마다 점 하나씩을 표시해서, 집계되지 않은(unaggregated) 데이터 뷰를 제공해요. 트렌드를 평균 또는 집계된 선으로 시각화하는 시계열 위젯과 달리, 포인트 플롯은 원시(raw) 기본 데이터 포인트를 그대로 드러내요. 포인트 플롯을 사용해서 건강한 p95 뒤에 숨겨진 단 하나의 느린 요청을 잡아내고, 어느 특정 호스트나 서비스가 이상값(outlier)인지 식별하며, 해당 이벤트를 직접 클릭해서 조사할 수 있어요.
포인트 플롯은 이미 APM Traces, 데이터베이스 모니터링, 에이전트 관측성(Agent Observability) 탐색기에서 사용할 수 있어요. 이 위젯을 사용하면 동일한 뷰를 나만의 대시보드로 가져올 수 있어요.
설정 (Setup)
구성 (Configuration)
- 데이터 소스를 선택해요. 지원되는 소스에는 Logs, RUM, Traces, Spans, 데이터베이스 모니터링, 에이전트 관측성이 포함돼요.
- 플롯할 이벤트로 필터링할 쿼리를 정의해요.
- y축에 표시할 속성 또는 측정값을 선택해요 (예: 지연(latency)의 경우
duration, 오류 추적의 경우error_rate). - 선택 사항: 태그나 속성으로 이벤트를 그룹화해서 (예:
service,host,env) 그룹별로 점 색상을 구분해요. - 그래프 제목을 지정하거나, 필드를 비워 두면 제안된 제목이 사용돼요.
옵션 (Options)
Y축 컨트롤 (Y-axis controls)
| 옵션 | 설명 |
|---|---|
| 배율 (Scale) | y축 배율을 선형(Linear) 또는 로그(Log) 로 설정해서 넓은 값 범위의 데이터를 처리해요. |
| 최소/최대 (Min/Max) | y축을 고정 범위로 고정하거나, 데이터에 맞추려면 자동(Auto) 으로 남겨 둬요. |
가로 마커 (Horizontal markers)
SLO 목표나 알림 경계 같은 임계값을 표시하기 위한 기준선을 추가해요. 각 마커에는 라벨과 색상을 지정할 수 있어요.
위젯 간 하이라이트 (Cross-widget highlighting)
위젯 간 하이라이트를 활성화하면 데이터 포인트 위에 마우스를 올렸을 때 대시보드의 다른 호환 위젯에서 해당 시간 범위가 하이라이트돼요.
컨텍스트 링크 (Context links)
컨텍스트 링크는 기본적으로 활성화되어 있으며 켜고 끌 수 있어요. 컨텍스트 링크는 대시보드 위젯을 Datadog의 다른 페이지나 타사 애플리케이션과 연결해줘서, 포인트 플롯에서 관련 트레이스, 로그, 쿼리로 바로 피벗(pivot)할 수 있게 해줘요.
전역 시간 (Global time)
위젯이 사용자 지정 시간 범위를 가질지 대시보드의 전역 시간 범위를 사용할지 선택해요.
지원되는 데이터 소스 (Supported data sources)
| 데이터 소스 | 예시 사용 사례 |
|---|---|
| APM Traces / Spans | 서비스별 스팬당 지연, 오류율 |
| Logs | 시간에 따른 개별 로그 이벤트 값 |
| RUM | 세션별 로드 시간, 개별 액션 지속 시간 |
| 데이터베이스 모니터링 | 느린 쿼리 식별을 위한 개별 쿼리 지속 시간 |
| 에이전트 관측성 | 요청별 토큰 수, 지연, 오류율 |
사용 사례 (Use cases)
- 집계에 숨겨진 이상값 찾아내기: 건강한 p95는 단 하나의 극도로 느린 요청을 가릴 수 있어요. 포인트 플롯은 그 개별 이벤트를 드러내서 직접 조사할 수 있게 해줘요.
- 이상 현상의 원인 식별하기:
service,host,env별로 점에 색상을 지정해서 어느 특정 엔티티가 다르게 동작하는지 정확히 찾아내요. - 이벤트별 성능 모니터링: 집계로 데이터가 평평해지지 않도록 개별 쿼리 지속 시간, 스팬 지연, 오류율을 추적해요.
API
이 위젯은 **대시보드 API**와 함께 사용할 수 있어요. 위젯 JSON 스키마 정의에 대해서는 다음 표를 참고하세요.
| 필드 | 타입 | 설명 |
|---|---|---|
| custom_links | object[] | 사용자 지정 링크 목록. |
| is_hidden | boolean | 컨텍스트 메뉴 링크 표시 여부를 전환하는 플래그. |
| label | string | 사용자 지정 링크 URL의 라벨. 라벨을 짧고 명확하게 유지하세요. 메트릭과 태그를 변수로 사용하세요. |
| link | string | 사용자 지정 링크의 URL. URL은 http 또는 https를 포함해야 해요. 상대 URL은 /로 시작해야 해요. |
| override_label | string | 컨텍스트 메뉴 링크를 나타내는 라벨 ID. logs, hosts, traces, profiles, processes, containers, rum 중 하나가 될 수 있어요. |
| description | string | 위젯의 설명. |
| legend | object | 포인트 플롯 위젯의 범례 구성. |
| type [필수] | enum | 포인트 플롯 위젯에 표시할 범례 유형. 허용 enum 값: automatic,none |
| markers | object[] | 위젯의 마커 목록. |
| display_type | string | 다음 조합: 심각도 오류(error), 경고(warning), 정상(ok) 또는 정보(info); 선 유형: dashed, solid 또는 bold. Distribution 위젯의 경우 percentile로 설정할 수 있어요. |
| label | string | 마커 위에 표시할 라벨. |
| time | string | 위젯의 타임스탬프. |
| value [필수] | string | 적용할 값. 단일 값(y = 15) 또는 값 범위(0 < y < 10)일 수 있어요. display_type이 percentile로 설정된 Distribution 위젯의 경우 숫자 백분위 값(예: P90의 경우 "90")이어야 해요. |
| requests [필수] | object[] | 위젯의 요청 구성 목록. |
| limit | int64 | 반환할 최대 데이터 포인트 수. |
| projection [필수] | object | 포인트 플롯 위젯의 프로젝션 구성. |
| dimensions [필수] | object[] | 프로젝션의 차원 매핑 목록. |
| alias | string | 열의 별칭. |
| column [필수] | string | 데이터셋의 소스 열 이름. |
| dimension [필수] | enum | 포인트 플롯의 차원. 허용 enum 값: group,time,y,radius |
| extra_columns | string[] | 프로젝션에 포함할 추가 열. |
| type [필수] | enum | 프로젝션 유형. 허용 enum 값: point_plot |
| query [필수] | object | 데이터 프로젝션 요청의 쿼리 구성. |
| data_source [필수] | string | 쿼리의 데이터 소스. |
| indexes | string[] | 쿼리할 인덱스 목록. |
| query_string [필수] | string | 이벤트를 필터링할 쿼리 문자열. |
| storage | string | 쿼리의 스토리지 위치. |
| request_type [필수] | enum | 데이터 프로젝션 요청 유형. 허용 enum 값: data_projection |
| time | object | 위젯의 시간 설정. |
| title | string | 위젯 제목. |
| title_align | enum | 위젯 텍스트 정렬 방식. 허용 enum 값: center,left,right |
| title_size | string | 제목 크기. |
| type [필수] | enum | 포인트 플롯 위젯 유형. 허용 enum 값: point_plot 기본값: point_plot |
| yaxis | object | 위젯의 축 컨트롤. |
| include_zero | boolean | true로 설정하면 0을 포함해요. |
| label | string | 그래프에 표시할 축의 라벨. Scatterplot 위젯에서만 사용할 수 있어요. |
| max | string | 축에 표시할 최대 숫자 값. 기본값: auto |
| min | string | 축에 표시할 최소 숫자 값. 기본값: auto |
| scale | string | 배율 유형. 가능한 값은 linear, log, sqrt, pow## (예: pow2 또는 pow0.5). 기본값: linear |
time 객체는 라이브 스팬(live span) 래퍼이며 live_span(허용 enum: 1m,5m,10m,15m,30m,1h,4h,1d,2d,1w,1mo,3mo,6mo,week_to_date,month_to_date,1y,alert)과 hide_incomplete_cost_data 필드를 가져요.
예시:
{
"custom_links": [
{
"is_hidden": false,
"label": "Search logs for {{host}}",
"link": "https://app.datadoghq.com/logs?query={{host}}",
"override_label": "logs"
}
],
"description": "string",
"legend": {
"type": "automatic"
},
"markers": [
{
"display_type": "error dashed",
"label": "Error threshold",
"time": "string",
"value": "y = 15"
}
],
"requests": [
{
"limit": "integer",
"projection": {
"dimensions": [
{
"alias": "string",
"column": "duration",
"dimension": "y"
}
],
"extra_columns": [],
"type": "point_plot"
},
"query": {
"data_source": "logs",
"indexes": [],
"query_string": "service:web-store",
"storage": "string"
},
"request_type": "data_projection"
}
],
"time": {
"hide_incomplete_cost_data": false,
"live_span": "5m"
},
"title": "string",
"title_align": "string",
"title_size": "string",
"type": "point_plot",
"yaxis": {
"include_zero": false,
"label": "string",
"max": "string",
"min": "string",
"scale": "string"
}
}