«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman Khavronenko

Ich lade Sie ein, sich die Zusammenfassung des Vortrags von Roman Khavronenko "ExtendedPromQL" anzusehen

Video abspielen

«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman Khavronenko

Kurz zu mir. Mein Name ist Roman. Ich arbeite bei CloudFlare und lebe in London. Gleichzeitig bin ich Maintenance-Engineer bei VictoriaMetrics.
Und ich bin der Autor des ClickHouse-Plugins fĂŒr Grafana und ClickHouse-proxy – ein kleiner Proxy fĂŒr ClickHouse.

«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman Khavronenko

Wir beginnen mit dem ersten Teil, der «Herausforderungen der Übersetzung» heißt, und darin werde ich erzĂ€hlen, dass jede Sprache oder sogar einfach eine Kommunikationssprache sehr wichtig ist. Denn so ĂŒbermitteln Sie Ihre Gedanken an eine andere Person oder ein System, so formulieren Sie Anfragen. Menschen im Internet streiten darĂŒber, welche Sprache besser ist – Java oder eine andere. FĂŒr mich ist klar, dass die Wahl auf die Aufgabe abgestimmt sein sollte, denn das alles ist spezifisch.

«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman Khavronenko

Lassen Sie uns von vorne beginnen. Was ist PromQL? PromQL ist die Prometheus Query Language. Damit formulieren wir Abfragen in Prometheus, um Zeitreihendaten zu erhalten.

«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman Khavronenko

Was sind Zeitreihendaten? Wenn wir es wörtlich nehmen, sind das drei Parameter.

Das sind:

  • Worauf wir schauen.
  • Wann wir darauf schauen.
  • Und welchen Wert es anzeigt.

«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman Khavronenko

Wenn wir uns dieses Diagramm ansehen (es stammt von meinem Telefon und zeigt die Statistiken meiner Schritte), können wir schnell auf diese Fragen antworten.

Wir betrachten die Schritte. Wir sehen den Wert und die Zeit, wenn wir darauf schauen. Das heißt, anhand dieses Diagramms können wir leicht sagen, dass ich am Sonntag etwa 15.000 Schritte gemacht habe. Es handelt sich um Zeitreihendaten.

«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman Khavronenko

Lassen Sie uns nun versuchen, diese Daten in ein anderes Datenmodell in Form einer Tabelle zu "transformieren". Hier haben wir auch das, was wir betrachten. Ich habe hier einige zusĂ€tzliche Daten hinzugefĂŒgt, die wir als Metadaten bezeichnen werden, das heißt, es waren nicht nur ich, sondern zwei Personen, sagen wir, Jay und Silent Bob, die gegangen sind. Das ist das, was wir betrachten; was zeigt es und wann zeigt es diesen Wert.

«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman Khavronenko
Jetzt wollen wir versuchen, all diese Daten in einer Datenbank zu speichern. Beispielsweise habe ich die Syntax von ClickHouse verwendet. Hier erstellen wir eine Tabelle, die „Steps“ genannt wird, das heißt, das was wir betrachten. Es gibt die Zeit, in der wir darauf schauen; was es zeigt und einige Metadaten, wo wir speichern werden, wer es ist: Jay und Silent Bob.

«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman Khavronenko

Und um all dies zu visualisieren, werden wir Grafana verwenden, denn erstens sieht es gut aus.

«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman Khavronenko

Wir werden auch dieses Plugin verwenden. Es gibt zwei GrĂŒnde dafĂŒr. Erstens – weil ich es geschrieben habe. Und ich weiß genau, wie schwierig es ist, Zeitreihendaten aus ClickHouse zu extrahieren, um sie in Grafana anzuzeigen.

«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman Khavronenko

Wir werden dies im Graph Panel anzeigen. Dies ist das beliebteste Panel in Grafana, das die AbhÀngigkeit des Wertes von der Zeit zeigt, daher benötigen wir nur zwei Parameter.

«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman Khavronenko
Lassen Sie uns die einfachste Abfrage schreiben – wie man die Schrittstatistik in Grafana anzeigt, wobei diese Daten in ClickHouse gespeichert sind, in der Tabelle, die wir erstellt haben. Wir schreiben also diese einfache Abfrage. Wir wĂ€hlen aus den Schritten. Wir wĂ€hlen den Wert und die Zeit dieser Werte, also die gleichen drei Parameter, ĂŒber die wir gesprochen haben.

