Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Como começar
Este pacote de exportação pressupõe que seu aplicativo já esteja instrumentado com o SDK do OpenTelemetry. Quando estiver pronto para exportar dados do OpenTelemetry, você poderá adicionar esse exportador ao seu aplicativo.
Instalar o pacote
npm install @azure/monitor-opentelemetry-exporter
Ambientes com suporte no momento
Consulte nossa política de suporte para obter mais detalhes.
Aviso: Este SDK só funciona para ambientes Node.js. Use o SDK do JavaScript do Application Insights para ambientes de navegador.
Pré-requisitos
Rastreamento distribuído
Adicionar o exportador ao seu provedor de rastreamento 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
Adicionar o exportador ao seu provedor de medidor 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
Adicionar o Exportador de Log ao seu provedor de agente de log 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);
Amostragem
Você pode habilitar a amostragem para limitar a quantidade de registros de telemetria recebidos. Para habilitar a amostragem correta no Application Insights, use o ApplicationInsightsSampler conforme mostrado abaixo.
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();
Exemplos
Para obter exemplos completos de alguns cenários de campeões, consulte a samples/ pasta.
Conceitos principais
Para obter mais informações sobre o projeto OpenTelemetry, examine as Especificações do OpenTelemetry.
Limite de Tamanho de Dimensões Personalizadas
Por padrão, os valores das dimensões personalizadas são truncados para 64KB. Isso protege contra cargas úteis inesperadamente grandes.
Resolução de problemas
Habilitar o log de depuração
Você pode habilitar o log de depuração alterando o nível de log do seu provedor.
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
Habilitar o log do Azure também pode ajudar a descobrir informações úteis sobre falhas. Para ver um log de solicitações e respostas HTTP, defina a variável de ambiente AZURE_LOG_LEVEL como info. Como alternativa, o registro em log pode ser habilitado em runtime chamando setLogLevel no @azure/logger:
import { setLogLevel } from "@azure/logger";
setLogLevel("info");
Para obter instruções mais detalhadas sobre como habilitar logs, você pode examinar os documentos do pacote @azure/agente.
Próximas etapas
Esse exportador foi feito para ser usado com o OpenTelemetry JS.
Registro de plug-ins
Para ver se um plug-in já foi criado para uma biblioteca que você está usando, consulte o OpenTelemetry Registry.
Se você não puder colocar sua biblioteca no registro, sinta-se à vontade para sugerir uma nova solicitação de plug-in em opentelemetry-js-contrib.
Contribuindo
Se você quiser contribuir com essa biblioteca, leia o guia de contribuição para saber mais sobre como criar e testar o código.
Azure SDK for JavaScript