Files
threadnet-operating/monitoring/prometheus/gameserver-rules.yml
T

53 lines
2.3 KiB
YAML
Raw Normal View History

# Recording Rules fuer den Game-Host (management #0002).
#
# Materialisiert die Verknuepfung Container-UUID -> Klarname. cAdvisor kennt
# Gameserver nur unter ihrer UUID, weil Wings die Container so benennt und kein
# Namens-Label setzt. Relabeling kann das nicht aufloesen - es kann keine zweite
# Metrik nachschlagen. Diese Regeln schreiben deshalb alle 30 s Serien fort, die
# den Klarnamen bereits mitbringen, damit ihn nicht jedes Panel neu joinen muss.
#
# label_replace setzt zusaetzlich "display" auf den Klarnamen. Damit bedeutet
# display in JEDER Quelle dasselbe - in Loki, in den cAdvisor-Serien und hier:
# der Name, den Menschen lesen sollen.
#
# Uebernommen aus der Uebergabe des Game-Host-Betreibers vom 2026-08-20; dort
# gegen Prometheus 3.0.0 mit `promtool check rules` geprueft.
groups:
- name: gameserver
interval: 30s
rules:
- record: gameserver:cpu_cores
expr: |
label_replace(
sum by (uuid) (rate(container_cpu_usage_seconds_total{uuid!=""}[2m]))
* on (uuid) group_left(server_name, game) pterodactyl_server_info,
"display", "$1", "server_name", "(.*)")
- record: gameserver:memory_working_set_bytes
expr: |
label_replace(
sum by (uuid) (container_memory_working_set_bytes{uuid!=""})
* on (uuid) group_left(server_name, game) pterodactyl_server_info,
"display", "$1", "server_name", "(.*)")
- record: gameserver:memory_limit_bytes
expr: |
label_replace(
max by (uuid) (container_spec_memory_limit_bytes{uuid!=""} > 0)
* on (uuid) group_left(server_name, game) pterodactyl_server_info,
"display", "$1", "server_name", "(.*)")
- record: gameserver:network_receive_bytes_per_second
expr: |
label_replace(
sum by (uuid) (rate(container_network_receive_bytes_total{uuid!=""}[2m]))
* on (uuid) group_left(server_name, game) pterodactyl_server_info,
"display", "$1", "server_name", "(.*)")
- record: gameserver:network_transmit_bytes_per_second
expr: |
label_replace(
sum by (uuid) (rate(container_network_transmit_bytes_total{uuid!=""}[2m]))
* on (uuid) group_left(server_name, game) pterodactyl_server_info,
"display", "$1", "server_name", "(.*)")