«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman Khavronenko

Und als Ergebnis erhalten wir dieses Diagramm. Wer weiß, warum es so seltsam aussieht?

«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman Khavronenko

Richtig, es muss nach der Zeit sortiert werden.

«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman Khavronenko

Am Ende bekommen wir ein besseres, aber immer noch seltsames Diagramm. Wer weiß, warum? Richtig, es gibt zwei Teilnehmer, und wir geben in Grafana zwei Zeitreihen aus, denn wenn man sich das Datenmodell nochmal anschaut, dann ist jede Zeitreihe eine einzigartige Kombination aus Namen und allen SchlĂŒssel-Wert-Paaren der Labels.

«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman Khavronenko

Deshalb mĂŒssen wir eine bestimmte Person auswĂ€hlen. Wir wĂ€hlen Jay.

«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman Khavronenko

Und zeichnen es nochmal. Jetzt sieht das Diagramm der Wahrheit schon nÀher. Es ist jetzt ein normales Diagramm und alles funktioniert gut.

«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman Khavronenko

Und wahrscheinlich wissen Sie, wie man dasselbe in Prometheus ĂŒber PromQL macht. UngefĂ€hr so. Ein wenig einfacher. Und wir werden das Ganze noch aufschlĂŒsseln. Wir haben Steps genommen und filtern nach Jay. Wir geben hier nicht an, dass wir einen Wert benötigen, und wĂ€hlen keine Zeit aus.

«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman Khavronenko

Jetzt versuchen wir, die Geschwindigkeit von Jay oder Silent Bob zu berechnen. In ClickHouse mĂŒssen wir runningDifference machen, also den Unterschied zwischen Punktpaaren berechnen und durch die Zeit teilen, um die genaue Geschwindigkeit zu erhalten. Die Abfrage sieht ungefĂ€hr so aus.

«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman Khavronenko

Und es wird ungefĂ€hr solche Werte anzeigen, das heißt, Silent Bob oder Jay machen ungefĂ€hr 1,8 Schritte pro Sekunde.

«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman Khavronenko

Und in Prometheus wissen Sie auch, wie man das macht. Viel einfacher, als es vorher war.

«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman KhavronenkoUm es in Grafana weiterhin einfach zu halten, habe ich eine Art Wrapper hinzugefĂŒgt, der PromQL sehr Ă€hnelt. Dieser wird als Rate Macros bezeichnet oder wie auch immer Sie ihn nennen möchten. In Grafana schreiben Sie einfach "rate", aber tief im Inneren verwandelt sich dies in eine umfangreiche Anfrage. Sie mĂŒssen sich nicht einmal damit auseinandersetzen; sie existiert im Hintergrund, wodurch Sie viel Zeit sparen, denn das Schreiben solcher großen SQL-Abfragen ist immer aufwendig. Sie könnten leicht einen Fehler machen und dann lange nicht verstehen, was passiert.

«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman Khavronenko

Hier ist eine Anfrage, die nicht einmal auf eine Folie passte und ich sie auf zwei Spalten aufteilen musste. Das ist ebenfalls eine Anfrage in ClickHouse, die dasselbe rate berechnet, aber fĂŒr beide Zeitreihen: sowohl fĂŒr Silent Bob als auch fĂŒr Jay, damit wir auf unserem Dashboard zwei Zeitreihen haben. Das ist schon sehr komplex, finde ich.

«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman Khavronenko

Und fĂŒr Prometheus wĂ€re das sum(rate). FĂŒr ClickHouse habe ich ein separates Makro erstellt, das RateColumns heißt und wie eine Anfrage in Prometheus aussieht.

«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman Khavronenko

Wir haben geschaut und PromQL scheint großartig zu sein, aber es hat natĂŒrlich auch seine EinschrĂ€nkungen.

Das sind:

  • Limitierte SELECT.
  • Grenz-JOIN.
  • Keine UnterstĂŒtzung fĂŒr HAVING.

