#web #database

Observability

→ Grafana

Grafana provides:

It integrates smoothly with loki (logging) and prometheus (metrics).

→ Loki

Loki stores logs either on local or object storage.

It handles various log sources.

I found the most proficient way is to use journal (systemd logs) in json format. It is possible to redirect lot of tools into systemd. For eg:

→ Prometheus

Prometheus can get metrics from system by pulling informations or by making them push informations to a gateway. The grafana interface can be plugged on the prometheus interface.

Overall config:

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
    - targets: ['localhost:9090']
  - job_name: 'node-exporter'
    static_configs:
    - targets: ['localhost:9100']
  - job_name: 'matrix'
    metrics_path: "/_synapse/metrics"
    static_configs:
      - targets: ['localhost:9101']

→ Installation

On archlinux, install prometheus and grafana packages. Both have a systemd service, on ports 9090 and 3000. The config files are /etc/prometheus and /etc/grafana.ini.

→ Use timescaledb

Timescaledb can replace the default database backend. The promscale extension improves the performances.

→ Linux Metrics

On archlinux, install prometheus-node-exporter package and activate the service. It will provide a metric http endpoint on port 9100. Then configure prometheus to fetch the metrics. You can import the grafana dashboard.

→ Matrix

The grafana configuration json can be found here. Configure synapse homeserver.yaml:

listeners:
  - port: 9101
    type: metrics
    bind_addresses: ['0.0.0.0']
enable_metrics: true

→ Jitsi

→ Pleroma

React ?

This page was last modified: