Prometheus 수신기 커뮤니티를 사용하여 OpenTelemetry 수집기로 Prometheus 메트릭을노출하는 모든 소프트웨어 에서 메트릭을 수집할 수 있습니다. 수집기는 원격 측정 데이터를 수집, 처리 및 New Relic(또는 관측 가능성 백엔드)으로 내보내는 OpenTelemetry의 구성 요소입니다.
팁
다른 수집기 사용 사례에 대한 도움말을 찾고 있다면 newrelic-opentelemetry-examples 리포지토리를 참조하세요.
Prometheus 측정항목을 수집하려면 아래 단계를 완료하세요.
다음 전제조건을 확인하세요
아직 하지 않은 경우:
대상 앱에서 OpenTelemetry 수집기의 Prometheus 수신기 구성 요소에 액세스할 수 있도록 Prometheus 메트릭 엔드포인트를 노출하고 있는지 확인하세요.
- Prometheus 지표 엔드포인트는 기본적으로 활성화될 수 있으며, 활성화하려면 추가 구성을 수행해야 할 수도 있습니다.
- 일부 소프트웨어에서는 측정항목을 노출하기 위해 타사 Prometheus 내보내기 프로그램이 필요할 수 있습니다.
OpenTelemetry 문서 의 단계에 따라 OpenTelemetry 수집기를 설치합니다.
OTLP/HTTP 내보내기 및 Prometheus 수신기라는 두 가지 구성 요소가 있는 한 모든 배포판을 사용할 수 있습니다.
Opentelemetry 수집기 구성
config.yaml
라는 새 파일을 업데이트하거나 만들고 파일의 다음 키를 자신의 값으로 바꿉니다.
프로메테우스 스크랩 구성:
PROMETHEUS_JOBNAME
PROMETHEUS_HOSTNAME
PROMETHEUS_ENDPOINT_PORT
PROMETHEUS_ENDPOINT_PATH
(선택사항, 기본값은 /metrics)
NEW_RELIC_LICENSE_KEY
receivers:prometheus:config:scrape_configs:- job_name: "PROMETHEUS_JOBNAME"static_configs:- targets: [ "PROMETHEUS_HOSTNAME:PROMETHEUS_ENDPOINT_PORT" ]labels:label_example: VALUE_EXAMPLEmetrics_path: PROMETHEUS_ENDPOINT_PATHexporters:otlphttp:endpoint: https://otlp.nr-data.netheaders:api-key: NEW_RELIC_LICENSE_KEYprocessors:service:telemetry:logs:pipelines:metrics:receivers: [prometheus]processors: [batch, memory_limiter]exporters: [otlphttp]추가 구성 옵션은 다음을 검토하십시오.
추가 구성 세부 정보는Prometheus 구성 문서입니다 .
수집기 실행
Opentelemetry 수집기를 실행합니다. 선택한 설치 방법에 따라 실행 방법이 달라질 수 있습니다. 예를 들어:
/usr/bin/otelcol --config ./config.yaml
데이터 찾기 및 사용
측정항목 탐색기를 사용하여 수집 중인 측정항목을 확인할 수 있습니다. OTEL Prometheus 수신기가 보고하는 모든 메트릭은 다음 쿼리를 실행하여 감지됩니다.
SELECT count(*)FROM MetricWHERE instrumentation.provider='opentelemetry' and otel.library.name='otelcol/prometheusreceiver'FACET metricName
문제 해결: 측정항목 이름이 일치하지 않습니다.
Prometheus 메트릭 기반 대시보드 및 엔티티는 Prometheus 메트릭 명명 규칙을 사용하여 Prometheus 엔드포인트에서 보고하는 메트릭과 일치시킵니다. 그러나 OpenTelemetry Prometheus 수신기는 v076.3이후 기본적으로 OpenTelemetry 명명 규칙을 사용합니다.
Prometheus 지표 명명 규칙을 사용하려면 OpenTelemetry 수집기를 실행할 때 기능 게이트 pkg.translator.prometheus.NormalizeName
를 비활성화합니다.
$otelcol-contrib --config ./config.yaml --feature-gates=-pkg.translator.prometheus.NormalizeName