Wunschliste für Verbesserungen in Grafana

Worldmap Panel: Popup overlay verbessern

Wünsche

  • Bessere Formatierungsmöglichkeiten.
  • Mehr Metadaten anzeigen.
  • You name it. (einfach hier eintragen)

Vorher

image

Nachher

Idee: Overlay irgendwie mit sowas wie Boom Table gestaltbar machen.

image

Pluseinself! Da muss das Hover-Tooltip wohl ne Sekunde stehenbleiben, innerhalb der mensch die Chance bekommt den Maus-Fokus auf des Tooltip zu schieben auf dass es ab dann solange stehen bleibt wie der Mausfokus drauf ist (oder eben dann auch noch ne Sekunde länger)</laut denk>

[edit: direkt auch auf den Punkt klicken und damit den Link[tm] aufzurufen wär natürlich auch schon knorke!]

1 Like

Eat "stickyLabels": true for this.

1 Like

Smart Text Panel

Wünschdirwas

Render Markdown text coming from a (remote) data source.

Details

Ich würde gerne z.B. die Inhalte der Text Panels von luftdaten-info-verlauf gerne irgendwie von der Ferne laden, am besten direkt aus einem GitHub Repository. Derzeit sind sie in Markdown geschrieben.

Research

Worldmap Panel: Interaktion mit der Karte verbessern

Ich meinte hier jenes:

Universal Variable Plugin

Das hört sich interessant an, ich könnte mir schon in etwa vorstellen worauf Du hinaus willst. Können wir gerne bei Gelegenheit besprechen.

Superimpose metrics on an image

There are three Panel Plugins for superimposing metrics on top of an image that we know of. Let’s compare their features against each other.

Worldmap Panel: Schattenartefakte wegen Kreisgröße

Problem

Ich hab grade auch keine Ahnung. Auf jeden Fall ist mir vorhin folgendes aufgefallen: Wenn man die Kreisgröße nicht limitiert, sondern auf den Standardeinstellungen
image
lässt, erhält man beim initialen Laden Schattenartefakte wie bei


zu sehen. Erst wenn man die Ansicht per
image
aktualisiert, erhält man das richtige Ergebnis:

Während man sich im Editor befindet, fällt das kaum auf, weil dort das Aktualisierungsverhalten deutlich agiler implementiert ist. Erst wenn man das Dashboard frisch lädt, fällt einem das auf die Schnauze.

Nachforschung

Natürlich könnte man auf diese Art und Weise wunderbarst min-/max-/avg-Werte am gleichen Fleck darstellen, in diesem Fall fließen allerdings wirklich nur einzelne Datenpunkte rein, zumindest wenn alles mit rechten Dingen zugeht.

image
image

Bottom line

Ich bin einigermaßen ratlos und mir natürlich nicht sicher, ob ich an dieser Stelle falsch denke oder es tatsächlich ein Bug ist.

Weitere Nachforschungen

Gut, es sind die “null” Werte
image
die auftreten, sobald man die Datenquelle folgendermaßen konfiguriert hat
image

SELECT last("RSSI_DL") AS "metric" 
FROM "loradbmapper" 
WHERE $timeFilter 
GROUP BY time($interval), "geohash"

Dann nämlich sehen die von der Datenquelle gelieferten Datenpunkte folgendermaßen aus:

{
    "columns": [
        "time",
        "metric"
    ],
    "name": "loradbmapper",
    "tags": {
        "geohash": "u0yjj64s2"
    },
    "values": [
        [
            1556496000000,
            null
        ],
        [
            1556582400000,
            -104
        ]
    ]
}

Kompensieren kann man das dann zwar wieder per
image

insgesamt fühlt es sich aber wie ein Workaround an. Schließlich nimmt Leaflet.js die Punkte nach einem Refresh ohnehin wieder weg – auch ohne das entsprechende Kompensationsfeature. Hm.

Lösung

Am besten ohne Gruppierung über die Zeit machen à la
image
Grafana hängt dann automatisch den Zeitraum dran, siehe

SELECT "RSSI_DL" AS "metric" 
FROM "loradbmapper" 
WHERE time >= 1556575200000ms and time <= 1556661600000ms 
GROUP BY "geohash"

Das Ergebnis enthält dann von vornherein keine null Werte.

