Dashboard Grafana per xCALLY

Ho fretta!

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!

xCALLY Dashboard with Grafana

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

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

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.

4xCALLY Dashboard

L'utilizzo della dashboard Grafana per xCALLY (4xCallyDash) e' molto semplice...

La prima pagina presenta una situazione di insieme: xCALLY Dashboard with Grafana

Seguendo i link e' possibile navigare sulle altre dashboard. Questa e' relativa alle chiamate telefoniche ed analizza i CDR di Asterisk: Grafana xCALLY Dashboard: Asterisk

Sono disponibili altre dashboard per i diversi canali. Ecco la mail: Grafana xCALLY Dashboard: Mail Channel

Per il controllo delle prestazioni della base dati MySQL: Grafana xCALLY Dashboard: MySQL

Installazione e configurazione

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.

Sulle versioni precedenti di RHEL l'installazione e' analoga [NdA ovviamente va cambiata la baseurl] mentre per l'avvio del servizio i comandi sono:

sudo /sbin/chkconfig --add grafana-server sudo service grafana-server start

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:

grafana-cli plugins install grafana-clock-panel grafana-cli plugins install grafana-piechart-panel grafana-cli plugins install grafana-worldmap-panel grafana-cli plugins install raintank-worldping-app service grafana-server restart

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.

xCALLY Plugin

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.

L'apprendista stregone

Diagram Grafana Panel for xCALLY 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.

Attendere prego...

xCALLY Grafana Application, xCALLY Grafana Datasource Pluging, xCALLY Prometheus exporter, ... sono tutte evoluzioni interessanti. Rimanete sintonizzati!

Varie ed eventuali

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 (3/5)
Data: 14 Febbraio 2018
Versione: 1.0.1 - 15 Agosto 2018
Autore: mail [AT] meo.bogliolo.name