Skip to main content

Astrotel

Astrotel sending OpenTelemetry tracing and logging integration for Python applications into Signoz, Jaeger, OTEL Collector,... with support for FastAPI, Celery, MCP,... application

Installation

Install with pip (requires Python 3.12+):

pip install astrotel[fastapi]

For FastAPI support:

pip install astrotel[fastapi]

Usage

Basic Usage

from astrotel.provider.fastapi import FastAPIOpentelemetryTracing
from fastapi import FastAPI

app = FastAPI()
tracer = FastAPIOpentelemetryTracing()
tracer.configure_tracing(app)

Logging Integration

import logging

tracer = FastAPIOpentelemetryTracing()
logging_handler = tracer.configure_logging_handler()

# Attach handler to root logger
logging.basicConfig(
    level=logging.INFO, 
    handlers=[logging_handler, logging.StreamHandler()]  # also keep console logs
)

# Attach handler to FastAPI's logger too
uvicorn_logger = logging.getLogger("uvicorn")
uvicorn_logger.addHandler(logging_handler)

uvicorn_logger = logging.getLogger("uvicorn.access")
uvicorn_logger.addHandler(logging_handler)

fastapi_logger = logging.getLogger("fastapi")
fastapi_logger.addHandler(logging_handler)

Configuration

You can configure Astrotel via environment variables or by creating environment variables:

Meaning

  • OTEL_SERVICE_NAME: Set service name
  • OTEL_DEPLOYMENT_ENVIRONMENT: Set deployment environment name
  • OTEL_MODE: Send to exporter by http or grpc
  • OTEL_GRPC_ENDPOINT: gRPC OTEL collector endpoint (default: http://localhost:4317)
  • OTEL_HTTP_ENDPOINT: HTTP OTEL collector endpoint (default: http://localhost:4318)
  • OTEL_LOGS_SHIP_LEVEL: Minimum log level to ship (DEBUG, INFO, WARNING, ERROR, CRITICAL)

For example

OTEL_SERVICE_NAME=my-service
OTEL_DEPLOYMENT_ENVIRONMENT=production
OTEL_MODE=grpc
OTEL_GRPC_ENDPOINT=http://otel-collector:4317
OTEL_HTTP_ENDPOINT=http://otel-collector:4318
OTEL_LOGS_SHIP_LEVEL=INFO

Documentation

See the docs/ or build the documentation locally:

make -C docs html

Development

  • Lint: make lint
  • Format: make format

License

MIT

Release files for astrotel 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for astrotel 0.1.0
File Size Uploaded
astrotel-0.1.0.tar.gz 33.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for astrotel 0.1.0
File Interpreter ABI Platform
astrotel-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 37.9 kB

Release files / astrotel-0.1.0.tar.gz

Download URL astrotel-0.1.0.tar.gz
Size 33.4 kB
Tags Source
SHA-256 checksum
How to use checksums
053dc3789f69495756e3093673a4fa60b50064710ddb33e6e622088e6461b161
BLAKE2b-256 checksum
How to use checksums
54f3000e1771038fee9a0e36a2dcb3d2a1692d9666fff46a671aef38d334fb02
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 18, 2025.

Transparency log

Release files / astrotel-0.1.0-py3-none-any.whl

Download URL astrotel-0.1.0-py3-none-any.whl
Size 4.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
39d766d93315ca3e7b81b6af386557521e2f65963c804c5af76bd324d3a4848e
BLAKE2b-256 checksum
How to use checksums
d6be7b2cb2519c6d3685cdcf7359790af5190db69870e734dc0cca5c3978cd29
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 18, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page