Apache 2.0 · Open Source

Dashglass:Prometheus-Dashboards in einer einzigen Go-Binärdatei.

Eine Go-Binärdatei, keine Datenbank, nichts weiter auszurollen — der Dashboard-Teil von Grafana, und nur der.

Von Bleemeo gebaut, auf denselben Chart- und PromQL-Komponenten wie unser eigenes Monitoring-Panel. Sie bearbeiten im Browser und lesen den Diff in git.

Schnellstart

Auf ein Prometheus richten und den Browser öffnen

Starten Sie das veröffentlichte Image gegen Ihr eigenes Prometheus.

docker
docker run -p 8080:8080 -v "$(pwd)/dashboards:/dashboards" \
  ghcr.io/bleemeo/dashglass -prometheus-url http://your-prometheus:9090

Öffnen Sie danach http://localhost:8080. Dashboards sind gewöhnliche Dateien im gemounteten Verzeichnis: legen Sie dieses Verzeichnis in git und Sie haben GitOps. Die Images sind als latest und pro Release getaggt (CalVer, zum Beispiel 2026.07.25.120000); ein beweglicher snapshot-Tag folgt dem Hauptbranch und kann brechen.

Sie starten mit einer leeren Instanz? Der Startbildschirm bietet Beispiel-Dashboards mit einem Klick — „Prometheus overview“ und „Prometheus internals“ — gebaut ausschließlich aus den Metriken, die Prometheus über sich selbst bereitstellt, sie zeigen also auf jeder Installation echte Daten.

Lieber eine einzelne Binärdatei? Fertige Builds für Linux, macOS und Windows liegen jedem Release bei:

binary
./dashglass -prometheus-url http://localhost:9090 -dashboards-dir ./dashboards

Kein Prometheus zur Hand? Das Repository enthält eine Compose-Demo mit einem Prometheus, das sich selbst scrapt, damit die Beispiel-Dashboards echte Daten haben:

compose
git clone https://github.com/bleemeo/dashglass && cd dashglass
docker compose up

Eines sollten Sie wissen, bevor Sie es exponieren: eine neue Instanz startet ohne Authentifizierung, wer sie erreicht, ist also anonymer Administrator — ein Banner in der Oberfläche weist darauf hin. Legen Sie unter Admin → Users den ersten Benutzer an, damit sich alle anmelden müssen, oder setzen Sie DASHGLASS_BOOTSTRAP_ADMIN_PASSWORD für ein automatisiertes Deployment.

Die Anwendung

Ein Raster, ein PromQL-Editor und ein Kiosk-Modus

Ein 24-spaltiges Raster mit Abschnitten, Rückgängig/Wiederherstellen und einer Live-Vorschau, die Ihre echten Variablen und Ihren echten Zeitraum verwendet. Panels wiederholen sich über die Werte einer Variablen, Data-Links tragen die aktuellen Variablen und den Zeitraum in ein anderes Dashboard oder ein externes Werkzeug, und jedes Diagramm lässt sich zoomen und aufziehen. Helles und dunkles Thema, dazu ein Kiosk-Modus für Wandbildschirme.

Dashglass-Dashboard im dunklen Thema: eine Anzeige, ein Wert-Panel und ein Diagramm des Netzwerkdurchsatzes, darüber eine Reihe von CPU-Panels, die pro Variable wiederholt werden.

Was es tut

Bauen, verbinden, versionieren

Dashboards werden in der Oberfläche bearbeitet und bleiben einfache Dateien, die Sie in git legen können. Abfragen verlassen das Backend nie. Das ist der ganze Entwurf.

10
Panel-Typen
1
Binärdatei zum Ausrollen
0
Datenbanken zu betreiben

Bauen

  • Panels für Zeitreihen, Werte, Anzeigen, Tabellen, Balken, Heatmaps, Statusraster, Markdown, Bilder und Uhren — mit Einheiten und Schwellwerten.
  • PromQL-Editor mit Autovervollständigung und Live-Prüfung, gestützt auf die Prometheus-API.
  • Variablen, auch verkettet, wobei eine Liste von einer anderen abhängt.
  • Panel-Wiederholung pro Variable: eine Definition, eine Kachel pro Instanz.
  • Data-Links und Drill-down, die die aktuellen Variablen sowie $__from / $__to mitnehmen.
  • Zwei Editoren: ein visuelles Raster und eine As-Code-Ansicht der rohen Datei, beim Speichern validiert.
  • Explore-Modus für Ad-hoc-Abfragen, Kiosk-Modus sowie helles und dunkles Thema.

