36 lines
1008 B
Markdown
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}}]}}
|
||
|
```
|