azure-monitor-opentelemetry-ts
Ajuda seu agente a adicionar rastreamento distribuído, métricas e logs a aplicações Node.js. É útil para monitorar o desempenho de aplicações em tempo real.
O que ela faz
Esta ferramenta ajuda a monitorar aplicações feitas em Node.js. Ela coleta informações sobre como a aplicação está funcionando, como o fluxo de requisições (tracing), métricas de desempenho e logs de erro.
Quando usar
- ✓Quando você quer entender como as requisições passam pela sua aplicação.
- ✓Para identificar gargalos de performance.
- ✓Para coletar e analisar erros que acontecem.
Exemplo do que pedir para a IA
“Configure o monitoramento da minha aplicação Node.js para rastrear requisições e coletar métricas.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
Você instala a ferramenta no seu projeto Node.js e a configura com uma chave de conexão. A ferramenta então começa a coletar dados automaticamente.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add sickn33/agentic-awesome-skills --skill azure-monitor-opentelemetry-tsOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/azure-monitor-opentelemetry-ts/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
SDK do Azure Monitor OpenTelemetry para TypeScript
Auto-instrumente aplicações Node.js com rastreamento distribuído, métricas e logs.
Instalação
# Distro (recommended - auto-instrumentation)
npm install @azure/monitor-opentelemetry
# Low-level exporters (custom OpenTelemetry setup)
npm install @azure/monitor-opentelemetry-exporter
# Custom logs ingestion
npm install @azure/monitor-ingestion
Variáveis de Ambiente
APPLICATIONINSIGHTS_CONNECTION_STRING=InstrumentationKey=...;IngestionEndpoint=...
Início Rápido (Auto-Instrumentação)
IMPORTANTE: Chame useAzureMonitor() ANTES de importar outros módulos.
import { useAzureMonitor } from "@azure/monitor-opentelemetry";
useAzureMonitor({
azureMonitorExporterOptions: {
connectionString: process.env.APPLICATIONINSIGHTS_CONNECTION_STRING
}
});
// Now import your application
import express from "express";
const app = express();
Suporte a ESM (Node.js 18.19+)
node --import @azure/monitor-opentelemetry/loader ./dist/index.js
package.json:
{
"scripts": {
"start": "node --import @azure/monitor-opentelemetry/loader ./dist/index.js"
}
}
Configuração Completa
import { useAzureMonitor, AzureMonitorOpenTelemetryOptions } from "@azure/monitor-opentelemetry";
import { resourceFromAttributes } from "@opentelemetry/resources";
const options: AzureMonitorOpenTelemetryOptions = {
azureMonitorExporterOptions: {
connectionString: process.env.APPLICATIONINSIGHTS_CONNECTION_STRING,
storageDirectory: "/path/to/offline/storage",
disableOfflineStorage: false
},
// Sampling
samplingRatio: 1.0, // 0-1, percentage of traces
// Features
enableLiveMetrics: true,
enableStandardMetrics: true,
enablePerformanceCounters: true,
// Instrumentation libraries
instrumentationOptions: {
azureSdk: { enabled: true },
http: { enabled: true },
mongoDb: { enabled: true },
mySql: { enabled: true },
postgreSql: { enabled: true },
redis: { enabled: true },
bunyan: { enabled: false },
winston: { enabled: false }
},
// Custom resource
resource: resourceFromAttributes({ "service.name": "my-service" })
};
useAzureMonitor(options);
Rastreamentos Personalizados
import { trace } from "@opentelemetry/api";
const tracer = trace.getTracer("my-tracer");
const span = tracer.startSpan("doWork");
try {
span.setAttribute("component", "worker");
span.setAttribute("operation.id", "42");
span.addEvent("processing started");
// Your work here
} catch (error) {
span.recordException(error as Error);
span.setStatus({ code: 2, message: (error as Error).message });
} finally {
span.end();
}
Métricas Personalizadas
import { metrics } from "@opentelemetry/api";
const meter = metrics.getMeter("my-meter");
// Counter
const counter = meter.createCounter("requests_total");
counter.add(1, { route: "/api/users", method: "GET" });
// Histogram
const histogram = meter.createHistogram("request_duration_ms");
histogram.record(150, { route: "/api/users" });
// Observable Gauge
const gauge = meter.createObservableGauge("active_connections");
gauge.addCallback((result) => {
result.observe(getActiveConnections(), { pool: "main" });
});
Configuração Manual do Exportador
Exportador de Rastreamento
import { AzureMonitorTraceExporter } from "@azure/monitor-opentelemetry-exporter";
import { NodeTracerProvider, BatchSpanProcessor } from "@opentelemetry/sdk-trace-node";
const exporter = new AzureMonitorTraceExporter({
connectionString: process.env.APPLICATIONINSIGHTS_CONNECTION_STRING
});
const provider = new NodeTracerProvider({
spanProcessors: [new BatchSpanProcessor(exporter)]
});
provider.register();
Exportador de Métricas
import { AzureMonitorMetricExporter } from "@azure/monitor-opentelemetry-exporter";
import { PeriodicExportingMetricReader, MeterProvider } from "@opentelemetry/sdk-metrics";
import { metrics } from "@opentelemetry/api";
const exporter = new AzureMonitorMetricExporter({
connectionString: process.env.APPLICATIONINSIGHTS_CONNECTION_STRING
});
const meterProvider = new MeterProvider({
readers: [new PeriodicExportingMetricReader({ exporter })]
});
metrics.setGlobalMeterProvider(meterProvider);
Exportador de Logs
import { AzureMonitorLogExporter } from "@azure/monitor-opentelemetry-exporter";
…
Perguntas frequentes
O que é 'auto-instrumentação'?
É um modo onde a ferramenta adiciona o código de monitoramento automaticamente, sem que você precise mexer muito no seu código principal.
O que são 'distributed tracing', 'metrics' e 'logs'?
Tracing é o caminho que uma requisição faz. Metrics são dados de desempenho (uso de CPU, memória). Logs são mensagens de eventos ou erros.
Preciso configurar tudo manualmente?
Não, a instalação recomendada ('distro') faz a maior parte do trabalho automaticamente. Configurações avançadas são opcionais.
Detalhes
Descrição original do autor
Auto-instrument Node.js applications with distributed tracing, metrics, and logs.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #2354
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
pytorch-patterns
Ajuda seu agente a usar o PyTorch para criar modelos de aprendizado de máquina. Ele aplica as melhores práticas para treinar modelos de forma eficiente e garantir que os resultados sejam consistentes.
affaan-m/ECC
evm-token-decimals
Ajuda seu agente a evitar erros com números decimais em diferentes redes blockchain. Garante que os valores de tokens sejam precisos em transações e cálculos.
affaan-m/ECC
knowledge-agent
Cria e consulta bases de conhecimento com inteligência artificial. Permite fazer perguntas sobre trabalhos passados ou compilar conhecimento sobre um tema.
thedotmack/claude-mem