mirror of https://github.com/grpc/grpc-java.git
55 lines
1.7 KiB
Markdown
55 lines
1.7 KiB
Markdown
gRPC OpenTelemetry Example
|
|
================
|
|
|
|
The example extends the gRPC "hello world" example by modifying the client and server to
|
|
showcase a sample configuration for gRPC OpenTelemetry with a Prometheus exporter.
|
|
|
|
The example requires grpc-java to be pre-built. Using a release tag will download the relevant binaries
|
|
from a maven repository. But if you need the latest SNAPSHOT binaries you will need to follow
|
|
[COMPILING](../../COMPILING.md) to build these.
|
|
|
|
### Build the example
|
|
|
|
The source code is [here](src/main/java/io/grpc/examples/opentelemetry).
|
|
To build the example, run in this directory:
|
|
```
|
|
$ ../gradlew installDist
|
|
```
|
|
The build creates scripts `opentelemetry-server` and `opentelemetry-client` in the `build/install/example-opentelemetry/bin/` directory
|
|
which can be used to run this example. The example requires the server to be running before starting the
|
|
client.
|
|
|
|
### Run the example
|
|
|
|
**opentelemetry-server**:
|
|
|
|
The opentelemetry-server accepts optional arguments for server-port and prometheus-port:
|
|
|
|
```text
|
|
USAGE: opentelemetry-server [server-port [prometheus-port]]
|
|
```
|
|
|
|
**opentelemetry-client**:
|
|
|
|
The opentelemetry-client accepts optional arguments for user-name, target and prometheus-port:
|
|
|
|
```text
|
|
USAGE: opentelemetry-client-client [user-name [target [prometheus-port]]]
|
|
```
|
|
|
|
The opentelemetry-client continuously sends an RPC to the server every second.
|
|
|
|
To make sure that the server and client metrics are being exported properly, in
|
|
a separate terminal, run the following:
|
|
|
|
```
|
|
$ curl localhost:9464/metrics
|
|
```
|
|
|
|
```
|
|
$ curl localhost:9465/metrics
|
|
```
|
|
|
|
> ***NOTE:*** If the prometheus endpoint configured is overridden, please update the target in the
|
|
> above curl command.
|