---
title: Monitoring
description: Prometheus metrics, Grafana dashboards, and Alertmanager for platform observability.
icon: material/chart-timeline-variant
tags:
  - guide
  - admin
  - services
  - monitoring
---

# Monitoring

The monitoring stack runs as a Docker Compose profile and provides metrics collection, visualization, and alerting.


![Observability Dashboard](../../../assets/images/screenshots/admin/monitoring.png){ loading=lazy }

---

## Starting the Stack

```bash
docker compose --profile monitoring up -d
```

This starts Prometheus, Grafana, Alertmanager, cAdvisor, Node Exporter, Redis Exporter, and Gotify (for push notifications).

---

## Custom Metrics

The platform exposes 12 custom `cm_*` Prometheus metrics:

- API request rates and latencies
- BullMQ queue sizes (email, SMS, video scheduling)
- Active canvass sessions
- External service health gauges

---

## Grafana Dashboards

Three pre-configured dashboards auto-provisioned from `configs/grafana/`:

- **API Performance** — request rates, latencies, error rates
- **Application Overview** — queue sizes, active sessions, service health
- **System Health** — container resources, host metrics, Redis stats

---

## Alertmanager

Alert rules in `configs/prometheus/alerts.yml` cover:

- API downtime and high error rates
- Queue backlogs
- Service connectivity failures
- Resource utilization thresholds

---

## Admin Routes

- `/app/observability` — embedded Grafana dashboards, alert status, and service health (3 tabs)

## Direct Access

- Grafana: `localhost:3005` or `grafana.DOMAIN`
- Prometheus: `localhost:9090`
- Alertmanager: `localhost:9093`
