Datadog Agent와 OpenMetrics 또는 Prometheus 통합을 사용하여 Kubernetes 내부 애플리케이션에서 노출된 Prometheus 및 OpenMetrics 메트릭을 수집합니다. 기본적으로 일반 Prometheus 검사에서 검색된 모든 메트릭은 사용자 지정 메트릭으로 간주됩니다.
버전 6.5.0부터 Agent에 Prometheus 엔드포인트를 스크레이핑할 수 있는 OpenMetrics 및 Prometheus 검사가 포함됩니다. 사용자 지정 검사 작성을 비롯한 OpenMetricsCheck 인터페이스의 고급 사용법을 자세히 알아보려면 개발자 도구 섹션을 참조하세요.
이 페이지에는 Prometheus 엔드포인트에서 사용자 지정 메트릭을 스크레이핑하게 해주는 이러한 검사의 기본적인 사용법을 설명했습니다. Prometheus 및 OpenMetrics 메트릭이 Datadog 메트릭에 매핑되는 방식에 대한 자세한 설명은 Prometheus 메트릭을 Datadog 메트릭에 매핑 가이드를 참조하세요.
참고: OpenMetrics 검사가 더 효율적이고 Prometheus 텍스트 형식을 완전히 지원하기 때문에 Datadog에서는 이 검사 사용을 권장합니다. Prometheus 검사는 메트릭 엔드포인트가 텍스트 형식을 지원하지 않는 경우에만 사용하세요.
Datadog에서<METRIC_TO_FETCH> 메트릭 키를 <NEW_METRIC_NAME>으로 변환합니다.
metrics 구성은 사용자 지정 메트릭으로 검색할 메트릭 목록입니다. 가져올 각 메트릭과 Datadog에서 원하는 메트릭 이름을 키 값 쌍으로 포함합니다(예: {"<METRIC_TO_FETCH>":"<NEW_METRIC_NAME>"}). 과도한 사용자 지정 메트릭 요금을 방지하기 위해 Datadog에서는 필요한 메트릭만 포함하도록 범위를 제한할 것을 권장합니다. 대신 원하는 메트릭을 정규식으로 해석한 메트릭 이름 문자열 목록으로 제공하여 원하는 메트릭과 그 메트릭의 현재 이름을 가져올 수 있습니다. 모든 메트릭을 원하는 경우, "*"가 아니라 ".*"를 사용하세요.
Fleet Automation 페이지로 이동하여 openmetrics 통합을 필터링해 검사의 상태에 관한 상세한 정보를 조회합니다.
메트릭 요약 페이지로 이동하여 이 예시 포드에서 수집된 메트릭을 확인합니다. 이 구성은 메트릭 promhttp_metric_handler_requests, promhttp_metric_handler_requests_in_flight 및 go_memory로 시작하는 모든 노출된 메트릭을 수집합니다.
Prometheus 어노테이션으로 메트릭 수집(Prometheus 검사)
Datadog Agent는 Prometheus Autodiscovery를 사용해 네이티브 Prometheus 어노테이션을 감지하고(예: prometheus.io/scrape, prometheus.io/path, prometheus.io/port) 자동으로 OpenMetrics 검사를 예약하여 Kubernetes에서 Prometheus 메트릭을 수집할 수 있습니다.
참고: OpenMetrics 검사가 더 효율적이고 Prometheus 텍스트 형식을 완전히 지원하기 때문에 Datadog에서는 이 검사 사용을 권장합니다. Prometheus 검사는 메트릭 엔드포인트가 텍스트 형식을 지원하지 않는 경우에만 사용하세요.
요구 사항
Datadog Agent v7.27+ 또는 v6.27+(포드 검사용)
Datadog Cluster Agent v1.11+(서비스 및 엔드포인트 검사용)
구성
이 기능을 활성화하기 전에 어느 포드와 서비스에 prometheus.io/scrape=true 어노테이션이 있는지 검사하는 것이 좋습니다. 이 작업은 다음 명령으로 수행할 수 있습니다.
kubectl get pods -o=jsonpath='{.items[?(@.metadata.annotations.prometheus\.io/scrape=="true")].metadata.name}' --all-namespaces
kubectl get services -o=jsonpath='{.items[?(@.metadata.annotations.prometheus\.io/scrape=="true")].metadata.name}' --all-namespaces
Prometheus 스크레이프 기능이 활성화되면 Datadog Agent가 이러한 리소스에서 사용자 지정 메트릭을 수집합니다. 이러한 리소스에서 사용자 지정 메트릭을 수집하고 싶지 않은 경우, 이 어노테이션을 제거하거나 고급 구성 섹션에 설명된 것과 같이 Autodiscovery 규칙을 업데이트할 수 있습니다.
참고: 고급 구성 없이 이 기능을 활성화하면 사용자 지정 메트릭이 대폭 증가하여 청구에 영향이 발생할 수 있습니다. 컨테이너/포드/서비스의 일부에서만 메트릭을 수집하는 방법은 고급 구성 섹션을 참조하세요.
kubernetes_container_names 및 kubernetes_annotations가 모두 정의된 경우, AND 로직이 사용됩니다(두 규칙이 일치해야 함).
예시
다음 구성은 이름이 my-app이고 어노테이션 app=my-app을 사용해 포드에서 실행 중인 컨테이너를 대상으로 지정합니다. OpenMetrics 검사 구성은 send_distribution_buckets 옵션을 활성화하고 5초의 사용자 지정 시간 제한을 정의하도록 사용자 지정할 수 있습니다.