Relax freshness limits and tolerate transient RCON failures
This commit is contained in:
@@ -38,11 +38,14 @@ export const POST: RequestHandler = async ({ params }) => {
|
||||
setServerField(name, 'last_seen_at', now);
|
||||
setServerField(name, 'last_checked_at', now);
|
||||
setServerField(name, 'last_error', null);
|
||||
setServerField(name, 'rcon_failures', 0);
|
||||
setServerField(name, 'last_reply_snippet', result.rawReply);
|
||||
} else {
|
||||
const encoded = `${result.reason}:${result.detail}`;
|
||||
setServerField(name, 'last_checked_at', now);
|
||||
setServerField(name, 'last_error', encoded);
|
||||
// An explicitly requested diagnostic failure takes effect immediately.
|
||||
setServerField(name, 'rcon_failures', 2);
|
||||
setServerField(name, 'last_reply_snippet', result.rawReply ?? null);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<script lang="ts">
|
||||
import { onMount, untrack } from 'svelte';
|
||||
import { ONLINE_MAX_MS } from '$lib/server-freshness.js';
|
||||
import { page } from '$app/state';
|
||||
import { afterNavigate, beforeNavigate, goto } from '$app/navigation';
|
||||
import { timeZone } from '$ui/stores/time-zone.js';
|
||||
@@ -169,7 +170,7 @@
|
||||
<details class="methodology">
|
||||
<summary>How these estimates work</summary>
|
||||
<p>Time with players is occupied server time divided by known server time. Known time includes occupied and idle observations; unknown status and collection gaps are excluded from that percentage.</p>
|
||||
<p>Each periodic observation covers at most 45 seconds. Longer collection gaps are excluded. History is retained for 31 days. Player-hours include all players reported by the server and are estimates, not individual session records.</p>
|
||||
<p>Each periodic observation covers at most {ONLINE_MAX_MS / 1000} seconds. Longer collection gaps are excluded. History is retained for 31 days. Player-hours include all players reported by the server and are estimates, not individual session records.</p>
|
||||
<p>Timeline buckets are aligned to UTC, with labels shown in {report.scope.timeZone.replaceAll('_', ' ')}. Daily buckets are 24-hour periods, not local calendar days. The first and latest buckets can be partial. Percentage bars divide occupied, idle, and unknown time by captured time; the headline occupancy percentage uses known time only.</p>
|
||||
<p>Historical server rows are grouped by name and may include multiple registrations using that name. Map groups preserve the recorded game and map label.</p>
|
||||
</details>
|
||||
|
||||
Reference in New Issue
Block a user