다음은 Prometheus OpenMetrics 구성 파일에 대한 몇 가지 주요 이름과 정의입니다.
키 이름
설명
cluster_name
Required.
클러스터의 이름입니다. 이 값은 모든 측정항목에 대한 clusterName 속성으로 포함됩니다.
verbose
문자열화된 부울.
true (기본값): 디버깅 정보를 기록합니다.
false: 오류 메시지만 기록합니다.
targets
통합에서 스크랩할 정적 끝점의 구성입니다. 여기에는 개체 목록이 포함되어 있습니다. 이 구조에 대한 자세한 내용은 대상 구성 에 대한 설명서를 참조하십시오.
scrape_enabled_label
Kubernetes
끈. 통합은 Kubernetes 포드 및 서비스에 주석이 달렸는지 또는 스크랩해야 하는지 결정하기 위해 이 값이 포함된 레이블이 있는지 확인합니다.
이는 메트릭을 무시하거나 New Relic으로 전송되는 특정 메트릭을 포함하여 데이터 양을 제한하려는 경우에 특히 유용합니다. 기본적으로 Prometheus가 스크랩할 수 있는 대상을 검색하는 데 사용하는 것과 동일한 레이블을 사용하기 때문에 설치하는 대부분의 내보내기는 이 레이블을 자동으로 설정합니다.
통합을 스크레이핑할 대상에 대한 세부적인 제어를 유지하려면 이 옵션을 다른 값(예: newrelic/scrape )으로 설정한 다음 주석 또는 레이블 newrelic/scrape: "true" 을 Kubernetes 객체에 추가할 수 있습니다. 둘 다 설정되면 주석이 레이블보다 우선합니다.
기본: "prometheus.io/scrape"
scrape_duration
스크레이퍼를 얼마나 자주 실행해야 합니다.
메모리 사용량을 줄이려면 이 값을 늘리십시오.
메모리 사용량을 높이려면 이 값을 줄이십시오.
메모리 사용량에 대한 영향은 모든 데이터를 한 번에 쿼리(및 버퍼링)하는 것을 피하기 위해 스크랩 간격에 걸쳐 대상 가져오기를 분산하기 때문입니다.
이 데이터의 시각화를 더 잘 지원하기 위해 히스토그램 메트릭을 기반으로 백분위수가 계산되어 New Relic으로 전송됩니다. 유효한 값은 50 , 95 및 99 입니다.
emitter_proxy
측정항목을 제출할 때 통합에서 사용하는 프록시:
[scheme]://[domain]:[port]
이 프록시는 대상에서 메트릭을 가져올 때 사용되지 않습니다.
기본적으로 비어 있으며 프록시가 사용되지 않습니다.
emitter_ca_file
서버 인증서를 확인할 때 이미터가 사용할 루트 CA에 추가할 인증서입니다. 비워 두면 TLS는 호스트의 루트 CA 세트를 사용합니다.
emitter_insecure_skip_verify
데이터를 제출할 때 이미터가 TLS 확인을 건너뛸지 여부입니다. 기본값: false .
disable_autodiscovery
k8s 클러스터에서 자동 검색을 비활성화하려면 true로 설정하십시오. 제한된 권한을 가진 서비스 계정으로 Pod를 실행할 때 유용할 수 있습니다. 기본값: false .
대상 키의 개체 구성
구성 파일의 대상 키에 하나 이상의 개체가 포함되도록 하려면 YAML 목록에서 다음 구조를 사용합니다.
키 이름
설명
description
이 대상의 URL에 대한 설명입니다.
urls
스크랩할 URL이 있는 문자열 목록입니다.
tls_config
요청을 보내는 데 사용되는 인증 구성입니다. TLS 및 상호 TLS를 지원합니다. 자세한 내용은 상호 TLS 인증 에 대한 설명서를 참조하십시오.
New Relic의 Prometheus OpenMetrics 통합은 스크래핑할 대상을 자동으로 검색합니다. 대상을 구성할 때 사용할 포트 및 엔드포인트 경로를 지정하려면 Kubernetes 포드 및 서비스에서 prometheus.io/port 및 prometheus.io/path 주석 또는 레이블을 사용할 수 있습니다. 주석이 레이블보다 우선합니다.
prometheus.io/port 이 없으면 통합은 서비스에 대해 정의된 각 port 또는 ContainerPort 를 스크랩하려고 시도합니다.
prometheus.io/path 이 없으면 통합은 기본적으로 /metrics 로 설정됩니다.
서비스가 기본 /my-metrics-path 경로에서 실행되고 있지 않으면 포드 prometheus.io/path=my-metrics-path 에 레이블을 추가합니다. 메트릭 엔드포인트에 대한 경로가 더 복잡하고 유효한 레이블 값이 될 수 없는 경우(예: foo/bar ) 대신 주석을 사용하십시오.
이 예에서는 클러스터에 배포가 있고 포드는 포트 8080 및 경로에서 Prometheus 측정항목을 노출합니다. my-metrics.
배포 매니페스트의 PodSpec 메타데이터에서 prometheus.io/port: "8080" 및 prometheus.io/path: "my-metrics" 라벨을 설정합니다. 통합이 포드에서 측정항목을 검색하려고 하면 http://<pod-ip>:8080/my-metrics 에 요청을 보냅니다.
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deployment
spec:
replicas:2
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
prometheus.io/scrape:"true"
prometheus.io/port:"8080"
prometheus.io/path:"my-metrics"
서비스 및 엔드포인트 스크래핑 동작
기본적으로 서비스는 scrape_services 이 true 로, scrape_endpoints 가 false 으로 설정되어 있으므로 기본 엔드포인트 대신 직접 스크래핑됩니다.
이 동작을 변경하려면 scrape_endpoints 를 true 로 설정하여 서비스를 직접 사용하는 대신 Prometheus 서버가 기본적으로 수행하는 것처럼 기본 엔드포인트를 긁어내도록 Prometheus OpenMetrics integrations 를 구성합니다.
클러스터의 서비스 뒤에 있는 엔드포인트 수에 따라 로드 및 수집된 데이터가 상당히 증가할 수 있으며, 모니터링하고 필요한 경우 리소스 요구 사항을 증가시킬 수 있습니다.
또한 scrape_services 및 scrape_endpoints 을 모두 true로 설정하여 역호환성을 보장할 수 있더라도 데이터가 중복될 수 있습니다.
구성 다시 로드
Prometheus OpenMetrics 통합 does not 설정 파일을 변경할 때 설정을 자동으로 다시 로드합니다.
Docker
구성을 다시 로드하려면 통합을 실행하는 컨테이너를 다시 시작합니다.
bash
$
docker restart nri-prometheus
Kubernetes
설정을 다시 로드하려면 통합을 다시 시작하세요. 권장 사항: 배포를 복제본 0개로 축소한 다음 다시 복제본 1개로 축소합니다.