Die ROTE Methode (Rate, Errors, Duration) ist einer der beliebtesten Ansätze zur Leistungsüberwachung. Es wird häufig zur Überwachung von Microservices verwendet , obwohl nichts Sie daran hindert, es für Datenbanken wie MySQL zu verwenden.
In Percona Monitoring and Management (PMM) v2 werden alle erforderlichen Informationen in der ClickHouse-Datenbank gesammelt. Anschließend ist es eine Frage der Technologie, ein Dashboard für die Visualisierung von Metriken mithilfe der integrierten ClickHouse-Datenquelle zu erstellen .
Beim Erstellen des Dashboards wurden zusätzlich zu den Bedienfeldern für ROT mehrere zusätzliche Bedienfelder hinzugefügt, um einige interessante Funktionen zu zeigen, die mit Grafana + ClickHouse als Datenquelle ausgeführt werden können, sowie die Informationen, die wir über die Leistung von MySQL-Abfragen speichern.
Schauen wir uns das Dashboard genauer an.
In den klassischen ROTEN Feldern werden die Abfragerate (Anforderungen pro Sekunde), die Fehlerrate (Fehler) sowie die durchschnittliche und 99. Perzentil-Abfragelatenz (Abfrageausführungszeit) für alle Knoten im System angezeigt. In den folgenden Bereichen werden Informationen zu bestimmten Knoten angezeigt. Dies ist sehr nützlich, um deren Leistung zu vergleichen. Wenn einer der Knoten anders funktioniert als andere ähnliche Knoten, ist dies ein Grund für eine Untersuchung.
Mithilfe von Filtern („Filter“ oben im Dashboard) können Sie nur die Daten anzeigen, die Sie benötigen. Beispielsweise können Sie nur "sbtest" -Schemaabfragen für Hosts auswählen, die sich in der Region "datacenter4" befinden:
Diese Ad-hoc-Filterung ist sehr praktisch. Sie können reguläre Ausdrücke in Filtern verwenden, nach einer bestimmten QueryID suchen, Abfragen von bestimmten Client-Hosts analysieren usw. Eine Beschreibung der in ClickHouse verfügbaren Spalten finden Sie im Beitrag Erweiterte Abfrageanalyse in Percona Monitoring and Management mit direktem ClickHouse-Zugriff .
In den meisten Bedienfeldern können Sie schnell zu Query Analytics wechseln, um detaillierte Informationen zur Abfrageleistung anzuzeigen. Wenn Sie auf einem der Hosts etwas Ungewöhnliches feststellen, können Sie die Abfragen dieses Hosts über die „Datenverknüpfungen“ anzeigen - klicken Sie auf Grafik und folgen Sie dem entsprechenden Link:
Für jedes der Systeme separat können Sie dieselben ROTEN Metriken wie für das gesamte System als Ganzes anzeigen. Standardmäßig würde ich diese Panels minimiert lassen, insbesondere wenn Sie viele Hosts überwachen.
Wir haben die Panels der RED-Methode kennengelernt. Schauen wir uns nun die zusätzlichen Dashboards in diesem Dashboard an.
Die zeilenbasierte Effizienz zeigt an, wie viele Zeilen pro zurückgegebener oder geänderter Zeile analysiert wurden. In der Regel weisen Werte über 100 auf fehlerhafte Indizes oder sehr komplexe Abfragen hin, die viele Daten lesen und nur wenige Zeilen zurückgeben. Beide Fälle erfordern eine Analyse.
Zeitbasierte Effizienz(zeitbasierte Effizienz) basiert auf derselben Mathematik, berücksichtigt jedoch eher die Ausführungszeit der Abfrage als die Anzahl der gescannten Zeilen. Auf diese Weise können Sie Probleme mit einer langsamen Festplatte oder widersprüchlichen Anforderungen identifizieren. In der Regel sollte ein Hochleistungssystem erwarten, dass Bruchteile einer Millisekunde eine Zeichenfolge an den Client senden oder ändern. Abfragen, die viele Zeilen zurückgeben oder aktualisieren, haben einen niedrigeren Wert.
Abfragen pro Host(die Anzahl der Anforderungen nach Host) spricht für sich selbst und daneben ist es sehr nützlich, die Abfragelast pro Host anzuzeigen, die die Anzahl der gleichzeitig aktiven Anforderungen anzeigt. Hier können wir sehen, dass mysql4 trotz der Tatsache, dass es nicht die höchste Anzahl von Abfragen (Abfragerate) hat, die höchste Last und die höchste durchschnittliche Anzahl von aktiven Abfragen hat.
Als ich
darüber nachdachte, welche anderen Metriken nützlich sein könnten, fügte ich die folgenden zusätzlichen Bereiche hinzu: Diese Bereiche unterteilen die Effizienz der Abfrageverarbeitung in READ-Abfragen (die Zeilen zurückgeben) und WRITE-Abfragen (die row_affected haben).
Die auf QueryTime basierende Effizienz ist dieselbe wie oben beschrieben, nur mit Schwerpunkt auf bestimmten Arten von Abfragen.
Effizienz der Datenverarbeitung(Datenverarbeitungseffizienz) ist ein etwas anderer Blick auf die gleichen Daten. Dies zeigt, wie viele Zeilen von der Abfrage im Vergleich zur Ausführungszeit der Abfrage untersucht werden. Dies zeigt zum einen die Rechenleistung des Systems. Ein System mit vielen Kernen, das alle Daten im Speicher hat, kann Millionen von Zeilen pro Sekunde verarbeiten und viel Arbeit leisten. Dies bedeutet jedoch keine Abfrageeffizienz. Tatsächlich führen Systeme, die viele Daten schnell verarbeiten, häufig viele vollständige Tabellenscans durch.
Schließlich gibt es mehrere Listen von Anfragen.
Häufige Abfragen, langsamste Abfragen (nach durchschnittlicher Ausführungszeit), Abfragen mit der höchsten Auslastung und fehlgeschlagene oder fehlgeschlagene Abfragen. Sie können diese Abfragen auch in Query Analytics sehen, aber ich wollte sie hier als Beispiel zeigen.
Bist du interessiert? Sie können das Dashboard in Percona Monitoring and Management (PMM) v2 von Grafana.com installieren .
Vom Code zu Kubernetes