다음을 통해 공유


JavaScript용 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/loggersetLogLevel 호출하여 런타임에 로깅을 사용하도록 설정할 수 있습니다.

const { setLogLevel } = require("@azure/logger");

setLogLevel("info");

로그를 사용하도록 설정하는 방법에 대한 자세한 지침은 @azure/로거 패키지 문서확인할 수 있습니다.

ES 모듈 계측

이 패키지는 @opentelemetry/계측 활용하여 필요한 후크 및 로더를 설정합니다. ESM 패키지에 대한 추적 구성에 대한 지침은 @opentelemetry/계측의 추가 정보 참조하세요.

기여

이 라이브러리에 기여하려면 기여 가이드 읽어 코드를 빌드하고 테스트하는 방법에 대해 자세히 알아보세요.

  • Javascript용 Microsoft Azure SDK

노출