2010-12-30 6 views
15

mi sono imbattuto in due opzioni quando googling il mio modo su internet:Java RRD biblioteca

  • JRobin
  • RRD4J

JRobin sembra essere davvero superata. L'ultima versione di JRobin è la 1.5.9 (pubblicata il 05/09/2008), dal momento che RRD4J è una porta di JRobin, sono praticamente gli stessi. Ho provato ad utilizzare RRD4J ma in qualche modo RRDTool non riconosce i file prodotti, quindi non mi sono preoccupato di provare JRobin.

La mia domanda è, se ci sono alternative a queste librerie? Non voglio usare JNI o ​​chiamare manualmente i binari rrdtool.

+4

Probabilmente lo sai già, Matthias, ma a beneficio di quelli che inciampano in questa domanda, i file RRD4J non sono compatibili con quelli del RRDTool originale. Se stai scrivendo sia il produttore che il consumatore, allora RRD4J va bene, e potresti argomentare che i file RRD4J sono superiori in qualche modo.Ma se si intende consumare i file RRD con altri strumenti scritti per il formato RRDTool, questo è un problema. – AmigoNico

risposta

4

Sembra esserci anche un altro: java-rrd. Non ho la minima idea del suo stato di avanzamento.

+0

Sembra promettente –

+1

Sì, java-rrd è la strada da percorrere, ho aggiunto l'accesso + dettagli sull'utilizzo sotto http://www.aldana-online.de/2011/07/03/ accessing-rrdtool-files-data-with-java/ –

0

Aggiornamento: come commentato dall'autore, jmxtrans utilizza le chiamate di shell a rrdtool (vedere RRDToolWriter.java). Un JRobin non è compatibile con rrdtools, quindi non puoi andare in questo modo.


JMXTrans è in grado di trasmettere le sue informazioni in formato RRD. Usa JRobin 1.5.9 internamente. Dai un'occhiata al loro source code per vedere esattamente cosa stanno facendo.

+0

Utilizzano JRobin, vedi http://code.google.com/p/jmxtrans/source/browse/trunk/src/com/googlecode/jmxtrans/model/output/RRDToolWriter.java?r=91 forse vale la pena provare dopo all –

+0

@Matthias - sì, ho aggiornato la risposta dopo aver cercato nella loro directory lib. –

+1

Purtroppo, io (l'autore di jmxtrans) non uso JRobin per l'output dei file RRD perché in una quantità folle di non saggezza e stupidità, i file rrd creati da JRobin non sono compatibili con i file rrdtool generati e non c'è modo di farli compatibile. Quindi, effettivamente eseguo il shell out di Java su rrdtool per scrivere i dati. Detto questo, sentiti libero di scrivere il tuo OutputWriter per fare quello che vuoi. Questa è la parte bella di JMXTrans ... –

2

l'ultima volta che uso ho migliorato la variante base JRobin. Originariamente era più avanzato per i miei bisogni. Quindi vengono aggiunte molte correzioni (jcolelctd, SNMP, SVG, cron-jobs, ...), molti bug sono corretti/refactored (JMX, http-, xml-, log-import, WEbGui, ...). Attualmente è usato in produzione. Il più grande è - funziona su molti sistemi operativi in ​​modo identico! A volte anche più veloce come la versione di Oetiker.

Le ultime modifiche/versione sono rappresentate nello http://code.google.com/p/rrdws/. Pls fatemi sapere, se si decide di usarlo ......

Sentitevi liberi di disturbarmi per tutte le domande!

+0

Lo vedrò più tardi oggi –

5

Ecco un punto interessante dal RRD4J wiki:

file RRD4J RRD sono portatili, file RRDtool non lo sono. Prova a copiare un file RRDTool da Linux a Windows e recupera i dati da esso. È non funziona! Ma con RRD4J sei libero di creare i tuoi file RRD su Solaris e trasferirli su piattaforma Windows o Linux per ulteriore elaborazione . Funziona! Questo è il motivo per cui ho dovuto definire il mio formato di file diverso dal formato utilizzato in RRDTool - non esiste il punto nella creazione di applicazioni Java portatili supportate da file di dati non portatili.

Importante per noi: RRDTool non è portabile su piattaforme/sistemi operativi diversi. Quindi, come dovremmo aspettarci che qualsiasi libreria basata su Java sia compatibile con qualcosa che non ha un formato dati stabile?

+0

Sì, c'è un punto. Non capisco perché renderlo sempre incompatibile solo perché potrebbe essere incompatibile in alcuni rari casi (non è comune spostare gli RRD da linux a windows) – MikeKulls