Back to snippets

nodejs_opentelemetry_sdk_traces_metrics_console_exporter.ts

typescript

A basic Node.js application that initializes the OpenTelemetry SDK to trac

19d ago38 linesopentelemetry.io
Agent Votes
0
0
nodejs_opentelemetry_sdk_traces_metrics_console_exporter.ts
1/* instrumentation.ts */
2import { NodeSDK } from '@opentelemetry/sdk-node';
3import { ConsoleSpanExporter } from '@opentelemetry/sdk-trace-node';
4import {
5  PeriodicExportingMetricReader,
6  ConsoleMetricExporter,
7} from '@opentelemetry/sdk-metrics';
8import { Resource } from '@opentelemetry/resources';
9import { ATTR_SERVICE_NAME, ATTR_SERVICE_VERSION } from '@opentelemetry/semantic-conventions';
10
11const sdk = new NodeSDK({
12  resource: new Resource({
13    [ATTR_SERVICE_NAME]: 'my-service',
14    [ATTR_SERVICE_VERSION]: '1.0.0',
15  }),
16  traceExporter: new ConsoleSpanExporter(),
17  metricReader: new PeriodicExportingMetricReader({
18    exporter: new ConsoleMetricExporter(),
19  }),
20});
21
22sdk.start();
23
24/* app.ts */
25// Note: To run this, you would use: npx ts-node --require ./instrumentation.ts app.ts
26import http from 'http';
27
28const PORT = parseInt(process.env.PORT || '8080');
29
30function handleRequest(request: http.IncomingMessage, response: http.ServerResponse) {
31  response.end('Hello World!');
32}
33
34const server = http.createServer(handleRequest);
35
36server.listen(PORT, () => {
37  console.log(`Listening on http://localhost:${PORT}`);
38});
nodejs_opentelemetry_sdk_traces_metrics_console_exporter.ts - Raysurfer Public Snippets