• 로그인지금 시작하기

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

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

문제 신고

New Relic으로 OpenTelemetry 문제 해결

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

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

문제

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

  • 구성된 OTLP 끝점은 문서화된 끝점 중 하나와 일치하고 형식이 적절 하며 OTLP/gRPC용 기본 포트 (4317) 또는 OTLP/HTTP용 기본 포트 (4318)를 포함합니다. 포트 443도 두 전송 모두에서 지원됩니다. 해당되는 경우 FedRAMP 규정 준수를 위한 특정 끝점을 확인하십시오.
  • 지역에 따라 올바른 엔드포인트를 사용하고 있는지 확인합니다. 예를 들어 유럽에 기반을 두고 있고 미국 엔드포인트로 데이터를 보내도록 내보내기를 구성한 경우 엔드포인트가 지역별로 다르기 때문에 데이터를 내보내지 못합니다.
  • 아웃바운드 트래픽은 방화벽에 의해 제한되지 않습니다. 당사의 네트워크 문서는 명시적으로 허용해야 할 수 있는 도메인 및 네트워크 블록에 대해 설명합니다.
  • 클라이언트는 TLS 1.2 이상을 사용하도록 구성되어 있으며 요청에는 유효한 New Relic 계정(수집) 라이선스 키 가 있는 api-key 헤더가 포함되어 있습니다.
  • 요청에는 유효한 protobuf 페이로드가 포함되며 가급적 gzip 압축 이 활성화된 상태에서 gRPC 또는 HTTP 전송을 사용합니다. 요청 페이로드는 1MB(10^6바이트) 이하여야 합니다. JSON 인코딩 protobuf 페이로드도 지원됩니다.
  • 클라이언트 출력 및 로그에 4xx 또는 5xx 응답 코드가 반환되고 있다고 표시되지 않습니다.

해결책

원격 측정 데이터가 당사 플랫폼에 성공적으로 전달되었는지 확인하는 데 사용할 수 있는 도구가 많이 있습니다. 좋은 첫 번째 단계는 데이터 관리 허브 를 확인하여 데이터 수집을 패싯 하고 다양한 소스에서 도착하는 데이터의 양을 확인하는 것입니다. 측정항목 및 이벤트 또는 쿼리 빌더를 사용하여 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 © 2022 New Relic Inc.

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