File contents OpenTelemetry Node.js
Setup
npm install @opentelemetry/sdk-node @opentelemetry/auto-instrumentations-node @opentelemetry/exporter-trace-otlp-http
Instrumentation
import { NodeSDK } from '@opentelemetry/sdk-node';
import { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node';
import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';
const sdk = new NodeSDK({
traceExporter: new OTLPTraceExporter({ url: 'http://localhost:4318/v1/traces' }),
instrumentations: [getNodeAutoInstrumentations()],
serviceName: 'my-api',
});
sdk.start();
Custom Spans
import { trace } from '@opentelemetry/api';
const tracer = trace.getTracer('my-service');
async function processOrder(orderId: string) {
return tracer.startActiveSpan('process-order', async (span) => {
span.setAttribute('order.id', orderId);
try {
const result = await doWork();
span.setStatus({ code: SpanStatusCode.OK });
return result;
} catch (err) {
span.recordException(err); span.setStatus({ code: SpanStatusCode.ERROR });
throw err;
} finally { span.end(); }
});
}
Collectors: Jaeger, Zipkin, Grafana Tempo, Datadog, Honeycomb
1 --- 2 name: opentelemetry-node 3 description: OpenTelemetry Node.js 4 --- 5 # OpenTelemetry Node.js 6 7 ## Setup 8 ```bash 9 npm install @opentelemetry/sdk-node @opentelemetry/auto-instrumentations-node @opentelemetry/exporter-trace-otlp-http 10 ``` 11 12 ## Instrumentation 13 ```typescript 14 import { NodeSDK } from '@opentelemetry/sdk-node'; 15 import { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node'; 16 import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http'; 17 18 const sdk = new NodeSDK({ 19 traceExporter: new OTLPTraceExporter({ url: 'http://localhost:4318/v1/traces' }), 20 instrumentations: [getNodeAutoInstrumentations()], 21 serviceName: 'my-api', 22 }); 23 sdk.start(); 24 ``` 25 26 ## Custom Spans 27 ```typescript 28 import { trace } from '@opentelemetry/api'; 29 const tracer = trace.getTracer('my-service'); 30 31 async function processOrder(orderId: string) { 32 return tracer.startActiveSpan('process-order', async (span) => { 33 span.setAttribute('order.id', orderId); 34 try { 35 const result = await doWork(); 36 span.setStatus({ code: SpanStatusCode.OK }); 37 return result; 38 } catch (err) { 39 span.recordException(err); span.setStatus({ code: SpanStatusCode.ERROR }); 40 throw err; 41 } finally { span.end(); } 42 }); 43 } 44 ``` 45 46 ## Collectors: Jaeger, Zipkin, Grafana Tempo, Datadog, Honeycomb
ComeOnOliver/skillshub/tree/main/skills/skillshub-team/catalog-batch5/opentelemetry-node commit 8501f768e9
Frequently asked questions How do I install the Opentelemetry Node skill? Run npx skillmds@latest add comeonoliver/opentelemetry-node in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
What does the Opentelemetry Node skill do? OpenTelemetry Node.js It is listed under Coding & Dev Tools on SkillMD.
Is Opentelemetry Node safe to use? This skill has not completed SkillMD's automated safety review yet. Independent scanners report: SkillSpector: PASS, Skill Scanner: PASS. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
Which AI agents work with Opentelemetry Node? This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Is Opentelemetry Node free to use? Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
Who published Opentelemetry Node? ComeOnOliver (@comeonoliver) published this skill. Their other Agent Skills are listed on their SkillMD profile.