Add filters and context to host operation history
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import type { WorkerActivity } from '../../provisioning-detail.js';
|
||||
import { currentOperationSource, withOperationSource } from '../hosts/operation-context.js';
|
||||
|
||||
const active = new Map<string, WorkerActivity>();
|
||||
let sequence = 0;
|
||||
@@ -11,6 +12,6 @@ export function workerActivity(): WorkerActivity[] {
|
||||
export async function trackActivity<T>(key: string, label: string, work: () => Promise<T>): Promise<T> {
|
||||
if (active.has(key)) key = `${key}:${++sequence}`;
|
||||
active.set(key, { key, label, startedAt: new Date().toISOString() });
|
||||
try { return await work(); }
|
||||
try { return await withOperationSource(currentOperationSource() ?? label, work); }
|
||||
finally { active.delete(key); }
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ import { selectedZombieMap } from '../../map-aliases.js';
|
||||
import { runMaintenance } from '../maintenance/index.js';
|
||||
import { cleanupControllerLibraries } from '../game-files/index.js';
|
||||
import { trackActivity } from './activity.js';
|
||||
import { withOperationSource } from '../hosts/operation-context.js';
|
||||
|
||||
const TICK_MS = 15_000;
|
||||
// Cap concurrent UDP RCON calls so a 15-server fleet doesn't blast the
|
||||
@@ -104,7 +105,7 @@ function queueStatus(server: string): Promise<number | null> {
|
||||
statusQueue.push(async () => {
|
||||
let capacity: number | null = null;
|
||||
try {
|
||||
capacity = await refreshServerStatus(server);
|
||||
capacity = await withOperationSource('Status monitor', () => refreshServerStatus(server));
|
||||
// Publish this server's latest evidence without waiting for the fleet.
|
||||
const current = getServer(server);
|
||||
if (current) publishStatus(statusEntry(current));
|
||||
|
||||
Reference in New Issue
Block a user