JavaScript용 Azure OpenTelemetry 계측 라이브러리
시작
현재 지원되는 환경
- LTS 버전의 Node.js
- Safari, Chrome, Edge 및 Firefox의 최신 버전입니다.
자세한 내용은 지원 정책 참조하세요.
필수 구성 요소
- Azure 구독.
- @opentelemetry/계측 패키지입니다.
원격 분석 데이터를 생성하려면 OpenTelemetry SDK를 구성해야 합니다. OpenTelemetry를 구성하는 것은 이 추가 정보 범위를 벗어나지만 OpenTelemetry 사용을 시작하기 위해 OpenTelemetry 설명서 검토하는 것이 좋습니다.
@azure/opentelemetry-instrumentation-azure-sdk
패키지 설치
npm
사용하여 Azure OpenTelemetry Instrumentation 클라이언트 라이브러리를 설치합니다.
npm install @azure/opentelemetry-instrumentation-azure-sdk
브라우저 지원
JavaScript 번들
브라우저에서 이 클라이언트 라이브러리를 사용하려면 먼저 번들러를 사용해야 합니다. 이 작업을 수행하는 방법에 대한 자세한 내용은 번들링 설명서참조하세요.
주요 개념
- createAzureSdkInstrumentation 함수
OpenTelemetry에 등록할 Azure SDK Instrumentation 개체를 만드는 방법을 제공하는 이 라이브러리에서 내보낸 기본 후크입니다.
예제
OpenTelemetry 계측 사용
const { registerInstrumentations } = require("@opentelemetry/instrumentation");
const { createAzureSdkInstrumentation } = require("@azure/opentelemetry-instrumentation-azure-sdk");
// Set-up and configure a Node Tracer Provider using OpenTelemetry
const opentelemetry = require("@opentelemetry/api");
const { NodeTracerProvider } = require("@opentelemetry/sdk-trace-node");
const { SimpleSpanProcessor, ConsoleSpanExporter } = require("@opentelemetry/tracing");
const provider = new NodeTracerProvider();
provider.addSpanProcessor(new SimpleSpanProcessor(new ConsoleSpanExporter()));
provider.register();
registerInstrumentations({
instrumentations: [createAzureSdkInstrumentation()],
});
// Continue to import any Azure SDK client libraries after registering the instrumentation.
const { KeyClient } = require("@azure/keyvault-keys");
const { DefaultAzureCredential } = require("@azure/identity");
const keyClient = new KeyClient(url, new DefaultAzureCredential());
async function main() {
// Tracing is now enabled using automatic span propagation with an active context.
await keyClient.getKey("MyKeyName");
// If your scenario requires manual span propagation, all Azure client libraries
// support explicitly passing a parent context via an `options` parameter.
// Get a tracer from a registered provider, create a span, and get the current context.
const tracer = opentelemetry.trace.getTracer("my-tracer");
const span = tracer.startSpan("main");
const ctx = opentelemetry.trace.setSpan(opentelemetry.context.active(), span);
await keyClient.getKey("MyKeyName", {
tracingOptions: {
// ctx will be used as the parent context for all operations.
tracingContext: ctx,
},
});
}
문제 해결
로깅
로깅을 사용하도록 설정하면 오류에 대한 유용한 정보를 파악하는 데 도움이 될 수 있습니다. HTTP 요청 및 응답 로그를 보려면 AZURE_LOG_LEVEL
환경 변수를 info
설정합니다. 또는 @azure/logger
setLogLevel
호출하여 런타임에 로깅을 사용하도록 설정할 수 있습니다.
const { setLogLevel } = require("@azure/logger");
setLogLevel("info");
로그를 사용하도록 설정하는 방법에 대한 자세한 지침은 @azure/로거 패키지 문서확인할 수 있습니다.
ES 모듈 계측
이 패키지는 @opentelemetry/계측 활용하여 필요한 후크 및 로더를 설정합니다. ESM 패키지에 대한 추적 구성에 대한 지침은 @opentelemetry/계측의 추가 정보 참조하세요.
기여
이 라이브러리에 기여하려면 기여 가이드 읽어 코드를 빌드하고 테스트하는 방법에 대해 자세히 알아보세요.
관련 프로젝트
- Javascript용 Microsoft Azure SDK
Azure SDK for JavaScript