How to Integrate OpenTelemetry for NodeJS App

In this article we are going to cover How to Integrate OpenTelemetry for NodeJS App.

Prerequisites

  • Ubuntu 24.04 LTS
  • SSH access with sudo privileges
  • Install Node.js and NPM

Step#1:Install Node.js and NPM On Ubuntu 24.04 LTS

Please folllow below article to Install NodeJS and NPM On Ubuntu 24.04 LTS

How to Install NodeJS and NPM on Ubuntu 24.04 LTS

In the present Directory with name example-site execute below command.

npm init -y

Install Express dependencies.

npm install typescript \
  ts-node \
  @types/node \
  express \
  @types/express

# initialize typescript
npx tsc --init

Create and launch an HTTP Server, create a file name with app.ts and add the below code.

/*app.ts*/
import express, { Express } from 'express';

const PORT: number = parseInt(process.env.PORT || '8080');
const app: Express = express();

function getRandomNumber(min: number, max: number) {
  return Math.floor(Math.random() * (max - min) + min);
}

app.get('/rolldice', (req, res) => {
  res.send(getRandomNumber(1, 6).toString());
});

app.listen(PORT, () => {
  console.log(`Listening for requests on http://localhost:${PORT}`);
});

Run the application with the following command.

npx ts-node app.ts

open belwo URL in your web interface to ensure it is working.

http://localhost:8080/rolldice
How to Integrate OpenTelemetry for NodeJS App 1

Step #2:Integrate OpenTelemetry for NodeJS App

First, install the Node SDK and auto instrumentations package. The Node SDK lets you initialize OpenTelemetry with several configuration defaults that are correct for the majority of use cases.

The auto-instrumentations-node package installs instrumentation libraries that will automatically create spans corresponding to code called in libraries. In this case, it provides instrumentation for Express, letting the example app automatically create spans for each incoming request.

npm install @opentelemetry/sdk-node \
  @opentelemetry/api \
  @opentelemetry/auto-instrumentations-node \
  @opentelemetry/sdk-metrics \
  @opentelemetry/sdk-trace-node

The instrumentation setup and configuration must be run before your application code.

Create a file name with  instrumentation.ts which will contain your instrumentation setup code.

