Ein weiterer Artikel in der Reihe Logicify Monitoring Tools befasst sich mit Grafana. Wir verwenden dieses Software-Tool zur Visualisierung und Datenanalyse von internen und externen Projekten. Dieser Artikel kann für technische Direktoren, Entwickler, DevOps, Systemadministratoren, Projektmanager sowie alle interessierten Parteien nützlich sein.

Was ist Grafana?
Grafana ist eine Open Source-Plattform zur Visualisierung, Überwachung und Analyse von Daten. Dieses Tool ist in Kombination mit Graylog Teil unseres Zwei-Wege-Systems zur Überwachung des Benutzerverhaltens und der Systemleistung . Mit Grafana können Benutzer Dashboards mit Bedienfeldern erstellen, in denen jeweils bestimmte Indikatoren für einen festgelegten Zeitraum angezeigt werden. Jedes Dashboard ist universell einsetzbar und kann daher für ein bestimmtes Projekt oder unter Berücksichtigung von Entwicklungs- und / oder Geschäftsanforderungen angepasst werden.
Unser Logicify-Team verwendet Grafana hauptsächlich in Verbindung mit Elasticsearch und InfluxDB. Dieses Software-Tool unterstützt jedoch viele andere Datenquellen (Prometheus, MySQL, Postgres usw.). Grafana bietet für jede Datenquelle einen benutzerdefinierten Abfrageeditor und eine spezielle Syntax.
Grafana Begriffe
- Das Panel ist das grundlegende Visualisierungselement der ausgewählten Indikatoren. Grafana unterstützt Panels mit Grafiken, Einzelstatus, Tabellen, Klick-Heatmaps und freiem Text sowie die Integration in offizielle und von der Community erstellte Plugins (wie eine Weltkarte oder eine Uhr) und Anwendungen, die ebenfalls visualisiert werden können. Sie können den Stil und das Format jedes Panels anpassen. Alle Bedienfelder können an eine neue Position gezogen, neu angeordnet und in der Größe geändert werden.
- Dashboard - Eine Reihe separater Bedienfelder in einem Raster mit einer Reihe von Variablen (z. B. Servername, Anwendung und Sensor). Durch Ändern der Variablen können Sie die im Dashboard angezeigten Daten wechseln (z. B. Daten von zwei separaten Servern). Alle Dashboards können angepasst werden sowie die darin dargestellten Daten entsprechend den Anforderungen des Benutzers unterteilt und fragmentiert werden. Das Grafana-Projekt umfasst eine große Community von Codeentwicklern und -benutzern. Daher gibt es eine große Auswahl an vorgefertigten Dashboards für verschiedene Arten von Daten und Quellen.
- In Dashboards können Sie mithilfe von Anmerkungen bestimmte Ereignisse in verschiedenen Bedienfeldern anzeigen. Anmerkungen werden durch benutzerdefinierte Abfragen in Elasticsearch hinzugefügt. In der Grafik wird die Anmerkung mit einer vertikalen roten Linie angezeigt. Wenn Sie mit der Maus über die Anmerkung fahren, können Sie eine Beschreibung des Ereignisses und der Tags abrufen, um beispielsweise die Antwort des Servers mit dem Fehlercode 5xx zu verfolgen oder das System neu zu starten. Dank dieser Funktion können Sie die Zeit, ein bestimmtes Ereignis und seine Konsequenzen in der Anwendung leicht vergleichen und das Verhalten des Systems untersuchen.
Best Practices für die Verwendung des Grafana-Tools mit dem Logicify-Team
Verwendung von Grafana in internen Projekten
Für unser internes Projekt Internet of Things (Lösung zur Überwachung des Büroklimas) haben wir Grafana mit InfluxDB , einer Zeitreihendatenbank, verbunden, um Änderungen im Büroklima zu visualisieren und entsprechend zu reagieren. Eine Reihe von Sensoren misst Temperatur, Luftfeuchtigkeit, Luftdruck und CO2-Gehalt in jeder Zone unseres Büros in Cherson. Diese Parameter werden gesammelt und in Form von Grafiken Grafana auf einem großen Küchenmonitor und online visualisiert.

Grafana Dashboard mit Logicify Office-Bereichen
Deshalb überwachen wir ständig die Luftqualitätsparameter und unser Büroleiter reagiert auf Änderungen: Öffnet Fenster, wenn der CO2-Gehalt zu hoch ist, schaltet die Klimaanlage und die Luftbefeuchter ein und aus.

