Application Monitoring¶
Overview¶
This directory contains the monitoring configuration for the FastAPI application. The monitoring system is based on Prometheus and Grafana.
Components¶
- Prometheus: Collects and stores metrics
- Grafana: Visualizes metrics and provides dashboards
- Prometheus FastAPI Instrumentator: Adds FastAPI-specific metrics
Metrics¶
The following metrics are collected:
- HTTP request count
- HTTP request duration
- HTTP request size
- HTTP response size
- HTTP status codes
- Database query count
- Database query duration
- Memory usage
- CPU usage
Dashboards¶
The following dashboards are available:
- Application Overview: General application metrics
- HTTP Requests: Detailed HTTP request metrics
- Database: Database performance metrics
- System Resources: CPU, memory, and disk usage
Setup¶
The monitoring system is automatically set up when you run:
make monitoring-up
Accessing Dashboards¶
Once the monitoring system is running, you can access the dashboards at:
- Grafana:
http://localhost:3000 - Prometheus:
http://localhost:9090
Configuration¶
The monitoring configuration can be customized by editing the following files:
prometheus.yml: Prometheus configurationgrafana/dashboards/*.json: Grafana dashboardsgrafana/datasources/*.yml: Grafana data sources
Integration with Alerts¶
The monitoring system is integrated with the alerting system. Alerts are configured in:
prometheus/alerts.yml: Alert rulesalertmanager/config.yml: Alert manager configuration