This message was deleted.
s
This message was deleted.
p
hey @User Can you share the packages you have included in your package.json?
s
Copy code
"@opentelemetry/api": "^1.0.3",
    "@opentelemetry/auto-instrumentations-node": "^0.25.0",
    "@opentelemetry/exporter-collector": "0.25.0",
    "@opentelemetry/exporter-collector-grpc": "^0.25.0",
    "@opentelemetry/exporter-otlp-grpc": "^0.26.0",
    "@opentelemetry/instrumentation": "^0.24.0",
    "@opentelemetry/instrumentation-http": "^0.24.0",
    "@opentelemetry/plugin-express": "^0.15.0",
    "@opentelemetry/plugin-http": "^0.18.2",
    "@opentelemetry/resources": "^0.24.0",
    "@opentelemetry/sdk-trace-base": "^1.0.1",
    "@opentelemetry/sdk-trace-node": "^1.0.1",
    "@opentelemetry/semantic-conventions": "^0.24.0",
    "@types/axios": "^0.14.0",
    "@types/express": "^4.17.13",
    "@types/node": "^17.0.17",
    "@types/sequelize": "4.28.11",
    "axios": "^0.25.0",
    "dotenv": "^16.0.0",
    "express": "^4.17.2",
    "mysql2": "^2.3.3",
    "opentelemetry-instrumentation-express": "0.27.0",
    "sequelize": "^6.16.1",
    "ts-node-dev": "^1.1.8",
My tracer file
Copy code
import { NodeTracerProvider } from '@opentelemetry/sdk-trace-node';
import { SimpleSpanProcessor, BatchSpanProcessor, ConsoleSpanExporter, } from '@opentelemetry/sdk-trace-base';
import { Resource } from '@opentelemetry/resources';
import { SemanticResourceAttributes } from '@opentelemetry/semantic-conventions';
import { registerInstrumentations } from '@opentelemetry/instrumentation';
import { ExpressInstrumentation } from '@opentelemetry/instrumentation-express';
import { HttpInstrumentation } from '@opentelemetry/instrumentation-http';
const { OTLPTraceExporter } = require('@opentelemetry/exporter-otlp-grpc');
import { CollectorTraceExporter } from '@opentelemetry/exporter-collector-grpc';
const init = function (serviceName: string ) {

    // Define traces
    const traceExporter = new OTLPTraceExporter({});

    const provider = new NodeTracerProvider({
        resource: new Resource({
            [SemanticResourceAttributes.SERVICE_NAME]: serviceName
        }),
    });

    provider.addSpanProcessor(new BatchSpanProcessor(traceExporter));

    provider.register();

    registerInstrumentations({
        instrumentations: [
            new ExpressInstrumentation({}),
            new HttpInstrumentation({})
        ]
    });
    const tracer = provider.getTracer(serviceName);
    return { tracer };
}

export default init;
p
@User It seems you are doing manual instrumentation. Can you use the auto-instrumentation mechanism as shown in this sample app - https://github.com/SigNoz/sample-nodejs-app/blob/master/tracing.js
s
sure will try that
p
👍
s
Hi @User I tried the auto instrumentation but that does not capture mysql logs Even after adding additional mysql instruments it was not captured in the platform https://github.com/open-telemetry/opentelemetry-js-contrib/tree/main/plugins/node/opentelemetry-instrumentation-mysql2 It could be a bug i believe i created an issue here https://github.com/SigNoz/signoz/issues/728 cc: @User
p
ok - will check
a
I don't see
sequelize
in supported libs
Also, I see
mysql2
at https://github.com/ganny26/opentelemetry-nodejs-distributed-tracing/blob/main/package.json#L31 but I don't see the relevant otel package at
package-lock.json
which has
mysql
and not
mysql2
. You might want to test using same
mysql
package even for otel instrumentation
s
Hello @User Sorry i forgot to commit the code that was in different branch I added below packages, and validated Since i’m using mysql2 i added the respective otel package https://github.com/ganny26/opentelemetry-nodejs-distributed-tracing/commit/b5452073de8f52663af145b08c852b2dd8d2f0bd