Per utilizzare la dashboard Grafana di xCALLY e' sufficiente: avere un'installazione di xCALLY, scaricare Grafana, configurare un Data Source MySQL con nome XCALLY, installare la dashboard, e... buon divertimento!
La dashboard xCALLY con Grafana consente di visualizzare grafici molto significativi
sulle attivita' svolte sul sistema nel tempo analizzando andamenti ed eventi.
Volete saperne di piu'?
Continuate a leggere!
Grafana e' un software Open Source
che consente di generare grafici e dashboard
per il monitoraggio di ambienti e di sistemi.
L'utente accede a Grafana con un normale browser:
tipicamente il servizio risponde sulla porta 3000
[NdA e' possibile modificare la porta ed utilizzare in alternativa i protocolli HTTP/HTTPS].
Grafana permette di interrogare, visualizzare, definire alert ed analizzare metriche
con un'interfaccia semplice ed intuitiva.
Grafana supporta diversi database temporali [NdA TSDB: Time Series Database] quali Graphite, InfluxDB, ...
e di recente anche diversi DB Relazionali quali MySQL e PostgreSQL.
Grafana e' un ottimo strumento per creare dashboard dinamiche su dati temporali:
e' molto veloce, graficamente accattivante e di uso intuitivo.
Una dashboard e' composta da pannelli, ciascuno dei quali esegue le ricerche su un database e
visualizza i dati relativi.
Le query vengono eseguite sull'intervallo temporale scelto dall'utente e, se richiesto,
viene eseguito un refresh periodico.
Le funzionalita' di Grafana sono molte:
Questo documento e gli esempi fanno riferimento alla versione 5.2 di Grafana, ma molte delle indicazioni valgono anche per le versioni precedenti e successive.
xCALLY® e' un software per Call Center che integra Asterisk™ per fornire una soluzione multi canale con voce, chat, email, sms, fax, social, video, ...
Con la Tecnologia Open Channel di XCALLY Motion e' possibile scegliere i canali
che si desidera integrare attraverso l’utilizzo di specifiche API:
i social media (ad esempio Facebook o Twitter), i sistemi di mail,
le interazioni video e motori di AI o ChatBot.
XCALLY Motion offre anche l’integrazione con i programmi di CRM
e di ticketing terze parti piu' diffusi sul mercato.
L’uso di Triggers e di Automations permette inoltre di ottimizzare l’interazione
fra agente e cliente, automatizzando ad esempio processi ripetitivi,
tramite l’innovativa piattaforma web multicanale.
La soluzione e' distribuita Worldwide,
con clienti presenti in oltre 50 country in tutti i continenti
e svariati segmenti di mercato.
Questo documento e gli esempi fanno riferimento alla versione di xCALLY Motion 2.0.
L'utilizzo della dashboard Grafana per xCALLY (4xCallyDash) e' molto semplice...
La prima pagina presenta una situazione di insieme:
Seguendo i link e' possibile navigare sulle altre dashboard. Questa e' relativa alle chiamate telefoniche ed analizza i CDR di Asterisk:
Sono disponibili altre dashboard per i diversi canali. Ecco la mail:
Per il controllo delle prestazioni della base dati MySQL:
L'installazione di Grafana e' disponibile su diverse piattaforme e tecnologie (eg. Linux, Windows, Mac, Docker, ...), come ampiamente descritto nella documentazione ufficiale.
Nel seguito vediamo l'installazione da YUM repository su RHEL/CentOS/Fedora/OL 7.x.
[grafana] name=grafana baseurl=https://packagecloud.io/grafana/stable/el/7/$basearch repo_gpgcheck=1 enabled=1 gpgcheck=1 gpgkey=https://packagecloud.io/gpg.key https://grafanarel.s3.amazonaws.com/RPM-GPG-KEY-grafana sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt
Sulle versioni precedenti di RHEL l'installazione e' analoga [NdA ovviamente va cambiata la baseurl] mentre per l'avvio del servizio i comandi sono:
Effettuata l'installazione ed avviato il servizio e' possibile accedere alla porta 3000 con un normale browser. Al primo accesso l'utenza utilizzabile e' admin/admin ed e' ovviamente consigliabile cambiare subito la password:
Per un'installazione in alta affidabilita' e' possibile configurare istanze di Grafana su server diversi dietro un load balancer ed utilizzare un DB esterno (eg. MySQL o PostgreSQL) al posto del default SQLite in locale. La configurazione nel file /etc/grafana/grafana.ini e' banale:
# Either "mysql", "postgres" or "sqlite3", it's your choice ;type = sqlite3 ;host = 127.0.0.1:3306 ;name = grafana ;user = root # If the password contains # or ; you have to wrap it with triple quotes. Ex """#password;""" ;password =
Sono molteplici i pannelli aggiuntivi di Grafana che e' possibile installare con un semplice comando. Ecco come installare i miei preferiti:
E' ora opportuno creare un'utenza dedicata sul DB MySQL di xCALLY per l'accesso a grafana. I comandi sono:
CREATE USER 'xgrafana'@'IP' IDENTIFIED BY 'XXX'; GRANT SELECT ON motion2.* TO 'xgrafana'@'IP'; GRANT SELECT ON my2.* TO 'xgrafana'@'IP'; -- GRANT SELECT ON performance_schema.* to 'xgrafana'@'IP';
Ed infine bisogna installare la Dashboard 4xCALLY:
... nell'installazione vengono richieste le credenziali per l'accesso al DB ...
A questo punto la dashboard e' installata ed e' possibile utilizzarla come gia' descritto nel punto precedente.
La gestione dei Plugin si effettua in modo molto semplice con Grafana...
Al momento non e' disponibile un plugin specifico per xCALLY e si utilizza il Plugin MySQL accedendo alla base dati su cui xCALLY mantiene le proprie informazioni.
Maggiori dettagli sono riportati nella documentazione ufficiale.
Utilizzare la dashboard 4xCALLY e' sufficiente per la maggioranza delle esigenze. E' possibile effettuare personalizzazioni inserendo variabili e condizioni ulteriori alle query implementate nei pannelli.
Ma con Grafana e' facile aggiungere ulteriori componenti, inserire nuovi pannelli (cfr. figura realizzata utilizzando il plugin Diagram come descritto in questa pagina) o modificare significativamente quelli presenti...
Tutto si puo' fare: anche rompere la dashboard, la base dati MySQL ed xCALLY!
Meglio seguire alcune avvertenze:
Un esempio di query temporale Grafana su MySQL e':
SELECT UNIX_TIMESTAMP(time_column) as time_sec, value_column as value FROM table_name WHERE $__timeFilter(time_column) ORDER BY time_column
E' importante notare che la dimensione temporale deve essere rappresentata come uno UNIX_TIMESTAMP [NdA numero di secondi da epoch come integer, fino a che funzionera' ;-)]; MySQL ha gia' una funzione per convertire una data in un timestamp. La macro $__timeFilter trasforma la colonna in una condizione temporale corretta da Grafana prima di inviare la query al DB MySQL.
Per effettuare un'aggregazione sulla dimensione temporale la query diventa:
SELECT $__timeGroup(time_column,'10m') as time, max(value column), 'max' as metric FROM table_name WHERE $__timeFilter(time_column) GROUP BY $__timeGroup(time_column,'10m') ORDER BY $__timeGroup(time_column,'10m')
Spesso si utilizzano piu' metriche... ma basta effettuare i corretti GROUP BY per ottenere il risultato corretto. La macro Grafana $__timeGroup raggruppa i valori della colonna sul corretto valore temporale.
xCALLY Grafana Application, xCALLY Grafana Datasource Pluging, xCALLY Prometheus exporter, ... sono tutte evoluzioni interessanti. Rimanete sintonizzati!
Un elenco piu' completo delle funzionalita' di Grafana e' riportato nel sito ufficiale Grafana. Un elenco piu' completo delle funzionalita' di xCALLY e' riportato nel sito ufficiale xCALLY.
Sempre aggiornato sui rilasci delle release xCALLY [NdA ora anche per Grafana] e' il documento: Your server stinks!
Titolo: Dashboard Grafana per xCALLY
Livello: Avanzato
Data:
14 Febbraio 2018
Versione: 1.0.1 - 15 Agosto 2018
Autore: mail [AT] meo.bogliolo.name