@opentelemetry/instrumentation-grpc
v0.57.0
Published
OpenTelemetry instrumentation for `@grpc/grpc-js` rpc client and server for gRPC framework
Downloads
7,115,354
Readme
OpenTelemetry gRPC Instrumentation for Node.js
Note: This is an experimental package under active development. New releases may include breaking changes.
This module provides automatic instrumentation for @grpc/grpc-js
. Currently, version 1.x
of @grpc/grpc-js
is supported.
For automatic instrumentation see the @opentelemetry/sdk-trace-node package.
Installation
npm install --save @opentelemetry/instrumentation-grpc
Supported Versions
@grpc/grpc-js
versions^1.0.0
Usage
OpenTelemetry gRPC Instrumentation allows the user to automatically collect trace data and export them to the backend of choice, to give observability to distributed systems when working with (grpc-js).
To load a specific instrumentation (gRPC in this case), specify it in the Node Tracer's configuration.
const { NodeTracerProvider } = require('@opentelemetry/sdk-trace-node');
const { GrpcInstrumentation } = require('@opentelemetry/instrumentation-grpc');
const { registerInstrumentations } = require('@opentelemetry/instrumentation');
const provider = new NodeTracerProvider({
spanProcessors: [new SimpleSpanProcessor(new ConsoleSpanExporter())]
});
provider.register();
registerInstrumentations({
instrumentations: [new GrpcInstrumentation()]
});
See examples/grpc-js for examples.
gRPC Instrumentation Options
gRPC instrumentation accepts the following configuration:
| Options | Type | Description |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| ignoreGrpcMethods
| IgnoreMatcher[]
| gRPC instrumentation will not trace any methods that match anything in this list. You may pass a string (case-insensitive match), a RegExp
object, or a filter function. |
| metadataToSpanAttributes
| object
| List of case insensitive metadata to convert to span attributes. Client and server (outgoing requests, incoming responses) metadata attributes will be converted to span attributes in the form of rpc.{request\response}.metadata.metadata_key
, e.g. rpc.response.metadata.date
|
Useful links
- For more information on OpenTelemetry, visit: https://opentelemetry.io/
- For more about OpenTelemetry JavaScript: https://github.com/open-telemetry/opentelemetry-js
- For help or feedback on this project, join us in GitHub Discussions
License
Apache 2.0 - See LICENSE for more information.