Async-safe exporter retries, opt-in ASGI SLO mode, docs overhaul, and CI hardening
73 files · 4,946+ · 419-

Async-safe exporter retries and opt-in ASGI SLO mode

44 files changed
  • resilience.py Async-safe exporter retry logic — prevents blocking the event loop on transient export failures
  • slo.py SLO tracking support for ASGI middleware; enables active mode
  • middleware.py Opt-in active SLO tracking wired into ASGI request handling
  • backpressure.py Backpressure controls for export pipeline
  • health.py Health snapshot helpers
  • runtime.py Runtime reconfiguration entry points
  • sampling.py Sampling policy helpers
  • cardinality.py Cardinality policy enforcement
  • pii.py PII scrubbing helpers
  • propagation.py W3C trace context propagation
  • __init__.py Public API surface updated for new modules
  • _otel.py Internal OTel loader utilities
  • config.py Config expanded to cover new runtime and SLO settings
  • setup.py Setup lifecycle updated for new providers
  • core.py Logger core updated
  • processors.py Log processors updated
  • __init__.py Metrics package init
  • api.py Metrics API surface
  • fallback.py No-op fallback metrics
  • instruments.py Counter/gauge/histogram wrappers updated
  • provider.py MeterProvider updated
  • events.py Event name literal enforcement
  • decorators.py Tracing decorator updates
  • provider.py TracerProvider updated
  • test_hardening_features.py New hardening feature tests
  • test_middleware_and_setup.py ASGI middleware tests updated for SLO mode
  • test_config_env.py Config env var tests updated
  • conftest.py Shared test fixtures updated
  • test_readme_snippets.py README snippet accuracy tests
  • test_otel_loader.py OTel loader integration tests
  • test_provider_helpers.py Provider helper tests updated
  • test_logger_build_handlers.py Handler build tests updated
  • test_logger_context_processors.py Context processor tests updated
  • test_logger_core.py Logger core tests updated
  • test_metrics_core.py Metrics core tests updated
  • test_event_name_properties.py Property-based tests for event name validation
  • test_exports.py Public API export tests updated
  • test_events.py Schema event tests updated
  • test_setup_lifecycle.py Setup lifecycle tests updated
  • test_check_docs_accuracy.py Docs accuracy gate tests
  • test_check_event_literals.py Event literal check tests
  • test_run_mutation_gate.py Mutation gate script tests
  • test_run_performance_smoke.py Performance smoke test
  • test_tracing_core.py Tracing core tests updated
  • Exporter retry logic made safe for async contexts — prevents blocking the event loop on transient export failures harden behavioral
    2 files
    • resilience.py
    • test_hardening_features.py
  • Added opt-in mode for active SLO tracking in ASGI middleware (previously only passive) interface behavioral
    2 files
    • slo.py
    • middleware.py
  • New runtime modules added: backpressure, cardinality, health, pii, propagation, runtime, sampling — expanding the public API surface instantiate behavioral
    8 files
    • backpressure.py
    • cardinality.py
    • health.py
    • pii.py
    • propagation.py
    • runtime.py
    • sampling.py
    • __init__.py

Documentation overhaul

17 files changed
  • README.md README restructured around PyPI install flow
  • ARCHITECTURE.md Architecture doc updated
  • CONVENTIONS.md Conventions doc expanded (+16 lines)
  • OPERATIONS.md Operations runbook updated
  • PRODUCTION_PROFILES.md Production profiles and runbook links added
  • RELEASE.md Release doc updated
  • README.md Examples overview added
  • 02_verify_ingestion.py Updated OpenObserve ingestion verification example
  • 03_hardening_profile.py New hardening profile example
  • 02_w3c_propagation_asgi.py W3C propagation ASGI example
  • 03_sampling_and_backpressure.py Sampling and backpressure example
  • 04_runtime_reconfigure.py Runtime reconfigure example
  • 05_pii_and_cardinality_policy.py PII and cardinality policy example
  • 06_exporter_resilience_modes.py Exporter resilience modes example
  • 07_slo_pack_and_health_snapshot.py SLO pack and health snapshot example
  • check_docs_accuracy.py Docs accuracy gate script added
  • check_event_literals.py Event literal check script added
  • README restructured around PyPI install flow with docs accuracy gate enforced via check_docs_accuracy.py specify internal
    3 files
    • README.md
    • check_docs_accuracy.py
    • test_readme_snippets.py
  • docs/PRODUCTION_PROFILES.md added with production profiles and runbook links specify internal
    2 files
    • PRODUCTION_PROFILES.md
    • OPERATIONS.md
  • macOS Colima guidance and non-DinD mode added to local development docs specify internal
    1 file
    • CONVENTIONS.md
  • Six new telemetry examples added covering W3C propagation, sampling, backpressure, runtime reconfiguration, PII policy, exporter resilience, and SLO snapshots specify internal
    7 files
    • 02_w3c_propagation_asgi.py
    • 03_sampling_and_backpressure.py
    • 04_runtime_reconfigure.py
    • 05_pii_and_cardinality_policy.py
    • 06_exporter_resilience_modes.py
    • 07_slo_pack_and_health_snapshot.py
    • 03_hardening_profile.py

CI hardening

12 files changed
  • ci.yml CI workflow updated with strict examples smoke test and least-privilege permissions
  • .pre-commit-config.yaml Pre-commit config updated
  • check_licenses.py License check script added
  • run_mutation_gate.py Mutation gate script updated
  • run_performance_smoke.py Performance smoke script added
  • pyproject.toml Project config updated
  • REUSE.toml REUSE license metadata updated
  • VERSION Version updated
  • uv.lock Dependency lockfile updated (307 lines changed)
  • .secrets.baseline Secrets detection baseline updated
  • CLAUDE.md Project Claude guidance updated
  • HANDOFF.md Handoff notes updated
  • Examples smoke test now enforced in CI with minimum required permissions, ensuring examples don’t drift from library API qualify internal
    2 files
    • ci.yml
    • test_run_performance_smoke.py
  • License check script added and integrated into CI baseline internal
    1 file
    • check_licenses.py
  • Dependency lockfile updated reflecting refreshed dependency tree baseline internal
    2 files
    • uv.lock
    • pyproject.toml