/*instrumentation.ts*/
import { NodeSDK } from '@opentelemetry/sdk-node';
import { ConsoleSpanExporter } from '@opentelemetry/sdk-trace-node';
import { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node';
import {
  PeriodicExportingMetricReader,
  ConsoleMetricExporter,
} from '@opentelemetry/sdk-metrics';

const sdk = new NodeSDK({
  traceExporter: new ConsoleSpanExporter(),
  metricReader: new PeriodicExportingMetricReader({
    exporter: new ConsoleMetricExporter(),
  }),
  instrumentations: [getNodeAutoInstrumentations()],
});

sdk.start();

Run your application as you normally would, but you can use the --require flag to load the instrumentation before the application code.

npx ts-node --require ./instrumentation.ts app.ts

Open in your web browser and reload the page a few times.

http://localhost:8080/rolldice 
How to Integrate OpenTelemetry for NodeJS App 2

Output:

{
  resource: {
    attributes: {
      'service.name': 'unknown_service:node',
      'telemetry.sdk.language': 'nodejs',
      'telemetry.sdk.name': 'opentelemetry',
      'telemetry.sdk.version': '1.25.1',
      'process.pid': 5530,
      'process.executable.name': 'node',
      'process.executable.path': '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
      'process.command_args': [
        '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
        '/home/ubuntu/example-site/node_modules/.bin/ts-node',
        '--require',
        './instrumentation.ts',
        'app.ts'
      ],
      'process.runtime.version': '20.17.0',
      'process.runtime.name': 'nodejs',
      'process.runtime.description': 'Node.js',
      'process.command': '/home/ubuntu/example-site/node_modules/.bin/ts-node',
      'process.owner': 'ubuntu',
      'host.name': 'ip-172-31-36-154',
      'host.arch': 'amd64'
    }
  },
  traceId: 'b4f065b8644e99213c93a9d88bdbc76d',
  parentId: undefined,
  traceState: undefined,
  name: 'fs statSync',
  id: '28970ef640388b7d',
  kind: 0,
  timestamp: 1724648716022000,
  duration: 27.368,
  attributes: {},
  status: { code: 0 },
  events: [],
  links: []
}
{
  resource: {
    attributes: {
      'service.name': 'unknown_service:node',
      'telemetry.sdk.language': 'nodejs',
      'telemetry.sdk.name': 'opentelemetry',
      'telemetry.sdk.version': '1.25.1',
      'process.pid': 5530,
      'process.executable.name': 'node',
      'process.executable.path': '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
      'process.command_args': [
        '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
        '/home/ubuntu/example-site/node_modules/.bin/ts-node',
        '--require',
        './instrumentation.ts',
        'app.ts'
      ],
      'process.runtime.version': '20.17.0',
      'process.runtime.name': 'nodejs',
      'process.runtime.description': 'Node.js',
      'process.command': '/home/ubuntu/example-site/node_modules/.bin/ts-node',
      'process.owner': 'ubuntu',
      'host.name': 'ip-172-31-36-154',
      'host.arch': 'amd64'
    }
  },
  traceId: 'e7805e5407c8e859db1a047606fcb5b4',
  parentId: undefined,
  traceState: undefined,
  name: 'fs statSync',
  id: '01518e46cc804a8c',
  kind: 0,
  timestamp: 1724648716022000,
  duration: 16.619,
  attributes: {},
  status: { code: 0 },
  events: [],
  links: []
}
{
  resource: {
    attributes: {
      'service.name': 'unknown_service:node',
      'telemetry.sdk.language': 'nodejs',
      'telemetry.sdk.name': 'opentelemetry',
      'telemetry.sdk.version': '1.25.1',
      'process.pid': 5530,
      'process.executable.name': 'node',
      'process.executable.path': '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
      'process.command_args': [
        '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
        '/home/ubuntu/example-site/node_modules/.bin/ts-node',
        '--require',
        './instrumentation.ts',
        'app.ts'
      ],
      'process.runtime.version': '20.17.0',
      'process.runtime.name': 'nodejs',
      'process.runtime.description': 'Node.js',
      'process.command': '/home/ubuntu/example-site/node_modules/.bin/ts-node',
      'process.owner': 'ubuntu',
      'host.name': 'ip-172-31-36-154',
      'host.arch': 'amd64'
    }
  },
  traceId: '8998db1888cbf7a492c77727f5a95ddf',
  parentId: undefined,
  traceState: undefined,
  name: 'fs statSync',
  id: 'd6e8f016d3768c06',
  kind: 0,
  timestamp: 1724648716022000,
  duration: 24.013,
  attributes: {},
  status: { code: 0 },
  events: [],
  links: []
}
{
  resource: {
    attributes: {
      'service.name': 'unknown_service:node',
      'telemetry.sdk.language': 'nodejs',
      'telemetry.sdk.name': 'opentelemetry',
      'telemetry.sdk.version': '1.25.1',
      'process.pid': 5530,
      'process.executable.name': 'node',
      'process.executable.path': '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
      'process.command_args': [
        '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
        '/home/ubuntu/example-site/node_modules/.bin/ts-node',
        '--require',
        './instrumentation.ts',
        'app.ts'
      ],
      'process.runtime.version': '20.17.0',
      'process.runtime.name': 'nodejs',
      'process.runtime.description': 'Node.js',
      'process.command': '/home/ubuntu/example-site/node_modules/.bin/ts-node',
      'process.owner': 'ubuntu',
      'host.name': 'ip-172-31-36-154',
      'host.arch': 'amd64'
    }
  },
  traceId: '329436a0d4dbfee1982828fcd5740533',
  parentId: undefined,
  traceState: undefined,
  name: 'fs statSync',
  id: 'f42de52696eba92e',
  kind: 0,
  timestamp: 1724648716022000,
  duration: 21.512,
  attributes: {},
  status: { code: 0 },
  events: [],
  links: []
}
{
  resource: {
    attributes: {
      'service.name': 'unknown_service:node',
      'telemetry.sdk.language': 'nodejs',
      'telemetry.sdk.name': 'opentelemetry',
      'telemetry.sdk.version': '1.25.1',
      'process.pid': 5530,
      'process.executable.name': 'node',
      'process.executable.path': '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
      'process.command_args': [
        '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
        '/home/ubuntu/example-site/node_modules/.bin/ts-node',
        '--require',
        './instrumentation.ts',
        'app.ts'
      ],
      'process.runtime.version': '20.17.0',
      'process.runtime.name': 'nodejs',
      'process.runtime.description': 'Node.js',
      'process.command': '/home/ubuntu/example-site/node_modules/.bin/ts-node',
      'process.owner': 'ubuntu',
      'host.name': 'ip-172-31-36-154',
      'host.arch': 'amd64'
    }
  },
  traceId: '65d44f1acab45c1fb6b55c33282544a8',
  parentId: undefined,
  traceState: undefined,
  name: 'fs statSync',
  id: '4875380aa0a2787b',
  kind: 0,
  timestamp: 1724648716022000,
  duration: 15.043,
  attributes: {},
  status: { code: 0 },
  events: [],
  links: []
}
{
  resource: {
    attributes: {
      'service.name': 'unknown_service:node',
      'telemetry.sdk.language': 'nodejs',
      'telemetry.sdk.name': 'opentelemetry',
      'telemetry.sdk.version': '1.25.1',
      'process.pid': 5530,
      'process.executable.name': 'node',
      'process.executable.path': '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
      'process.command_args': [
        '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
        '/home/ubuntu/example-site/node_modules/.bin/ts-node',
        '--require',
        './instrumentation.ts',
        'app.ts'
      ],
      'process.runtime.version': '20.17.0',
      'process.runtime.name': 'nodejs',
      'process.runtime.description': 'Node.js',
      'process.command': '/home/ubuntu/example-site/node_modules/.bin/ts-node',
      'process.owner': 'ubuntu',
      'host.name': 'ip-172-31-36-154',
      'host.arch': 'amd64'
    }
  },
  traceId: '7c9453597f1e89bbead65fd28f0e2435',
  parentId: undefined,
  traceState: undefined,
  name: 'fs statSync',
  id: '0e026b21de1f51f0',
  kind: 0,
  timestamp: 1724648716022000,
  duration: 19.655,
  attributes: {},
  status: { code: 0 },
  events: [],
  links: []
}
{
  resource: {
    attributes: {
      'service.name': 'unknown_service:node',
      'telemetry.sdk.language': 'nodejs',
      'telemetry.sdk.name': 'opentelemetry',
      'telemetry.sdk.version': '1.25.1',
      'process.pid': 5530,
      'process.executable.name': 'node',
      'process.executable.path': '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
      'process.command_args': [
        '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
        '/home/ubuntu/example-site/node_modules/.bin/ts-node',
        '--require',
        './instrumentation.ts',
        'app.ts'
      ],
      'process.runtime.version': '20.17.0',
      'process.runtime.name': 'nodejs',
      'process.runtime.description': 'Node.js',
      'process.command': '/home/ubuntu/example-site/node_modules/.bin/ts-node',
      'process.owner': 'ubuntu',
      'host.name': 'ip-172-31-36-154',
      'host.arch': 'amd64'
    }
  },
  traceId: 'd9cb0c37de382eb2c6fe41825d1ef48b',
  parentId: undefined,
  traceState: undefined,
  name: 'fs readFileSync',
  id: '9ce2fbf25ecb469a',
  kind: 0,
  timestamp: 1724648716022000,
  duration: 46.667,
  attributes: {},
  status: { code: 0 },
  events: [],
  links: []
}
{
  resource: {
    attributes: {
      'service.name': 'unknown_service:node',
      'telemetry.sdk.language': 'nodejs',
      'telemetry.sdk.name': 'opentelemetry',
      'telemetry.sdk.version': '1.25.1',
      'process.pid': 5530,
      'process.executable.name': 'node',
      'process.executable.path': '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
      'process.command_args': [
        '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
        '/home/ubuntu/example-site/node_modules/.bin/ts-node',
        '--require',
        './instrumentation.ts',
        'app.ts'
      ],
      'process.runtime.version': '20.17.0',
      'process.runtime.name': 'nodejs',
      'process.runtime.description': 'Node.js',
      'process.command': '/home/ubuntu/example-site/node_modules/.bin/ts-node',
      'process.owner': 'ubuntu',
      'host.name': 'ip-172-31-36-154',
      'host.arch': 'amd64'
    }
  },
  traceId: '2204fe99e74eec9ba9506ed870f3fe7d',
  parentId: undefined,
  traceState: undefined,
  name: 'fs statSync',
  id: 'e6656afb88981667',
  kind: 0,
  timestamp: 1724648716022000,
  duration: 28.022,
  attributes: {},
  status: { code: 0 },
  events: [],
  links: []
}
{
  resource: {
    attributes: {
      'service.name': 'unknown_service:node',
      'telemetry.sdk.language': 'nodejs',
      'telemetry.sdk.name': 'opentelemetry',
      'telemetry.sdk.version': '1.25.1',
      'process.pid': 5530,
      'process.executable.name': 'node',
      'process.executable.path': '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
      'process.command_args': [
        '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
        '/home/ubuntu/example-site/node_modules/.bin/ts-node',
        '--require',
        './instrumentation.ts',
        'app.ts'
      ],
      'process.runtime.version': '20.17.0',
      'process.runtime.name': 'nodejs',
      'process.runtime.description': 'Node.js',
      'process.command': '/home/ubuntu/example-site/node_modules/.bin/ts-node',
      'process.owner': 'ubuntu',
      'host.name': 'ip-172-31-36-154',
      'host.arch': 'amd64'
    }
  },
  traceId: '29ceedf5bef8f1ca8797422199e2d941',
  parentId: undefined,
  traceState: undefined,
  name: 'fs readFileSync',
  id: 'a1021cf17261a547',
  kind: 0,
  timestamp: 1724648716022000,
  duration: 101.434,
  attributes: {},
  status: { code: 0 },
  events: [],
  links: []
}
{
  resource: {
    attributes: {
      'service.name': 'unknown_service:node',
      'telemetry.sdk.language': 'nodejs',
      'telemetry.sdk.name': 'opentelemetry',
      'telemetry.sdk.version': '1.25.1',
      'process.pid': 5530,
      'process.executable.name': 'node',
      'process.executable.path': '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
      'process.command_args': [
        '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
        '/home/ubuntu/example-site/node_modules/.bin/ts-node',
        '--require',
        './instrumentation.ts',
        'app.ts'
      ],
      'process.runtime.version': '20.17.0',
      'process.runtime.name': 'nodejs',
      'process.runtime.description': 'Node.js',
      'process.command': '/home/ubuntu/example-site/node_modules/.bin/ts-node',
      'process.owner': 'ubuntu',
      'host.name': 'ip-172-31-36-154',
      'host.arch': 'amd64'
    }
  },
  traceId: '82e4c5ed5d63629362ad2f7a8bcf8968',
  parentId: undefined,
  traceState: undefined,
  name: 'fs statSync',
  id: 'e22b73f89631f1db',
  kind: 0,
  timestamp: 1724648716022000,
  duration: 21.229,
  attributes: {},
  status: { code: 0 },
  events: [],
  links: []
}
{
  resource: {
    attributes: {
      'service.name': 'unknown_service:node',
      'telemetry.sdk.language': 'nodejs',
      'telemetry.sdk.name': 'opentelemetry',
      'telemetry.sdk.version': '1.25.1',
      'process.pid': 5530,
      'process.executable.name': 'node',
      'process.executable.path': '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
      'process.command_args': [
        '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
        '/home/ubuntu/example-site/node_modules/.bin/ts-node',
        '--require',
        './instrumentation.ts',
        'app.ts'
      ],
      'process.runtime.version': '20.17.0',
      'process.runtime.name': 'nodejs',
      'process.runtime.description': 'Node.js',
      'process.command': '/home/ubuntu/example-site/node_modules/.bin/ts-node',
      'process.owner': 'ubuntu',
      'host.name': 'ip-172-31-36-154',
      'host.arch': 'amd64'
    }
  },
  traceId: '649ec0e18babf1552e3f6f824dbfa3d0',
  parentId: undefined,
  traceState: undefined,
  name: 'fs statSync',
  id: '51ff3f7145d48f3f',
  kind: 0,
  timestamp: 1724648716022000,
  duration: 22.795,
  attributes: {},
  status: { code: 0 },
  events: [],
  links: []
}
{
  resource: {
    attributes: {
      'service.name': 'unknown_service:node',
      'telemetry.sdk.language': 'nodejs',
      'telemetry.sdk.name': 'opentelemetry',
      'telemetry.sdk.version': '1.25.1',
      'process.pid': 5530,
      'process.executable.name': 'node',
      'process.executable.path': '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
      'process.command_args': [
        '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
        '/home/ubuntu/example-site/node_modules/.bin/ts-node',
        '--require',
        './instrumentation.ts',
        'app.ts'
      ],
      'process.runtime.version': '20.17.0',
      'process.runtime.name': 'nodejs',
      'process.runtime.description': 'Node.js',
      'process.command': '/home/ubuntu/example-site/node_modules/.bin/ts-node',
      'process.owner': 'ubuntu',
      'host.name': 'ip-172-31-36-154',
      'host.arch': 'amd64'
    }
  },
  traceId: 'de4b9647c33d5f4777e9155ef7076a87',
  parentId: undefined,
  traceState: undefined,
  name: 'fs statSync',
  id: '9016efe76de37360',
  kind: 0,
  timestamp: 1724648716023000,
  duration: 23.996,
  attributes: {},
  status: { code: 0 },
  events: [],
  links: []
}
{
  resource: {
    attributes: {
      'service.name': 'unknown_service:node',
      'telemetry.sdk.language': 'nodejs',
      'telemetry.sdk.name': 'opentelemetry',
      'telemetry.sdk.version': '1.25.1',
      'process.pid': 5530,
      'process.executable.name': 'node',
      'process.executable.path': '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
      'process.command_args': [
        '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
        '/home/ubuntu/example-site/node_modules/.bin/ts-node',
        '--require',
        './instrumentation.ts',
        'app.ts'
      ],
      'process.runtime.version': '20.17.0',
      'process.runtime.name': 'nodejs',
      'process.runtime.description': 'Node.js',
      'process.command': '/home/ubuntu/example-site/node_modules/.bin/ts-node',
      'process.owner': 'ubuntu',
      'host.name': 'ip-172-31-36-154',
      'host.arch': 'amd64'
    }
  },
  traceId: 'd35ee7e877044bdb09ea295b69eb322e',
  parentId: undefined,
  traceState: undefined,
  name: 'fs statSync',
  id: '6ed94bdc49d6e1a0',
  kind: 0,
  timestamp: 1724648716023000,
  duration: 14.754,
  attributes: {},
  status: { code: 0 },
  events: [],
  links: []
}
{
  resource: {
    attributes: {
      'service.name': 'unknown_service:node',
      'telemetry.sdk.language': 'nodejs',
      'telemetry.sdk.name': 'opentelemetry',
      'telemetry.sdk.version': '1.25.1',
      'process.pid': 5530,
      'process.executable.name': 'node',
      'process.executable.path': '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
      'process.command_args': [
        '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
        '/home/ubuntu/example-site/node_modules/.bin/ts-node',
        '--require',
        './instrumentation.ts',
        'app.ts'
      ],
      'process.runtime.version': '20.17.0',
      'process.runtime.name': 'nodejs',
      'process.runtime.description': 'Node.js',
      'process.command': '/home/ubuntu/example-site/node_modules/.bin/ts-node',
      'process.owner': 'ubuntu',
      'host.name': 'ip-172-31-36-154',
      'host.arch': 'amd64'
    }
  },
  traceId: '472c5b31103bdf99f0cfad4f9c4346f9',
  parentId: undefined,
  traceState: undefined,
  name: 'fs statSync',
  id: '4403ee489bd37d6c',
  kind: 0,
  timestamp: 1724648716023000,
  duration: 21.604,
  attributes: {},
  status: { code: 0 },
  events: [],
  links: []
}
{
  resource: {
    attributes: {
      'service.name': 'unknown_service:node',
      'telemetry.sdk.language': 'nodejs',
      'telemetry.sdk.name': 'opentelemetry',
      'telemetry.sdk.version': '1.25.1',
      'process.pid': 5530,
      'process.executable.name': 'node',
      'process.executable.path': '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
      'process.command_args': [
        '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
        '/home/ubuntu/example-site/node_modules/.bin/ts-node',
        '--require',
        './instrumentation.ts',
        'app.ts'
      ],
      'process.runtime.version': '20.17.0',
      'process.runtime.name': 'nodejs',
      'process.runtime.description': 'Node.js',
      'process.command': '/home/ubuntu/example-site/node_modules/.bin/ts-node',
      'process.owner': 'ubuntu',
      'host.name': 'ip-172-31-36-154',
      'host.arch': 'amd64'
    }
  },
  traceId: 'bfb0d611bba3875ef453a9e0e9c1cf4c',
  parentId: undefined,
  traceState: undefined,
  name: 'fs statSync',
  id: '1c6286e1ab568c56',
  kind: 0,
  timestamp: 1724648716023000,
  duration: 36.781,
  attributes: {},
  status: { code: 0 },
  events: [],
  links: []
}
{
  resource: {
    attributes: {
      'service.name': 'unknown_service:node',
      'telemetry.sdk.language': 'nodejs',
      'telemetry.sdk.name': 'opentelemetry',
      'telemetry.sdk.version': '1.25.1',
      'process.pid': 5530,
      'process.executable.name': 'node',
      'process.executable.path': '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
      'process.command_args': [
        '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
        '/home/ubuntu/example-site/node_modules/.bin/ts-node',
        '--require',
        './instrumentation.ts',
        'app.ts'
      ],
      'process.runtime.version': '20.17.0',
      'process.runtime.name': 'nodejs',
      'process.runtime.description': 'Node.js',
      'process.command': '/home/ubuntu/example-site/node_modules/.bin/ts-node',
      'process.owner': 'ubuntu',
      'host.name': 'ip-172-31-36-154',
      'host.arch': 'amd64'
    }
  },
  traceId: 'c311542cbb839f800d8f84eaa2ed2429',
  parentId: undefined,
  traceState: undefined,
  name: 'fs statSync',
  id: '6dde3ae0b8f14a79',
  kind: 0,
  timestamp: 1724648716023000,
  duration: 15.716,
  attributes: {},
  status: { code: 0 },
  events: [],
  links: []
}
{
  resource: {
    attributes: {
      'service.name': 'unknown_service:node',
      'telemetry.sdk.language': 'nodejs',
      'telemetry.sdk.name': 'opentelemetry',
      'telemetry.sdk.version': '1.25.1',
      'process.pid': 5530,
      'process.executable.name': 'node',
      'process.executable.path': '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
      'process.command_args': [
        '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
        '/home/ubuntu/example-site/node_modules/.bin/ts-node',
        '--require',
        './instrumentation.ts',
        'app.ts'
      ],
      'process.runtime.version': '20.17.0',
      'process.runtime.name': 'nodejs',
      'process.runtime.description': 'Node.js',
      'process.command': '/home/ubuntu/example-site/node_modules/.bin/ts-node',
      'process.owner': 'ubuntu',
      'host.name': 'ip-172-31-36-154',
      'host.arch': 'amd64'
    }
  },
  traceId: '8359ce5990817e10cbc541b0413b0434',
  parentId: undefined,
  traceState: undefined,
  name: 'fs statSync',
  id: 'b44892361bb7361a',
  kind: 0,
  timestamp: 1724648716023000,
  duration: 20.37,
  attributes: {},
  status: { code: 0 },
  events: [],
  links: []
}
{
  resource: {
    attributes: {
      'service.name': 'unknown_service:node',
      'telemetry.sdk.language': 'nodejs',
      'telemetry.sdk.name': 'opentelemetry',
      'telemetry.sdk.version': '1.25.1',
      'process.pid': 5530,
      'process.executable.name': 'node',
      'process.executable.path': '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
      'process.command_args': [
        '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
        '/home/ubuntu/example-site/node_modules/.bin/ts-node',
        '--require',
        './instrumentation.ts',
        'app.ts'
      ],
      'process.runtime.version': '20.17.0',
      'process.runtime.name': 'nodejs',
      'process.runtime.description': 'Node.js',
      'process.command': '/home/ubuntu/example-site/node_modules/.bin/ts-node',
      'process.owner': 'ubuntu',
      'host.name': 'ip-172-31-36-154',
      'host.arch': 'amd64'
    }
  },
  traceId: 'cdb6fdeac864a5d58b05eb1d3ed8dafb',
  parentId: undefined,
  traceState: undefined,
  name: 'fs readFileSync',
  id: 'd78234baef14a6f3',
  kind: 0,
  timestamp: 1724648716023000,
  duration: 54.071,
  attributes: {},
  status: { code: 0 },
  events: [],
  links: []
}
{
  resource: {
    attributes: {
      'service.name': 'unknown_service:node',
      'telemetry.sdk.language': 'nodejs',
      'telemetry.sdk.name': 'opentelemetry',
      'telemetry.sdk.version': '1.25.1',
      'process.pid': 5530,
      'process.executable.name': 'node',
      'process.executable.path': '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
      'process.command_args': [
        '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
        '/home/ubuntu/example-site/node_modules/.bin/ts-node',
        '--require',
        './instrumentation.ts',
        'app.ts'
      ],
      'process.runtime.version': '20.17.0',
      'process.runtime.name': 'nodejs',
      'process.runtime.description': 'Node.js',
      'process.command': '/home/ubuntu/example-site/node_modules/.bin/ts-node',
      'process.owner': 'ubuntu',
      'host.name': 'ip-172-31-36-154',
      'host.arch': 'amd64'
    }
  },
  traceId: '3c99bf0497041ab6152ab37d3ee93779',
  parentId: undefined,
  traceState: undefined,
  name: 'fs statSync',
  id: '4e4ab5f7f0c3ff00',
  kind: 0,
  timestamp: 1724648716023000,
  duration: 28.643,
  attributes: {},
  status: { code: 0 },
  events: [],
  links: []
}
{
  resource: {
    attributes: {
      'service.name': 'unknown_service:node',
      'telemetry.sdk.language': 'nodejs',
      'telemetry.sdk.name': 'opentelemetry',
      'telemetry.sdk.version': '1.25.1',
      'process.pid': 5530,
      'process.executable.name': 'node',
      'process.executable.path': '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
      'process.command_args': [
        '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
        '/home/ubuntu/example-site/node_modules/.bin/ts-node',
        '--require',
        './instrumentation.ts',
        'app.ts'
      ],
      'process.runtime.version': '20.17.0',
      'process.runtime.name': 'nodejs',
      'process.runtime.description': 'Node.js',
      'process.command': '/home/ubuntu/example-site/node_modules/.bin/ts-node',
      'process.owner': 'ubuntu',
      'host.name': 'ip-172-31-36-154',
      'host.arch': 'amd64'
    }
  },
  traceId: '40f3d54cf022bfdef671868dd17595ae',
  parentId: undefined,
  traceState: undefined,
  name: 'fs readFileSync',
  id: 'b93611255fbf1fb0',
  kind: 0,
  timestamp: 1724648716023000,
  duration: 43.168,
  attributes: {},
  status: { code: 0 },
  events: [],
  links: []
}
{
  resource: {
    attributes: {
      'service.name': 'unknown_service:node',
      'telemetry.sdk.language': 'nodejs',
      'telemetry.sdk.name': 'opentelemetry',
      'telemetry.sdk.version': '1.25.1',
      'process.pid': 5530,
      'process.executable.name': 'node',
      'process.executable.path': '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
      'process.command_args': [
        '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
        '/home/ubuntu/example-site/node_modules/.bin/ts-node',
        '--require',
        './instrumentation.ts',
        'app.ts'
      ],
      'process.runtime.version': '20.17.0',
      'process.runtime.name': 'nodejs',
      'process.runtime.description': 'Node.js',
      'process.command': '/home/ubuntu/example-site/node_modules/.bin/ts-node',
      'process.owner': 'ubuntu',
      'host.name': 'ip-172-31-36-154',
      'host.arch': 'amd64'
    }
  },
  traceId: 'f1c2102c64c2f47d84f8642321e9d983',
  parentId: undefined,
  traceState: undefined,
  name: 'fs statSync',
  id: '4c7f0cd6abd72e6d',
  kind: 0,
  timestamp: 1724648716023000,
  duration: 19.743,
  attributes: {},
  status: { code: 0 },
  events: [],
  links: []
}
{
  resource: {
    attributes: {
      'service.name': 'unknown_service:node',
      'telemetry.sdk.language': 'nodejs',
      'telemetry.sdk.name': 'opentelemetry',
      'telemetry.sdk.version': '1.25.1',
      'process.pid': 5530,
      'process.executable.name': 'node',
      'process.executable.path': '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
      'process.command_args': [
        '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
        '/home/ubuntu/example-site/node_modules/.bin/ts-node',
        '--require',
        './instrumentation.ts',
        'app.ts'
      ],
      'process.runtime.version': '20.17.0',
      'process.runtime.name': 'nodejs',
      'process.runtime.description': 'Node.js',
      'process.command': '/home/ubuntu/example-site/node_modules/.bin/ts-node',
      'process.owner': 'ubuntu',
      'host.name': 'ip-172-31-36-154',
      'host.arch': 'amd64'
    }
  },
  traceId: '5316abb6c463d458ea591cfa94b86d75',
  parentId: undefined,
  traceState: undefined,
  name: 'fs statSync',
  id: '332b2f2cbb611353',
  kind: 0,
  timestamp: 1724648716023000,
  duration: 22.98,
  attributes: {},
  status: { code: 0 },
  events: [],
  links: []
}
{
  resource: {
    attributes: {
      'service.name': 'unknown_service:node',
      'telemetry.sdk.language': 'nodejs',
      'telemetry.sdk.name': 'opentelemetry',
      'telemetry.sdk.version': '1.25.1',
      'process.pid': 5530,
      'process.executable.name': 'node',
      'process.executable.path': '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
      'process.command_args': [
        '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
        '/home/ubuntu/example-site/node_modules/.bin/ts-node',
        '--require',
        './instrumentation.ts',
        'app.ts'
      ],
      'process.runtime.version': '20.17.0',
      'process.runtime.name': 'nodejs',
      'process.runtime.description': 'Node.js',
      'process.command': '/home/ubuntu/example-site/node_modules/.bin/ts-node',
      'process.owner': 'ubuntu',
      'host.name': 'ip-172-31-36-154',
      'host.arch': 'amd64'
    }
  },
  traceId: 'b937c9c4ca7965c095263fcc668e1a73',
  parentId: undefined,
  traceState: undefined,
  name: 'fs readFileSync',
  id: 'a9b0afae933cdacf',
  kind: 0,
  timestamp: 1724648716023000,
  duration: 50.652,
  attributes: {},
  status: { code: 0 },
  events: [],
  links: []
}
{
  resource: {
    attributes: {
      'service.name': 'unknown_service:node',
      'telemetry.sdk.language': 'nodejs',
      'telemetry.sdk.name': 'opentelemetry',
      'telemetry.sdk.version': '1.25.1',
      'process.pid': 5530,
      'process.executable.name': 'node',
      'process.executable.path': '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
      'process.command_args': [
        '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
        '/home/ubuntu/example-site/node_modules/.bin/ts-node',
        '--require',
        './instrumentation.ts',
        'app.ts'
      ],
      'process.runtime.version': '20.17.0',
      'process.runtime.name': 'nodejs',
      'process.runtime.description': 'Node.js',
      'process.command': '/home/ubuntu/example-site/node_modules/.bin/ts-node',
      'process.owner': 'ubuntu',
      'host.name': 'ip-172-31-36-154',
      'host.arch': 'amd64'
    }
  },
  traceId: '27d7851cfd9b872b0bc035a30e76a7f0',
  parentId: undefined,
  traceState: undefined,
  name: 'fs statSync',
  id: 'e66a062b4fc66d9e',
  kind: 0,
  timestamp: 1724648716023000,
  duration: 35.757,
  attributes: {},
  status: { code: 0 },
  events: [],
  links: []
}
{
  resource: {
    attributes: {
      'service.name': 'unknown_service:node',
      'telemetry.sdk.language': 'nodejs',
      'telemetry.sdk.name': 'opentelemetry',
      'telemetry.sdk.version': '1.25.1',
      'process.pid': 5530,
      'process.executable.name': 'node',
      'process.executable.path': '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
      'process.command_args': [
        '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
        '/home/ubuntu/example-site/node_modules/.bin/ts-node',
        '--require',
        './instrumentation.ts',
        'app.ts'
      ],
      'process.runtime.version': '20.17.0',
      'process.runtime.name': 'nodejs',
      'process.runtime.description': 'Node.js',
      'process.command': '/home/ubuntu/example-site/node_modules/.bin/ts-node',
      'process.owner': 'ubuntu',
      'host.name': 'ip-172-31-36-154',
      'host.arch': 'amd64'
    }
  },
  traceId: '5406177c789f85ccab7b210fc6e52e2a',
  parentId: undefined,
  traceState: undefined,
  name: 'fs statSync',
  id: '20fc524acae5f9c8',
  kind: 0,
  timestamp: 1724648716024000,
  duration: 21.927,
  attributes: {},
  status: { code: 0 },
  events: [],
  links: []
}
{
  resource: {
    attributes: {
      'service.name': 'unknown_service:node',
      'telemetry.sdk.language': 'nodejs',
      'telemetry.sdk.name': 'opentelemetry',
      'telemetry.sdk.version': '1.25.1',
      'process.pid': 5530,
      'process.executable.name': 'node',
      'process.executable.path': '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
      'process.command_args': [
        '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
        '/home/ubuntu/example-site/node_modules/.bin/ts-node',
        '--require',
        './instrumentation.ts',
        'app.ts'
      ],
      'process.runtime.version': '20.17.0',
      'process.runtime.name': 'nodejs',
      'process.runtime.description': 'Node.js',
      'process.command': '/home/ubuntu/example-site/node_modules/.bin/ts-node',
      'process.owner': 'ubuntu',
      'host.name': 'ip-172-31-36-154',
      'host.arch': 'amd64'
    }
  },
  traceId: 'bc410f745db7f10ed3f726643f267f62',
  parentId: undefined,
  traceState: undefined,
  name: 'fs statSync',
  id: '60da2c1a66946f81',
  kind: 0,
  timestamp: 1724648716024000,
  duration: 22.941,
  attributes: {},
  status: { code: 0 },
  events: [],
  links: []
}
{
  resource: {
    attributes: {
      'service.name': 'unknown_service:node',
      'telemetry.sdk.language': 'nodejs',
      'telemetry.sdk.name': 'opentelemetry',
      'telemetry.sdk.version': '1.25.1',
      'process.pid': 5530,
      'process.executable.name': 'node',
      'process.executable.path': '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
      'process.command_args': [
        '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
        '/home/ubuntu/example-site/node_modules/.bin/ts-node',
        '--require',
        './instrumentation.ts',
        'app.ts'
      ],
      'process.runtime.version': '20.17.0',
      'process.runtime.name': 'nodejs',
      'process.runtime.description': 'Node.js',
      'process.command': '/home/ubuntu/example-site/node_modules/.bin/ts-node',
      'process.owner': 'ubuntu',
      'host.name': 'ip-172-31-36-154',
      'host.arch': 'amd64'
    }
  },
  traceId: 'aacb7a4a479c2a1ba54bae90eabcf410',
  parentId: undefined,
  traceState: undefined,
  name: 'fs statSync',
  id: '6f07bf07e094fb61',
  kind: 0,
  timestamp: 1724648716024000,
  duration: 20.779,
  attributes: {},
  status: { code: 0 },
  events: [],
  links: []
}
{
  resource: {
    attributes: {
      'service.name': 'unknown_service:node',
      'telemetry.sdk.language': 'nodejs',
      'telemetry.sdk.name': 'opentelemetry',
      'telemetry.sdk.version': '1.25.1',
      'process.pid': 5530,
      'process.executable.name': 'node',
      'process.executable.path': '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
      'process.command_args': [
        '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
        '/home/ubuntu/example-site/node_modules/.bin/ts-node',
        '--require',
        './instrumentation.ts',
        'app.ts'
      ],
      'process.runtime.version': '20.17.0',
      'process.runtime.name': 'nodejs',
      'process.runtime.description': 'Node.js',
      'process.command': '/home/ubuntu/example-site/node_modules/.bin/ts-node',
      'process.owner': 'ubuntu',
      'host.name': 'ip-172-31-36-154',
      'host.arch': 'amd64'
    }
  },
  traceId: '674feaf3d2300bd6099c33796d4b9b6d',
  parentId: undefined,
  traceState: undefined,
  name: 'fs statSync',
  id: '4089fa1e5e7723e8',
  kind: 0,
  timestamp: 1724648716024000,
  duration: 17.106,
  attributes: {},
  status: { code: 0 },
  events: [],
  links: []
}
{
  resource: {
    attributes: {
      'service.name': 'unknown_service:node',
      'telemetry.sdk.language': 'nodejs',
      'telemetry.sdk.name': 'opentelemetry',
      'telemetry.sdk.version': '1.25.1',
      'process.pid': 5530,
      'process.executable.name': 'node',
      'process.executable.path': '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
      'process.command_args': [
        '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
        '/home/ubuntu/example-site/node_modules/.bin/ts-node',
        '--require',
        './instrumentation.ts',
        'app.ts'
      ],
      'process.runtime.version': '20.17.0',
      'process.runtime.name': 'nodejs',
      'process.runtime.description': 'Node.js',
      'process.command': '/home/ubuntu/example-site/node_modules/.bin/ts-node',
      'process.owner': 'ubuntu',
      'host.name': 'ip-172-31-36-154',
      'host.arch': 'amd64'
    }
  },
  traceId: '7764487ac56625d4b1bf3607c68dc364',
  parentId: undefined,
  traceState: undefined,
  name: 'fs statSync',
  id: '127336ed5860504e',
  kind: 0,
  timestamp: 1724648716024000,
  duration: 20.435,
  attributes: {},
  status: { code: 0 },
  events: [],
  links: []
}
{
  resource: {
    attributes: {
      'service.name': 'unknown_service:node',
      'telemetry.sdk.language': 'nodejs',
      'telemetry.sdk.name': 'opentelemetry',
      'telemetry.sdk.version': '1.25.1',
      'process.pid': 5530,
      'process.executable.name': 'node',
      'process.executable.path': '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
      'process.command_args': [
        '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
        '/home/ubuntu/example-site/node_modules/.bin/ts-node',
        '--require',
        './instrumentation.ts',
        'app.ts'
      ],
      'process.runtime.version': '20.17.0',
      'process.runtime.name': 'nodejs',
      'process.runtime.description': 'Node.js',
      'process.command': '/home/ubuntu/example-site/node_modules/.bin/ts-node',
      'process.owner': 'ubuntu',
      'host.name': 'ip-172-31-36-154',
      'host.arch': 'amd64'
    }
  },
  traceId: '5e5788301e3250eef02063609cdbdae5',
  parentId: undefined,
  traceState: undefined,
  name: 'fs readFileSync',
  id: '7174ac0c3734cb01',
  kind: 0,
  timestamp: 1724648716024000,
  duration: 44.763,
  attributes: {},
  status: { code: 0 },
  events: [],
  links: []
}
{
  resource: {
    attributes: {
      'service.name': 'unknown_service:node',
      'telemetry.sdk.language': 'nodejs',
      'telemetry.sdk.name': 'opentelemetry',
      'telemetry.sdk.version': '1.25.1',
      'process.pid': 5530,
      'process.executable.name': 'node',
      'process.executable.path': '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
      'process.command_args': [
        '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
        '/home/ubuntu/example-site/node_modules/.bin/ts-node',
        '--require',
        './instrumentation.ts',
        'app.ts'
      ],
      'process.runtime.version': '20.17.0',
      'process.runtime.name': 'nodejs',
      'process.runtime.description': 'Node.js',
      'process.command': '/home/ubuntu/example-site/node_modules/.bin/ts-node',
      'process.owner': 'ubuntu',
      'host.name': 'ip-172-31-36-154',
      'host.arch': 'amd64'
    }
  },
  traceId: 'ce95de5e1149f6098881dcaee23356f7',
  parentId: undefined,
  traceState: undefined,
  name: 'fs statSync',
  id: '3a8746acdb1c2afa',
  kind: 0,
  timestamp: 1724648716024000,
  duration: 27.533,
  attributes: {},
  status: { code: 0 },
  events: [],
  links: []
}
{
  resource: {
    attributes: {
      'service.name': 'unknown_service:node',
      'telemetry.sdk.language': 'nodejs',
      'telemetry.sdk.name': 'opentelemetry',
      'telemetry.sdk.version': '1.25.1',
      'process.pid': 5530,
      'process.executable.name': 'node',
      'process.executable.path': '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
      'process.command_args': [
        '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
        '/home/ubuntu/example-site/node_modules/.bin/ts-node',
        '--require',
        './instrumentation.ts',
        'app.ts'
      ],
      'process.runtime.version': '20.17.0',
      'process.runtime.name': 'nodejs',
      'process.runtime.description': 'Node.js',
      'process.command': '/home/ubuntu/example-site/node_modules/.bin/ts-node',
      'process.owner': 'ubuntu',
      'host.name': 'ip-172-31-36-154',
      'host.arch': 'amd64'
    }
  },
  traceId: 'a1f83a27f24e71529626bd8b63bde60f',
  parentId: undefined,
  traceState: undefined,
  name: 'fs readFileSync',
  id: '4885b044fa8ac4a0',
  kind: 0,
  timestamp: 1724648716024000,
  duration: 47.451,
  attributes: {},
  status: { code: 0 },
  events: [],
  links: []
}
{
  resource: {
    attributes: {
      'service.name': 'unknown_service:node',
      'telemetry.sdk.language': 'nodejs',
      'telemetry.sdk.name': 'opentelemetry',
      'telemetry.sdk.version': '1.25.1',
      'process.pid': 5530,
      'process.executable.name': 'node',
      'process.executable.path': '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
      'process.command_args': [
        '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
        '/home/ubuntu/example-site/node_modules/.bin/ts-node',
        '--require',
        './instrumentation.ts',
        'app.ts'
      ],
      'process.runtime.version': '20.17.0',
      'process.runtime.name': 'nodejs',
      'process.runtime.description': 'Node.js',
      'process.command': '/home/ubuntu/example-site/node_modules/.bin/ts-node',
      'process.owner': 'ubuntu',
      'host.name': 'ip-172-31-36-154',
      'host.arch': 'amd64'
    }
  },
  traceId: 'da4b07927b7a4abc1b9f61755756573c',
  parentId: undefined,
  traceState: undefined,
  name: 'fs statSync',
  id: 'ec184e33ff62a4e1',
  kind: 0,
  timestamp: 1724648716024000,
  duration: 20.307,
  attributes: {},
  status: { code: 0 },
  events: [],
  links: []
}
{
  resource: {
    attributes: {
      'service.name': 'unknown_service:node',
      'telemetry.sdk.language': 'nodejs',
      'telemetry.sdk.name': 'opentelemetry',
      'telemetry.sdk.version': '1.25.1',
      'process.pid': 5530,
      'process.executable.name': 'node',
      'process.executable.path': '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
      'process.command_args': [
        '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
        '/home/ubuntu/example-site/node_modules/.bin/ts-node',
        '--require',
        './instrumentation.ts',
        'app.ts'
      ],
      'process.runtime.version': '20.17.0',
      'process.runtime.name': 'nodejs',
      'process.runtime.description': 'Node.js',
      'process.command': '/home/ubuntu/example-site/node_modules/.bin/ts-node',
      'process.owner': 'ubuntu',
      'host.name': 'ip-172-31-36-154',
      'host.arch': 'amd64'
    }
  },
  traceId: '0a055c477d3c0d5439a6649db9950dfa',
  parentId: undefined,
  traceState: undefined,
  name: 'fs statSync',
  id: 'f4e359a4dd689cfd',
  kind: 0,
  timestamp: 1724648716024000,
  duration: 21.03,
  attributes: {},
  status: { code: 0 },
  events: [],
  links: []
}
{
  resource: {
    attributes: {
      'service.name': 'unknown_service:node',
      'telemetry.sdk.language': 'nodejs',
      'telemetry.sdk.name': 'opentelemetry',
      'telemetry.sdk.version': '1.25.1',
      'process.pid': 5530,
      'process.executable.name': 'node',
      'process.executable.path': '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
      'process.command_args': [
        '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
        '/home/ubuntu/example-site/node_modules/.bin/ts-node',
        '--require',
        './instrumentation.ts',
        'app.ts'
      ],
      'process.runtime.version': '20.17.0',
      'process.runtime.name': 'nodejs',
      'process.runtime.description': 'Node.js',
      'process.command': '/home/ubuntu/example-site/node_modules/.bin/ts-node',
      'process.owner': 'ubuntu',
      'host.name': 'ip-172-31-36-154',
      'host.arch': 'amd64'
    }
  },
  traceId: '3dab4f4b4a6cd879288e3cbed699e568',
  parentId: undefined,
  traceState: undefined,
  name: 'fs readFileSync',
  id: 'd30fd4a64b75a443',
  kind: 0,
  timestamp: 1724648716024000,
  duration: 47.829,
  attributes: {},
  status: { code: 0 },
  events: [],
  links: []
}
{
  resource: {
    attributes: {
      'service.name': 'unknown_service:node',
      'telemetry.sdk.language': 'nodejs',
      'telemetry.sdk.name': 'opentelemetry',
      'telemetry.sdk.version': '1.25.1',
      'process.pid': 5530,
      'process.executable.name': 'node',
      'process.executable.path': '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
      'process.command_args': [
        '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
        '/home/ubuntu/example-site/node_modules/.bin/ts-node',
        '--require',
        './instrumentation.ts',
        'app.ts'
      ],
      'process.runtime.version': '20.17.0',
      'process.runtime.name': 'nodejs',
      'process.runtime.description': 'Node.js',
      'process.command': '/home/ubuntu/example-site/node_modules/.bin/ts-node',
      'process.owner': 'ubuntu',
      'host.name': 'ip-172-31-36-154',
      'host.arch': 'amd64'
    }
  },
  traceId: '26e4714b6f729e816f14164d657656ca',
  parentId: '8a3100e8095d00ab',
  traceState: undefined,
  name: 'middleware - query',
  id: 'e681a7d9893ccc15',
  kind: 0,
  timestamp: 1724648721837000,
  duration: 1143.375,
  attributes: {
    'http.route': '/',
    'express.name': 'query',
    'express.type': 'middleware'
  },
  status: { code: 0 },
  events: [],
  links: []
}
{
  resource: {
    attributes: {
      'service.name': 'unknown_service:node',
      'telemetry.sdk.language': 'nodejs',
      'telemetry.sdk.name': 'opentelemetry',
      'telemetry.sdk.version': '1.25.1',
      'process.pid': 5530,
      'process.executable.name': 'node',
      'process.executable.path': '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
      'process.command_args': [
        '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
        '/home/ubuntu/example-site/node_modules/.bin/ts-node',
        '--require',
        './instrumentation.ts',
        'app.ts'
      ],
      'process.runtime.version': '20.17.0',
      'process.runtime.name': 'nodejs',
      'process.runtime.description': 'Node.js',
      'process.command': '/home/ubuntu/example-site/node_modules/.bin/ts-node',
      'process.owner': 'ubuntu',
      'host.name': 'ip-172-31-36-154',
      'host.arch': 'amd64'
    }
  },
  traceId: '26e4714b6f729e816f14164d657656ca',
  parentId: '8a3100e8095d00ab',
  traceState: undefined,
  name: 'middleware - expressInit',
  id: 'f9f4d72c328d1684',
  kind: 0,
  timestamp: 1724648721838000,
  duration: 433.368,
  attributes: {
    'http.route': '/',
    'express.name': 'expressInit',
    'express.type': 'middleware'
  },
  status: { code: 0 },
  events: [],
  links: []
}
{
  resource: {
    attributes: {
      'service.name': 'unknown_service:node',
      'telemetry.sdk.language': 'nodejs',
      'telemetry.sdk.name': 'opentelemetry',
      'telemetry.sdk.version': '1.25.1',
      'process.pid': 5530,
      'process.executable.name': 'node',
      'process.executable.path': '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
      'process.command_args': [
        '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
        '/home/ubuntu/example-site/node_modules/.bin/ts-node',
        '--require',
        './instrumentation.ts',
        'app.ts'
      ],
      'process.runtime.version': '20.17.0',
      'process.runtime.name': 'nodejs',
      'process.runtime.description': 'Node.js',
      'process.command': '/home/ubuntu/example-site/node_modules/.bin/ts-node',
      'process.owner': 'ubuntu',
      'host.name': 'ip-172-31-36-154',
      'host.arch': 'amd64'
    }
  },
  traceId: '26e4714b6f729e816f14164d657656ca',
  parentId: '8a3100e8095d00ab',
  traceState: undefined,
  name: 'request handler - /rolldice',
  id: 'dfe3be2957020d74',
  kind: 0,
  timestamp: 1724648721839000,
  duration: 45.677,
  attributes: {
    'http.route': '/rolldice',
    'express.name': '/rolldice',
    'express.type': 'request_handler'
  },
  status: { code: 0 },
  events: [],
  links: []
}
{
  resource: {
    attributes: {
      'service.name': 'unknown_service:node',
      'telemetry.sdk.language': 'nodejs',
      'telemetry.sdk.name': 'opentelemetry',
      'telemetry.sdk.version': '1.25.1',
      'process.pid': 5530,
      'process.executable.name': 'node',
      'process.executable.path': '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
      'process.command_args': [
        '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
        '/home/ubuntu/example-site/node_modules/.bin/ts-node',
        '--require',
        './instrumentation.ts',
        'app.ts'
      ],
      'process.runtime.version': '20.17.0',
      'process.runtime.name': 'nodejs',
      'process.runtime.description': 'Node.js',
      'process.command': '/home/ubuntu/example-site/node_modules/.bin/ts-node',
      'process.owner': 'ubuntu',
      'host.name': 'ip-172-31-36-154',
      'host.arch': 'amd64'
    }
  },
  traceId: '26e4714b6f729e816f14164d657656ca',
  parentId: undefined,
  traceState: undefined,
  name: 'GET /rolldice',
  id: '8a3100e8095d00ab',
  kind: 1,
  timestamp: 1724648721832000,
  duration: 13573.602,
  attributes: {
    'http.url': 'http://3.111.149.244:8080/rolldice',
    'http.host': '3.111.149.244:8080',
    'net.host.name': '3.111.149.244',
    'http.method': 'GET',
    'http.scheme': 'http',
    'http.target': '/rolldice',
    'http.user_agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0',
    'http.flavor': '1.1',
    'net.transport': 'ip_tcp',
    'net.host.ip': '::ffff:172.31.36.154',
    'net.host.port': 8080,
    'net.peer.ip': '::ffff:103.210.200.135',
    'net.peer.port': 55399,
    'http.status_code': 200,
    'http.status_text': 'OK',
    'http.route': '/rolldice'
  },
  status: { code: 0 },
  events: [],
  links: []
}
{
  resource: {
    attributes: {
      'service.name': 'unknown_service:node',
      'telemetry.sdk.language': 'nodejs',
      'telemetry.sdk.name': 'opentelemetry',
      'telemetry.sdk.version': '1.25.1',
      'process.pid': 5530,
      'process.executable.name': 'node',
      'process.executable.path': '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
      'process.command_args': [
        '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
        '/home/ubuntu/example-site/node_modules/.bin/ts-node',
        '--require',
        './instrumentation.ts',
        'app.ts'
      ],
      'process.runtime.version': '20.17.0',
      'process.runtime.name': 'nodejs',
      'process.runtime.description': 'Node.js',
      'process.command': '/home/ubuntu/example-site/node_modules/.bin/ts-node',
      'process.owner': 'ubuntu',
      'host.name': 'ip-172-31-36-154',
      'host.arch': 'amd64'
    }
  },
  traceId: '53ecc9d81060b0fc51686c25293a40d0',
  parentId: '8271c3703dc999a5',
  traceState: undefined,
  name: 'middleware - query',
  id: 'ee32a52c68960b5f',
  kind: 0,
  timestamp: 1724648722232000,
  duration: 69.666,
  attributes: {
    'http.route': '/',
    'express.name': 'query',
    'express.type': 'middleware'
  },
  status: { code: 0 },
  events: [],
  links: []
}
{
  resource: {
    attributes: {
      'service.name': 'unknown_service:node',
      'telemetry.sdk.language': 'nodejs',
      'telemetry.sdk.name': 'opentelemetry',
      'telemetry.sdk.version': '1.25.1',
      'process.pid': 5530,
      'process.executable.name': 'node',
      'process.executable.path': '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
      'process.command_args': [
        '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
        '/home/ubuntu/example-site/node_modules/.bin/ts-node',
        '--require',
        './instrumentation.ts',
        'app.ts'
      ],
      'process.runtime.version': '20.17.0',
      'process.runtime.name': 'nodejs',
      'process.runtime.description': 'Node.js',
      'process.command': '/home/ubuntu/example-site/node_modules/.bin/ts-node',
      'process.owner': 'ubuntu',
      'host.name': 'ip-172-31-36-154',
      'host.arch': 'amd64'
    }
  },
  traceId: '53ecc9d81060b0fc51686c25293a40d0',
  parentId: '8271c3703dc999a5',
  traceState: undefined,
  name: 'middleware - expressInit',
  id: 'a8535a5db6ff72ec',
  kind: 0,
  timestamp: 1724648722232000,
  duration: 75.004,
  attributes: {
    'http.route': '/',
    'express.name': 'expressInit',
    'express.type': 'middleware'
  },
  status: { code: 0 },
  events: [],
  links: []
}
{
  resource: {
    attributes: {
      'service.name': 'unknown_service:node',
      'telemetry.sdk.language': 'nodejs',
      'telemetry.sdk.name': 'opentelemetry',
      'telemetry.sdk.version': '1.25.1',
      'process.pid': 5530,
      'process.executable.name': 'node',
      'process.executable.path': '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
      'process.command_args': [
        '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
        '/home/ubuntu/example-site/node_modules/.bin/ts-node',
        '--require',
        './instrumentation.ts',
        'app.ts'
      ],
      'process.runtime.version': '20.17.0',
      'process.runtime.name': 'nodejs',
      'process.runtime.description': 'Node.js',
      'process.command': '/home/ubuntu/example-site/node_modules/.bin/ts-node',
      'process.owner': 'ubuntu',
      'host.name': 'ip-172-31-36-154',
      'host.arch': 'amd64'
    }
  },
  traceId: '53ecc9d81060b0fc51686c25293a40d0',
  parentId: '8271c3703dc999a5',
  traceState: undefined,
  name: 'request handler - /rolldice',
  id: 'f3bfcfdae8e8275b',
  kind: 0,
  timestamp: 1724648722232000,
  duration: 16.948,
  attributes: {
    'http.route': '/rolldice',
    'express.name': '/rolldice',
    'express.type': 'request_handler'
  },
  status: { code: 0 },
  events: [],
  links: []
}
{
  resource: {
    attributes: {
      'service.name': 'unknown_service:node',
      'telemetry.sdk.language': 'nodejs',
      'telemetry.sdk.name': 'opentelemetry',
      'telemetry.sdk.version': '1.25.1',
      'process.pid': 5530,
      'process.executable.name': 'node',
      'process.executable.path': '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
      'process.command_args': [
        '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
        '/home/ubuntu/example-site/node_modules/.bin/ts-node',
        '--require',
        './instrumentation.ts',
        'app.ts'
      ],
      'process.runtime.version': '20.17.0',
      'process.runtime.name': 'nodejs',
      'process.runtime.description': 'Node.js',
      'process.command': '/home/ubuntu/example-site/node_modules/.bin/ts-node',
      'process.owner': 'ubuntu',
      'host.name': 'ip-172-31-36-154',
      'host.arch': 'amd64'
    }
  },
  traceId: '53ecc9d81060b0fc51686c25293a40d0',
  parentId: undefined,
  traceState: undefined,
  name: 'GET /rolldice',
  id: '8271c3703dc999a5',
  kind: 1,
  timestamp: 1724648722231000,
  duration: 2022.021,
  attributes: {
    'http.url': 'http://3.111.149.244:8080/rolldice',
    'http.host': '3.111.149.244:8080',
    'net.host.name': '3.111.149.244',
    'http.method': 'GET',
    'http.scheme': 'http',
    'http.target': '/rolldice',
    'http.user_agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0',
    'http.flavor': '1.1',
    'net.transport': 'ip_tcp',
    'net.host.ip': '::ffff:172.31.36.154',
    'net.host.port': 8080,
    'net.peer.ip': '::ffff:103.210.200.135',
    'net.peer.port': 55399,
    'http.status_code': 304,
    'http.status_text': 'NOT MODIFIED',
    'http.route': '/rolldice'
  },
  status: { code: 0 },
  events: [],
  links: []
}
{
  descriptor: {
    name: 'http.server.duration',
    type: 'HISTOGRAM',
    description: 'Measures the duration of inbound HTTP requests.',
    unit: 'ms',
    valueType: 1,
    advice: {}
  },
  dataPointType: 0,
  dataPoints: [
    {
      attributes: {
        'http.scheme': 'http',
        'http.method': 'GET',
        'net.host.name': '3.111.149.244',
        'http.flavor': '1.1',
        'http.status_code': 200,
        'net.host.port': 8080,
        'http.route': '/rolldice'
      },
      startTime: [ 1724648721, 846000000 ],
      endTime: [ 1724648775, 304000000 ],
      value: {
        min: 15.154531,
        max: 15.154531,
        sum: 15.154531,
        buckets: {
          boundaries: [
               0,    5,    10,   25,
              50,   75,   100,  250,
             500,  750,  1000, 2500,
            5000, 7500, 10000
          ],
          counts: [
            0, 0, 0, 1, 0, 0,
            0, 0, 0, 0, 0, 0,
            0, 0, 0, 0
          ]
        },
        count: 1
      }
    },
    {
      attributes: {
        'http.scheme': 'http',
        'http.method': 'GET',
        'net.host.name': '3.111.149.244',
        'http.flavor': '1.1',
        'http.status_code': 304,
        'net.host.port': 8080,
        'http.route': '/rolldice'
      },
      startTime: [ 1724648722, 233000000 ],
      endTime: [ 1724648775, 304000000 ],
      value: {
        min: 2.14998,
        max: 2.14998,
        sum: 2.14998,
        buckets: {
          boundaries: [
               0,    5,    10,   25,
              50,   75,   100,  250,
             500,  750,  1000, 2500,
            5000, 7500, 10000
          ],
          counts: [
            0, 1, 0, 0, 0, 0,
            0, 0, 0, 0, 0, 0,
            0, 0, 0, 0
          ]
        },
        count: 1
      }
    }
  ]
}
{
  descriptor: {
    name: 'http.server.duration',
    type: 'HISTOGRAM',
    description: 'Measures the duration of inbound HTTP requests.',
    unit: 'ms',
    valueType: 1,
    advice: {}
  },
  dataPointType: 0,
  dataPoints: [
    {
      attributes: {
        'http.scheme': 'http',
        'http.method': 'GET',
        'net.host.name': '3.111.149.244',
        'http.flavor': '1.1',
        'http.status_code': 200,
        'net.host.port': 8080,
        'http.route': '/rolldice'
      },
      startTime: [ 1724648721, 846000000 ],
      endTime: [ 1724648835, 333000000 ],
      value: {
        min: 15.154531,
        max: 15.154531,
        sum: 15.154531,
        buckets: {
          boundaries: [
               0,    5,    10,   25,
              50,   75,   100,  250,
             500,  750,  1000, 2500,
            5000, 7500, 10000
          ],
          counts: [
            0, 0, 0, 1, 0, 0,
            0, 0, 0, 0, 0, 0,
            0, 0, 0, 0
          ]
        },
        count: 1
      }
    },
    {
      attributes: {
        'http.scheme': 'http',
        'http.method': 'GET',
        'net.host.name': '3.111.149.244',
        'http.flavor': '1.1',
        'http.status_code': 304,
        'net.host.port': 8080,
        'http.route': '/rolldice'
      },
      startTime: [ 1724648722, 233000000 ],
      endTime: [ 1724648835, 333000000 ],
      value: {
        min: 2.14998,
        max: 2.14998,
        sum: 2.14998,
        buckets: {
          boundaries: [
               0,    5,    10,   25,
              50,   75,   100,  250,
             500,  750,  1000, 2500,
            5000, 7500, 10000
          ],
          counts: [
            0, 1, 0, 0, 0, 0,
            0, 0, 0, 0, 0, 0,
            0, 0, 0, 0
          ]
        },
        count: 1
      }
    }
  ]
}
{
  resource: {
    attributes: {
      'service.name': 'unknown_service:node',
      'telemetry.sdk.language': 'nodejs',
      'telemetry.sdk.name': 'opentelemetry',
      'telemetry.sdk.version': '1.25.1',
      'process.pid': 5530,
      'process.executable.name': 'node',
      'process.executable.path': '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
      'process.command_args': [
        '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
        '/home/ubuntu/example-site/node_modules/.bin/ts-node',
        '--require',
        './instrumentation.ts',
        'app.ts'
      ],
      'process.runtime.version': '20.17.0',
      'process.runtime.name': 'nodejs',
      'process.runtime.description': 'Node.js',
      'process.command': '/home/ubuntu/example-site/node_modules/.bin/ts-node',
      'process.owner': 'ubuntu',
      'host.name': 'ip-172-31-36-154',
      'host.arch': 'amd64'
    }
  },
  traceId: '833b3d65c26bca02556ec82859b40d9d',
  parentId: undefined,
  traceState: undefined,
  name: 'fs existsSync',
  id: '71be2a3140647b60',
  kind: 0,
  timestamp: 1724648836059000,
  duration: 158.983,
  attributes: {},
  status: { code: 0 },
  events: [],
  links: []
}
{
  resource: {
    attributes: {
      'service.name': 'unknown_service:node',
      'telemetry.sdk.language': 'nodejs',
      'telemetry.sdk.name': 'opentelemetry',
      'telemetry.sdk.version': '1.25.1',
      'process.pid': 5530,
      'process.executable.name': 'node',
      'process.executable.path': '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
      'process.command_args': [
        '/home/ubuntu/.nvm/versions/node/v20.17.0/bin/node',
        '/home/ubuntu/example-site/node_modules/.bin/ts-node',
        '--require',
        './instrumentation.ts',
        'app.ts'
      ],
      'process.runtime.version': '20.17.0',
      'process.runtime.name': 'nodejs',
      'process.runtime.description': 'Node.js',
      'process.command': '/home/ubuntu/example-site/node_modules/.bin/ts-node',
      'process.owner': 'ubuntu',
      'host.name': 'ip-172-31-36-154',
      'host.arch': 'amd64'
    }
  },
  traceId: 'f7c1a0ab28dee8edb91af6ccf15cd2c1',
  parentId: undefined,
  traceState: undefined,
  name: 'fs existsSync',
  id: '0b98aa0ea98e57f7',
  kind: 0,
  timestamp: 1724648836061000,
  duration: 37.533,
  attributes: {},
  status: { code: 0 },
  events: [],
  links: []
}
{
  descriptor: {
    name: 'http.server.duration',
    type: 'HISTOGRAM',
    description: 'Measures the duration of inbound HTTP requests.',
    unit: 'ms',
    valueType: 1,
    advice: {}
  },
  dataPointType: 0,
  dataPoints: [
    {
      attributes: {
        'http.scheme': 'http',
        'http.method': 'GET',
        'net.host.name': '3.111.149.244',
        'http.flavor': '1.1',
        'http.status_code': 200,
        'net.host.port': 8080,
        'http.route': '/rolldice'
      },
      startTime: [ 1724648721, 846000000 ],
      endTime: [ 1724648895, 345000000 ],
      value: {
        min: 15.154531,
        max: 15.154531,
        sum: 15.154531,
        buckets: {
          boundaries: [
               0,    5,    10,   25,
              50,   75,   100,  250,
             500,  750,  1000, 2500,
            5000, 7500, 10000
          ],
          counts: [
            0, 0, 0, 1, 0, 0,
            0, 0, 0, 0, 0, 0,
            0, 0, 0, 0
          ]
        },
        count: 1
      }
    },
    {
      attributes: {
        'http.scheme': 'http',
        'http.method': 'GET',
        'net.host.name': '3.111.149.244',
        'http.flavor': '1.1',
        'http.status_code': 304,
        'net.host.port': 8080,
        'http.route': '/rolldice'
      },
      startTime: [ 1724648722, 233000000 ],
      endTime: [ 1724648895, 345000000 ],
      value: {
        min: 2.14998,
        max: 2.14998,
        sum: 2.14998,
        buckets: {
          boundaries: [
               0,    5,    10,   25,
              50,   75,   100,  250,
             500,  750,  1000, 2500,
            5000, 7500, 10000
          ],
          counts: [
            0, 1, 0, 0, 0, 0,
            0, 0, 0, 0, 0, 0,
            0, 0, 0, 0
          ]
        },
        count: 1
      }
    }
    }
  ]
}

In this article we have covered How to Integrate OpenTelemetry for NodeJS App.

Reference:

OpenTelemetry for NodeJS App

Ankita Lunawat

Working as DevOps Intern likes to share Knowledge.

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Share via
Copy link
Powered by Social Snap