Hoppa till huvudinnehåll

Systemdiagnostik och användningsanalys

Libre WebUI ger administratörer två aktuella vyer över instansen: en sida för System med värd- och körtidsdiagnostik och en sida för Usage med analys av modell- och leverantörsanvändning. Båda är begränsade till administratörer i backend och gränssnittet. Läsning av sidorna stannar inom installationen. Valfri extern telemetri är en separat, operatörskonfigurerad väg för observerbarhet.

Öppna dem från administratörsposterna i sidofältet, flikmenyns administratörsgenvägar eller direkt på /system och /usage. Icke-administratörer kan inte öppna någon av sidorna, och administratörsflikarna stängs om ett inloggat konto förlorar rollen admin.

Systemdiagnostik​

Systemsidan (/system) visar:

  • Värd: värdnamn, plattform, kärnversion, arkitektur, drifttid, antal logiska processorer, processormodell, belastningsmedelvärde och om processen verkar vara containeriserad. Ingen procentsats för processoranvändning visas; CPU-belastning är endast belastningsmedelvärdet.
  • Körtid: programversion, Node.js-version, process-ID, processens drifttid och arbetskatalog.
  • Minne: värdens totala, lediga och använda minne samt processens RSS- och heapvärden.
  • Filsystem: kapacitet och användning för körtidens filsystem (/) och datakatalogen (DATA_DIR).
  • Nätverk: gränssnittsnamn och adresser, med räknare för mottagna/skickade byte på Linux.
  • Docker: motorversion, värd-OS, kärna, CPU och minne som motorn rapporterar, samt containerantal och en reducerad containerlista när Docker-socketen är tillgänglig.

Sidan uppdateras var 30:e sekund när dess flik har fokus och har en manuell uppdateringsknapp. Backendslutpunkten är GET /api/system, skyddad av autentisering, en aktiv administratörsroll och en hastighetsgräns per användare på 120 förfrågningar per 15 minuter. Svar cachas aldrig (Cache-Control: no-store), och varje förfrågan samlar in nya värden.

Beroende av Docker-socket​

Docker-avsnittet väljer sin slutpunkt på samma sätt som Work-körtiden och den interaktiva terminalen: WORK_DOCKER_SOCKET när den är angiven (alltid en lokal Unix-socketsökväg), annars DOCKER_HOST — en unix://-URL eller en vanlig tcp://-slutpunkt över HTTP, till exempel en filtrerad Docker API-proxy — och annars /var/run/docker.sock. Slutpunkter med ssh:// och npipe://, samt tcp:// med TLS-verifiering aktiverad, frågas avsiktligt inte. Förfrågningarna är strikt skrivskyddade GET-anrop till Docker-motorn (version, information, containerlista), har fyra sekunders timeout och begränsad svarsstorlek. Containerlistan begränsas till 100 poster.

Utan en användbar socket fungerar resten av sidan fortfarande. Docker-panelen rapporterar varför den inte är tillgänglig — socketen är inte monterad, är monterad men oläsbar, demonen kan inte nås eller slutpunkten är fjärransluten — i stället för att hela förfrågan misslyckas.

Vad sidan visar och för vem​

Containerlistan är avsiktligt reducerad: kort ID, namn, avbildning, tillstånd och skapandetid. Miljövariabler, etiketter, monteringar, containerkommandon och inspektionsdata ingår aldrig, och inga uppgifter visas någonstans i svaret.

Sidan visar ändå verkliga infrastrukturdetaljer — värdnamn, arbetskatalog, interna IP-adresser samt namn och avbildningar för alla containrar på Docker-värden, inte bara Libre WebUI:s. Det överensstämmer med tillitsmodellen: i en Docker-installation är varje Libre WebUI-administratör redan i praktiken värdadministratör (se Docker). Tilldela rollen admin därefter.

Användningsanalys​

Sidan Usage (/usage) visar diagram över modell- och leverantörsarbete som kan hänföras till användare. Mätning sker vid varje exekveringsgräns som stöds och omfattar för närvarande:

  • lokala Ollama-chattanrop inklusive native Chat och Ollama-baserat Work;
  • chattanrop till installerade agent-CLI:er och anrop till Strands-motorn;
  • pluginbaserad chatt med eller utan strömning;
  • pluginbaserade embeddings, bilder, taligenkänning, talsyntes, ljud och video;
  • samt pluginbaserade Work-anrop.

Bakgrundsåtgärder utan en ägande användare tilldelas avsiktligt inte ett syntetiskt konto och mäts därför inte. Ett anrop registreras fortfarande när det misslyckas eller avbryts.

Varje händelse registrerar:

  • leverantörs-/plugin-id och en ögonblicksbild av visningsnamnet (ollama och agent-cli:* använder samma ledger som pluginleverantörer)
  • funktion (chat, embedding, image, stt, tts, audio, video)
  • modell
  • status: success, error eller cancelled (en avbruten ström räknas som avbruten)
  • tokens bara när leverantören returnerar användningsmetadata
  • relevanta enheter (tecken för TTS, bilder, embeddingindata, videojobb och ljudbyte)
  • total varaktighet och tidsstämpel
  • den begärande användarens id

Inget annat lagras. Promptar, svar, leverantörsslutpunkter, uppgifter och leverantörernas felkroppar skrivs aldrig till användningstabellen — ett misslyckat anrop registreras endast som status = 'error'. Händelserna finns i den valda programdatabasen (SQLite i sololäge, PostgreSQL i teamläge) och sparas i 400 dagar. Äldre rader rensas opportunistiskt vid skrivning, högst en gång per dag. Mätningen görs avsiktligt utan leveransgaranti och kan aldrig få en modell- eller leverantörsförfrågan att misslyckas.

Sidan erbjuder intervall på 7, 30 och 90 dagar via en enda slutpunkt endast för administratörer, GET /api/plugins/usage?days=<1..365> (standard 30). Den visar totalt antal anrop, rapporterade token, framgångsgrad, genomsnittlig latens och andelen anrop som rapporterade tokenanvändning. Att läsa sidan är en ren läsoperation som använder installationens befintliga användningsliggare.

Agentanvändning​

Avsnittet Agenter nära toppen (Anrop till CLI-agenter och Strands-motorn) visar Claude Code, Codex, OpenCode, Pi och Strands separat med anrop, rapporterade tokens, fel eller avbrott, genomsnittlig tid och upp till 20 mest använda modeller. Agentsumman omfattar alla matchande anrop i perioden oavsett de stora leverantörs- och modelltabellernas visningsgränser. Dessa är delmängder av sidans totaler, inte ytterligare debiterbara händelser.

En agent utan poster visar Inga registrerade anrop under perioden. Det anger inte om CLI:t är installerat eller inloggat. Anrop utan tokenmetadata visar Tokens inte rapporterade; saknade räknare uppskattas inte. Sidan uppdateras var 20:e sekund när den syns och erbjuder manuell uppdatering.

CLI-användning registrerar ett anrop och dess rapporterade tokenräknare. Kumulativa ögonblicksbilder ersätter äldre och upprepade stegrapporter dedupliceras. Cache och resonemang kombineras enligt respektive CLI-protokoll utan dubbelräkning av delmängder. Avbrutna anrop och delvisa svar med misslyckad avslutning behåller sitt verkliga utfall.

Strands-anrop tillskrivs agenten Strands. Motorn har ingen egen modellleverantör. Varje modellanrop den gör går via Libre WebUI:s Ollama- eller pluginleverantörer. Anrop som görs utanför LWUI importeras inte. Gamla poster utan tokenräknare förblir omätta.

Endpointen erbjuder denna begränsade uppdelning i agents med alla fem namn även vid noll räknare. Läsningen upptäcker inga CLI-modeller, startar inga agenter och kontaktar inga leverantörer. Äldre servrar utan fältet kan visa registrerade agentposter från leverantörsuppdelningen; saknade poster presenteras inte som bekräftad nollanvändning.

Utforska modeller och leverantörer​

Modellfärgerna binder samman det dagliga diagrammet, den årliga aktivitetskalendern, modelltabellen och leverantörsstaplarna. Modellnamn, värden och markeringar följer alltid med färgerna. Aktivitetskalendern täcker alltid de senaste 365 dagarna, oberoende av valt intervall, och varje dags färg anger dagens mest använda modell.

Det dagliga diagrammet växlar mellan Anrop och Tokens. Håll pekaren över en modell i förklaringen eller flytta tangentbordsfokus dit för att följa modellens linje. Välj modellen för att behålla markeringen, välj den igen för att släppa den, eller välj Visa alla modeller för att återställa. Modelltabellen har också en markeringsåtgärd. Markeringen ändrar bara betoningen och bevarar dagssummor, tabellvärden och leverantörssummor.

