Skip to content

Add first-class OpenTelemetry instrumentation support to SDK #222

@nikolaymatrosov

Description

@nikolaymatrosov

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions