27 lines
768 B
Python
27 lines
768 B
Python
"""High-level observability setup wiring."""
|
|
|
|
from fastapi import FastAPI
|
|
|
|
from app.config import ObservabilityConfig
|
|
from app.observability.logging import configure_structured_logging
|
|
from app.observability.metrics import setup_metrics
|
|
from app.observability.tracing import (
|
|
instrument_fastapi_app,
|
|
instrument_httpx_client,
|
|
setup_tracing,
|
|
)
|
|
|
|
|
|
def setup_observability(app: FastAPI, config: ObservabilityConfig) -> None:
|
|
configure_structured_logging(config.log_level)
|
|
setup_tracing(
|
|
service_name=config.service_name,
|
|
otlp_endpoint=config.otlp_endpoint,
|
|
)
|
|
setup_metrics(
|
|
service_name=config.service_name,
|
|
otlp_endpoint=config.otlp_endpoint,
|
|
)
|
|
instrument_fastapi_app(app)
|
|
instrument_httpx_client()
|