OpenTelemetry gRPC Instrumentation
OpenTelemetry instrumentation for users of the gRPC gem.
[!WARNING] Right now, the gem only instruments outbound requests to gRPC services
How do I get started?
Install the gem using:
gem install opentelemetry-instrumentation-grpc
Or, if you use bundler, include opentelemetry-instrumentation-grpc in your Gemfile.
Usage
To use the instrumentation, call use with the name of the instrumentation:
OpenTelemetry::SDK.configure do |c|
c.use 'OpenTelemetry::Instrumentation::Grpc', {
peer_service: "Example",
allowed_metadata_headers: [],
}
end
Alternatively, you can also call use_all to install all the available
instrumentation.
OpenTelemetry::SDK.configure do |c|
c.use_all
end
Examples
Example usage can be seen in the ./example/trace_demonstration.rb file
Development
Integration tests rely on a real gRPC server that is started by relevant tests. The proto definition is located in test/support/proto/ping.proto. Making changes to the proto definition requires re-creating gRPC-generated code. To do this, run the following command:
bundle exec grpc_tools_ruby_protoc --ruby_out=. --grpc_out=. test/support/proto/ping.proto
How can I get involved?
The opentelemetry-instrumentation-grpc gem source is on github, along with related gems including opentelemetry-api and opentelemetry-sdk.
The OpenTelemetry Ruby gems are maintained by the OpenTelemetry Ruby special interest group (SIG). You can get involved by joining us on our GitHub Discussions, Slack Channel or attending our weekly meeting. See the meeting calendar for dates and times. For more information on this and other language SIGs, see the OpenTelemetry community page.
License
The opentelemetry-instrumentation-grpc gem is distributed under the Apache 2.0 license. See LICENSE for more information.