Files
linearvoid/MONITORING.md
T
zwitschi c10d98f3b4
CI / test (push) Successful in 3m51s
CI / docker (push) Successful in 6m16s
CI / release (push) Skipped
Refactor code structure for improved readability and maintainability
2026-08-04 21:19:49 +02:00

3.4 KiB

Monitoring Guide

This guide covers Prometheus and Grafana setup for Linear Void.

Current Monitoring Components

  • Prometheus container: linearvoid-prometheus
  • Grafana container: linearvoid-grafana
  • Metrics target: chat service /metrics
  • Base scrape config: monitoring/prometheus/prometheus.yml

Prometheus Configuration

Current scrape config:

  • Job chat -> chat:3000
  • Job prometheus -> prometheus:9090
  • Global scrape interval: 15s

File:

  • monitoring/prometheus/prometheus.yml

Start Monitoring Stack

With compose stack up:

Compose services include prometheus and grafana in both docker-compose.yml and docker-compose.prod.yml.

Grafana Provisioning

Current mount paths:

  • Dashboards directory: monitoring/grafana/dashboards
  • Datasources directory: monitoring/grafana/datasources

Notes:

  • The dashboards directory includes a Prometheus overview dashboard file.
  • Datasource provisioning can be done with a YAML file in monitoring/grafana/datasources, or by configuring a datasource in Grafana UI.

Example datasource provisioning file (create if needed):

apiVersion: 1

datasources:
  - name: Prometheus
    type: prometheus
    access: proxy
  url: http://prometheus:9090
    isDefault: true

Dashboard References

Grafana screenshot:

Grafana dashboard screenshot

Key Metrics to Track

Chat/Application

  • linearvoid_chat_connected_clients
  • linearvoid_chat_stored_messages_total
  • linearvoid_chat_moderation_actions_total
  • linearvoid_chat_redis_enabled
  • linearvoid_chat_redis_up
  • linearvoid_chat_active_admin_sessions

Prometheus Runtime

  • up
  • process_cpu_seconds_total
  • process_resident_memory_bytes
  • prometheus_tsdb_head_series
  • prometheus_tsdb_wal_writes_failed_total
  • prometheus_tsdb_compactions_failed_total

Suggested Alerts

Create a Prometheus rules file (for example monitoring/prometheus/alerts.yml) and wire it into Prometheus.

Recommended baseline alerts:

  • Chat target down for 2m
  • Prometheus target down for 2m
  • Redis indicator down for 2m
  • TSDB WAL/compaction failure rate above zero
  • Elevated handler/query latency p99

Validate Monitoring End-to-End

  1. Verify /metrics through nginx:
  1. Confirm targets in Prometheus:
  • Status -> Targets page in Prometheus UI
  1. Confirm dashboard data in Grafana:
  • Import or open provisioned dashboards

Troubleshooting

No chat metrics in Prometheus

  • Check chat container health and logs.
  • Confirm /metrics is reachable from Prometheus container.
  • Verify scrape target is chat:3000 in prometheus.yml.

Grafana shows no data

  • Ensure datasource points to http://prometheus:9090.
  • Confirm Prometheus is healthy.
  • Check dashboard query labels match active jobs.

High cardinality or query slowness

  • Reduce unneeded labels.
  • Limit expensive dashboard panels.
  • Tune retention and query windows.

Operational Recommendations

  • Keep alert thresholds tied to actual user impact.
  • Review dashboards after each release that changes endpoints or metrics names.
  • Periodically test alert routing and incident response flow.