# gRPC C++ OpenTelemetry Example The opentelemetry example builds on the [Hello World Example](https://github.com/grpc/grpc/tree/master/examples/cpp/helloworld) and changes the gRPC client and server to show a sample way of configuring the gRPC OpenTelemetry plugin with a prometheus exporter. For more information on the gRPC OpenTelemetry plugin, please refer to - * [A66: OpenTelemetry Metrics](https://github.com/grpc/proposal/blob/master/A66-otel-stats.md) * [https://opentelemetry.io/]() ## Running the example To run the server - ``` $ tools/bazel run examples/cpp/otel:greeter_callback_server ``` To run the client - ``` $ tools/bazel run examples/cpp/otel:greeter_callback_client ``` The 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. ## CMake Instructions The following libraries need to be installed before building the example with CMake - * absl * protobuf * prometheus-cpp * opentelemetry-cpp (with the options `-DWITH_ABSEIL=ON` `-DWITH_PROMETHEUS=ON`) * grpc (with the option `-DgRPC_BUILD_GRPCPP_OTEL_PLUGIN=ON`) You can find a complete set of instructions for building gRPC and running the Hello World app in the [C++ Quick Start][]. [C++ Quick Start]: https://grpc.io/docs/languages/cpp/quickstart