Skip to content

Typescript

You can setup tracing for your Node.js Typescript application. Check sample configuration on how to setup traces.

Clone

git clone https://github.com/openobserve/sample-tracing-nodejs-typescript

If you don't have node.js installed, please install it and then follow below steps.

Open tracing.ts file from that repository. and make changes to the highlighted lines below and make changes to the highlighted lines below.

import  *  as  opentelemetry  from  "@opentelemetry/sdk-node";
import { getNodeAutoInstrumentations } from  "@opentelemetry/auto-instrumentations-node";
import { diag, DiagConsoleLogger, DiagLogLevel } from  "@opentelemetry/api";
import { OTLPTraceExporter } from  "@opentelemetry/exporter-trace-otlp-http";

// For troubleshooting, set the log level to DiagLogLevel.DEBUG

diag.setLogger(new  DiagConsoleLogger(), DiagLogLevel.INFO);

const  sdk = new  opentelemetry.NodeSDK({
    // traceExporter: new opentelemetry.tracing.ConsoleSpanExporter(),
    traceExporter:  new  OTLPTraceExporter({
        url: "https://api.openobserve.ai/api/default/v1/traces",
        headers: {
            Authorization: "Authorization",
            "stream-name": "default"
        },
    }),
    instrumentations: [getNodeAutoInstrumentations()],
    serviceName:  "nodejs-typescript-service",
});

sdk.start();

Setup up credentials

You will get url and Authorization key here http://cloud.openobserve.ai/ingestion/traces/

Replace the url and Authorization key in the tracing.js file

Setup Service/Application

Follow the steps given in the sample-tracing-nodejs-typescript readme and then start server

npm install
ts-node --require './tracing.ts' app.ts
The server is now running on 8080, navigate to http://localhost:8080
Refresh page couple of times to get more traces exported.

Traces Sample Configration

Traces are captured, you can check these captured traces here https://cloud.openobserve.ai/traces

Traces Page

Filter traces with your service name nodejs-typescript-service

Filter traces with service name

Click on any trace to check trace data.

Trace details

Trace can have multiple spans, each span represents single operation or task within that trace. Click on any span to check span details.

Trace details