2015-09-18 10 views
8

Ho un'applicazione Spring Boot in esecuzione su Cloud Foundry che espone le metriche e le informazioni sullo stato di salute tramite gli endpoint/metrics &/health rispettivamente. Mi piacerebbe postare queste metriche come flusso continuo a un servizio di visualizzazione degli utenti influxDB su una dashboard di grafana. Sto cercando risorse che spieghino come funzionerebbe il flusso di dati e apprezzeremmo eventuali suggerimenti.Esposizione delle metriche di avvio primaverile a influxDB per la visualizzazione di grafana

Grazie.

+0

Avete specificamente bisogno di importare dati in InfluxDB per qualche motivo (oltre a quello che è fantastico)? Le sto chiedendo perché ci sono risorse per ottenere i dati delle metriche in Graphite (e quindi archiviarli in Whisper db). È quindi possibile puntare facilmente grafana sul server di grafite e visualizzare i dati. L'aggiunta a InfluxDB potrebbe sicuramente essere fatta, ma suppongo che ci vorrebbe un sacco di codice manuale (non sono a conoscenza di alcuna soluzione pronta) – geoand

+0

Grazie - sì, ho solo il binding influxDB (con Grafana) nel mio landscape – citizenBane

risposta

6

Per quanto ne so, non esiste una soluzione pronta. Tuttavia, ciò che si può fare è implementare un codice personalizzato Exporter per InfluxDB.

I dettagli su come eseguire questa operazione in Spring Boot possono essere trovati here. In sostanza ciò che è necessario implementare è un esportatore che converte i dati delle metriche primavera avvio di line protocol

Un'altra possibile soluzione InfluxDB sarebbe quella di ottenere il Spring Boot metrics into Dropwizard metrics e quindi utilizzare this libreria esterna per riportare i parametri Dropwizard in InfluxDB (o l'uso il ramo master delle metriche del dropwizard che è già un backend di InfluxDB).

Infine, se si desidera rinunciare a InfluxDB e salvare invece i dati nella memoria di Graphite (database Whisper), è necessario controllare this o this. Una volta che i dati sono in grafite, Grafana può visualizzarli facilmente come mostrato here

+0

Molte grazie @geo. Ho provato il tuo secondo suggerimento e sono rimasto bloccato con la libreria esterna https://github.com/davidB/metrics-influxdb perché supporta influxDB 0.8x non 0.9x. Mentre attendo una correzione per questa libreria, potresti condividere le risorse menzionate per la segnalazione dei dati in Graphite API (il tuo suggerimento iniziale)? – citizenBane

+0

Prego! Controlla la risposta di aggiornamento per i suggerimenti aggiuntivi – geoand

+0

Grazie ancora. Tuttavia, solo le metriche counter. * E gauge. * Dall'estremità/metrics della mia applicazione Spring Boot vengono visualizzate in grafana (tramite grafite). C'è un modo per esporre l'intero set di metriche tra cui parametri jvm, cpu util ecc. Come un lavoro programmato? Mi sono imbattuto in alcuni link ma ognuno sembra avere la propria strada (e usare altre librerie) per fare questo. Quale sarebbe la via raccomandata? – citizenBane

3

Potrebbe essere possibile scrivere un plug-in telegraf per emettere le metriche su InfluxDB. In caso contrario, la libreria influxdb-java potrebbe semplificare l'emissione delle metriche direttamente da Spring Boot.

1

ci sono due implementazioni possibili con influxdb: -

a) Per influxdb versione < = 0.8.8 è possibile utilizzare vaso metriche-influxdb per mettere i vostri dati di serie temporali app sul server che esegue influxdb.

b) Per la versione di influxdb> 0.8.8 è possibile utilizzare il jar influxdb-java per inserire i dati della serie storica dell'app su server influxdb in esecuzione.

Ora su come installare & gestire influxdb con grafana è possibile seguire seguente link utili: - http://www.philipotoole.com/influxdb-and-grafana-howto/
http://blog.sflow.com/2014/12/influxdb-and-grafana.html
https://devops.profitbricks.com/tutorials/creating-a-grafana-and-influxdb-docker-container/
https://influxdb.com/docs/v0.6/ui/grafana.html

0

Telegraf soddisfa le tue esigenze. Estrae i dati da jolokia e li salva in InfluxDB.

Tutto quello che dovete fare è abilitare attuatore e Jolokia per SpringbootApplication, è facile aggiungere la dipendenza alla vostra Maven:

<dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-actuator</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.jolokia</groupId> 
     <artifactId>jolokia-core</artifactId> 
    </dependency> 

Dopo questo è necessario configurare telegraf per collegare il server web e influxDB, qui è un esempio di configurazione:

[tags] 
dc = "local-1" 

[agent] 
interval = "10s" 

[[inputs.jolokia]] 
context = "/jolokia" 

[[inputs.jolokia.servers]] 
name = "catalog" 
host = "{web server ip address}" 
port = "{web server port}" 

[[inputs.jolokia.metrics]] 
name = "metrics" 
mbean = "org.springframework.boot:name=metricsEndpoint,type=Endpoint" 
attribute = "Data" 

[outputs] 
[outputs.influxdb] 
url = "{http://influxdb:port}" 
database = "telegraf" 
precision = "s" 

assicurarsi rete di configurazione superiore è disponibile, allora si otterrà i dati in voi influxDB.

Configura grafana per visualizzare i dati memorizzati in influxDB:

  1. aggiungere un tipo di origine dati influxDB
  2. Creare un nuovo cruscotto e pannello grafico.
  3. Configurare il pannello Grafico e scegliere il file che si desidera visualizzare in Impostazioni metriche.

Vedrai i dati sul pannello.

Problemi correlati