Back to snippets
nodejs_opentelemetry_sdk_traces_metrics_console_exporter.ts
typescriptA basic Node.js application that initializes the OpenTelemetry SDK to trac
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});