Wenn Sie lange mit ihm gearbeitet haben, wissen Sie, dass es manchmal sehr schwierig ist, etwas in PromQL zu erledigen, wÀhrend dies in SQL fast alles möglich ist. All die Optionen, die wir gerade besprochen haben, hÀtten in SQL umgesetzt werden können. Aber wÀre es praktisch, damit zu arbeiten? Das bringt mich zu dem Gedanken, dass die stÀrkste Sprache nicht immer die benutzerfreundlichste sein muss.

«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman Khavronenko

Deshalb muss man manchmal die Sprache passend zu den Aufgaben auswÀhlen. Es ist wie der Kampf zwischen Batman und Superman. Klar, dass Superman stÀrker ist, aber Batman konnte ihn besiegen, weil er praktischer ist und genau wusste, was er tut.

«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman Khavronenko

Der nÀchste Teil ist die Erweiterung von PromQL.

«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman Khavronenko

Noch einmal zu VictoriaMetrics. Was ist VictoriaMetrics? Es ist eine Zeitreihendatenbank, sie ist OpenSource, und wir vertreiben sowohl die Single- als auch die Cluster-Versionen. Laut unseren Benchmarks ist sie die schnellste, die derzeit auf dem Markt ist, und auch bei der Kompression Ă€hnlich – echte Nutzer berichten von einer Kompression von etwa 0,4 Byte pro Punkt, wĂ€hrend Prometheus bei 1,2-1,4 liegt.

Wir unterstĂŒtzen nicht nur Prometheus. Wir unterstĂŒtzen auch InfluxDB, Graphite und OpenTSDB.

Sie können in uns "schreiben", d.h. alte Daten können ĂŒbertragen werden.

Und wir arbeiten perfekt mit Prometheus und Grafana zusammen, d.h. wir unterstĂŒtzen die PromQL-Engine. In Grafana können Sie einfach den Prometheus-Endpunkt durch VictoriaMetrics ersetzen, und all Ihre Dashboards funktionieren wie gewohnt.

Aber Sie können auch zusÀtzliche Funktionen nutzen, die VictoriaMetrics bietet.

Lassen Sie uns schnell die Funktionen durchgehen, die wir hinzugefĂŒgt haben.

«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman Khavronenko

Omit-Interval-Parameter – Sie können Intervalparameter in Grafana weglassen. Wenn Sie keine seltsamen Grafiken beim Heranzoomen oder Herauszoomen im Panel erhalten möchten, wird empfohlen, die Variable $__intervalzu verwenden. Das ist eine interne Variable von Grafana, die den Datenbereich selbst auswĂ€hlt. Und VictoriaMetrics kann selbst verstehen, wie dieser Bereich aussehen sollte, sodass Sie Ihre Abfragen nicht aktualisieren mĂŒssen. Das wird viel einfacher.

«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman Khavronenko

Die zweite Funktion ist das Intervall-Referencing. Sie können dieses Intervall in Ihren AusdrĂŒcken verwenden. Sie können es multiplizieren, dividieren, ĂŒbergeben und darauf referenzieren.

«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman Khavronenko

Als nÀchstes das Familien-Set der Rollup-Funktionen. Rollup-Funktionen transformieren Ihre Zeitreihen in drei separate Zeitreihen: min, max und avg. Ich finde das sehr praktisch, weil es manchmal helfen kann, Anomalien und Ungenauigkeiten zu erkennen.

«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman Khavronenko

Und wenn Sie einfach nur die irate oder rate machen, dann könnten Sie wahrscheinlich einige FĂ€lle ĂŒbersehen, in denen die Zeitreihe sich nicht so verhĂ€lt, wie Sie angenommen haben. Mit dieser Funktion ist es viel einfacher zu sehen, dass zum Beispiel max stark von avg abweicht.

«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman Khavronenko

Die nĂ€chste Variable ist default. Default bedeutet, welchen Wert wir in Grafana darstellen mĂŒssen, falls wir momentan keine Zeitreihe haben. Wann passiert das? Angenommen, Sie exportieren eine Metrik zu Fehlern. Und Ihre Anwendung lĂ€uft so gut, dass Sie beim Start keine Fehler haben und in den nĂ€chsten drei Stunden oder sogar einem Tag keine Fehler auftreten. Sie haben Dashboards, die das VerhĂ€ltnis von Erfolg zu Fehlern anzeigen. Und die werden Ihnen nichts zeigen, weil Sie keine Fehler-Metrik haben. Im Default können Sie jedoch alles angeben.

