Skip to main content

hexastack-otel

hexastack-otel

Vendor-agnostic OpenTelemetry distributed tracing and CQRS telemetry middleware for Hexastack.

Part of the Hexastack Framework.

PyPI: hexastack-otel Python 3.13+ Coverage License: Apache 2.0


1. Architectural Overview

hexastack-otel provides pure hexagonal port interfaces for distributed tracing (TracingPort) and metrics collection (MetricsPort).

  • Distributed Tracing: Backed by the official OpenTelemetry Python SDK (OtelTracingAdapter, InMemoryTracingAdapter), linking correlation IDs and creating spans across CQRS Command/Query executions, HTTP endpoints, and gRPC RPCs.
  • Prometheus Metrics Engine: Backed by prometheus_client (PrometheusMetricsAdapter), tracking throughput counters, execution duration histograms, and system gauges exposed over /metrics.
graph TD
    CQRS["CQRS Command / Query Dispatch"]
    MW["TracingMiddleware (order=12)"]
    PORT["TracingPort"]
    OTEL["OtelTracingAdapter\n(OpenTelemetry SDK)"]
    MEM["InMemoryTracingAdapter\n(Test Isolation)"]
    OTLP["OTLP Exporter\n(gRPC / HTTP)"]
    COLLECTOR["OTel Collector / Jaeger / Grafana Tempo / Sift"]

    CQRS --> MW
    MW --> PORT
    PORT -.-> OTEL
    PORT -.-> MEM
    OTEL --> OTLP
    OTLP --> COLLECTOR

2. Quickstart

Installation

# Core OpenTelemetry SDK & TracingPort
pip install hexastack-otel

# With OTLP Protobuf Exporters (gRPC & HTTP)
pip install hexastack-otel[otlp]

Configuration (hexastack.toml or pyproject.toml)

[hexastack.otel]
service_name = "order-service"
endpoint = "http://localhost:4317"
exporter = "otlp_grpc" # "memory", "console", "otlp_grpc", "otlp_http"
sample_rate = 1.0
enabled = true

3. Automatic CQRS Tracing & Dynamic Feature Flagging

The TracingMiddleware automatically wraps every dispatched command or query in a scoped span:

  • Dynamic Feature Flag Control: Evaluates features.otel.tracing via FeatureFlagPort dynamically per-message, enabling zero-downtime activation/deactivation of telemetry spans.
  • Span Name: cqrs.CreateOrderCommand
  • Attributes:
    • message.name: CreateOrderCommand
    • message.type: command
    • correlation.id: 0724ec78-f952-4467...
    • tenant.id: tenant-alpha
    • user.id: usr_123
  • Error Capture: Automatically catches unhandled exceptions, records them as span exception events, and sets span status to ERROR.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hexastack_otel-0.3.0.tar.gz (10.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hexastack_otel-0.3.0-py3-none-any.whl (18.0 kB view details)

Uploaded Python 3

File details

Details for the file hexastack_otel-0.3.0.tar.gz.

File metadata

  • Download URL: hexastack_otel-0.3.0.tar.gz
  • Upload date:
  • Size: 10.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for hexastack_otel-0.3.0.tar.gz
Algorithm Hash digest
SHA256 5c2ffd2a9007c58c3ff6089718a851b0fb3020f623d2ba4c23e0a0ef6e19144e
MD5 32f2a9d53c1edeb13ea1b9ec238b026b
BLAKE2b-256 319c6a4df7cc537d9f610b32ae7a5fe6642e6ed6e0b076db6bd7cb2c2f766fb8

See more details on using hashes here.

File details

Details for the file hexastack_otel-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: hexastack_otel-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 18.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for hexastack_otel-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2123cdc5fa50a9e5d802859e39f7bf9bbf93cd1c7f1fb62f61f4b846c4c5fab7
MD5 f946272fbcb2d68c4e53b6402fe5d34f
BLAKE2b-256 ab7282ae9d5ffed989cb9d5f80be9a0ce865b68564fc62587911b32cbf7c3b9c

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 files

0.2.0

2 files

0.1.0

2 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