Update monitoring packages to latest versions
- Updated all OpenTelemetry packages to latest versions: - opentelemetry-api: 1.27.0 → 1.39.1 - opentelemetry-sdk: 1.27.0 → 1.39.1 - opentelemetry-exporter-otlp-proto-grpc: 1.27.0 → 1.39.1 - opentelemetry-exporter-otlp-proto-http: 1.27.0 → 1.39.1 - opentelemetry-instrumentation-fastapi: 0.48b0 → 0.60b1 - opentelemetry-instrumentation-httpx: 0.48b0 → 0.60b1 - opentelemetry-instrumentation-redis: 0.48b0 → 0.60b1 - opentelemetry-instrumentation-sqlalchemy: 0.48b0 → 0.60b1 - Removed prometheus-client==0.23.1 from all services - Unified all services to use the same monitoring package versions Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
@@ -20,7 +20,7 @@ from fastapi.middleware.cors import CORSMiddleware
|
||||
from fastapi.responses import JSONResponse
|
||||
from fastapi.routing import APIRouter
|
||||
|
||||
from shared.monitoring import setup_logging
|
||||
from shared.monitoring import setup_logging, setup_otel_logging, setup_otel_metrics, setup_all_metrics
|
||||
from shared.monitoring.metrics import setup_metrics_early
|
||||
from shared.monitoring.health_checks import setup_fastapi_health_checks
|
||||
from shared.monitoring.tracing import setup_tracing
|
||||
@@ -77,7 +77,18 @@ class BaseFastAPIService:
|
||||
|
||||
# Initialize logging
|
||||
setup_logging(service_name, log_level)
|
||||
self.logger = structlog.get_logger()
|
||||
|
||||
# Setup OpenTelemetry logging export if enabled
|
||||
if os.getenv("OTEL_LOGS_EXPORTER", "").lower() == "otlp":
|
||||
try:
|
||||
setup_otel_logging(service_name, version)
|
||||
self.logger = structlog.get_logger()
|
||||
self.logger.info(f"OpenTelemetry logs export enabled for {service_name}")
|
||||
except Exception as e:
|
||||
self.logger = structlog.get_logger()
|
||||
self.logger.warning(f"Failed to setup OpenTelemetry logs export: {e}")
|
||||
else:
|
||||
self.logger = structlog.get_logger()
|
||||
|
||||
# Will be set during app creation
|
||||
self.app: Optional[FastAPI] = None
|
||||
@@ -109,17 +120,40 @@ class BaseFastAPIService:
|
||||
if self.enable_metrics:
|
||||
self.metrics_collector = setup_metrics_early(self.app, self.service_name)
|
||||
|
||||
# Setup OpenTelemetry metrics export if enabled
|
||||
enable_otel_metrics = os.getenv("ENABLE_OTEL_METRICS", "true").lower() == "true"
|
||||
if enable_otel_metrics:
|
||||
try:
|
||||
self.otel_meter_provider = setup_otel_metrics(self.service_name, self.version)
|
||||
if self.otel_meter_provider:
|
||||
self.logger.info(f"OpenTelemetry metrics export enabled for {self.service_name}")
|
||||
|
||||
# Setup system metrics collection (CPU, memory, disk, network)
|
||||
enable_system_metrics = os.getenv("ENABLE_SYSTEM_METRICS", "true").lower() == "true"
|
||||
if enable_system_metrics:
|
||||
try:
|
||||
self.system_metrics, self.app_metrics = setup_all_metrics(
|
||||
self.service_name,
|
||||
self.version,
|
||||
self.otel_meter_provider
|
||||
)
|
||||
self.logger.info(f"System metrics collection enabled for {self.service_name}")
|
||||
except Exception as e:
|
||||
self.logger.warning(f"Failed to setup system metrics: {e}")
|
||||
except Exception as e:
|
||||
self.logger.warning(f"Failed to setup OpenTelemetry metrics export: {e}")
|
||||
|
||||
# Setup distributed tracing
|
||||
# Check both constructor flag and environment variable
|
||||
tracing_enabled = self.enable_tracing and os.getenv("ENABLE_TRACING", "true").lower() == "true"
|
||||
|
||||
if tracing_enabled:
|
||||
try:
|
||||
jaeger_endpoint = os.getenv(
|
||||
"JAEGER_COLLECTOR_ENDPOINT",
|
||||
"http://jaeger-collector.monitoring:4317"
|
||||
otel_endpoint = os.getenv(
|
||||
"OTEL_COLLECTOR_ENDPOINT",
|
||||
"http://signoz-otel-collector.signoz:4318"
|
||||
)
|
||||
setup_tracing(self.app, self.service_name, self.version, jaeger_endpoint)
|
||||
setup_tracing(self.app, self.service_name, self.version, otel_endpoint)
|
||||
self.logger.info(f"Distributed tracing enabled for {self.service_name}")
|
||||
except Exception as e:
|
||||
self.logger.warning(f"Failed to setup tracing, continuing without it: {e}")
|
||||
|
||||
Reference in New Issue
Block a user