«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman Khavronenko

Keep_last_Value – speichert den letzten Metrikwert, wenn dieser nicht mehr vorhanden ist. Falls Prometheus bei der nĂ€chsten Abfrage diesen innerhalb von 5 Minuten nicht findet, werden wir hier den letzten Wert speichern und Ihre Diagramme werden wieder korrekt sein.

«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman Khavronenko

Scrape_interval – zeigt, wie hĂ€ufig Prometheus Daten zu Ihrer Metrik sammelt, mit welcher Frequenz. Hier könnte man beispielsweise eine LĂŒcke sehen.

«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman Khavronenko
Bezeichnungsersatz – eine beliebte Funktion. Wir glauben jedoch, dass sie etwas kompliziert ist, da sie ganze Argumente annimmt. Sie mĂŒssen sich nicht nur fĂŒnf Argumente merken, sondern auch deren Reihenfolge.
«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman Khavronenko
Warum also nicht einfacher gestalten? Das heißt, in kleinere Funktionen mit verstĂ€ndlicher Syntax unterteilen.

«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman Khavronenko

Und jetzt das Interessante. Warum glauben wir, dass das erweiterte PromQL ist? Weil wir Common Table Expressions unterstĂŒtzen. Sie können den QR-Code scannen (https://github.com/VictoriaMetrics/VictoriaMetrics/wiki/ExtendedPromQL), um Links mit Beispielen und einem Playground anzusehen, wo Sie Abfragen direkt in VictoriaMetrics im Browser ausfĂŒhren können, ohne es installieren zu mĂŒssen.

«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman Khavronenko

Was bedeutet das? Die Anfrage oben ist eine ziemlich gĂ€ngige Abfrage. Ich denke, in jedem Dashboard vieler Unternehmen verwenden Sie denselben Filter fĂŒr alles. Normalerweise ist das der Fall. Aber wenn Sie einen neuen Filter hinzufĂŒgen mĂŒssen, mĂŒssen Sie jedes Panel aktualisieren oder das Dashboard herunterladen, in JSON öffnen und eine Suche und Ersetzung durchfĂŒhren, was auch Zeit in Anspruch nimmt. Warum das Ergebnis nicht in einer Variable speichern und wiederverwenden? Das erscheint mir viel einfacher und verstĂ€ndlicher.

«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman Khavronenko

Zum Beispiel, wenn ich die Filter in Grafana fĂŒr alle Anfragen aktualisieren muss, wĂ€hrend das Dashboard riesig sein kann oder sogar mehrere davon existieren. Wie könnte ich dieses Problem in Grafana lösen?

«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman Khavronenko

Ich gehe so vor: Ich erstelle einen commonFilter und definiere darin den Filter, den ich dann in den Anfragen wiederverwende. Wenn Sie es jetzt genauso machen, wird es jedoch nicht funktionieren, da Grafana nicht erlaubt, Variablen innerhalb von Abfragevariablen zu verwenden. Das ist ein wenig merkwĂŒrdig.

«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman Khavronenko

Deshalb habe ich eine Lösung entwickelt, die dies ermöglicht. Wenn Sie interessiert sind oder eine solche Funktion möchten, unterstĂŒtzen Sie mich bitte oder geben Sie einen Daumen nach unten, falls Ihnen die Idee nicht gefĂ€llt. https://github.com/grafana/grafana/pull/16694

«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman Khavronenko

Jetzt sprechen wir ĂŒber die erweiterte PromQL. Hier definieren wir nicht nur eine Variable, sondern direkt eine ganze Funktion. Wir nennen sie ru (Ressourcenauslastung). Diese Funktion nimmt freie Ressourcen, RessourcenbeschrĂ€nkungen und Filter entgegen. Der Syntax ist eigentlich ganz einfach. Es ist sehr leicht, diese Funktion zu nutzen und den Anteil des freien Speichers zu berechnen, den wir haben. Das heißt, wie viel Speicherplatz uns zur VerfĂŒgung steht, welche Begrenzung besteht und wie wir filtern. Es wĂ€re viel praktischer, wenn Sie alles so schreiben könnten, dass Sie dieselben Filter wiederverwenden, denn das wĂŒrde in eine sehr große Abfrage mĂŒnden.

«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman Khavronenko

Und hier ist ein Beispiel fĂŒr eine solche große Abfrage. Sie stammt vom offiziellen Dashboard des NodeExporters fĂŒr Grafana. Aber ich habe Schwierigkeiten, zu verstehen, was hier passiert. Klar, ich kann es erahnen, wenn ich genau hinschaue, aber die Anzahl der Klammern kann die Motivation, den Inhalt zu verstehen, sofort mindern. Warum also nicht alles einfacher und verstĂ€ndlicher machen?

«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman Khavronenko

Zum Beispiel so, indem man bedeutende Dinge oder Teile in Variablen auslagert. Und dann seine grundlegenden Berechnungen durchfĂŒhrt. Das Ă€hnelt bereits mehr der Programmierung, das ist es, was ich in Zukunft in Grafana sehen möchte.

«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman Khavronenko

Hier ist ein weiteres Beispiel, wie wir das noch einfacher machen könnten, wenn wir bereits diese Funktion in ru hĂ€tten, die es direkt in VictoriaMetrics gibt. Sie wĂŒrden dann einfach den zwischengespeicherten Wert ĂŒbergeben, den Sie im CTE deklariert haben.

«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman Khavronenko

Ich habe bereits darĂŒber gesprochen, wie wichtig es ist, die richtige Programmiersprache zu verwenden. Wahrscheinlich gibt es in jeder Firma in Grafana etwas Eigenes. Und wahrscheinlich geben Sie Ihren Entwicklern Zugang zu Grafana, und die Entwickler machen etwas Eigenes. Und sie tun das irgendwie unterschiedlich. Es wĂ€re wĂŒnschenswert, das irgendwie einheitlich zu gestalten, d.h. auf einen gemeinsamen Standard zu bringen.

Angenommen, Sie haben nicht nur Systemingenieure, vielleicht haben Sie sogar Experten, DevOps oder SRE. Vielleicht haben Sie Experten, die wissen, was Monitoring ist, die wissen, was Grafana ist, d.h. sie arbeiten seit Jahren damit und wissen genau, wie man es richtig macht. Und sie haben das schon 100 Mal geschrieben und allen erklÀrt, aber irgendwie hört niemand zu.

Was wĂ€re, wenn sie dieses Wissen direkt in Grafana einbringen könnten, damit andere Nutzer die Funktionen wiederverwenden können? Und wenn man den Prozentsatz des freien Speichers berechnen mĂŒsste, könnte man einfach die Funktion anwenden. Was wĂ€re, wenn die Entwickler der Exporter, zusammen mit ihrem Produkt, auch eine Sammlung von Funktionen zur VerfĂŒgung stellen wĂŒrden, wie man mit ihren Metriken umgeht, da sie genau wissen, was das fĂŒr Metriken sind und wie man sie korrekt berechnet?

Das existiert tatsĂ€chlich nicht. Das habe ich selbst gemacht. Das ist die UnterstĂŒtzung von Bibliotheken in Grafana. Angenommen, die Jungs, die NodeExporter entwickelt haben, hĂ€tten das gemacht, was ich beschrieben habe. Und hĂ€tten zudem eine Sammlung von Funktionen bereitgestellt.

«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman Khavronenko

Das sieht ungefĂ€hr so aus. Sie binden diese Bibliothek in Grafana ein, gehen zur Bearbeitung und hier steht ganz einfach in JSON, wie man mit dieser Metrik arbeitet. Das heißt, eine Art Sammlung von Funktionen, deren Beschreibung und in was sie umgesetzt werden.

«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman Khavronenko

Ich denke, das könnte nĂŒtzlich sein, denn dann wĂŒrden Sie in Grafana einfach so etwas schreiben. Und Grafana "sagt" Ihnen, dass es eine solche Funktion aus dieser Bibliothek gibt – lassen Sie uns diese verwenden. Ich denke, das wĂ€re wirklich toll.

«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman Khavronenko

Ein wenig ĂŒber VictoriaMetrics. Wir machen viele interessante Dinge. Lesen Sie unsere Artikel ĂŒber Kompression, ĂŒber unsere Wettbewerbe mit anderen Zeitreihen-Datenanwendungen, unsere ErlĂ€uterungen zur Arbeit mit PromQL, da es in diesem Bereich noch viele AnfĂ€nger gibt, sowie ĂŒber vertikale Skalierbarkeit und den Wettbewerb mit Thanos.

«ExtendedPromQL» — Zusammenfassung des Vortrags von Roman Khavronenko

Fragen:

Ich möchte meine Frage mit einer einfachen Lebensgeschichte beginnen. Als ich zum ersten Mal mit Grafana arbeitete, formulierte ich eine sehr ĂŒberzeugende Abfrage von fĂŒnf Zeilen. Das Ergebnis war ein wirklich beeindruckendes Diagramm. Dieses Diagramm war fast bereit fĂŒr die Produktion. Bei genauerem Hinsehen stellte sich jedoch heraus, dass dieses Diagramm absoluten Unsinn zeigt, der nichts mit der RealitĂ€t zu tun hat, obwohl die Zahlen im erwarteten Bereich lagen. Und meine Frage lautet: Wir haben Bibliotheken, wir haben Funktionen, wie schreiben wir Tests fĂŒr Grafana? Sie haben eine komplexe Abfrage verfasst, von der eine GeschĂ€ftsentscheidung abhĂ€ngt – ob man einen echten Container von Servern bestellen soll oder nicht. Und wie wissen wir, dass die Funktion, die das Diagramm zeichnet, der Wahrheit entspricht? Vielen Dank.

Vielen Dank fĂŒr die Frage. Es gibt zwei Aspekte. Erstens habe ich den Eindruck, basierend auf meinen Erfahrungen, dass die meisten Nutzer beim Blick auf ihre Grafiken oft nicht verstehen, was ihnen diese zeigen. Irgendwie sind die Leute sehr gut darin, fĂŒr jede Anomalie, die in den Grafiken auftritt, eine ErklĂ€rung zu finden, selbst wenn es sich um einen Fehler in der Funktion handelt. Zweitens, ich denke, dass die Verwendung solcher Funktionen viel besser zur Lösung Ihres Problems passen wĂŒrde, anstatt dass jeder Ihrer Entwickler seine eigenen KapazitĂ€tsplanungen vornimmt und dabei mit einer gewissen Fehlerquote scheitert.

Wie kann man das ĂŒberprĂŒfen?

Wie kann man das ĂŒberprĂŒfen? Wahrscheinlich gar nicht.

In Form eines Tests in Grafana.

Was hat Grafana damit zu tun? Grafana leitet diese Anfrage direkt an die Datenquelle weiter.

Indem man ein wenig zu den Parametern hinzufĂŒgt.

Nein, in Grafana wird nichts hinzugefĂŒgt. Es können GET-Parameter vorhanden sein, wie z.B. step. Dieser Parameter wird zwar nicht explizit angegeben, kann aber ĂŒberschrieben werden. Man kann ihn ĂŒberschreiben oder auch nicht, aber er wird automatisch hinzugefĂŒgt. Hier können Sie keine Tests schreiben. Ich denke, man sollte in diesem Kontext nicht auf Grafana als die einzige Wahrheit vertrauen.

Vielen Dank fĂŒr den Bericht! Vielen Dank fĂŒr die Kompression! Sie haben das Mapping von Variablen im Diagramm erwĂ€hnt, dass man in Grafana eine Variable nicht in einer anderen Variable verwenden kann. Verstehen Sie, worĂŒber ich spreche?

Ja.

Das war anfangs ein Kopfzerbrechen, als ich einen Alert in Grafana erstellen wollte. Dort muss man fĂŒr jeden Host separat einen Alert einrichten. Funktioniert diese Lösung, die Sie gemacht haben, fĂŒr Alerts in Grafana?

Wenn Grafana nicht irgendwie anders auf Variablen zugreift, dann ja, wird es funktionieren. Aber mein Rat ist, Alerts in Grafana ĂŒberhaupt nicht zu verwenden, es ist besser, den Alertmanager zu nutzen.

Ja, ich benutze ihn, aber in Grafana schien es einfacher in der Einrichtung. Vielen Dank fĂŒr den Rat!

Quelle: habr.com

ZuverlĂ€ssiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen đŸ”„ ZuverlĂ€ssiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster