265 lines
11 KiB
HTML
265 lines
11 KiB
HTML
{{template "kopf" .}}
|
||
|
||
<div class="seitenkopf">
|
||
<div class="seitenkopf-titel">
|
||
<h1>System {{template "hilfelink" "plattform-admin#system"}}</h1>
|
||
<span class="hilfe">Ob etwas zu tun ist, wie Munin genutzt wird und worauf es läuft.</span>
|
||
</div>
|
||
</div>
|
||
|
||
{{with .Data}}
|
||
<div class="kennzahlen">
|
||
<div class="kennzahl">
|
||
<span class="kennzahl-wert">{{if .Bereit}}bereit{{else}}<span class="warn-text">nicht bereit</span>{{end}}</span>
|
||
<span class="kennzahl-name">Datenbank (wie /ready)</span>
|
||
</div>
|
||
<div class="kennzahl">
|
||
<span class="kennzahl-wert">{{.Offen}}{{if .Kapazitaet.Begrenzt}} / {{.Kapazitaet.Erlaubt}}{{end}}</span>
|
||
<span class="kennzahl-name">offene Verbindungen{{if .Kapazitaet.Begrenzt}} / max_connections{{end}}</span>
|
||
</div>
|
||
<div class="kennzahl">
|
||
<span class="kennzahl-wert">{{.AnzahlWorkspaces}}{{if .Kapazitaet.Begrenzt}} / {{.Kapazitaet.MaxWorkspaces}}{{end}}</span>
|
||
<span class="kennzahl-name">Workspaces{{if .Kapazitaet.Begrenzt}} / höchstens möglich{{end}}</span>
|
||
</div>
|
||
<div class="kennzahl">
|
||
<span class="kennzahl-wert">{{.Laufzeit}}</span>
|
||
<span class="kennzahl-name">seit dem Start</span>
|
||
</div>
|
||
</div>
|
||
|
||
{{if not .Bereit}}
|
||
<div class="meldung fehler">Die Kontroll-Datenbank antwortet nicht: {{.BereitText}}</div>
|
||
{{end}}
|
||
|
||
<section class="abschnitt">
|
||
<h2>Zustand</h2>
|
||
{{if .Hinweise}}
|
||
<ul class="zustand">
|
||
{{range .Hinweise}}
|
||
<li class="{{if .Warnung}}zustand-warnung{{else}}zustand-hinweis{{end}}">
|
||
<span class="zustand-art">{{if .Warnung}}Warnung{{else}}Hinweis{{end}}</span>
|
||
<span>{{.Text}}</span>
|
||
</li>
|
||
{{end}}
|
||
</ul>
|
||
{{else if .Bereit}}
|
||
<div class="meldung hinweis">Alles in Ordnung — nichts zu tun.</div>
|
||
{{end}}
|
||
</section>
|
||
|
||
{{if not .Stand.Erhoben.IsZero}}
|
||
<section class="abschnitt">
|
||
<h2>Aktivität der letzten {{.TageImDiagramm}} Tage</h2>
|
||
<span class="hilfe">Alle Workspaces. Stand {{.Stand.Erhoben.Local.Format "15:04"}} — gezählt wird höchstens
|
||
alle 5 Minuten neu.</span>
|
||
|
||
<div class="diagramme">
|
||
<figure class="diagramm-rahmen">
|
||
<figcaption>
|
||
<strong>Schreibvorgänge</strong>
|
||
<span class="legende"><span class="legende-farbe balken-agent"></span>Agenten (MCP)</span>
|
||
<span class="legende"><span class="legende-farbe balken-mensch"></span>Menschen (Weboberfläche)</span>
|
||
</figcaption>
|
||
{{template "diagramm" .DiagrammSchreiben}}
|
||
</figure>
|
||
<figure class="diagramm-rahmen">
|
||
<figcaption>
|
||
<strong>Suchen</strong>
|
||
<span class="legende"><span class="legende-farbe balken-suche"></span>recall von Agenten</span>
|
||
</figcaption>
|
||
{{template "diagramm" .DiagrammSuchen}}
|
||
</figure>
|
||
</div>
|
||
<span class="hilfe">Schreiben heißt angelegt, geändert oder gelöscht. Tage in UTC; mit der Maus über einen
|
||
Tag zeigt die genauen Zahlen.</span>
|
||
|
||
<details class="aufklapper">
|
||
<summary>Als Tabelle</summary>
|
||
<div class="tabelle-huelle">
|
||
<table class="tabelle">
|
||
<thead>
|
||
<tr><th>Tag</th><th class="zahl">Agenten</th><th class="zahl">Menschen</th><th class="zahl">Suchen</th></tr>
|
||
</thead>
|
||
<tbody>
|
||
{{range .Stand.Tage}}
|
||
<tr>
|
||
<td>{{.Datum.Format "02.01.2006"}}</td>
|
||
<td class="zahl">{{.SchreibenAgent}}</td>
|
||
<td class="zahl">{{.SchreibenMensch}}</td>
|
||
<td class="zahl">{{.Suchen}}</td>
|
||
</tr>
|
||
{{end}}
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
</details>
|
||
|
||
<h3>Am aktivsten</h3>
|
||
{{if .TopProjekte}}
|
||
<div class="tabelle-huelle">
|
||
<table class="tabelle">
|
||
<thead>
|
||
<tr>
|
||
<th>Projekt</th>
|
||
<th>Workspace</th>
|
||
<th class="zahl">Schreiben Agenten</th>
|
||
<th class="zahl">Schreiben Menschen</th>
|
||
<th class="zahl">Suchen</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
{{range .TopProjekte}}
|
||
<tr>
|
||
<td>{{.Name}} <span class="hilfe">{{.Slug}}</span></td>
|
||
<td>{{.Workspace}}</td>
|
||
<td class="zahl">{{.SchreibenAgent}}</td>
|
||
<td class="zahl">{{.SchreibenMensch}}</td>
|
||
<td class="zahl">{{.Suchen}}</td>
|
||
</tr>
|
||
{{end}}
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
{{if .WeitereAktive}}<span class="hilfe">… und {{.WeitereAktive}} weitere mit Aktivität.</span>{{end}}
|
||
{{else}}
|
||
<p class="hilfe">In den letzten {{.TageImDiagramm}} Tagen hat in keinem Projekt jemand geschrieben oder gesucht.</p>
|
||
{{end}}
|
||
|
||
{{with .Stand.Ruhig}}
|
||
<details class="aufklapper">
|
||
<summary>{{len .}} {{if eq (len .) 1}}Projekt{{else}}Projekte{{end}} ohne jede Aktivität</summary>
|
||
<span class="hilfe">Weder geschrieben noch gesucht. Wird das Projekt noch gebraucht, oder fehlt dem Team
|
||
die Anbindung?</span>
|
||
<ul class="ruhig-liste">
|
||
{{range .}}<li>{{.Name}} <span class="hilfe">{{.Workspace}}</span></li>{{end}}
|
||
</ul>
|
||
</details>
|
||
{{end}}
|
||
</section>
|
||
|
||
<section class="abschnitt">
|
||
<h2>Bestand je Workspace</h2>
|
||
<div class="tabelle-huelle">
|
||
<table class="tabelle">
|
||
<thead>
|
||
<tr>
|
||
<th>Workspace</th>
|
||
<th class="zahl">Projekte</th>
|
||
<th class="zahl">Einträge</th>
|
||
<th class="zahl">Fassungen</th>
|
||
<th class="zahl">Papierkorb</th>
|
||
<th class="zahl">Keys</th>
|
||
<th class="zahl">Platz</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
{{range .Stand.Workspaces}}
|
||
<tr>
|
||
<td>{{.Name}}<div class="hilfe speicherort">{{.Ort}}</div></td>
|
||
<td class="zahl">{{.Bestand.Projekte}}</td>
|
||
<td class="zahl">{{.Bestand.Eintraege}}</td>
|
||
<td class="zahl">{{.Bestand.Fassungen}}</td>
|
||
<td class="zahl">{{.Bestand.Papierkorb}}</td>
|
||
<td class="zahl">{{.Bestand.Keys}}</td>
|
||
<td class="zahl">{{groesse .Belegung.Gesamt}}{{if .Belegung.WAL}}
|
||
<div class="hilfe">davon WAL {{groesse .Belegung.WAL}}</div>{{end}}</td>
|
||
</tr>
|
||
{{end}}
|
||
{{if gt (len .Stand.Workspaces) 1}}
|
||
<tr class="summe">
|
||
<td>Zusammen</td>
|
||
<td class="zahl">{{.Stand.Summe.Projekte}}</td>
|
||
<td class="zahl">{{.Stand.Summe.Eintraege}}</td>
|
||
<td class="zahl">{{.Stand.Summe.Fassungen}}</td>
|
||
<td class="zahl">{{.Stand.Summe.Papierkorb}}</td>
|
||
<td class="zahl">{{.Stand.Summe.Keys}}</td>
|
||
<td class="zahl">{{groesse .Stand.Belegung.Gesamt}}</td>
|
||
</tr>
|
||
{{end}}
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<span class="hilfe">Keys: nur gültige. Platz: bei SQLite die Datei samt WAL, bei PostgreSQL die Tabellen
|
||
des Schemas samt Indizes. Sicherungen und Export kommen hinzu.</span>
|
||
</section>
|
||
{{end}}
|
||
|
||
<section class="abschnitt">
|
||
<h2>Speicher</h2>
|
||
<dl class="eigenschaften">
|
||
<dt>Datenbank</dt><dd><code>{{.Speicher}}</code></dd>
|
||
{{if .Kapazitaet.Begrenzt}}
|
||
<dt>Verbindungsbudget</dt>
|
||
<dd>{{.Kapazitaet.JeWorkspace}} je geöffnetem Workspace, {{.Kapazitaet.Fest}} fest,
|
||
{{.Kapazitaet.Reserve}} Reserve, bei max_connections {{.Kapazitaet.Erlaubt}}
|
||
→ höchstens {{.Kapazitaet.MaxWorkspaces}} Workspaces.
|
||
<span class="hilfe">Darüber lehnt Munin neue Workspaces ab bzw. startet nicht.</span></dd>
|
||
{{else}}
|
||
<dt>Verbindungsbudget</dt>
|
||
<dd>keins — jede SQLite-Datei hat ihre eigenen Verbindungen.</dd>
|
||
{{end}}
|
||
<dt>Gewartet</dt>
|
||
<dd>{{.Gewartet}}× musste eine Anfrage auf eine freie Verbindung warten (seit dem Start).
|
||
<span class="hilfe">Ab und zu ist normal. Wächst die Zahl stetig, sind die Pools zu klein für die Last.</span></dd>
|
||
</dl>
|
||
</section>
|
||
|
||
<section class="abschnitt">
|
||
<h2>Verbindungen je Workspace</h2>
|
||
<span class="hilfe">Nur geöffnete Workspaces belegen Verbindungen. Ein Workspace wird beim ersten
|
||
Zugriff geöffnet; ruhige Pools geben ihre Verbindungen nach kurzer Zeit zurück.
|
||
Diese Zahlen sind immer aktuell.</span>
|
||
<div class="tabelle-huelle">
|
||
<table class="tabelle">
|
||
<thead>
|
||
<tr>
|
||
<th>Workspace</th>
|
||
<th class="zahl">offen</th>
|
||
<th class="zahl">in Benutzung</th>
|
||
<th class="zahl">lesen / schreiben</th>
|
||
<th class="zahl">gewartet</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>Kontroll-Datenbank</td>
|
||
<td class="zahl">{{.Kontrolle.Offen}}</td>
|
||
<td class="zahl">{{.Kontrolle.InBenutzung}}</td>
|
||
<td class="zahl">{{.Kontrolle.Lesen.OpenConnections}} / {{.Kontrolle.Schreiben.OpenConnections}}</td>
|
||
<td class="zahl">{{.Kontrolle.Gewartet}}</td>
|
||
</tr>
|
||
{{range .Workspaces}}
|
||
<tr>
|
||
<td>{{if .Name}}{{.Name}}{{else}}<span class="hilfe">gelöscht</span>{{end}}
|
||
<div class="hilfe speicherort">{{.Ort}}</div></td>
|
||
<td class="zahl">{{.Verbindungen.Offen}}</td>
|
||
<td class="zahl">{{.Verbindungen.InBenutzung}}</td>
|
||
<td class="zahl">{{.Verbindungen.Lesen.OpenConnections}} / {{.Verbindungen.Schreiben.OpenConnections}}</td>
|
||
<td class="zahl">{{.Verbindungen.Gewartet}}</td>
|
||
</tr>
|
||
{{end}}
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="abschnitt">
|
||
<h2>Programm</h2>
|
||
<dl class="eigenschaften">
|
||
<dt>Fassung</dt><dd><code>{{.Fassung}}</code></dd>
|
||
<dt>Go</dt><dd><code>{{.GoFassung}}</code></dd>
|
||
<dt>Gestartet</dt><dd>{{datum .Gestartet}}</dd>
|
||
{{with .Stand.Schemastand}}<dt>Schema</dt><dd><code>{{.}}</code></dd>{{end}}
|
||
<dt>Markdown-Export</dt>
|
||
<dd>{{if not .ExportEingerichtet}}nicht eingerichtet (EXPORT_DIR fehlt)
|
||
{{else if .Export.Ende.IsZero}}seit dem Start noch kein Lauf fertig
|
||
{{else}}zuletzt {{datum .Export.Ende}}, {{.Export.Stats.Written}} {{if eq .Export.Stats.Written 1}}Datei{{else}}Dateien{{end}}
|
||
{{- if .Export.Stats.Removed}}, {{.Export.Stats.Removed}} verwaiste entfernt{{end}}
|
||
{{- if .Export.Fehler}} — <span class="warn-text">unvollständig</span>{{end}}{{end}}</dd>
|
||
{{if not .Stand.Erhoben.IsZero}}<dt>Zählung</dt>
|
||
<dd>{{.Stand.Dauer.Round 1000000}} für alle Workspaces</dd>{{end}}
|
||
</dl>
|
||
</section>
|
||
{{end}}
|
||
|
||
{{template "fuss" .}}
|