I’d like to suggest adding convenient, first-class support for OpenTelemetry (OTel) instrumentation to the Node.js SDK.
Since the SDK is built on top of nice-grpc, there is already an ecosystem solution — nice-grpc-opentelemetry — which provides client/server middleware for tracing. However, currently SDK users need to manually wire this in, which is not always obvious and leads to duplicated effort across projects.
It would be very helpful if the SDK provided built-in or officially supported instrumentation, for example:
- Automatic span creation for all SDK API calls
- Built-in integration with
nice-grpc-opentelemetry middleware (or similar)
- Proper trace context propagation (W3C Trace Context) via gRPC metadata
- A simple “plug-and-play” way to enable tracing (e.g., one-line setup)
- Optional hooks or configuration for customizing spans
This is especially important in environments where auto-instrumentation does not work reliably (e.g., serverless runtimes like Yandex Cloud Functions), making manual instrumentation the only viable option.
A possible approach could be:
- Internally attaching
nice-grpc-opentelemetry middleware to all generated clients, or
- Providing a documented helper/adapter (e.g.,
withOpenTelemetry(client)), or
- Shipping an official instrumentation package for the SDK
This would significantly improve developer experience and make the SDK much easier to integrate into modern observability stacks.
I’d like to suggest adding convenient, first-class support for OpenTelemetry (OTel) instrumentation to the Node.js SDK.
Since the SDK is built on top of
nice-grpc, there is already an ecosystem solution —nice-grpc-opentelemetry— which provides client/server middleware for tracing. However, currently SDK users need to manually wire this in, which is not always obvious and leads to duplicated effort across projects.It would be very helpful if the SDK provided built-in or officially supported instrumentation, for example:
nice-grpc-opentelemetrymiddleware (or similar)This is especially important in environments where auto-instrumentation does not work reliably (e.g., serverless runtimes like Yandex Cloud Functions), making manual instrumentation the only viable option.
A possible approach could be:
nice-grpc-opentelemetrymiddleware to all generated clients, orwithOpenTelemetry(client)), orThis would significantly improve developer experience and make the SDK much easier to integrate into modern observability stacks.