Grafana Armaturenbrett mit Büroklima
Dank der in Grafana angezeigten Grafiken und Zeitreihenanmerkungen haben wir die Mikroklima-Trends in Büros für mehrere Monate und Jahreszeiten analysiert. Wir haben dieses Tool auch verwendet, um einige nützliche Widgets und Informationen (Wettervorhersage, Wechselkurse, interne Kalender) auf einem großen Küchenmonitor zu visualisieren.
Verwendung von Grafana in benutzerdefinierten Webanwendungen
Wir verwenden das Graylog-Tool , um Protokolle von Webanwendungen zu speichern, zu verwalten und ihre Leistung sowohl in der Entwicklungsphase als auch in der Phase ihres Betriebs zu überwachen. Grafana ist ein Tool, das in Graylog gespeicherte Magazine in visuelle Formulare zur Analyse und Systemüberwachung konvertiert. Für eines unserer aktuellen Projekte kann das Grafana-Tool als Benutzeroberfläche zum Laden und Überwachen der Leistung von Webanwendungen und des Clientflusses bezeichnet werden. Graylog- und Grafana-Tools existieren unabhängig voneinander. Wir haben keine speziellen komplexen Integrationstools erstellt, um sie miteinander zu verbinden. Da Graylog alle Protokolldaten in Elasticsearch, einer der Datenquellen von Grafana, speichert, verwenden wir einfach den spezifischen Elasticsearch-Index, in dem die Protokolle gespeichert sind, um Grafana mit Graylog zu verbinden.
Welche Metriken können in Grafana für eine Webanwendung visualisiert werden?
Einfache Textprotokolle oder Fehlerbenachrichtigungen sind für Grafana nicht „interessant“, da der Hauptzweck darin besteht, Daten in Form von Grafiken, Diagrammen und Tabellen zu visualisieren. Wir haben ein benutzerdefiniertes Modul für Django geschrieben, um Daten zu sammeln, die wir für jede verarbeitete Anfrage und Netzwerk- / Mitarbeiterantwort verfolgen möchten. Die Daten umfassten nicht nur den Erfolgs- / Misserfolgsstatus, sondern auch eine Reihe strukturierter Felder (sowohl allgemein als auch projektbezogen), wie z.
- Anwendungsversion
- eindeutige Kennung jeder Anfrage
- Reaktionszeit und Status
- Fehlercode (falls vorhanden)
- IP-Adresse, von der die Anfrage gesendet wurde
- Benutzerinformationen (E-Mail, Benutzername für registrierte Benutzer, Rolle, Berechtigungen)
- Gerät usw.
Django platziert benutzerstrukturierte Analysedatensätze in Graylog, wodurch diese in einem separaten Stream gespeichert werden. Obwohl diese Daten mithilfe der in Graylog integrierten Dashboards visualisiert werden können, sehen sie nicht so gut aus wie Grafana-Dashboards. Daher zwingen wir Grafana, diese Analysedaten zu lesen und zu visualisieren. Daher überwachen wir die Anwendungsleistung und laden Daten sowohl in Echtzeit als auch im Nachhinein herunter.

Grafana als Debugging-Tool
Grafana-Dashboards helfen uns hauptsächlich beim Debuggen von Anwendungen. Wenn der Endclient ein Problem meldet, bietet Grafana uns die Möglichkeit, Fehler auf Client- / Serverseite von echten Fehlern oder Lücken in der Anwendungslogik zu unterscheiden. Wir verfolgen alle Webanfragen, die vom Client (unter Verwendung der E-Mail-Adresse), den Anwendungsadministratoren und der Anwendung selbst für einen bestimmten Zeitraum initiiert wurden, und anhand der Ausschlussmethode finden wir den Grund.
Wir debuggen und beheben auch Fehler, wenn wir im Dashboard eine Anomalie in den Diagrammen des Ladens und der Anwendungsleistung feststellen. Das folgende Grafana-Diagrammbeispiel zeigt die Antwortzeit für Webanfragen über einen bestimmten Zeitraum. Für jede Webanforderung verfolgen wir die maximalen, minimalen und durchschnittlichen Antwortzeiten. Wenn wir eine Anfrage sehen, deren Bearbeitung zu lange gedauert hat, skalieren wir einen bestimmten Teil des Diagramms und untersuchen das Problem.

Beispiel Grafana-Diagramm mit Webantwortzeit
Ein weiteres Diagramm zeigt die Systemlast für einen festgelegten Zeitraum und ist nützlich für die Verfolgung des Datenverkehrs. Wenn wir einen ungewöhnlichen Aktivitätsausbruch sehen, zum Beispiel nach Stunden oder am Wochenende, werden wir ihn untersuchen. Ein solcher Anstieg kann beispielsweise durch Google-Crawler verursacht werden, die den Inhalt der Website indizieren, oder durch böswillige Bots, die unser System nach Schwachstellen durchsuchen. Auch hier wird jeder Fall untersucht und entsprechend berücksichtigt.

