Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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
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.
Azure SDK for JavaScript