Files
upstream-grpc-go/examples/features/csm_observability/README.md
upstream-mirror e241b33f26
Some checks failed
codecov / upload (push) Failing after 13m59s
CodeQL / Analyze (push) Failing after 1s
Testing / vet-proto (push) Failing after 1s
Testing / tests (arm, latest) (push) Waiting to run
Testing / extras (latest) (push) Failing after 1s
Testing / static checks (latest-1) (push) Failing after 1s
Testing / tests (-race, latest) (push) Failing after 1s
Testing / tests (i386, latest) (push) Failing after 1s
Testing / tests (latest) (push) Failing after 1s
Testing / tests (latest-1) (push) Failing after 1s
Lock Threads / lock (push) Failing after 1s
govulncheck / govulncheck (.) (push) Failing after 1s
govulncheck / govulncheck (./cmd/protoc-gen-go-grpc) (push) Failing after 1s
govulncheck / govulncheck (./gcp/observability) (push) Failing after 1s
govulncheck / govulncheck (./security/advancedtls) (push) Failing after 1s
govulncheck / govulncheck (./stats/opencensus) (push) Failing after 1s
Stale bot / stale (push) Failing after 1s
snapshot of https://github.com/grpc/grpc-go.git (master, 2026-09-15; blobs > 131072B omitted)
2026-09-15 20:40:15 +05:00

1.2 KiB

CSM Observability

This examples shows how to configure CSM Observability for gRPC client and server applications (configured once per binary), and shows what type of telemetry data it can produce for certain RPCs with additional CSM Labels. The gRPC Client accepts configuration from an xDS Control plane as the default address that it connects to is "xds:///helloworld:50051", but this can be overridden with the command line flag --server_addr. This can be plugged into the steps outlined in the CSM Observability User Guide.

Try it (locally if overwritten xDS Address)

go run server/main.go
go run client/main.go

Curl to the port where Prometheus exporter is outputting metrics data:

curl localhost:9464/metrics

Building

From the grpc-go directory:

Client: docker build -t -f examples/features/csm_observability/client/Dockerfile .

Server: docker build -t -f examples/features/csm_observability/server/Dockerfile .

Note that this example will not work by default, as the client uses an xDS Scheme and thus needs xDS Resources to connect to the server. Deploy the built client and server containers within Cloud Service Mesh in order for this example to work, or overwrite target to point to :.