Registry / observability / grpcio-observability

grpcio-observability

JSON →
library1.81.1pypypi✓ verified 79d ago

Observability package for gRPC Python, providing OpenTelemetry integration for client and server interceptors. Current version 1.80.0, released alongside grpcio. Release cadence matches grpcio releases (monthly).

pip install grpcio-observability
INSTALL
IMPORT
SIG · GRPCIO-OBSERVABILI
G
grpcio-observability
observabilitypythonv1.81.1
Install
3.3s avg
Import
Disk
42MB
Pass rate
10/ 10
Env Coverage10 / 10
glibc
3.93.13
musl
3.93.13
Install & Compatibility
Where this runs
tested against v1.81.1 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
py 3.103.95 runs
installs and imports cleanly · install 0.0s · import 0.000s · 42.4MB
glibc
py 3.103.95 runs
installs and imports cleanly · install 3.3s · import 0.000s · 39MB
42MB installed
● package 42MB
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

OpenTelemetryPlugin
from grpc_observability import OpenTelemetryPlugin
from grpc_opentelemetry import OpenTelemetryClientInterceptor

Minimal setup for tracing gRPC calls with console export.

import grpc from grpc_opentelemetry import OpenTelemetryServerInterceptor, OpenTelemetryClientInterceptor from opentelemetry import trace from opentelemetry.sdk.trace import TracerProvider from opentelemetry.sdk.trace.export import ConsoleSpanExporter, SimpleSpanProcessor # Set up tracer provider and exporter trace.set_tracer_provider(TracerProvider()) trace.get_tracer_provider().add_span_processor(SimpleSpanProcessor(ConsoleSpanExporter())) # Create interceptors server_interceptor = OpenTelemetryServerInterceptor(trace.get_tracer(__name__)) client_interceptor = OpenTelemetryClientInterceptor(trace.get_tracer(__name__)) # Use with gRPC server/server # server = grpc.server(futures.ThreadPoolExecutor(), interceptors=[server_interceptor]) # stub = ... with interceptor
Debug
Known issues
breakinggrpcio-observability 1.60+ drops support for Python 3.7 and earlier pre-1.60 import paths
fix
Upgrade to Python 3.8+ and use `from grpc_opentelemetry import ...` (not `grpc_opentelemetry.interceptors`)
affects: >=1.60
gotchaInterceptors must be created with the same tracer provider; mixing providers may result in missing spans
fix
Ensure both client and server interceptors use the same global tracer provider (set via `trace.set_tracer_provider`)
affects: all
gotchaOpenTelemetryClientInterceptor does not automatically propagate context; you must install a propagation injector or use the interceptor correctly with metadata
fix
Use `create_metric_interceptors()` or manually inject context into gRPC metadata
affects: all
Upgrade
Version history
1.81.1latest on PyPI · released Jun 11, 2026
Audit
Dependencies
grpciorequiredcore gRPC library required
opentelemetry-apirequiredOpenTelemetry API for observability
opentelemetry-sdkoptionalOpenTelemetry SDK for exporting traces
opentelemetry-exporter-otlpoptionalexport traces via OTLP
Agent activity
22 hits · last 30 days
node
20
OpenAI (training)
2
Resources
grpcio-observability — pip install grpcio-observability · libregistry