| gRPC Observability Example | |
| ===================== | |
| The examples here demonstrate how to setup gRPC Python Observability with OpenTelemetry. | |
| More details about how to use gRPC Python Observability APIs can be found in [OpenTelemetry Metrics gRFC](https://github.com/grpc/proposal/blob/master/A66-otel-stats.md#opentelemetry-metrics). | |
| This directory contains both synchronous and asynchronous (AsyncIO) examples of gRPC observability. | |
| ### Install Requirements | |
| 1. Navigate to this directory: | |
| ```sh | |
| cd examples/python/observability | |
| ``` | |
| 2. Install requirements: | |
| ```sh | |
| python -m pip install -r requirements.txt | |
| ``` | |
| ### Synchronous Example | |
| #### Run the Server | |
| Start the server: | |
| ```sh | |
| python -m observability_greeter_server | |
| ``` | |
| #### Run the Client | |
| Note that client should start within 10 seconds of the server becoming active. | |
| ```sh | |
| python -m observability_greeter_client | |
| ``` | |
| ### AsyncIO Example | |
| #### Run the Server | |
| Start the server: | |
| ```sh | |
| python -m async_observability_greeter_server | |
| ``` | |
| #### Run the Client | |
| Note that client should start within 10 seconds of the server becoming active. | |
| ```sh | |
| python -m async_observability_greeter_client | |
| ``` | |
| ### Verifying Metrics | |
| Both synchronous and asynchronous examples will print a list of metric names collected. | |
| Server Side: | |
| ``` | |
| Server started, listening on 50051 | |
| Metrics exported on Server side: | |
| grpc.server.call.started | |
| grpc.server.call.sent_total_compressed_message_size | |
| grpc.server.call.rcvd_total_compressed_message_size | |
| grpc.server.call.duration | |
| ``` | |
| Client Side: | |
| ``` | |
| Greeter client received: Hello You | |
| Metrics exported on client side: | |
| grpc.client.call.duration | |
| grpc.client.attempt.started | |
| grpc.client.attempt.sent_total_compressed_message_size | |
| grpc.client.attempt.rcvd_total_compressed_message_size | |
| grpc.client.attempt.duration | |
| ``` |