{
    "columns": [
        "time",
        "metric"
    ],
    "name": "loradbmapper",
    "tags": {
        "geohash": "u0yjj64s2"
    },
    "values": [
        [
            1556623849462,
            -104
        ]
    ]
}

Worldmap: Strichstärke der Kreise einstellen

Auch nachts, ja?
image

1 Like

Worldmap: Problem with “Missing geohash value”

TLDR;

One of our data feeds suddenly started yielding empty "geohash" values into the database. The Worldmap Panel was not amused about it.

Problem

Reason

Proposal

The Worldmap Panel should be able to compensate for that by operating it with an appropriate control option like “ignoreGeohashDecodingErrors”.

Ich stelle mir natürlich irgendwie trotzdem die Frage, warum null-Werte mit einem Kreis dargestellt werden, der einen so großen Radius hat.

Beim Code


kommt nun noch ein

if (dataPointValue == 0) {
  return circleMinSize;
}

hinzu. Das sorgt dafür, dass "null"-Werte mit der eingestellten minimalen Kreisgröße dargestellt werden. Zumindest, sofern nicht die Option “Ignore empty values” gewählt wurde. Falls diese aktiviert ist, werden "null"-Werte komplett unterdrückt.

Themen bei Grafana, die u.U. dazu passen:

Improve usability for variable selection

In other words: Es wäre nett, wenn man die Variablenauswahl nicht zwingend “topmost” im Seitenlayout anlegen müsste, sondern man sie z.B. in ein Panel verlagern könnte, um sie flexibler positionieren zu können.

Bei Grafana Dashboard Imrovements - Site Feedback - Grafana Community gibt es grade frisch ähnliche Wünsche:

1 Like

Customize the user interface

What we kind of already did with grafana-studio.js and Improve Kiosk-mode display in our context already is also something which resonates with others in general, see How To Customize elements in dashboard page - Support - Grafana Community.

Improve multi-value variable handling

Sometimes, we had to SQL-CAST variables into Strings (VARCHAR) as we thought it would be obligatory for Grafana.

Example

Like that.

Metric query

SELECT osm_country_code, state_and_city, name_and_id, sensor_type_name 
FROM irceline_network 
WHERE 
    station_id IN ($irceline_station_id) AND 
    CAST (sensor_type_id AS VARCHAR) IN ($irceline_station_sensortype) 
ORDER BY osm_country_code, state_and_city, name_and_id, sensor_type_name;

which would yield

Rendered example

SELECT osm_country_code, state_and_city, name_and_id, sensor_type_name 
FROM irceline_network 
WHERE 
    station_id IN ('1234','1118') AND 
    CAST (sensor_type_id AS VARCHAR) IN ('482','20','391','71','10','4013','431','464','8','38','7','5','6002','6001','62106','1','62101','21','61102','61110') 
ORDER BY osm_country_code, state_and_city, name_and_id, sensor_type_name;

Improvement

However, we just found through Using Variables to dynamically select Columns in MySQL - Support - Grafana Community that multi-value variables can be rendered/formatted without quoting each single value, see also Variables | Grafana Documentation.

This works like a charm, we tried it by using ${irceline_station_id:csv} and ${irceline_station_sensortype:csv} in the following query.

Metric query

SELECT osm_country_code, state_and_city, name_and_id, sensor_type_name 
FROM irceline_network 
WHERE 
    station_id IN (${irceline_station_id:csv}) AND 
    sensor_type_id IN (${irceline_station_sensortype:csv}) 
ORDER BY osm_country_code, state_and_city, name_and_id, sensor_type_name;

Rendered example

SELECT osm_country_code, state_and_city, name_and_id, sensor_type_name 
FROM irceline_network 
WHERE 
    station_id IN (1234,1118) AND 
    sensor_type_id IN (482,20,391,71,10,4013,431,464,8,38,7,5,6002,6001,62106,1,62101,21,61102,61110) 
ORDER BY osm_country_code, state_and_city, name_and_id, sensor_type_name;

Combining multiple queries

at places where they are not yet possible. Here: Worldmap Panel again.

Q: Is this of interest for us?


Enhanced Drilldown links

Interesting things at Grafana. Ping, @wtf.

Didn’t get into the details what this is exactly all about, yet. However, this came from an answer to one of our ramblings.

Perform actions on data in Grafana