Unklare Timeshift Einstellung im Dashboard »PM10: Karte UBA & LDI-korrigiert (letzter Wert)«

Wie wir jüngst bei den Entwicklungsarbeiten zu GitHub - panodata/grafanimate: Animate timeseries data with Grafana. und den Aufbereitungsarbeiten bei Feinstaub zu Silvester 2018 - #12 by clemens ff. festgestellt haben, hat das Dashboard pm10-karte-uba-and-ldi-korrigiert-letzter-wert folgende Parameter voreingestellt:

image

Auf Nachfrage bei @wtf kam folgendes heraus:

Das ist daher produktiv so eingestellt, damit nur der letzte/aktuelle Wert gezeigt wird. Sonst würde das Dashboard AFAIK den kompletten Timerange abfragen, also ggf. alle einzelnen Datenpunkte über den eingestellten Zeitraum abfragen. Bei größeren Zeiträumen wie 2M oder gar 2y wären das sehr viele.

Da ist was dran, das wären dann zigtausende an Werten, die unnötig Ressourcen verschwenden. Die Einstellung ist also ein Versuch, die Serverlast, das Transfervolumen und die fürs Rendering auf Browserseite aufgewendeten CPU Zyklen und Hauptspeicher pro Abfrage möglichst zu minimieren. Top!


Eigentlich sollte aber die “current” Einstellung im Tab davor ausreichen, um die Anzahl der Datenpunkte fachgerechter einzuschränken.

Let’s investigate?

Das bezieht sich vermutlich auf den »Metrics« Tab, das genannte Dashboard hat hier derzeit folgende Einstellungen:

Aktuelle Datenbankabfrage

SELECT last("P1") AS "metric" 
FROM "earth_43_sensors" 
WHERE ("geohash" =~ /^u.*/ AND "sensor_type" =~ /SDS.*/) AND $timeFilter 
GROUP BY "geohash", "location_id"

Bem.: Wir schränken hier derzeit also auch auf Sensoren des Typs SDS011 ein.

Todo

Wir sollten also mal die Permutationen der jeweiligen Einstellungen gegenüberhalten und dabei unter der Haube nachsehen, ob die Projektion von last("P1") an dieser Stelle ausreicht, wie eigentlich anzunehmen wäre.

Frage I

Zur Erzeugung der Animationen unter Feinstaub zu Silvester 2018 ff. per grafanimate · PyPI verwenden wir die Projektion first("P1"):

SELECT first("P1") AS "metric" 
FROM "ldi_readings" 
WHERE ("geohash" !~ /^$/) AND $timeFilter 
GROUP BY "geohash", "station_id"

Außerdem haben wir o.g. Einstellungen bei “Relative time” und “Time shift” zurückgenommen.

Spricht da grundsätzlich irgendetwas dagegen? Wäre also last("P1") gegenüber first("P1") zu bevorzugen?

Frage II

Kann hier u.U. auch »das min time interval für auto-grouping« eine Rolle spielen bzw. ein möglicher Vektor zur fachgerechten Einflussnahme sein, wie unter Daten werden bei hoher Publikationsfrequenz nicht in Grafana angezeigt beschrieben?

Die Darstellung von Werten auf einem “normalen” Graph Panel vs. der Darstellung auf einer Karte beherbergen ja doch bestimmte Unterschiede hinsichtlich der gewollten Reduktions- bzw. Darstellungsgranularität.

1 Like

Nachschlag … nope, beim world-map-plugin gibts noch im Tab “Worldmap” rechts den Punkt “Aggregation”, der derzeit auf “current” steht und auch min/max/avg/total sein könnte.

Das macht mehr Sinn, ja. Danke!