Pagina 1 van 1

Grafana - Beginners vraagje ...

Geplaatst: 02 apr 2025, 21:59
door Sasuke
Ik heb met grafana een dashboard op basis van Infinity datasource (REST API met GET methode). In Grafana heb ik een panel waar bij ik volgende data krijg en kan visualiseren op basis van het endpoint 'alerts' (get /v2/alerts)

- message
- deviceID
- timestamp
- condition

Met die deviceID kan ik via een ander endpoint de hostname opvragen . Met powershell is dat allemaal eenvoudig, maar hoe doe ik dat met Grafana ? Kan ik in 1 panel een veld tonen dat gebaseerd is op een query waarbij een value uit de eerdere query gebruikt wordt om een resultaat te krijgen.

Dom voorbeeld: in Powershell zou ik dan bvb $hostname = (get-devices -filter ("id -eq $deviceID")).hostname kunnen doen.

Ik hoop dat ik goed uitleg wat ik wil bekomen. Hopelijk zitten hier mensen met wat grafana kennis ?

Re: Grafana - Beginners vraagje ...

Geplaatst: 02 apr 2025, 23:40
door Krulwilg
Dit doe ik met variables: https://grafana.com/docs/grafana/latest ... variables/

In mijn geval filter ik tabellen uit een MySQl.
Je kan dan de selectie van de ene variabele gebruiken als input voor de volgende, en zo gaan filteren.

Re: Grafana - Beginners vraagje ...

Geplaatst: 03 apr 2025, 11:35
door Sasuke
Ik had die variables gezien, maar gezien beperkte DB/API/LOKI kennis zou ik eens een voorbeeld moeten zien denk ik :-)

Re: Grafana - Beginners vraagje ...

Geplaatst: 03 apr 2025, 20:50
door Krulwilg
Als voorbeeld zal ik een relatief eenvoudig dashboard nemen van een industrieel gebouw, waar de HVAC-gegevens gevisualiseerd worden.
Niet mijn beste dashboard om als voorbeeld te gebruiken, maar wel makkelijk te anonimiseren.

Bovenaan kan je links de weer te geven temperatuursensoren selecteren; rechts de gelogde vrijgave van de verwarming.
In dit voorbeeld staan de 2 variabelen los van elkaar. Het resultaat van de ene variabele beïnvloedt de andere variabele niet.
Ik ga dus verder uitleggen met de variabele "Temperaturen".

Afbeelding

Zoals gisteren gezegd komt mijn data uit MySQL.
In deze database heeft elke vestiging een eigen "table", met verschillende kolommen aan (sensor)data.
Aangezien er in deze "table" niet veel variabelen zijn, en dit dashboard enkel gebruikt wordt om data van deze vestiging weer te geven, heb ik de selectie hard gecodeerd.
Ik wil enkel de kolomnamen zien die beginnen met "T_" of "SP_T_".

Variabele "Temperaturen" bestaat uit volgende query:

Code: Selecteer alles

SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = <Naam van de vestiging>
  AND TABLE_SCHEMA = <Naam van mijn database>
  AND COLUMN_NAME NOT LIKE 'Thermiek%'
  AND (COLUMN_NAME LIKE 'T\_%' 
  OR COLUMN_NAME LIKE 'SP_T_%'; 
Het resultaat van die query is een opsomming van alle kolomnamen die aan m'n selectie voldoen.

Afbeelding

Om in mijn eerste grafiek enkel de bovenaan geselecteerde data weer te geven, gebruik ik volgende query:

Code: Selecteer alles

SELECT ${Temperaturen:raw}, DateTime AS "time" FROM <database.tabel> ORDER BY DateTime
"DateTime" is in dit geval een kolom in mijn tabel met een timestamp, zodat de grafiek geplot kan worden in functie van tijd.

Re: Grafana - Beginners vraagje ...

Geplaatst: 03 apr 2025, 22:03
door Sasuke
Bedankt voor het duidelijke voorbeeld, ga mij hier dit weekend eens verder mee bezighouden.