--- id: nucliadb-telemetry version: "7.1.0.post7000" license: Apache-2.0 license_treatment: permissive maintenance: active --- # nucliadb-telemetry — NucliaDB Telemetry Library Python process License: permissive · Maintenance: active · Downloads: 166.5K/mo ## What it is and what it does NucliaDB Telemetry is an instrumentation plugin that integrates distributed tracing into async Python services. It wraps FastAPI applications, gRPC servers and clients, and NATS message brokers to automatically capture and propagate trace context using B3 Multi Format headers. Traces are exported to a Jaeger backend configured via environment variables (JAEGER_ENABLED, JAEGER_HOST, JAEGER_PORT). The package handles initialization of a tracer provider and instrumentation of service entry points, ensuring trace IDs flow across async task boundaries and message-broker hops. It depends on pydantic for configuration, prometheus-client for metrics, orjson for serialization, and wrapt for instrumentation. Designed for microservices architectures where observability across service boundaries is essential. Use it for: - Instrument a FastAPI service to emit traces to Jaeger for request-level observability. - Connect gRPC client and server pairs so trace context propagates through RPC calls. - Trace NATS JetStream publish-subscribe and request-reply patterns across services. - Debug async task execution by following trace IDs through FastAPI, gRPC, and NATS. - Export traces to a centralized Jaeger instance for multi-service performance analysis. ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. Adds distributed tracing to FastAPI, gRPC, and NATS services, propagating trace IDs across async boundaries and message brokers. Yes, if you are building a distributed async microservice architecture with FastAPI, gRPC, or NATS and need tracing. The package is actively maintained, has low install friction, and handles integration boilerplate. Be aware it is in Alpha status; verify compatibility with your Jaeger setup before production use. ## Install pip install nucliadb-telemetry uv add nucliadb-telemetry poetry add nucliadb-telemetry ## Installing nucliadb-telemetry Before you install: Low install friction with a small, stable dependency set of 5 runtime dependencies. Actively maintained with a recent release; classifiers indicate Alpha status, so expect API refinement. License in practice: Apache-2.0 permissive license allows commercial use, modification, and distribution with minimal restrictions. Quickstart: pip install nucliadb-telemetry from nucliadb_telemetry import get_telemetry, init_telemetry tracer_provider = get_telemetry("HTTP_SERVICE") await init_telemetry(tracer_provider) Requires Python 3.10 or later; Jaeger backend must be running at JAEGER_HOST:JAEGER_PORT for traces to export. Verify before relying: - Whether the package supports all current versions of its runtime dependencies (pydantic, prometheus-client, orjson, wrapt). - Performance overhead of trace propagation in high-throughput NATS or gRPC scenarios. - Stability guarantees given the Alpha development status and post-release versioning scheme. ## Package facts - License: Apache-2.0 (permissive) - Python support: supports_current - Install friction: low - Maintenance: active - Downloads: 166.5K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags fastapi tracing instrumentation, distributed tracing async python, grpc nats trace propagation, jaeger tracing asyncio, trace context propagation, distributed-tracing, async-instrumentation, jaeger [View on SkillFed](https://skillfed.io/packages/nucliadb-telemetry) · [View on PyPI](https://pypi.org/project/nucliadb-telemetry/)