Deploy achievement-safe Factorio 2.0.77 with strict placement, monitoring and limited CD
This commit is contained in:
Executable
+27
@@ -0,0 +1,27 @@
|
||||
#!/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
|
||||
Reference in New Issue
Block a user