Verbinden

  • Der Browser spricht nie mit Prometheus: jede Abfrage läuft über einen lesenden Proxy im Backend.
  • Zugangsdaten bleiben serverseitig — Basic Auth oder Bearer-Token, niemals in der Seite.
  • Zusätzliche Header für Mimir/Cortex-Mandantentrennung (X-Scope-OrgID) oder ein eigenes Authorization-Schema.
  • Eigene CA für einen Endpunkt mit privater Zertifizierungsstelle, plus Client-Zertifikat und Schlüssel für mTLS.
  • Der Verbindungstest prüft TLS, Header und Zugangsdaten, bevor irgendetwas gespeichert wird.
  • Die Datenquelle in dashglass.yaml provisionieren, oder zur Laufzeit unter Admin konfigurieren.

Versionieren

  • Deterministische Serialisierung als JSON, YAML oder TOML: eine geänderte Einstellung ergibt eine geänderte Zeile im Diff.
  • Git-Historie in der Oberfläche: die Commits zu einem Dashboard durchsehen, vergleichen, einen zurückholen.
  • Commit beim Speichern, im Namen des angemeldeten Benutzers, damit git blame ehrlich bleibt.
  • Die Remote-Synchronisierung holt in Intervallen und pusht nach einem Commit, mit Rebase bei divergierter Historie.
  • Dateiüberwachung mit Live-Reload über SSE: Sie ändern eine Datei auf der Platte und das offene Dashboard folgt.
  • Der Provisioning-Modus (-readonly) verweigert jeden Schreibzugriff, Administratoren eingeschlossen.
  • dashglass lint prüft die Dateien: ein defektes Dashboard scheitert in der CI, nicht im Browser.

Betreiben

Ein Artefakt, egal wie Sie ausrollen

Die SPA steckt in der Go-Binärdatei, es gibt also nichts weiter auszuliefern.

Docker

Der Schnellstart-Befehl von oben, aus ghcr.io/bleemeo/dashglass. Die Tags folgen CalVer pro Release, dazu latest und ein beweglicher snapshot.

Einzelne Binärdatei

Fertige Builds für Linux, macOS und Windows liegen jedem Release bei. Eine statische Datei — nur die Git-Historie verlangt noch etwas, nämlich das git-Binary im PATH.

Compose-Demo

Ein docker compose up in einem Klon liefert Dashglass samt einem Prometheus, das sich selbst scrapt, sodass die Beispiel-Dashboards echte Daten zeigen.

Aus dem Quellcode

pnpm install, dann erzeugt pnpm build-binary die einzelne Binärdatei mit eingebetteter SPA. Der Contributing-Leitfaden beschreibt den Entwicklungszyklus.

Dokumentation:BenutzerhandbuchKommentierte KonfigurationEntwurfsdokument

Migration

Wenn Sie von Grafana kommen

Importieren Sie, was Sie schon haben, und sehen Sie genau, was sich geändert hat.

Von grafana.com

Fügen Sie die URL eines Dashboards oder seine numerische Id ein und klicken Sie auf Load. Das Backend akzeptiert nur eine numerische Id und spricht nur mit grafana.com, was SSRF ausschließt.

Aus einem JSON-Export

Fügen Sie das JSON aus Grafanas Share → Export ein oder laden Sie es hoch. Die Konvertierung läuft im Browser.

Nach bestem Können, und offen darüber

Die verbreiteten Panels, Rows als Abschnitte, PromQL-Abfragen, Templating und label_values-Variablen werden konvertiert. Was sich nicht abbilden lässt, wird unverändert importiert statt verworfen, und jede Annäherung wird vor dem Speichern aufgelistet.

Rahmen

Was Dashglass nicht ist

