rrd4j与collectd结合生成图片
来源:互联网 发布:电气工程预算软件 编辑:程序博客网 时间:2024/05/11 13:25
collectd生成rrd文件,rrd4j无法直接解析。这时候先用rrdtool把rrd文件转换为xml文件,再由rrd4j将xml文件转换为rrd4j可以识别的rrd文件,最后出图,过程如下。
①rrdtool把rrd文件转换为xml文件
/usr/bin/rrdtool dump /var/lib/collectd/rrd/localhost/load/load.rrd>load.xml
②由rrd4j将xml文件转换为rrd4j可以识别的rrd文件,最后出图,代码如下:
import org.rrd4j.core.*;
import org.rrd4j.graph.RrdGraph;
import org.rrd4j.graph.RrdGraphDef;
import java.awt.Color;
import java.io.IOException;
import java.util.Random;
import static org.rrd4j.ConsolFun.*;
public class Graph {
static final long SEED = 1909752002L;
static final Random RANDOM = new Random(SEED);
static final String FILE = "load";
static final long START = Util.getTimestamp(2012, 9, 1);
static final long END = Util.getTimestamp(2012, 12, 1);
static final int MAX_STEP = 300;
static final int IMG_WIDTH = 500;
static final int IMG_HEIGHT = 300;
public static void main(String[] args) {
println("== Starting");
long startMillis = System.currentTimeMillis();
if (args.length > 0) {
println("Setting default backend factory to " + args[0]);
RrdDb.setDefaultFactory(args[0]);
}
long start = START;
long end = END;
String xmlPath = Util.getRrd4jDemoPath(FILE + ".xml");
String rrdRestoredPath = Util.getRrd4jDemoPath(FILE + "_restored.rrd");
String imgPath = Util.getRrd4jDemoPath(FILE + ".png");
println("== Creating RRD file " + rrdRestoredPath + " from XML file "
+ xmlPath);
RrdDb rrdRestoredDb;
try {
rrdRestoredDb = new RrdDb(rrdRestoredPath, xmlPath);
// create graph
println("Creating graph " + Util.getLapTime());
println("== Creating graph from the second file");
RrdGraphDef gDef = new RrdGraphDef();
gDef.setWidth(IMG_WIDTH);
gDef.setHeight(IMG_HEIGHT);
gDef.setFilename(imgPath);
gDef.setStartTime(start);
gDef.setEndTime(end);
gDef.setTitle(FILE);
gDef.setVerticalLabel(FILE);
String[] dsNames = null;
Color[] colors = new Color[] { Color.GREEN, Color.BLUE,
Color.MAGENTA, Color.YELLOW, Color.RED, Color.CYAN,
Color.ORANGE, Color.PINK, Color.BLACK };
dsNames = rrdRestoredDb.getDsNames();
for (int i = 0; i < dsNames.length; i++) {
String dsName = dsNames[i];
String legend = dsName;
System.out.println("dsName:" + legend);
gDef.datasource(legend, rrdRestoredPath, legend, AVERAGE);
gDef.line(legend, colors[i], legend);
}
gDef.setImageInfo("<img src='%s' width='%d' height = '%d'>");
gDef.setPoolUsed(false);
gDef.setImageFormat("png");
// close files
rrdRestoredDb.close();
println("== Second file closed");
println("Rendering graph " + Util.getLapTime());
// create graph finally
RrdGraph graph = new RrdGraph(gDef);
println(graph.getRrdGraphInfo().dump());
println("== Graph created " + Util.getLapTime());
// locks info
println("== Locks info ==");
println(RrdSafeFileBackend.getLockInfo());
// demo ends
println("== Demo completed in "
+ ((System.currentTimeMillis() - startMillis) / 1000.0)
+ " sec");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
static void println(String msg) {
// System.out.println(msg + " " + Util.getLapTime());
System.out.println(msg);
}
static void print(String msg) {
System.out.print(msg);
}
}
这样,最后在指定路径C:\Users\wujing\rrd4j-demo生成图片load.png.
- rrd4j与collectd结合生成图片
- rrd4j与mongoDB的整合
- collectd安装与部署
- Collectd
- java利用rrd4j做服务监控的图片
- 验证码图片生成(4位字母与数字结合)
- tp3.2 与 Excel 结合起来 可以生成图片和 内容
- 图种-图片与压缩文件结合
- highcharts 结合phantomjs纯后台生成图片
- highchats与php结合生成动态统计图
- Session_Session与图片验证码结合使用
- php结合phpqrcode生成带图片LOGO的二维码
- C#结合imgareaselect生成缩略图并截取图片
- 结合php验证码图片生成实现点击刷新
- 使用collectd与visage收集kvm虚拟机性能实时图形
- 虚拟机监控系统的设计与实现 (二) Collectd
- 结合 MSHTML 与 WebBrowser 生成美观实用的 WinForm 应用程序。
- 结合MSHTML与WebBrowser生成美观实用的WinForm应用程序
- Linq 学习地址1
- 01-jsp入门和jsp运行原理&&jsp语法
- 天下IT:程序员能挣哪些外快?
- 杭州项目2.0笔记
- java play Framework 实现Todo案例(mysql数据库)
- rrd4j与collectd结合生成图片
- lua loadlib函数 attempt to call global 'loadlib' (a nil value)
- Android中shape的使用
- 大学的期望与目标
- dwz取消全局ajax动画(遮盖及中央的loading…)
- 如何写出专业的C头文件
- Android Web Apps
- 软件开发流程
- Qt WebPage handleUnsupportedContent(QNetworkReply *reply)