OpenTelemetry는 옵저버빌리티 데이터를 수집, 처리 및 내보내기 위한 범용 API와 SDK를 제공합니다. 이러한 API와 SDK가 가장 널리 사용되는 경우는 APM 모니터링으로, 이 경우 앱 또는 서비스를 모니터링을 위한 계측 기능이 설치됩니다.
이 페이지에서는 뉴렐릭으로 OpenTelemetry 기반 APM 모니터링을 하기 위한 일반적인 설정 단계를 설명합니다.
OpenTelemetry로 앱 또는 서비스 계측
OpenTelemetry는 계측 애플리케이션을 위해 언어별 API와 SDK를 제공합니다. 대부분의 언어는 보편적으로 사용되는 라이브러리와 프레임워크를 위해 풍부한 계측 세트를 제공합니다.
시작하는 데 도움이 되도록 다양한 언어로 간단한 예제 애플리케이션을 제공합니다. 애플리케이션은 각 언어별로 널리 사용되는 웹 프레임워크를 사용해 구축되었습니다. 아래 예에서는 다음을 구성하는 방법을 시연합니다.
뉴렐릭에 표시될 서비스 이름
뉴웰릭 OTLP 엔드포인트로 데이터를 전송하는 OpenTelemetry Protocol(OTLP) 내보내기 도구
최고의 뉴렐릭 경험을 위해 OpenTelemetry를 최적화하기 위한 추가 권장 설정
사용 가능한 계측 및 고급 시나리오에 대한 자세한 내용은 관련 OpenTelemetry 언어 문서를 참조하십시오.
중요
OpenTelemetry가 지원하는 모든 언어를 사용해 뉴렐릭으로 데이터를 전송할 수 있습니다. 위의 예는 지원되는 언어 중 일부에 불과합니다.
귀하의 언어가 없습니까? GitHub에서 예시를 요청하십시오!
뉴렐릭 UI에서 데이터 보기
앱이 계측되고 데이터를 뉴렐릭으로 내보내도록 설정되면 뉴렐릭 UI 에서 데이터를 찾을 수 있습니다.
All entities > Services - OpenTelemetry에서 엔터티를 찾을 수 있습니다. 엔터티 이름은 앱의
service.name
리소스 속성 값으로 설정됩니다. 뉴렐릭 서비스 엔터티가 OpenTelemetry 리소스 속성에서 어떻게 파생되는지에 대한 자세한 내용은 서비스를 참조하십시오.자세한 내용은 OpenTelemetry APM UI를 참조하십시오.
엔터티를 찾을 수 없고 NRQL로 데이터를 볼 수 없는 경우 OTLP 문제 해결을 참조하십시오.
동일한 프로세스에서 뉴렐릭 에이전트와 OpenTelemetry 도구를 실행하는 방법
뉴렐릭 에이전트와 OpenTelemetry 도구(SDK, 에이전트 등)는 시중에 나와 있는 많은 APM 제품 중 하나입니다.
모든 언어에서, 거의 모든 APM 제품은 간단한 수준의 언어와 사용 가능한 런타임 후크를 사용하여 작동하며, 대부분은 런타임 시 코드 동작을 변경합니다. 언어 아키텍처에 따라 이는 바이트 코드 조작이나 몽키 패치 같은 기술을 통해 달성되는 경우가 많습니다.
APM 제품이 실행 코드를 변경하는 방식은 복잡하기 때문에, 한 제품이 동일한 프로세스에서 실행되는 다른 제품과 호환된다는 보장은 없습니다. 최선의 경우, 서로 별도로 상주하며 애플리케이션에서 독립적으로 텔레메트리를 생성합니다. 최악의 경우, 서로를 충돌해 예측할 수 없는 행동이 야기될 수 있습니다.
뉴렐릭의 APM 에이전트가 동일한 프로세스에서 실행되는 다른 APM 제품과 호환된다고 보장할 수 없으므로, 귀사의 요구 사항에 가장 적합한 하나만 선택해 사용할 것을 권합니다.