프로젝트 소개

OpenTelemetry JavaScript는 OpenTelemetry의 JavaScript 구현체로, 애플리케이션에서 트레이스, 메트릭, 로그를 수집하기 위한 벤더 중립적 프레임워크입니다. Node.js와 웹 브라우저를 대상으로 하며 @opentelemetry 범위 아래 npm 패키지 세트로 게시됩니다. 이 프로젝트는 API 레이어와 SDK 구현으로 관심사를 분리합니다. API 패키지는 핵심 트레이스 및 메트릭 모델에 대한 TypeScript 인터페이스, 열거형 및 no-op 구현을 제공하므로 라이브러리 작성자는 특정 SDK를 포함하지 않고 공개 API에만 의존할 수 있습니다. 코어 패키지는 기본 및 no-op 구현을 제공합니다. SDK 측에서 sdk-trace는 기본적으로 async_hooks나 계측을 로드하지 않고 계측 및 스팬 생성에 대한 제어를 제공하며, sdk-metrics는 시계열 데이터를 보고하기 위한 인스트루먼트와 미터를 제공합니다. 시작하려면 일반적으로 @opentelemetry/api, @opentelemetry/sdk-node 및 auto-instrumentations-node 메타 패키지를 설치한 다음, 리소스, ConsoleSpanExporter와 같은 익스포터, 자동 계측을 구성하는 NodeSDK를 설정하는 추적 설정 파일을 만듭니다. 그런 다음 추적 파일을 사전 로드하여 애플리케이션을 시작합니다. 진단 로거는 API를 통해 활성화하여 원격 측정 데이터가 수집기로 도달하지 않는 경우를 디버깅할 수 있습니다. 기능 상태는 신호별로 문서화됩니다. 트레이스와 메트릭은 API와 SDK 모두에서 안정적이며, 로그는 아직 개발 중입니다. README는 또한 안정적인 패키지 버전과 실험적 패키지 버전을 짝지은 호환성 매트릭스를 게시하며, 안정적인 패키지는 하나의 버전 라인을 공유하고 실험적 패키지는 다른 버전 라인을 공유한다고 명시합니다. 지원되는 런타임에는 현재 Node.js LTS 릴리스가 포함되며, 브라우저 계측은 실험적이고 대체로 명시되지 않은 것으로 설명됩니다. 최소 언어 기능 기준은 ECMAScript 2022입니다. TypeScript 지원은 2년 지원 기간을 따릅니다. 익스포터는 벤더에 구애받지 않으며, 레지스트리에서 사용 가능한 익스포터 구현을 나열하고, 사용자는 자체 익스포터를 작성할 수도 있습니다. 자동 추적은 계측을 통해 제공되며, gRPC 및 HTTP용 핵심 Node 계측, XMLHttpRequest 및 fetch용 핵심 웹 계측, 그리고 별도 저장소에 호스팅된 추가 기여 계측이 있습니다. 이 프로젝트는 Apache-2.0 라이선스이며 up-for-grabs 및 good-first-issue 태그를 통해 기여를 환영하고, 주간 SIG 회의를 개최합니다.