opentelemetry-erlang-contrib/instrumentation/opentelemetry_grpcbox/README.md

36 lines
1008 B
Markdown

opentelemetry_grpcbox
=====
This [grpcbox](https://github.com/tsloughter/grpcbox) interceptor uses the
[OpenTelemetry](http://opentelemetry.io/) API to create Spans for outgoing and
incoming requests and propagates them as part of the gRPC metadata.
### Server
Configure as an interceptor:
```erlang
#{service_protos => [route_guide_pb],
unary_interceptor => {otel_grpcbox_interceptor, unary}}
```
Or as a middleware in the chain interceptor:
```erlang
#{service_protos => [route_guide_pb],
unary_interceptor =>
grpcbox_chain_interceptor:unary([...,
fun otel_grpcbox_interceptor:unary/4,
...])}
```
### Client
Example in `sys.config` for setting up a [client
channel](https://grpc.io/docs/what-is-grpc/core-concepts/#channels):
``` erlang
{client, #{channels => [{default_channel, [{http, "localhost", 8080, []}],
#{unary_interceptor => fun otel_grpcbox_interceptor:unary_client/7}}]}}
```