InfluxDB grafana segue la serie di articoli dedicati a Docker e gli strumenti per l’IoT.
Inizia dalla descrizione di InfluxDb che trovi nella documentazione presente sul sito ufficiale in cui puoi leggere:
da cui puoi facilmente comprendere il motivo per cui InfluxDB grafana sia stato scelto come sistema molto diffuso in ambito IoT.
InfuxDB cos’è e come funziona
In questo articolo leggerai solo i concetti principali di InfluxDB, non è mia intenzione sostituire il manuale e la documentazione che ti invito a leggere seguendo il link riportato sopra.
Dalla documentazione ufficiale ho estratto i concetti che descrivo e puoi approfondirli leggendola, iniziamo dalla definizione di database time series, come hai letto, si tratta di un DB in cui i dati vengono storicizzati tenendo conto del “time” ossia della data e dell’ora in cui sono stati memorizzati.
L’informazione relativa al timestamp di ciacun record ha due caratteristiche principali:
- ha il formato RFC3339 UTC
- è una colonna sempre presente nelle tabelle di InfuxDB
La caratteristica “time based” di InfluxDB lo rende il candidato ideale per i data logger IoT.
Il concetto di tags e fields è un’altra caratteristica di InfluxDB ed chiaro se leggi la seguente frase:
I TAGS sono indicizzati mentre i FIELDS non lo sono.
Nei DB la tabella è costituita da colonne ed alcune di queste possono avere l’attributo di indicizzazione che indica al motore di data base di create un indice in gardo di velocizzare le query di ricerca e non solo.
In InfluxDB le colonne sono divise in TAGS e FIELDS in cui le prime sono quelle automaticamente indicizzate ed i fields i valori ad esse legati.
Una informazione fondamentale è la porta di default di InfluxDB: 8086
Interfaccia HTTP API InfluxDB
Per accedere a InfluxDB hai a disposizione delle API HTTP che puoi utilizzare con Curl>
eseguendo, ad esempio, una POST sulla porta 8086 puoi:
- creare un nuovo DB
- inserire dei dati nelle tabelle
- eseguire query
- ecc..
tutte operazioni descritte e documentate nel manuale on-line InfluxDB.
Interfaccia CLI InfluxDB grafana
Puoi accedere a InfluxDB anche dalla CLI, a mio avviso, l’interfaccia più comoda per le prime attività da eseguire sul DB, come ad esempio la creazione del Database e delle prime tabelle dati.
Il Command Line Client ( CLI ) ti permette di eseguire operazioni su InfluxDB da linea di comando del server su cui è installato.
Accedi alla CLI InfluxDb come mostrato in figura:
puoi specificare il parametro “precision” con cui lavorerà l’interfaccia cli nell’inserimento dei record.
Chiedi la lista dei DB attualmente presenti, essendo una installazione pulita avrai solo il database _internal:
Crea il database che userai per InfluxDB grafana:
il nome “grafana” è parlante 🙂
ed esegui la lista dei data base presenti, compare anche “grafana” come nuovo Db creato:
Prima di potervi accedere devi indicare al client che vuoi agire sul nuovo Db creato InfluxDB grafana, usa il comando “USE” seguito dal DB a cui vuoi accedere:
L’ultima linea ti mostra una semplice INSERT nella tabella temparature con tags location e room e fields temp e humidity.
Avrai notato che non abbiamo mai creato la tabella “temperature” in InfluxDB è una delle caratteristiche, quando fai una INSERT crei automaticamente una tabella il cui nome è definito come primo parametro della insert stessa.
I TAGS, di cui hai letto, seguono il nome della tabella e sono separati da “,” e seguiti da “=” mentre i fields sono staccati da uno spazio dai tags e separati tra loro da una “,”.
Puoi provare ora a verificare il dato inserito nella tabelle usando una SELECT:
nota che oltre alle informazioni che hai inserito ti compare anche il timestamp corrispondente all’inserimento del dato.
Ora sei pronto per collegarti a Grafana e creare il Datasource per accedere ai dati inseriti nella tabella, nel prossimo articolo dedicato a InfluxDB grafana vedrai come fare.
1 ping
[…] in questa serie di tutorial abbiamo scelto InfluxDb per le motivazioni descritte nell’articolo dedicato a InfluxDB. […]