Das sind Nicht-Ziele aus dem Entwurfsdokument, keine Lücken, die noch gefüllt werden.

  • Kein Alerting-System. Keine Alarmregeln, keine Benachrichtigungskanäle, kein Incident-Management. Dashglass zeichnet, was Ihr Prometheus schon weiß; jemanden zu wecken ist nicht seine Aufgabe — das übernimmt Alertmanager oder eine Plattform, die es für Sie tut.
  • Keine Multi-Datenquellen-Plattform. Nur Prometheus. Die Datenquellen-Schicht ist eine Schnittstelle, eine weitere bleibt also später möglich, aber SQL, Loki und Traces sind heute ausdrücklich außerhalb des Rahmens. Mimir und Cortex funktionieren, über den Mandanten-Header.
  • Nicht mandantenfähig. Drei feste Rollen — viewer, editor, admin — mit lokalen Benutzern, Reverse-Proxy-Headern oder OIDC. Keine ACLs pro Dashboard, keine Teams, keine Organisationen. Wer selbst hostet, bekommt echte Rollen; die Grenze liegt beim Feingranularen und beim Mandantenbetrieb.
  • Kein Plugin-Marktplatz. Panels sind Plugins, werden aber zur Build-Zeit zusammengesetzt. Kein Laden von Drittanbieter-Plugins zur Laufzeit und kein Marktplatz zum Durchsehen.

Häufige Fragen zu Dashglass

Wo es hineinpasst, und wo es bewusst aufhört.

Ist es ein Grafana-Ersatz?

Für den Dashboard-Teil ist genau das die Absicht — und es importiert, was Sie schon gebaut haben. Für alles andere nicht: Alerting, andere Datenquellen als Prometheus und ein Plugin-Ökosystem sind erklärte Nicht-Ziele. Wenn Sie das brauchen, behalten Sie Grafana.

Welche Datenquellen werden unterstützt?

Prometheus und alles, was seine HTTP-API spricht, einschließlich Mimir und Cortex, wo der Mandanten-Header in der Datenquellen-Konfiguration steht. SQL, Loki und Traces liegen außerhalb des Rahmens.

Kann der Browser mein Prometheus direkt erreichen?

Nie. Jede Abfrage läuft über einen lesenden Proxy im Go-Backend, damit URL, Zugangsdaten, CA und Client-Zertifikat serverseitig bleiben und nie in die Seite gelangen.

Lassen sich Dashboards provisionieren und sperren?

Ja. Starten Sie mit -readonly (oder dashboards.readonly: true), dann verweigert die API Schreibzugriffe, während die Oberfläche jede Bearbeitungsmöglichkeit entfernt — Administratoren eingeschlossen. Die Dashboards werden dann ausschließlich über die Dateien in git verwaltet.

Wie funktioniert die Authentifizierung?

Eine neue Instanz ist absichtlich offen: solange kein Benutzer existiert, ist jeder anonymer Administrator, und ein Banner sagt das. Legen Sie den ersten Administrator an, damit sich alle anmelden müssen. Danach: lokale Benutzer mit drei kumulativen Rollen, Authentifizierung über Reverse-Proxy-Header, oder OIDC mit Authorization Code + PKCE und Zuordnung von Gruppen zu Rollen. LDAP ist geplant, nicht ausgeliefert.

Brauche ich git, um es zu nutzen?

Nein. Dashboards sind Dateien; git ist das, was diese Dateien überprüfbar macht. Die Historien-Funktionen setzen voraus, dass das Verzeichnis ein git-Arbeitsbaum ist und das git-Binary im PATH liegt — fehlt eines davon, funktioniert alles andere weiter und diese Funktionen erscheinen einfach nicht. Sie machen aus dem Verzeichnis ein Repository, wann Sie wollen.

Gebaut auf Werkzeugen, denen Sie längst vertrauen

Dashglass bringt mehrere Open-Source-Projekte als Bibliotheken mit: Apache ECharts für die Diagramme, das offizielle CodeMirror-PromQL-Paket von Prometheus für Bearbeitung und Autovervollständigung, react-grid-layout für das Raster, Zod für das Dashboard-Schema und die Dateivalidierung, Chakra UI und React im Frontend, und Go mit eingebetteter SPA für das eine Artefakt, das Sie ausrollen.

Dashglass zeichnet die Dashboards. Wecken wird es Sie nicht.

Alerting ist hier ein Nicht-Ziel, mit Absicht. Bleemeo Cloud ergänzt Alarmierung, Benachrichtigungen, lange Aufbewahrung und Dashboards über alle Ihre Server — auf denselben Metriken.

Fehlt Ihnen der Agent, der Prometheus überhaupt füllt? Glouton entdecken.

Bis zu 3 Server kostenlos, dauerhaft · Keine Kreditkarte nötig