Diagnostika systému a analýza používání
Libre WebUI dává správcům dva živé pohledy na instanci: stránku System s diagnostikou hostitele a běhu a stránku Usage s analýzou používání modelů a poskytovatelů. Obě jsou v backendu i rozhraní dostupné pouze správcům. Jejich čtení zůstává uvnitř instalace; volitelná externí telemetrie používá samostatnou, operátorem nastavenou cestu observability.
Otevřete je z položek správce v postranním panelu, zkratek v nabídce karet nebo přímo
na /system a /usage. Běžní uživatelé stránky otevřít nemohou a pokud přihlášený
účet ztratí roli admin, karty správce se zavřou.
Diagnostika systému
Stránka System (/system) uvádí:
- Hostitel: název, platformu, verzi jádra, architekturu, dobu běhu, počet logických CPU, model CPU, průměrnou zátěž a zda proces vypadá jako spuštěný v kontejneru. Procento využití CPU se nezobrazuje; zátěž je pouze průměrná zátěž.
- Běhové prostředí: verzi aplikace a Node.js, ID procesu, dobu běhu procesu a pracovní adresář.
- Paměť: celkovou, volnou a použitou paměť hostitele a hodnoty RSS a haldy procesu.
- Souborové systémy: kapacitu a využití souborového systému běhu (
/) a datového adresáře (DATA_DIR). - Síť: názvy a adresy rozhraní; v Linuxu i počitadla přijatých a odeslaných bajtů.
- Docker: verzi enginu, operační systém hostitele, jádro, CPU a paměť vykázanou enginem, počty kontejnerů a omezený seznam kontejnerů, pokud je dostupný socket Docker.
Stránka se při zaměření karty obnovuje každých 30 sekund a má tlačítko ručního obnovení.
Koncový bod backendu GET /api/system chrání ověřování, aktivní role správce a limit
120 požadavků na uživatele za 15 minut. Odpovědi se nikdy neukládají do mezipaměti
(Cache-Control: no-store) a každý požadavek sbírá aktuální hodnoty.
Závislost na socketu Docker
Sekce Docker volí koncový bod stejně jako běh Work a interaktivní terminál:
WORK_DOCKER_SOCKET, pokud je nastaven (vždy místní cesta k socketu Unix), jinak
DOCKER_HOST — URL unix:// nebo prostý HTTP koncový bod tcp://, například
filtrovaná proxy Docker API — a jinak /var/run/docker.sock. Koncové body ssh:// a
npipe:// ani tcp:// se zapnutým ověřováním TLS se záměrně nedotazují. Požadavky jsou
výhradně jen pro čtení pomocí GET enginu (version, info, seznam kontejnerů), mají
čtyřsekundový časový limit a omezenou velikost odpovědi. Seznam má nejvýše 100 položek.
Bez použitelného socketu zbytek stránky stále funguje. Panel Docker oznámí důvod nedostupnosti — socket není připojen, je nečitelný, démon není dosažitelný nebo jde o vzdálený koncový bod — namísto selhání celého požadavku.
Co stránka odhaluje a komu
Seznam kontejnerů je záměrně omezený: krátké ID, název, image, stav a čas vytvoření. Proměnné prostředí, štítky, připojení, příkazy kontejnerů ani data inspect se nikdy nezahrnují a v odpovědi nejsou žádné přihlašovací údaje.
Stránka přesto ukazuje skutečné podrobnosti infrastruktury — název hostitele, pracovní
adresář, interní IP adresy a názvy a images všech kontejnerů na hostiteli Docker, nejen
Libre WebUI. Odpovídá to modelu důvěry: v instalaci Docker je každý správce Libre WebUI
prakticky správcem hostitele (viz Docker). Roli admin přidělujte podle toho.
Analýza používání
Stránka Usage (/usage) zobrazuje práci modelů a poskytovatelů přiřazenou uživatelům.
Měření probíhá na každé podporované hranici spuštění a nyní zahrnuje:
- místní volání chatu Ollama, včetně nativního Chat a Work s Ollama;
- volání chatu nainstalovaných agentů CLI a volání enginu Strands;
- chat přes pluginy se streamováním i bez něj;
- embeddingy, generování obrázků, řeč na text, text na řeč, zvuk a video přes pluginy; a
- volání Work přes pluginy.
Operace na pozadí bez vlastnícího uživatele se záměrně nepřiřazují syntetickému účtu a neměří se. Volání se zaznamená i při selhání nebo zrušení.
Každá událost zaznamená:
- ID poskytovatele či pluginu a snímek jeho zobrazovaného názvu (
ollamaaagent-cli:*používají stejnou účetní knihu jako pluginy) - funkci (
chat,embedding,image,stt,tts,audio,video) - model
- stav:
success,errornebocancelled(přerušený proud se počítá jako zrušený) - počty tokenů pouze tehdy, pokud poskytovatel vrátil metadata používání
- jednotky odpovídající funkci (znaky pro TTS, obrázky, vstupy embeddingů, úlohy videa, bajty zvuku)
- celkovou dobu a časové razítko
- ID žádajícího uživatele
Nic dalšího se neukládá. Prompty, odpovědi, koncové body poskytovatelů, přihlašovací
údaje a těla jejich chyb se nikdy nezapisují do tabulky používání — neúspěšné volání
se zaznamená jen jako status = 'error'. Události jsou ve vybrané aplikační databázi
(SQLite v sólovém režimu, PostgreSQL v týmovém) a uchovávají se 400 dní. Starší
řádky se při zápisu příležitostně mažou, nejvýše jednou denně. Měření je záměrně bez
záruky doručení a nikdy nemůže způsobit selhání požadavku na model či poskytovatele.
Stránka nabízí rozsahy 7, 30 a 90 dní přes jediný koncový bod pouze pro správce,
GET /api/plugins/usage?days=<1..365> (výchozí 30). Ukazuje celkový počet volání,
vykázané tokeny, úspěšnost, průměrnou latenci a podíl volání, která vykázala využití
tokenů. Čtení stránky je jen pro čtení a využívá stávající evidenci používání dané
instalace.
Využití agentů
Část Agenti nahoře (Volání CLI agentů a enginu Strands) odděluje Claude Code, Codex, OpenCode, Pi a Strands. Ukazuje volání, hlášené tokeny, neúspěchy či zrušení, průměrnou délku a až 20 nejpoužívanějších modelů. Součty agentů zahrnují všechna odpovídající volání období nezávisle na limitech tabulek poskytovatelů a modelů. Jde o podmnožiny součtů stránky, ne další účtované události.
Bez záznamů se zobrazí V tomto období nejsou zaznamenána žádná volání. To neříká, zda je CLI nainstalovaná či přihlášená. Bez tokenových metadat se zobrazí Tokeny nebyly nahlášeny; chybějící počty se neodhadují. Viditelná stránka se obnovuje každých 20 sekund a umožňuje ruční aktualizaci.
CLI eviduje jedno spuštění a jeho hlášené tokeny. Kumulativní snímky nahrazují starší, opakovaná hlášení kroků se deduplikují. Cache a uvažování se spojují podle protokolu CLI bez dvojího započtení podmnožin. Zrušení a částečné odpovědi s chybovým ukončením zachovávají skutečný výsledek.
Volání Strands se přiřazují agentovi Strands. Engine nemá vlastního poskytovatele modelů; každé jeho volání modelu prochází poskytovateli Ollama nebo pluginů v Libre WebUI. Volání mimo LWUI se neimportují. Starší záznamy bez počtů tokenů zůstávají neměřené.
API poskytuje omezený přehled v agents se všemi pěti jmény i při nulách. Čtení nehledá modely CLI, nespouští agenty a nekontaktuje poskytovatele. Starší server bez pole může ukázat známé agenty z přehledu poskytovatelů; nepřítomné položky nejsou potvrzeným nulovým využitím.
Prozkoumání modelů a poskytovatelů
Barvy modelů propojují denní graf, roční kalendář aktivity, tabulku modelů a pruhy poskytovatelů. Kromě barev jsou k dispozici názvy modelů, hodnoty a indikátory výběru. Kalendář aktivity vždy pokrývá posledních 365 dní nezávisle na zvoleném rozsahu; barva každého dne označuje jeho nejpoužívanější model.
Denní graf přepíná mezi Voláními a Tokeny. Najetím na model v legendě nebo přesunutím klávesového zaměření na něj zvýrazníte jeho čáru. Výběrem modelu zvýraznění podržíte, dalším výběrem jej uvolníte a volba Zobrazit všechny modely vše vrátí zpět. Akci zvýraznění nabízí i tabulka modelů. Zvýraznění mění jen důraz, denní součty, hodnoty v tabulce ani součty poskytovatelů se nemění.
Přejetím ukazatelem přes graf nebo volbou Prozkoumat denní využití si prohlédnete součet dne a jeho rozpad podle modelů. Denní posuvník lze ovládat klávesnicí: šipky přecházejí mezi dny, Home a End skočí na první a poslední den. Denní intervaly i jejich popisky používají UTC.
Ve výchozím stavu graf zobrazuje 12 názvů modelů s nejvyšším počtem volání ve zvoleném období, a to i v pohledu na tokeny. Každý model přesto zůstává zkoumatelný jednotlivě: zaměřením nebo výběrem modelu v tabulce či v podrobnostech poskytovatele načtete jeho přesnou denní čáru, i když mezi těchto 12 nepatří. Během načítání historie uvádí zpráva o načítání název požadovaného modelu.
Čára doplněného modelu se odděluje od skupiny Ostatní modely a zbývající skupina jeho volání, vykázané tokeny ani chyby nezahrnuje. Graf obsahuje nejvýše 13 pojmenovaných čar modelů plus zbývající skupinu a jejich denní hodnoty stále odpovídají stejným součtům. Volbou Zobrazit všechny modely se vrátíte k výchozímu pohledu.
Denní čáry slučují volání se stejným zaznamenaným názvem modelu napříč poskytovateli. Tabulka modelů si ponechává samostatné dvojice poskytovatel/model, takže stejný model se může objevit u více poskytovatelů. Pojmenované modely si drží vlastní barvy v tabulce i v pruzích poskytovatelů, včetně modelů mimo výchozí graf.
Podrobnosti poskytovatelů ukazují podíl každého poskytovatele na požadavcích, pruh rozdělený podle modelů, vykázané tokeny, neúspěšná či zrušená volání a průměrnou dobu odpovědi. Mix funkcí zůstává dostupný pod rozpadem podle modelů a poskytovatelů.
Součty tokenů zahrnují jen volání, u nichž poskytovatel vrátil metadata používání. Procento pokrytí zviditelňuje částečné vykazování; chybějící počty tokenů se nikdy neodhadují z požadavků ani z jiného modelu. Období bez vykázaných tokenů zobrazí v pohledu Tokeny vysvětlení a jeho historie požadavků zůstává dostupná v pohledu Volání.
Koncový bod zahrnuje denní body modelů v poli modelSeries. Volitelný parametr dotazu
model vyžádá jeden přesný zaznamenaný název modelu vedle výchozí dvanáctky, například
GET /api/plugins/usage?days=30&model=<encoded-model-name>. Jde o tentýž koncový bod
pouze pro správce a jen pro čtení: dotazuje se místní evidence používání a nikdy nevolá
poskytovatele modelů, aby historii získal.
Volitelný parametr to zafixuje koncovou hranici požadavku na časové razítko Unix
v milisekundách. Vyžaduje model a přijímá jen nezáporné bezpečné celé číslo, které není
pozdější než aktuální čas serveru. Při načítání jednotlivého modelu prohlížeč odešle
hodnotu range.to z přehledu, čímž zachová jeho hranice dnů a roku v UTC a vyloučí volání
po tomto časovém razítku. Bez to použije koncový bod aktuální čas.
Načtení modelu ponechá karty přehledu, tabulku, součty poskytovatelů i barvy beze změny. Jeho denní čára se přidá jen tehdy, když časové hranice a denní součty odpovědi odpovídají tomuto přehledu. Časová hranice nezmrazí databázi: pokud historické doplnění nebo mazání tyto součty změní, prohlížeč před zobrazením čáry modelu přehled obnoví.
Pokud starší server pole modelSeries neposkytne, graf zobrazí souhrnnou řadu Všechny
modely s vysvětlením, že rozpad podle modelů není dostupný. Tabulka modelů zůstává
dostupná; prohlížeč denní historii modelů ze součtů za období ani z ročního kalendáře
neodvozuje.
Měření nelze vypnout. Protože jsou data agregovaná mezi účty, smí je prohlížet jen správci.
Stránka Usage vykazuje volání, jednotky, tokeny, latenci a výsledky. Přidejte správu nákladů, pokud události potřebují časově platné tarify, rozpis výdajů, rozpočty, upozornění nebo účetní export. Události bez odpovídajícího tarifu nebo vykázaného používání zůstanou viditelně bez ceny, nepovažují se za bezplatné.
Atribuce OpenRouter
Od verze 0.18.0 požadavky na OpenRouter identifikují aplikaci pomocí hlaviček atribuce
OpenRouter (HTTP-Referer: https://librewebui.org, název aplikace a náznaky kategorií).
Odesílají se pouze na samotný https://openrouter.ai, nikdy na vlastní či lokální
trasu, a nepřidávají nic k místně ukládaným datům.