Compartir a través de


Biblioteca de instrumentación de Azure OpenTelemetry para JavaScript

Empezar

Entornos admitidos actualmente

Consulte nuestra de directiva de soporte técnico de para obtener más información.

Prerrequisitos

Tendrá que configurar el SDK de OpenTelemetry para generar datos de telemetría. Al configurar OpenTelemetry está fuera del ámbito de este archivo Léame, le recomendamos que revise la documentación de OpenTelemetry para empezar a usar OpenTelemetry.

Instalación del paquete @azure/opentelemetry-instrumentation-azure-sdk

Instale la biblioteca cliente de Instrumentación de Azure OpenTelemetry con npm:

npm install @azure/opentelemetry-instrumentation-azure-sdk

Compatibilidad con exploradores

Paquete de JavaScript

Para usar esta biblioteca cliente en el explorador, primero debe usar un agrupador. Para obtener más información sobre cómo hacerlo, consulte nuestra documentación de agrupación de .

Conceptos clave

  • La función createAzureSdkInstrumentation es el enlace principal exportado por esta biblioteca que proporciona una manera de crear un objeto De instrumentación de Azure SDK que se va a registrar con OpenTelemetry.

Ejemplos

Habilitación de la instrumentación de 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,
    },
  });
}

Solución de problemas

Registro

Habilitar el registro puede ayudar a descubrir información útil sobre errores. Para ver un registro de solicitudes y respuestas HTTP, establezca la variable de entorno AZURE_LOG_LEVEL en info. Como alternativa, el registro se puede habilitar en tiempo de ejecución llamando a setLogLevel en el @azure/logger:

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

setLogLevel("info");

Para obtener instrucciones más detalladas sobre cómo habilitar los registros, puede consultar los documentos del paquete de @azure/registrador.

Instrumentación para módulos ES

Este paquete utiliza @opentelemetry/instrumentación para configurar los enlaces y cargadores necesarios. Consulte @opentelemetry o la LÉAME de instrumentación para obtener instrucciones sobre cómo configurar el seguimiento de paquetes ESM.

Contribuyendo

Si desea contribuir a esta biblioteca, lea la guía de contribución de para obtener más información sobre cómo compilar y probar el código.

impresiones