578de4d7d6
- Add Prometheus metrics for HTTP, MCP tools, Nextcloud API, OAuth, vector sync, and DB operations - Add OpenTelemetry distributed tracing with OTLP export - Add structured JSON logging with trace context correlation - Add ObservabilityMiddleware for automatic HTTP instrumentation - Add app_name attribute to all client classes for per-app metrics - Add configuration for metrics, tracing, and logging via environment variables - Add documentation in docs/observability.md - Fix graceful degradation when tracing is disabled (default state) - Fix uvicorn logging configuration to use observability formatters 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
36 lines
933 B
Python
36 lines
933 B
Python
"""
|
|
Observability module for the Nextcloud MCP Server.
|
|
|
|
This module provides:
|
|
- Prometheus metrics collection
|
|
- OpenTelemetry distributed tracing
|
|
- Enhanced structured logging with trace correlation
|
|
- Monitoring middleware for Starlette/FastAPI
|
|
|
|
Usage:
|
|
from nextcloud_mcp_server.observability import setup_observability
|
|
|
|
# In app.py lifespan
|
|
setup_observability(app, config)
|
|
"""
|
|
|
|
from nextcloud_mcp_server.observability.logging_config import (
|
|
get_uvicorn_logging_config,
|
|
setup_logging,
|
|
)
|
|
from nextcloud_mcp_server.observability.metrics import (
|
|
get_metrics_handler,
|
|
setup_metrics,
|
|
)
|
|
from nextcloud_mcp_server.observability.middleware import ObservabilityMiddleware
|
|
from nextcloud_mcp_server.observability.tracing import setup_tracing
|
|
|
|
__all__ = [
|
|
"setup_logging",
|
|
"get_uvicorn_logging_config",
|
|
"setup_metrics",
|
|
"setup_tracing",
|
|
"get_metrics_handler",
|
|
"ObservabilityMiddleware",
|
|
]
|