Grafana - Beginners vraagje ...

Alles over programmeren en development binnen de IT-wereld
Plaats reactie
Gebruikersavatar
Sasuke
userbase crew
userbase crew
Berichten: 5719
Lid geworden op: 13 aug 2003, 20:25
Locatie: Vlaanderen
Uitgedeelde bedankjes: 248 keer
Bedankt: 544 keer
Provider
Te Koop forum

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 ?
Who the fxxk is General Failure and why is he reading my hard disk ?
Afbeelding
Krulwilg
Member
Member
Berichten: 72
Lid geworden op: 16 feb 2015, 12:18
Uitgedeelde bedankjes: 56 keer
Bedankt: 8 keer
Provider

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.
Gebruikersavatar
Sasuke
userbase crew
userbase crew
Berichten: 5719
Lid geworden op: 13 aug 2003, 20:25
Locatie: Vlaanderen
Uitgedeelde bedankjes: 248 keer
Bedankt: 544 keer
Provider
Te Koop forum

Ik had die variables gezien, maar gezien beperkte DB/API/LOKI kennis zou ik eens een voorbeeld moeten zien denk ik :-)
Who the fxxk is General Failure and why is he reading my hard disk ?
Afbeelding
Krulwilg
Member
Member
Berichten: 72
Lid geworden op: 16 feb 2015, 12:18
Uitgedeelde bedankjes: 56 keer
Bedankt: 8 keer
Provider

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.
Laatst gewijzigd door Krulwilg 3 maanden geleden, in totaal 1 gewijzigd.
Gebruikersavatar
Sasuke
userbase crew
userbase crew
Berichten: 5719
Lid geworden op: 13 aug 2003, 20:25
Locatie: Vlaanderen
Uitgedeelde bedankjes: 248 keer
Bedankt: 544 keer
Provider
Te Koop forum

Bedankt voor het duidelijke voorbeeld, ga mij hier dit weekend eens verder mee bezighouden.
Who the fxxk is General Failure and why is he reading my hard disk ?
Afbeelding
Plaats reactie

Terug naar “Development”