Biblioteca de Instrumentação OpenTelemetry do Azure para JavaScript
Primeiros passos
Ambientes atualmente suportados
- versões LTS do Node.js
- Versões mais recentes do Safari, Chrome, Edge e Firefox.
Consulte o nosso de política de suporte
Pré-requisitos
- Uma assinatura do Azure.
- A @opentelemetry/instrumentação pacote.
Você precisará configurar o SDK do OpenTelemetry para produzir dados de Telemetria. Embora a configuração do OpenTelemetry esteja fora do escopo deste LEIA-ME, recomendamos que você revise o de documentação do OpenTelemetry para começar a usar o OpenTelemetry.
Instalar o pacote @azure/opentelemetry-instrumentation-azure-sdk
Instale a biblioteca de cliente do Azure OpenTelemetry Instrumentation com npm
:
npm install @azure/opentelemetry-instrumentation-azure-sdk
Suporte do navegador
Pacote JavaScript
Para usar essa biblioteca de cliente no navegador, primeiro você precisa usar um bundler. Para obter detalhes sobre como fazer isso, consulte nossa documentação de agregação de .
Conceitos-chave
- O função createAzureSdkInstrumentation é o gancho principal exportado por esta biblioteca que fornece uma maneira de criar um objeto de Instrumentação do SDK do Azure a ser registrado com OpenTelemetry.
Exemplos
Ativar instrumentação 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,
},
});
}
Solução de problemas
Registo
Habilitar o registro em log 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 tempo de execução chamando setLogLevel
no @azure/logger
:
const { setLogLevel } = require("@azure/logger");
setLogLevel("info");
Para obter instruções mais detalhadas sobre como habilitar logs, você pode consultar os documentos do pacote @azure/logger.
Instrumentação para módulos ES
Este pacote utiliza @opentelemetry/instrumentação para configurar os ganchos e carregadores necessários. Consulte o README da
Contribuição
Se você quiser contribuir para esta biblioteca, leia o guia de contribuição para saber mais sobre como criar e testar o código.
Projetos relacionados
Azure SDK for JavaScript