ora che abbiamo i nostri dati, vediamo come visualizzarli
la visualizzazione dei dati catturati da exec , è comandata da uno script
/usr/lib/lua/luci/statistics/rrdtool/definitions/exec.lua
per creare questo script possiamo basarci sui vari esempi che si trovano in giro, o sugli altri script presenti nella directory
questo script deve ritornare i grafici che vogliamo mostrare
if "lte" == plugin_instance then
return { lte_sum_signal, lte_rsrq, lte_sinr}
quindi , bisogna che vengano ritornati i grafici lte_sum_signal (che contiene i valori rssi e rsrp) , lte_rsrq e lte_sinr
perchè è stato inserito quell' if ? cosa è plugin_instance?
abbiamo detto che
PUTVAL "OpenWrt/exec-lte/lte_sum" N:-74.0:-95.0:16.2:-3.5
crea una directory
/tmp/rrd/OpenWrt/exec-lte
ora se il nostro script, cosi come è restituisce nel caso siamo collegati in UMTS o in GPRS i valori come
PUTVAL "OpenWrt/exec-wcdma/wcdma_ecio" N:-74.0
verrà creata una directory
/tmp/rrd/OpenWrt/exec-wcdma
ed una
/tmp/rrd/OpenWrt/exec-gsm
in caso di gsm
a questo punto quando entreremo nella visualizzazione dei graficici ritroveremo una visualizzazione di tutti i grafici , con la possibilità di selezionare solo quelli lte/gsm/wcdma in pratica i nomi delle directory create
(attenzione, la prima volta se non sono stati ricevuti dati wcdma o gsm le cartelle non sono create, quindi o le fate voi a mano o aspettate che arrivi almeno un dato)
quindi occupiamoci ora di generare i valori da restituire, faccio l' esempio su di uno ma vale per tutti gli altri
local lte_sum_signal = { --the name of the local value we must supply to the return function , down in this script
title =" %H: grafico combinato",
vlabel ="dBm rf level",
data = {
sources = { -- we use sources if the rrd database contains more then one type of value , in this case rssi,rsrp,sinr and rsrq
lte_sum = { "rssi","rsrp" } --the rrd database source for our data
},
options = {
lte_sum__rssi = { color = "ff0000", title = "rssi - the whole signal received (lte and other services) -120/-25", noarea = true , overlay=true}, -- noarea draw a line
-- overlay true don't sum the two value
lte_sum__rsrp = { color = "ff00ff", title = "rsrp - lte signal received -140/-44", noarea = true , overlay=true } -- pay attention the name of the
-- database plus double underscore the name of the value
}
} }
ho inserito dei commenti -- che spero abbiano reso il codice autoesplicativo
da prestare l a massima attenzione alla sintassi dei nomi nelle righe relative a colore, titolo, noarea e overlay , se sbagliato non abbiamo nessun errore, si ce ne rende conto solo dall' output che cambia di colore , diventa col valore di default
noarea=false , e non mostra il titolo giusto ... inizialmente la cosa mi ha fatto impazzire non poco
ed ecco il nostro risultato :
se ci avete fatto caso, il grafico qui' sopra mostra l' andamento del segnale su di un arco temporale di 4 ore , anche qui' la documentazione che ho trovato in giro è stata molto scarsa e ci ho messo un bel po per capire come variare il timespan
a differenza di cio' che ho trovato che chiedeva di cambiare dei file , la modifica si è rivelata piuttosto banale
in pratica ,nella pagina di openwrt relativa alla configurazione Statistics-> setup -> output plugin -> rrdTool
nella riga dove troviamo i timespan di default bisogna inserire i nuovi avendo cura di esprimerli come valore multiplo/sottomultiplo di uno dei valori inseriti
in pratica , vengono riconosciuti i seguenti valori base :
nome | secodi |
hour | 3600 |
day | 86400 |
week | 604800 |
month | 2592000 |
year | 30844800 |
anzi vengono riconosciute solo le prime lettere h d m w y , tanto che nei primi tentativi inserendo un timespan di 10minutes mi usciva un grafico che mi indicava le settimane .....
quindi se vogliamo un timespan di 4 ore aggiungeremo 4hour , se lo vogliamo di 6 minuti 0.1hour , di tre anni 3year