skillfed

nucliadb-telemetry

NucliaDB Telemetry Library Python process

nucliadb-telemetry v7.1.0.post7000 166.5K downloads/30d#10,491 on PyPI721
Permissive license Apache-2.0 Active released

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 on this page — 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

nucliadb-telemetry on PyPI

pip

pip install nucliadb-telemetry

uv

uv add nucliadb-telemetry

poetry

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 the current Python release (<4,>=3.10)
Install friction low — pure-Python wheel
Runtime dependencies 5 — pydantic, pydantic-settings, prometheus-client, orjson, wrapt
Maintenance actively maintained — 3 days since the last release
Last repo commit
First released
Downloads 166,507/month — #10,491 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: nucliadb_telemetry-7.1.0.post7000-py3-none-any.whl

Development Status :: 3 - AlphaFramework :: AsyncIOIntended Audience :: DevelopersIntended Audience :: Information TechnologyProgramming Language :: PythonProgramming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Topic :: System :: Monitoring

Tags

fastapi tracing instrumentationdistributed tracing async pythongrpc nats trace propagationjaeger tracing asynciotrace context propagation
distributed-tracingasync-instrumentationjaeger

More Monitoring packages

tqdm

Wraps any iterable to display a real-time…

copyleft · top 100 on PyPI

opentelemetry-semantic-conventions

Provides generated Python code for…

permissive · top 100 on PyPI

opentelemetry-sdk

Provides the reference implementation of the…

permissive · top 100 on PyPI

opentelemetry-api

Provides the abstract API and interfaces for…

permissive · top 100 on PyPI

opentelemetry-exporter-otlp-proto-http

Exports OpenTelemetry observability data to an…

permissive · top 1,000 on PyPI

opentelemetry-instrumentation

Provides automatic instrumentation commands and…

permissive · top 1,000 on PyPI

opentelemetry-propagator-jaeger

Provides trace context propagation for the…

permissive · top 5,000 on PyPI

jaeger-client

Jaeger-client instruments Python applications…

permissive · top 15,000 on PyPI

opentelemetry-instrumentation-qdrant

Adds distributed tracing to Qdrant vector…

permissive · top 5,000 on PyPI

opentelemetry-exporter-jaeger-proto-grpc

Exports OpenTelemetry tracing data to Jaeger…

permissive · top 15,000 on PyPI

opentelemetry-instrumentation-grpc

Adds automatic tracing and monitoring to gRPC…

permissive · top 5,000 on PyPI

nats-py

An asyncio Python client for connecting to and…

permissive · top 5,000 on PyPI

opentelemetry-propagator-gcp

Propagates trace context in Google Cloud's…

permissive · top 5,000 on PyPI

opentelemetry-propagator-ot-trace

Provides OpenTelemetry trace context…

permissive · top 5,000 on PyPI

opentelemetry-instrumentation-django

Adds distributed tracing to Django applications…

permissive · top 1,000 on PyPI

opentelemetry-instrumentation-threading

Ensures OpenTelemetry context is propagated…

permissive · top 1,000 on PyPI