För pekaren över diagrammet eller använd Utforska daglig användning för att granska en dags totalsumma och fördelning per modell. Dagreglaget stöder tangentbordet: piltangenter flyttar mellan dagar och Home/End når första respektive sista dagen. Dygnsintervallen och deras etiketter använder UTC.

Som standard visar diagrammet de tolv modellnamn som har flest anrop under det valda intervallet, även när du tittar på token. Varje modell går ändå att granska separat: fokusera eller välj en modell i tabellen eller i leverantörsdetaljerna för att läsa in dess exakta dagliga linje, även när den ligger utanför dessa tolv. Ett laddningsmeddelande namnger den begärda modellen medan historiken hämtas.

En tillagd modells linje skiljs från Övriga modeller, och den återstående gruppen utesluter dess anrop, rapporterade token och fel. Diagrammet innehåller högst tretton namngivna modellinjer plus den återstående gruppen, och deras dagliga värden stämmer fortfarande mot samma summor. Välj Visa alla modeller för att återgå till standardvyn.

Dagliga linjer slår ihop anrop med samma registrerade modellnamn över leverantörer. Modelltabellen behåller separata leverantörs-/modellposter, så samma modell kan förekomma under mer än en leverantör. Namngivna modeller behåller egna färger i tabellen och i leverantörsstaplarna, även modeller utanför standarddiagrammet.

Leverantörsdetaljerna visar varje leverantörs andel av förfrågningarna, en stapel uppdelad per modell, rapporterade token, misslyckade eller avbrutna anrop och genomsnittlig svarstid. Funktionsfördelningen finns kvar under modell- och leverantörsuppdelningarna.

Tokensummor innehåller endast anrop där leverantören rapporterade användningsmetadata. Täckningsprocenten gör ofullständig rapportering synlig; saknade tokenantal uppskattas aldrig utifrån antalet förfrågningar eller utifrån en annan modell. En period utan rapporterade token visar en förklaring i Tokens-vyn, och dess förfrågningshistorik finns kvar i Anrop.

Slutpunkten innehåller dagliga modellpunkter i modelSeries. En valfri frågeparameter model begär ett exakt registrerat modellnamn vid sidan av de tolv vanligaste, till exempel GET /api/plugins/usage?days=30&model=<encoded-model-name>. Det är samma slutpunkt endast för administratörer och endast för läsning: den frågar den lokala användningsliggaren och anropar aldrig en modellleverantör för att hämta historik.

En valfri parameter to låser förfrågans slutgräns till en Unix-tidsstämpel i millisekunder. Den kräver model och accepterar bara ett icke-negativt säkert heltal som inte ligger senare än serverns aktuella tid. Webbläsaren skickar översiktens range.to när en enskild modell läses in, vilket bevarar dess UTC-gränser för dag och år och utesluter anrop efter den tidsstämpeln. Utan to använder slutpunkten aktuell tid.

Att läsa in en modell behåller översiktens kort, tabell, leverantörssummor och färger. Dess dagliga linje läggs bara till när svarets tidsgränser och dagssummor stämmer med den översikten. Tidsgränsen fryser inte databasen: om historiska efterfyllningar eller borttagningar ändrar de summorna uppdaterar webbläsaren översikten innan modellinjen visas.

Om en äldre server utelämnar modelSeries visar diagrammet den sammanlagda serien Alla modeller med en förklaring att modelluppdelningen inte är tillgänglig. Modelltabellen finns kvar; webbläsaren härleder inte daglig modellhistorik från periodsummor eller från årskalendern.

Det finns ingen knapp för att inaktivera mätningen. Eftersom data sammanställs över flera konton är granskningen begränsad till administratörer.

Sidan Usage rapporterar anrop, enheter, token, latens och utfall. Lägg till kostnadsstyrning när dessa händelser behöver tidsbestämda tariffer, kostnadsuppdelningar, budgetar, varningar eller bokföringsexport. Händelser utan en matchande tariff eller leverantörsrapporterad användning visas som ej prissatta i stället för att behandlas som kostnadsfria.

OpenRouter-attribution​

Sedan 0.18.0 identifierar förfrågningar till OpenRouter programmet genom OpenRouters rubriker för appattribution (HTTP-Referer: https://librewebui.org, en programtitel och kategoriledtrådar). Dessa rubriker skickas endast när förfrågan går till https://openrouter.ai självt — aldrig till en anpassad eller självhostad rutt — och lägger inte till något i det som lagras lokalt.

Relaterad dokumentation​