package org.rrd4j.demo;
import static org.rrd4j.ConsolFun.*;
import org.rrd4j.core.*;
import org.rrd4j.graph.*;
import org.rrd4j.DsType;
import java.io.*;
import java.awt.*;
class MinMax {
/**
* <p>main.</p>
*
* @param args an array of {@link java.lang.String} objects.
* @throws java.io.IOException if any.
*/
public static void main(String[] args) throws IOException {
System.setProperty("java.awt.headless","true");
long start = Util.getTime(), end = start + 300 * 300;
String rrdFile = Util.getRrd4jDemoPath("minmax.rrd");
String pngFile = Util.getRrd4jDemoPath("minmax.png");
// create
RrdDef rrdDef = new RrdDef(rrdFile, start - 1, 300);
rrdDef.addDatasource("a", DsType.GAUGE, 600, Double.NaN, Double.NaN);
rrdDef.addArchive(AVERAGE, 0.5, 1, 300);
rrdDef.addArchive(MIN, 0.5, 12, 300);
rrdDef.addArchive(MAX, 0.5, 12, 300);
try(RrdDb rrdDb = new RrdDb(rrdDef)) {
// update
for (long t = start; t < end; t += 300) {
Sample sample = rrdDb.createSample(t);
sample.setValue("a", Math.sin(t / 3000.0) * 50 + 50);
sample.update();
}
};
// graph
RrdGraphDef gDef = new RrdGraphDef();
gDef.setFilename(pngFile);
gDef.setWidth(450);
gDef.setHeight(250);
gDef.setImageFormat("png");
gDef.setTimeSpan(start, start + 86400);
gDef.setTitle("RRDTool's MINMAX.pl demo");
gDef.datasource("a", rrdFile, "a", AVERAGE);
gDef.datasource("b", rrdFile, "a", MIN);
gDef.datasource("c", rrdFile, "a", MAX);
gDef.area("a", Color.decode("0xb6e4"), "real");
gDef.line("b", Color.decode("0x22e9"), "min");
gDef.line("c", Color.decode("0xee22"), "max");
new RrdGraph(gDef);
}
}