Beispiel Grafana-Diagramm mit Anwendungsdownload
Grafana verfügt über einen integrierten Benachrichtigungsmechanismus (z. B. per E-Mail oder über Benachrichtigungen über Slack) nach bestimmten Regeln. Wir verwenden diese Funktion des Grafana-Tools nicht, da alle Benachrichtigungen in Graylog konfiguriert sind . Einige Probleme mit der Systemleistung treten jedoch erst nach dem Ausführen des Programms auf, z. B. eine ungewöhnlich lange Antwortzeit auf eine Webanforderung. Wir werden keine Graylog-Benachrichtigung darüber erhalten, aber die Anomalie wird auf der Grafana-Karte deutlich sichtbar sein. Beide Tools ergänzen sich also, wenn wir ein Problem feststellen: Auf hoher Ebene überprüfen wir Grafana, um zu verstehen, was passiert ist und warum, und vertiefen uns dann mit Graylog unter Verwendung einer bestimmten Anforderungskennung.
Im Gegensatz zu Graylog, das sowohl für entwickelte als auch für verwendete Anwendungen verwendet wird, wird Grafana nur für gebrauchte Anwendungen verwendet. Die einzige Ausnahme bei der Verwendung von Grafana für eine Anwendung, die sich noch in der Entwicklungsphase befindet, sind Leistungstests. Wir emulieren den Systemstart mit JMeter und überprüfen dann die Grafana-Dashboards, um festzustellen, wie er reagiert.
Grafana als Business Intelligence Tool
Grafana-Dashboards sind nicht nur Leistungsverfolgungs- und Debugging-Ziele, sondern auch ein leistungsstarkes Tool, um fundierte Geschäftsentscheidungen zu treffen. Bei ordnungsgemäßer Konfiguration (vorzugsweise zusammen mit dem Google Analytics-Dienst) kann Grafana benutzerdefinierte Analysen des Benutzerverhaltens im System in Form von Kreisdiagrammen, Zeithistogrammen und anderen grafischen Elementen visualisieren. Auf dieser Grundlage können an dem Produkt interessierte Parteien Entscheidungen über die weitere Skalierung der Anwendung, das Hinzufügen oder Entfernen einiger Funktionen und die Verbesserung des Interaktionszyklus mit Kunden treffen.

Ein Beispiel für ein Grafana-Dashboard, das das Benutzerverhalten in einer E-Commerce-Anwendung anzeigt
Da sich das oben genannte Dashboard mehr auf das Geschäft konzentriert, verwenden Entwickler es eher für interne Zwecke als als Sicherheitstool, um den Kundenfluss in einer E-Commerce-Anwendung zu verfolgen: Registrierung, Autorisierung, Bestellungen über einen bestimmten Zeitraum.
Hier sind zwei reale Projekte, bei denen Grafana die Benutzerfreundlichkeit einer Webanwendung verbessern konnte.
- Mit Hilfe von Grafana überwachen wir regelmäßig den Status periodischer Bestellungen im System und filtern fehlgeschlagene Bestellungen. Diese Bestellungen basieren auf einem Abonnement, das jeden Monat im System generiert wird, und das Geld wird automatisch von den Bankkonten der Kunden abgebucht. Manchmal schlagen Zahlungen fehl (unzureichendes Geld / Ablehnung eines Finanzinstituts), und dann überprüfen Systemadministratoren die Situation und kontaktieren Kunden, um die Bestellung manuell neu zu generieren. Somit fällt kein einziger Befehl außer Sicht; Sowohl Kunden als auch Lieferanten sind zufrieden.
- Bei der Verwendung von Berichten, die mit Grafana für eine E-Commerce-Anwendung erstellt wurden, haben wir festgestellt, dass ein großer Prozentsatz der Neukunden die Checkout-Seite verlässt, obwohl sie bereits Artikel in ihren Körben haben. Diese Schlussfolgerung wurde durch die Berichte des Google Analytics-Dienstes gestützt, sodass der Checkout-Vorgang Schritt für Schritt analysiert und verbessert wurde: Jetzt können Benutzer mit 2 Klicks eine Bestellung aufgeben. Infolgedessen hat sich die Besucher-Conversion-Rate für Kunden erhöht - auch der Gewinn des Lieferanten ist gestiegen.
Grafana ist eine wichtige Komponente des Logicify-Teamüberwachungssystems für interne und externe Projekte. Dieses Software-Tool ist Open Source sowie eine große und aktive Community von Entwicklern. Vor allem aber mögen wir Flexibilität - es unterstützt viele Datenquellen und erleichtert das Anpassen von Dashboards und Panels.
Verwandte Artikel: