Telemetry
pyvider.rpcplugin.telemetry
¶
OpenTelemetry integration for RPC Plugin framework.
This module provides access to OpenTelemetry tracing for RPC operations.
IMPORTANT: This is a LIBRARY module. It does NOT configure OpenTelemetry. Applications using this library should configure OpenTelemetry themselves via provide-foundation or standard OTEL SDK setup.
Key features: - Access to OpenTelemetry tracer for RPC operations - Access to OpenTelemetry meter for metrics - Graceful degradation when OTEL unavailable - Zero overhead when disabled
Usage
Application configures OpenTelemetry: >>> from provide.foundation import TelemetryConfig >>> from provide.foundation.tracer.otel import setup_opentelemetry_tracing >>> >>> config = TelemetryConfig( ... service_name="my-app", # Application's service name ... tracing_enabled=True, ... otlp_endpoint="http://localhost:4317" ... ) >>> setup_opentelemetry_tracing(config)
Library gets tracer (already configured by app): >>> from pyvider.rpcplugin.telemetry import get_rpc_tracer >>> >>> tracer = get_rpc_tracer() # instrumentation.library.name="pyvider.rpcplugin" >>> if tracer: ... with tracer.start_as_current_span("rpc.operation"): ... # ... perform operation ... pass
Note
This module does NOT reimplement OpenTelemetry. It uses the tracer already configured by the application, and identifies RPC operations via instrumentation.library.name="pyvider.rpcplugin".
All traces will appear under the application's service.name, making observability unified rather than fragmented.
Functions¶
get_rpc_meter
¶
Get OpenTelemetry meter for RPC metrics.
Returns meter from the already-configured global meter provider. The application must have configured OpenTelemetry before calling this.
Returns:
| Type | Description |
|---|---|
Meter | None
|
Meter instance if available, None otherwise |
Example
meter = get_rpc_meter() if meter: ... counter = meter.create_counter( ... "rpc.handshake.success", ... description="Successful handshakes" ... ) ... counter.add(1, {"transport": "unix"})
Source code in pyvider/rpcplugin/telemetry.py
get_rpc_tracer
¶
Get OpenTelemetry tracer for RPC operations.
Returns tracer from the already-configured global tracer provider. The application must have configured OpenTelemetry before calling this.
Returns:
| Type | Description |
|---|---|
Tracer | None
|
Tracer instance if available, None otherwise |
Example
tracer = get_rpc_tracer() if tracer: ... with tracer.start_as_current_span("rpc.handshake") as span: ... span.set_attribute("transport", "unix") ... # ... perform handshake