Monitoring
TrinityX monitoring is based on the well known Prometheus and Grafana stack. Prometheus architecture is pull-based, meaning that each system and service to be monitored will expose an HTTP endpoint, that will be periodally scraped by the Prometheus Server
From an architectural perspective we can identify 4 major pillars:
- Metrics exporting
- Metrics collection & storing
- Dashboards & Graphing
- Alerting
Metrics exporting
TrinityX bundles 5 different prometheus exporters, some of them will run on controller nodes, other on compute nodes and some on both
Name | Controller | Node | Port |
---|---|---|---|
node-exporter | ✅ | ✅ | 14200 |
ipmi-exporter | ✅ | ✅ | 14202 |
nvidia-exporter | ❌ | ✅ | 14203 |
slurm-exporter | ✅ | ❌ | 14204 |
ha-exporter | ✅ | ❌ | 14205 |
Metrics collection & storing
Metrics collection is performed by a standard prometheus server, on a standard installation it is running on all the controllers at port 9000 and the configuration file can be found at trinity/local/etc/prometheus_server/prometheus.yml
.
Intervals and timeouts
global:
scrape_interval: 15s
scrape_timeout: 10s
evaluation_interval: 15s
Rule files
rule_files:
- /trinity/local/etc/prometheus_server/rules/*.rules
Scraping targets, there are 3 locations from where targets are loaded, either with HTTP discovery and File-based discovery
scrape_configs:
# TrinityX reserved - Luna daemon exposing dynamic list of node exporters
- job_name: luna_controllers
file_sd_configs:
- files:
- /trinity/local/etc/prometheus_server/file_sd/trix/*.yml
# TrinityX reserved - File based controller exporters
- job_name: luna_nodes
http_sd_configs:
- url: https://localhost:7050/export/prometheus
# General Purpose - Additional exporters
- job_name: other_nodess
scheme: https
file_sd_configs:
- files:
- /trinity/local/etc/prometheus_server/file_sd/other/*.yml
And alerting
alerting:
alertmanagers:
- static_configs:
- targets:
- localhost:9093
scheme: https
basic_auth:
username: admin
password: XXXXXXXXXXXXXX
Dashboards & Graphing
TrinityX come default with a rich set of graphical applications and grafana dashboards allowing to view the status of various components like rack view with metric overlay, cluster (home), slurm, zfs, HA and others.
Rackview is useful to locate temperature and power hot spots:
Some example grafana screenshots:
Home dashboard
GPU dashboard
HA dashboard
ZFS filesystem dashboard
Alerting
[ pending ]
Notes
- On sufficiently performant hardware, this setup can easily scale to a few thousands of nodes. For bigger sites it is recommended to disable the prometheus-server role and implement a custom hierarchical federation with multiple monitoring nodes.