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

쿼리 값 위젯

원문 보기 위키 갱신

쿼리 값 위젯 (Query Value Widget)

출처: 문서

본문

쿼리 값(Query Value)은 주어진 메트릭, APM 또는 로그 쿼리의 현재 값을 표시해요. 값이 예상 범위에 있는지 전달하기 위해 조건부 서식(예: 녹색/노란색/빨간색 배경)이 함께 제공돼요. 여기에 선택적으로 시계열 데이터의 배경을 추가할 수도 있어요. 쿼리 값이 표시하는 값은 순간 측정일 필요는 없어요.

위젯은 보고된 최신 값, 또는 시간 창 전반의 모든 쿼리 값에서 계산된 집계를 표시할 수 있어요. 이러한 시각화는 인프라스트럭처 쿼리에 대한 좁지만 명확한 창을 제공해요.

설정 (Setup)

구성 (Configuration)

  1. 그래프로 그릴 데이터를 선택해요.
    • 메트릭: 메트릭 쿼리를 구성하려면 쿼리 문서를 참고하세요.
    • 인덱스 스팬(Indexed Spans): 인덱스 스팬 쿼리를 구성하려면 트레이스 검색 문서를 참고하세요.
    • 로그 이벤트: 로그 이벤트 쿼리를 구성하려면 로그 검색 문서를 참고하세요.
  2. 쿼리 값을 지정된 시간 범위의 모든 데이터 포인트의 avg, min, sum, max, last 값으로 계산된 단일 값으로 줄여요. 지원되는 곳에서는 p75 또는 p90 같은 백분위 값도 사용할 수 있어요.
  3. 단위와 서식을 선택해요. 자동 서식(Autoformat)은 단위를 기준으로 대시보드 배율을 조정해요.
  4. (선택) 표시되는 값에 따라 조건부 서식을 구성해요. 더 많은 예시는 시각적 서식 규칙(Visual Formatting Rules)을 참고하세요.
  5. (선택) 시계열 배경을 오버레이해요.
    • 최소에서 최대(Min to Max): 최소에서 최대까지의 배율 그래프.
    • 선(Line): 0을 포함하는 배율 그래프.
    • 막대(Bars): 개별적인 주기적 측정값을 표시.

옵션 (Options)

시각적 서식 규칙 (Visual formatting rules)

참고: 시각적 서식 규칙은 메트릭의 원시 값을 기준으로 해야 해요. 메트릭 기본 단위가 나노초인데 쿼리 값이 초로 자동 서식된다면, 조건부 규칙은 나노초 기준으로 정해야 해요.

시각적 서식 규칙으로 쿼리 값 위젯의 배경을 사용자화할 수 있어요. 배경 색상, 글꼴 색상, 또는 사용자 지정 이미지를 추가할 수 있어요. 사용자 지정 이미지의 경우 로컬 컴퓨터에서 이미지를 업로드하거나 공개 인터넷의 이미지를 참조할 수 있어요. 내부 이미지를 참조하려면 내부 서버가 교차 출처 요청(cross origin requests)을 지원하도록 업데이트해야 해요.

변경 표시기 (Change indicator)

변경 표시기(Change Indicator)를 활성화하면 현재 값이 이전 시간 범위와 어떻게 비교되는지 강조할 수 있어요.

  • 표시(Display): 상대 변경(Relative Change, 백분율), 절대 변경(Absolute Change, 원시 값), 모두(Both), 또는 끄기(Off)
  • 색상(Color): 증가가 좋음(Increases as better, 초록 ↑, 빨강 ↓), 감소가 좋음(Decreases as better, 빨강 ↑, 초록 ↓), 또는 중립(Neutral)
  • 비교 대상(Compared to): 이전 기간(Previous Period), 이전 일/주/월(Previous Day/Week/Month), 또는 사용자 지정(Custom) 시간 범위

위젯은 기본 메트릭 아래에 차이를 표시해서, 최근 트렌드를 한눈에 강조하는 데 도움을 줘요.

컨텍스트 링크는 기본적으로 활성화되어 있으며 켜고 끌 수 있어요. 컨텍스트 링크는 대시보드 위젯을 Datadog의 다른 페이지 또는 타사 애플리케이션과 연결해줘요.

