Unnikked - Esperienze personali in campo informatico

Reportr – la tua dashboard personale

Reportr è una applicazione completa che funziona come una dashboard personale per tracciare gli eventi (utilizza API molto semplici).

Sviluppata da SamyPesse, dispone di una interfaccia intuitiva, aiuta a tracciare e a mostrare le attività online o della vita reale.

Il progetto è completamente open source e può essere ospitato sul proprio server o su Heroku.

Caratteristiche

  • Traccia ogni cosa: E’ possibile usare reportr per tracciare ogni evento: online o offline.
  • Grafici:E’ possibile visualizzare i dati i diversi modi: grafici a linea, torta, mappa, lista ecc.
  • Open Source: Il progetto è completamente gratuito e open source.
  • Geo Data: Reportr permette di visualizzare eventi geografici usando la visualizzazione a mappa.
  • REST API: E’ facile da utilizzare tramite le API per l’inserimento di nuovi eventi tramite semplici richieste HTTP.
  • Predizioni: Usando il machine learning, Reportr ha la possibilità di predire l’evoluzione dei dati.

reportr preview

Esempi di applicazioni

Di seguito vengono riportati alcuni esempi di utilizzo dell’applicazione.

Navigazione web: Tramite questa estensione è possibile misurare ed analizzare la navigazione web di Google Chrome.

Casa: E’ possibile misurare l’ambiente di casa (temperatura, umidità, suoni e livelli di luminosità) usando tessel.io.

Monitorizza: Tramite questa estensione invece è possibile monitorizzare un computer (memoria, load cpu) e inviare i dati a Reportr per la visualizzazione.

Installazione

Per installare reportr bisogna avere installato Node.js e npm e MongoDB.

sudo apt-get install mongodb

Cloniamo la repository:

git clone https://github.com/Reportr/dashboard.git

Una volta entrati nella cartella lanciamo:

npm install .

Prima di avviare reportr bisogna installare foreman, è necessario installare ruby e rubygems:

sudo apt-get install ruby1.9.3 ruby-dev

Installare quindi foreman:

sudo gem install foreman

Per avviare l’applicazione vi consiglio di creare un file start.sh inserendo all’interno il seguente contenuto:

#!/bin/bash

PORT=5001
export PORT

MONGODB_URL="mongodb://localhost/reportr"
export MONGODB_URL

AUTH_USERNAME="user"
export AUTH_USERNAME

AUTH_PASSWORD="pass"
export AUTH_PASSWORD

foreman start

L’applicazione sarà disponibile presso l’indirizzo http://indirizzo_ip:5001.

Caso d’uso: monitoraggio carico server

Per mostrare la versatilità di reportr creiamo un report che ci colleziona i dati riguardanti il carico di un server.

Creiamo un nuovo report:

reportr-new-report

Prima ti poter creare una visualizzazione dobbiamo inviare un evento al server, consideriamo il seguente script bash:

#!/bin/bash

LOAD="$(uptime | awk '{print $8}' | sed 's/,/./g')"
LOAD="${LOAD:0:-1}"
echo $LOAD

PAYLOAD='{ "type":"server.load", "properties": { "load":'"$LOAD"'} }'

curl \
	-X POST \
	--user user:pass \
	-H "Content-Type: application/json" \
	--data "$PAYLOAD" \
	http://192.168.33.10:5001/api/events

Eseguendolo si otterrà:

0.19
{"posted":true}

Una volta inserito un evento è possibile creare una visualizzazione

reportr-visualization

Eseguendo lo script per un numero considerevole di tempo si avrà il grafico dell’evento:

reportr-use-case

Per visualizzare il grafico ho dovuto personalizzare la visualizzazione

reportr-customize