Der Feldtest auf einem ausgelasteten pve-demo scheiterte an Verbindungswacklern, nicht an Proxmox: pveproxy meldete „Broken pipe“ (Backend weg), schloss Keep-Alive-Verbindungen, Storage-Abfragen dauerten 15 s. GET wird bis zu dreimal wiederholt, Schreibendes nur bei sicher nicht angekommener Anfrage; Schreibaufrufe dürfen 120 s dauern, Keep-Alive 2 s. Refs #020 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
23 lines
981 B
TypeScript
23 lines
981 B
TypeScript
import type { EreignisSenke } from "@/engine/ablauf/ablauf";
|
||
import type { AufrufBeobachter } from "@/engine/proxmox/client";
|
||
|
||
/**
|
||
* Schreibt Proxmox-Aufrufe ins Detail-Log. Die Abfrageschleifen (Task-Status, Task-Log,
|
||
* VM-Status) erscheinen nur bei Fehlern – sonst stünden bei jedem Download Hunderte gleicher
|
||
* Zeilen da, und das Wichtige ginge unter.
|
||
*/
|
||
const SCHLEIFE = /\/tasks\/[^/]+\/(status|log)$|\/status\/current$/;
|
||
|
||
export function aufrufLogger(senke: EreignisSenke): AufrufBeobachter {
|
||
return (aufruf, ergebnis) => {
|
||
const pfad = decodeURIComponent(aufruf.pfad);
|
||
if (!ergebnis.fehler && aufruf.methode === "GET" && SCHLEIFE.test(pfad)) return;
|
||
void senke.log(
|
||
ergebnis.fehler ? "warn" : "debug",
|
||
`${aufruf.methode} ${pfad} · ${ergebnis.dauerMs} ms${ergebnis.fehler ? ` · ${ergebnis.fehler.ursache}` : ""}${
|
||
ergebnis.wiederholung ? ` · vorübergehend, Versuch ${ergebnis.wiederholung + 1} folgt` : ""
|
||
}`,
|
||
);
|
||
};
|
||
}
|