전역 시간 (Global time)

위젯이 사용자 지정 시간 범위를 가질지 대시보드의 전역 시간 범위를 사용할지 선택해요.

API

이 위젯은 **대시보드 API**와 함께 사용할 수 있어요. 위젯 JSON 스키마 정의에 대해서는 다음 표를 참고하세요.

쿼리 값 위젯의 최상위 필드에는 다음이 있어요.

필드 타입 설명
autoscale boolean 자동 크기 조정(오토스케일) 사용 여부.
custom_links object[] 사용자 지정 링크 목록.
custom_unit string 위젯에 원하는 단위를 표시.
description string 위젯의 설명.
precision int64 표시할 소수 자릿수. 정의하지 않으면 위젯은 원시 값을 사용해요.
requests [필수] object[] 위젯 정의.
time object 위젯의 시간 설정.
title string 위젯 제목.
type [필수] enum 쿼리 값 위젯 유형. 허용 enum 값: query_value

requests 항목은 aggregator(avg,last,max,min,sum,percentile), comparison(변경 표시기용), conditional_formats, formulas, queries를 포함할 수 있어요. 전체 예시는 다음과 같아요.

{
  "autoscale": false,
  "custom_links": [
    {
      "is_hidden": false,
      "label": "Search logs for {{host}}",
      "link": "https://app.datadoghq.com/logs?query={{host}}",
      "override_label": "logs"
    }
  ],
  "custom_unit": "string",
  "description": "string",
  "precision": "integer",
  "requests": [
    {
      "aggregator": "string",
      "apm_query": {
        "compute": {
          "aggregation": "avg",
          "facet": "@duration",
          "interval": 5000
        },
        "group_by": [
          {
            "facet": "resource_name",
            "limit": 50,
            "sort": {
              "aggregation": "avg",
              "facet": "@string_query.interval",
              "order": "desc"
            }
          }
        ],
        "index": "days-3,days-7",
        "multi_compute": [
          {
            "aggregation": "avg",
            "facet": "@duration",
            "interval": 5000
          }
        ],
        "search": {
          "query": ""
        }
      },
      "audit_query": {
        "compute": {
          "aggregation": "avg",
          "facet": "@duration",
          "interval": 5000
        },
        "group_by": [
          {
            "facet": "resource_name",
            "limit": 50,
            "sort": {
              "aggregation": "avg",
              "facet": "@string_query.interval",
              "order": "desc"
            }
          }
        ],
        "index": "days-3,days-7",
        "multi_compute": [
          {
            "aggregation": "avg",
            "facet": "@duration",
            "interval": 5000
          }
        ],
        "search": {
          "query": ""
        }
      },
      "comparison": {
        "directionality": "string",
        "duration": {
          "custom_timeframe": {
            "from": 1779290190000,
            "to": 1779894990000
          },
          "type": "previous_timeframe"
        },
        "type": "string"
      },
      "conditional_formats": [
        {
          "comparator": ">",
          "custom_bg_color": "string",
          "custom_fg_color": "string",
          "hide_value": false,
          "image_url": "string",
          "metric": "string",
          "palette": "blue",
          "timeframe": "string",
          "value": 0
        }
      ],
      "event_query": {
        "compute": {
          "aggregation": "avg",
          "facet": "@duration",
          "interval": 5000
        },
        "group_by": [
          {
            "facet": "resource_name",
            "limit": 50,
            "sort": {
              "aggregation": "avg",
              "facet": "@string_query.interval",
              "order": "desc"
            }
          }
        ],
        "index": "days-3,days-7",
        "multi_compute": [
          {
            "aggregation": "avg",
            "facet": "@duration",
            "interval": 5000
          }
        ],
        "search": {
          "query": ""
        }
      },
      "formulas": [
        {
          "alias": "string",
          "cell_display_mode": "number",
          "cell_display_mode_options": {
            "trend_type": "area",
            "y_scale": "shared"
          },
          "conditional_formats": [
            {
              "comparator": ">",
              "custom_bg_color": "string",
              "custom_fg_color": "string",
              "hide_value": false,
              "image_url": "string",
              "metric": "string",
              "palette": "blue",
              "timeframe": "string",
              "value": 0
            }
          ],
          "formula": "func(a) + b",
          "limit": {
            "count": "integer",
            "order": "asc"
          },
          "number_format": {
            "unit": {
              "per_unit_name": "bytes",
              "type": "canonical_unit",
              "unit_name": "bytes"
            },
            "unit_scale": {
              "type": "canonical_unit",
              "unit_name": "bytes"
            }
          },
          "style": {
            "palette": "classic",
            "palette_index": 1
          }
        }
      ],
      "log_query": {
        "compute": {
          "aggregation": "avg",
          "facet": "@duration",
          "interval": 5000
        },
        "group_by": [
          {
            "facet": "resource_name",
            "limit": 50,
            "sort": {
              "aggregation": "avg",
              "facet": "@string_query.interval",
              "order": "desc"
            }
          }
        ],
        "index": "days-3,days-7",
        "multi_compute": [
          {
            "aggregation": "avg",
            "facet": "@duration",
            "interval": 5000
          }
        ],
        "search": {
          "query": ""
        }
      },
      "network_query": {
        "compute": {
          "aggregation": "avg",
          "facet": "@duration",
          "interval": 5000
        },
        "group_by": [
          {
            "facet": "resource_name",
            "limit": 50,
            "sort": {
              "aggregation": "avg",
              "facet": "@string_query.interval",
              "order": "desc"
            }
          }
        ],
        "index": "days-3,days-7",
        "multi_compute": [
          {
            "aggregation": "avg",
            "facet": "@duration",
            "interval": 5000
          }
        ],
        "search": {
          "query": ""
        }
      },
      "process_query": {
        "filter_by": [],
        "limit": "integer",
        "metric": "system.load.1",
        "search_by": "string"
      },
      "profile_metrics_query": {
        "compute": {
          "aggregation": "avg",
          "facet": "@duration",
          "interval": 5000
        },
        "group_by": [
          {
            "facet": "resource_name",
            "limit": 50,
            "sort": {
              "aggregation": "avg",
              "facet": "@string_query.interval",
              "order": "desc"
            }
          }
        ],
        "index": "days-3,days-7",
        "multi_compute": [
          {
            "aggregation": "avg",
            "facet": "@duration",
            "interval": 5000
          }
        ],
        "search": {
          "query": ""
        }
      },
      "q": "string",
      "queries": [],
      "response_format": "timeseries",
      "rum_query": {
        "compute": {
          "aggregation": "avg",
          "facet": "@duration",
          "interval": 5000
        },
        "group_by": [
          {
            "facet": "resource_name",
            "limit": 50,
            "sort": {
              "aggregation": "avg",
              "facet": "@string_query.interval",
              "order": "desc"
            }
          }
        ],
        "index": "days-3,days-7",
        "multi_compute": [
          {
            "aggregation": "avg",
            "facet": "@duration",
            "interval": 5000
          }
        ],
        "search": {
          "query": ""
        }
      },
      "security_query": {
        "compute": {
          "aggregation": "avg",
          "facet": "@duration",
          "interval": 5000
        },
        "group_by": [
          {
            "facet": "resource_name",
            "limit": 50,
            "sort": {
              "aggregation": "avg",
              "facet": "@string_query.interval",
              "order": "desc"
            }
          }
        ],
        "index": "days-3,days-7",
        "multi_compute": [
          {
            "aggregation": "avg",
            "facet": "@duration",
            "interval": 5000
          }
        ],
        "search": {
          "query": ""
        }
      }
    }
  ],
  "text_align": "string",
  "time": {
    "hide_incomplete_cost_data": false,
    "live_span": "5m"
  },
  "timeseries_background": {
    "type": "bars",
    "yaxis": {
      "include_zero": false,
      "label": "string",
      "max": "string",
      "min": "string",
      "scale": "string"
    }
  },
  "title": "string",
  "title_align": "string",
  "title_size": "string",
  "type": "query_value"
}

더 알아보기 (Learn more)