Compartir a través de


Biblioteca cliente de OpenTelemetry Exporter de Azure Monitor para JavaScript: versión 1.0.0-beta.32

Versión npm

Cómo empezar

Este paquete de exportación supone que la aplicación ya está instrumentada con el SDK de OpenTelemetry. Una vez que esté listo para exportar datos de OpenTelemetry, puede agregar este exportador a la aplicación.

Instalación del paquete

npm install @azure/monitor-opentelemetry-exporter

Entornos admitidos actualmente

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

Advertencia: Este SDK solo funciona para entornos Node.js. Use el SDK de JavaScript de Application Insights para entornos de explorador.

Prerrequisitos

Seguimiento distribuido

Agregue el exportador al proveedor de seguimiento de OpenTelemetry existente (NodeTracerProvider / BasicTracerProvider)

import { AzureMonitorTraceExporter } from "@azure/monitor-opentelemetry-exporter";
import { NodeTracerProvider, BatchSpanProcessor } from "@opentelemetry/sdk-trace-node";
import { resourceFromAttributes } from "@opentelemetry/resources";
import { ATTR_SERVICE_NAME } from "@opentelemetry/semantic-conventions";

// Create an exporter instance
const exporter = new AzureMonitorTraceExporter({
  connectionString: "<connection string>",
});

// Create and configure the Node Tracer provider
const tracerProvider = new NodeTracerProvider({
  resource: resourceFromAttributes({
    [ATTR_SERVICE_NAME]: "basic-service",
  }),
  spanProcessors: [
    new BatchSpanProcessor(exporter, {
      exportTimeoutMillis: 15000,
      maxQueueSize: 1000,
    }),
  ],
});

// Register Tracer Provider as global
tracerProvider.register();

Métricas

Agregue el exportador a su proveedor de medidores de OpenTelemetry existente (MeterProvider)

import { AzureMonitorMetricExporter } from "@azure/monitor-opentelemetry-exporter";
import { PeriodicExportingMetricReader, MeterProvider } from "@opentelemetry/sdk-metrics";
import { metrics } from "@opentelemetry/api";

// Add the exporter into the MetricReader and register it with the MeterProvider
const exporter = new AzureMonitorMetricExporter({
  connectionString: "<connection string>",
});

const metricReaderOptions = {
  exporter: exporter,
};
const metricReader = new PeriodicExportingMetricReader(metricReaderOptions);
const meterProvider = new MeterProvider({
  readers: [metricReader],
});

// Register Meter Provider as global
metrics.setGlobalMeterProvider(meterProvider);

Registros

Agregue el exportador de registros al proveedor de registrador de OpenTelemetry existente (LoggerProvider)

import { AzureMonitorLogExporter } from "@azure/monitor-opentelemetry-exporter";
import { BatchLogRecordProcessor, LoggerProvider } from "@opentelemetry/sdk-logs";
import { logs } from "@opentelemetry/api-logs";

// Add the Log exporter into the logRecordProcessor and register it with the LoggerProvider
const exporter = new AzureMonitorLogExporter({
  connectionString: "<connection string>",
});

const logRecordProcessor = new BatchLogRecordProcessor(exporter);
const loggerProvider = new LoggerProvider();
loggerProvider.addLogRecordProcessor(logRecordProcessor);

// Register logger Provider as global
logs.setGlobalLoggerProvider(loggerProvider);

Muestreo

Puede habilitar el muestreo para limitar la cantidad de registros de telemetría que recibe. Para habilitar el muestreo correcto en Application Insights, use el ApplicationInsightsSampler como se muestra a continuación.

import { ApplicationInsightsSampler } from "@azure/monitor-opentelemetry-exporter";
import { NodeTracerProvider } from "@opentelemetry/sdk-trace-node";
import { resourceFromAttributes } from "@opentelemetry/resources";
import { ATTR_SERVICE_NAME } from "@opentelemetry/semantic-conventions";

// Sampler expects a sample rate of between 0 and 1 inclusive
// A rate of 0.75 means approximately 75 % of your traces will be sent
const aiSampler = new ApplicationInsightsSampler(0.75);
const provider = new NodeTracerProvider({
  sampler: aiSampler,
  resource: resourceFromAttributes({
    [ATTR_SERVICE_NAME]: "basic-service",
  }),
});

provider.register();

Ejemplos

Para ver ejemplos completos de algunas situaciones de campeones, consulte la samples/ carpeta.

Conceptos clave

Para obtener más información sobre el proyecto OpenTelemetry, consulte las especificaciones de OpenTelemetry.

Solución de problemas

Habilitar el registro de depuración

Puede habilitar el registro de depuración cambiando el nivel de registro de su proveedor.

import { NodeTracerProvider } from "@opentelemetry/sdk-trace-node";
import { diag, DiagConsoleLogger, DiagLogLevel } from "@opentelemetry/api";

const provider = new NodeTracerProvider();
diag.setLogger(new DiagConsoleLogger(), DiagLogLevel.ALL);
provider.register();

Registro

La habilitación del registro de Azure también puede ayudar a descubrir información útil sobre los 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:

import { setLogLevel } from "@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.

Pasos siguientes

Este exportador está hecho para ser utilizado con OpenTelemetry JS.

Registro de plugins

Para ver si ya se ha creado un complemento para una biblioteca que está utilizando, consulte el Registro de OpenTelemetry.

Si no puede tener su biblioteca en el registro, no dude en sugerir una nueva solicitud de complemento en opentelemetry-js-contrib.

Contribución

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.