Files
factorio/scripts/collect.sh
T
feedc0de d1978abb05
Test and deploy Factorio / validate (push) Failing after 12s
Test and deploy Factorio / deploy (push) Skipped
Deploy achievement-safe Factorio 2.0.77 with strict placement, monitoring and limited CD
2026-10-17 13:50:19 +02:00

28 lines
1.1 KiB
Bash
Executable File

#!/bin/sh
# Only ordinary console commands: no /c, /sc, Lua, mods, or achievement changes.
set -eu
metrics_dir=${METRICS_DIR:-/metrics}
mkdir -p "$metrics_dir"
while :; do
now=$(date +%s)
up=0
players=''
if response=$(timeout 8 rcon /players online 2>/dev/null); then
players=$(printf '%s\n' "$response" | sed -n 's/^Online players (\([0-9][0-9]*\)):.*/\1/p' | head -1)
[ -z "$players" ] || up=1
fi
{
echo '# HELP factorio_server_up Authenticated non-Lua RCON player query succeeded.'
echo '# TYPE factorio_server_up gauge'
echo "factorio_server_up $up"
echo '# HELP factorio_players_online Connected players; omitted if the query fails.'
echo '# TYPE factorio_players_online gauge'
[ -z "$players" ] || echo "factorio_players_online $players"
echo '# HELP factorio_collector_last_poll_timestamp_seconds Last completed polling attempt.'
echo '# TYPE factorio_collector_last_poll_timestamp_seconds gauge'
echo "factorio_collector_last_poll_timestamp_seconds $now"
} > "$metrics_dir/factorio.prom.tmp"
mv "$metrics_dir/factorio.prom.tmp" "$metrics_dir/factorio.prom"
sleep 15
done