Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Pastalog | 405 | 1 | 6 years ago | 4 | May 01, 2016 | 11 | mit | JavaScript | ||
Simple, realtime visualization of neural network training performance. | ||||||||||
Rrd4j | 248 | 70 | 23 | a month ago | 17 | October 14, 2022 | 22 | other | Java | |
A high performance data logging and graphing system for time series data. | ||||||||||
Api Thetvdb | 30 | 12 | 1 | 3 years ago | 5 | August 31, 2016 | 3 | gpl-3.0 | Java | |
API for TheTVDB,com website | ||||||||||
Bk 390a | 21 | 2 years ago | 1 | bsd-3-clause | C | |||||
BK Precision 390A Series multimeter CLI data capture software for OBS/logging | ||||||||||
Record Keeper | 14 | 3 | 10 months ago | 30 | November 28, 2021 | 2 | Python | |||
Record experiment data easily | ||||||||||
Rails Influxdb Logger | 11 | 4 years ago | mit | Ruby | ||||||
Logger for Influxdb in Rails | ||||||||||
Logpyle | 4 | 11 days ago | 11 | other | Python | |||||
logpyle: Time Series Logging (not just) for Simulation | ||||||||||
Core Logger | 4 | 4 years ago | mit | OCaml | ||||||
Databox core logger | ||||||||||
Aggregation Log Filter | 3 | a year ago | 1 | apache-2.0 | Java | |||||
Sensibus | 2 | 3 years ago | 21 | gpl-3.0 | JavaScript | |||||
Time series logger and analyser for your daily feelings, activities and life in general. |
RRD4J is a high performance data logging and graphing system for time series data, implementing RRDTool's functionality in Java. It follows much of the same logic and uses the same data sources, archive types and definitions as RRDTool does.
RRD4J supports all standard operations on Round Robin Database (RRD) files: CREATE
, UPDATE
, FETCH
, LAST
, DUMP
, EXPORT
and GRAPH
.
RRD4J's API is made for those who are familiar with RRDTool's concepts and logic, but prefer to
work with pure Java (no native functions or libraries, no Runtime.exec(), RRDTool does not have to be present). We help out our
users here.
RRD4J 3.8.1 (released 2021-12-26) - Download - Changelog
RRD4J is built using Maven. The generated site is available here. Automated builds are uploaded to Sonatype's repository.
Tests needs a running mongo instance to succeds. It could be started with:
docker run --rm -p 27017:27017 mongo:latest
Add this dependency to your project's POM file:
<dependency>
<groupId>org.rrd4j</groupId>
<artifactId>rrd4j</artifactId>
<version>3.8.1</version>
</dependency>
COUNTER
, ABSOLUTE
, DERIVE
, GAUGE
)AVERAGE
, MIN
, MAX
, LAST
) and adds TOTAL
, FIRST
import java.awt.Color;
import org.rrd4j.core.*;
import org.rrd4j.graph.*;
import static org.rrd4j.ConsolFun.*;
String rrdPath = "my.rrd";
// first, define the RRD
RrdDef rrdDef = new RrdDef(rrdPath, 300);
rrdDef.addArchive(AVERAGE, 0.5, 1, 600); // 1 step, 600 rows
rrdDef.addArchive(AVERAGE, 0.5, 6, 700); // 6 steps, 700 rows
rrdDef.addArchive(MAX, 0.5, 1, 600);
// then, create a RrdDb from the definition and start adding data
try (RrdDb rrdDb = RrdDb.getBuilder().setRrdDef(rrdDef).build()) {
Sample sample = rrdDb.createSample();
while (...) {
double inbytes = ...
double outbytes = ...
sample.setValue("inbytes", inbytes);
sample.setValue("outbytes", outbytes);
sample.update();
}
}
// then create a graph definition
RrdGraphDef gDef = new RrdGraphDef();
gDef.setWidth(500);
gDef.setHeight(300);
gDef.setFilename("inbytes.png");
gDef.setTitle("My Title");
gDef.setVerticalLabel("bytes");
gDef.datasource("inbytes-average", rrdPath, "inbytes", AVERAGE);
gDef.line("inbytes-average", Color.BLUE, "Bytes In");
gDef.hrule(2568, Color.GREEN, "hrule");
gDef.setImageFormat("png");
// then actually draw the graph
RrdGraph graph = new RrdGraph(gDef); // will create the graph in the path specified
Go through the source of Demo for more examples. The package org.rrd4j.demo contains other demo code.
Next to memory and file storage, RRD4J supports the following backends (using byte array storage):
Thanks to the rrd4clj project Clojure now has a RRD API (using RRD4J). Check out their examples.
If you are interested in contributing to RRD4J, start by posting pull requests to issues that are important to you. Subscribe to the discussion group and introduce yourself.
If you can't contribute, please let us know about your RRD4J use case. Always good to hear your stories!
Licensed under the Apache License, Version 2.0.