• 로그인지금 시작하기

사용자의 편의를 위해 제공되는 기계 번역입니다.

영문본과 번역본이 일치하지 않는 경우 영문본이 우선합니다. 보다 자세한 내용은 를 방문하시기 바랍니다.

문제 신고

New Relic으로 OpenTelemetry 문제 해결

New Relic으로 OpenTelemetry 문제를 해결하는 것은 모범 사례 를 따르고 있는지 확인하는 문제일 수 있지만 때로는 문제를 진단하기 위해 추가 단계를 수행해야 할 수도 있습니다. 다음은 문제를 해결하기 위한 단계 및 도구와 함께 발생할 수 있는 특정 문제의 몇 가지 예입니다.

OTLP를 통해 전송된 OpenTelemetry 데이터는 쿼리할 수 없습니다.

문제

OTLP를 사용하여 OpenTelemetry 메트릭, 로그 또는 추적을 전송했으며 데이터를 볼 수 없습니다. 더 깊이 파고 들기 전에 다음을 확인했는지 확인하십시오.

해결책

원격 측정 데이터가 당사 플랫폼에 성공적으로 전달되었는지 확인하는 데 사용할 수 있는 도구가 많이 있습니다. 좋은 첫 번째 단계는 데이터 관리 허브 를 확인하여 데이터 수집을 패싯 하고 다양한 소스에서 도착하는 데이터의 양을 확인하는 것입니다. 측정항목 및 이벤트 또는 쿼리 빌더를 사용하여 instrumentation.provider 또는 newrelic.source 속성으로 분류된 데이터를 찾을 수도 있습니다.

FROM Log, Metric, Span SELECT datapointcount() WHERE instrumentation.provider = 'opentelemetry' FACET instrumentation.provider, newrelic.source

이 쿼리는 데이터가 OTLP를 통해 도착하는지 여부를 알려야 합니다. 예상한 데이터가 없으면 다음 대체 쿼리를 시도하십시오.

FROM Log, Metric, Span SELECT count(*) where newrelic.source LIKE 'api.%.otlp'

NrIntegrationError 이벤트 를 쿼리하여 통합 오류를 확인할 수도 있습니다. 이렇게 하면 구성 또는 형식 문제가 있는지 또는 플랫폼 제한에 도달했는지 확인하는 데 도움이 될 수 있습니다.

중요

OTLP를 통한 측정항목, 로그 및 추적에 대한 수집 제한은 다른 데이터 수집 API 제한 과 동일합니다.

New Relic UI의 다양한 부분은 제대로 작동하기 위해 특정 속성의 존재에 의존합니다. 여러 위치에서 NRQL 콘솔 기능을 사용하여 쿼리의 WHERE 또는 FACET 절에서 필수 속성을 확인할 수 있습니다. 또한 해당 절을 편집하고 쿼리를 다시 실행하여 해당 속성이 누락된 데이터가 있는지 확인할 수 있습니다. 필수 속성의 예로는 service.nameservice.instance.id 이 있습니다. 전체 예제 목록은 리소스 를 참조하세요.

OpenTelemetry 로그 상관 관계가 작동하지 않습니다.

문제

추적과 연결된 로그를 볼 수 있도록 service.name ( OpenTelemetry 로그: 모범 사례 )를 사용하여 서비스와 로그의 상관 관계를 지정했지만 New Relic UI에는 로그가 표시되지 않습니다. 이 시나리오에서 로그 데이터는 New Relic에 도달했지만 해당 범위와 함께 분산 추적 UI에는 표시되지 않습니다.

해결책

로그를 추적 데이터와 상관시키려면 로그에 trace_idspan_id 이 포함된 추적 컨텍스트가 포함되어야 합니다. 그러나 로그가 New Relic UI에 표시되도록 하려면 trace_idspan_idtrace.idspan.id 로 변환하도록 로그 파이프라인의 규칙을 구성해야 합니다.

OpenTelemetry 엔터티 또는 관계가 누락되었습니다.

문제

서비스 또는 인프라 구성 요소에서 OpenTelemetry 데이터를 보냈고 엔터티 또는 해당 관계 가 누락되었거나 잘못되었습니다.

해결책

OpenTelemetry 항목은 EXT-SERVICE 항목 유형에 대해 설명된 공개 규칙 에 따라 합성됩니다. 일치하는 표준 규칙은 OpenTelemetry 의미 체계 규칙 을 따르는 service.name 차원의 존재 여부에 따라 다릅니다.

OpenTelemetry Java SDK로 service.name 을 설정하려면 리소스 에 포함합니다.

var resource = Resource.getDefault()
.merge(Resource.builder().put(SERVICE_NAME, serviceName).build());

SDK에 따라 OTEL_RESOURCE_ATTRIBUTES 또는 OTEL_SERVICE_NAME 환경 변수 에서 선언하여 service.name 을 설정할 수도 있습니다.

로그 관리를 위해 구조화된 로그 템플릿을 사용하여 service.name 를 삽입할 수 있습니다. 다음은 몇 가지 로그 예입니다.

New Relic이 포함된 더 많은 OpenTelemetry 예제를 보려면 GitHub의 newrelic-opentelemetry-examples 리포지토리를 방문하세요.

OpenTelemetry 수집기 문제 해결

수집기 문제 해결 팁 및 모니터링 사례를 위한 가장 좋은 장소는 OpenTelemetry 커뮤니티의 최신 지침입니다. 커뮤니티 문제 해결 문서는 아래 링크를 참조하십시오.

수집기 로그

구성 service::telemetry::logs 에서 로그 수준을 설정합니다. 기본 수준은 INFO 입니다. 지원되는 레벨은 DEBUG , INFO , WARN , ERROR , DPANIC , PANIC , FATAL 입니다.

문제 해결 팁은 로그 문제 해결(GitHub) 을 참조하세요.

수집기 측정항목

다음 NRQL 쿼리는 New Relic의 수집기 자체에서 사용 가능한 모든 메트릭을 보여줍니다.

FROM Metric SELECT uniques(metricName) WHERE metricName like ‘otelcol_%LIMIT MAX

문제 해결 팁은 다음을 참조하세요.

수집기 추적

문제 해결 팁은 zPages(Github) 를 참조하십시오.

Copyright © 2023 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.