- 浏览: 535403 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
wa114d:
楼主工作几年了,好厉害
一个面试官对面试问题的分析 -
wobuxiaole:
Good,非常好
30岁前男人需要完成的事 -
小逗逗:
Good,非常好
30岁前男人需要完成的事 -
invincibleLiu:
好帖,要顶!(别投我隐藏啊,这是对BBS最原始一种支持)
Java:synchronized修饰符在静态方法与非静态方法上的区别 -
fayedShih:
第三题,不知道对不对
import java.util.con ...
企业牛逼面试题目 高手进来讨论答题
link:http://harry.iteye.com/blog/352028
http://blog.csdn.net/li_zhongnan/archive/2009/01/11/3754053.aspx
做过网络管理的人,对于MRTG应该不算陌生。MRTG可以不断收集来自SNMP的数据,保存这些数据,并且按照日、周、月、年的方式生成4幅图像及相关说明,很直观的显示出要检测数据的趋势信息。
MRTG是比较早的技术了,后来又出现了RRD技术,是在MRTG技术的基础上发展起来的,更加灵活、更加方便。其应用也不在局限在主要监测网络数据上了。你可以通过RRD提供的强大功能收集各种各样的信息,并且生成更加复杂的图像。你也可以在自己的应用程序中使用它,因为它提供了丰富接口,方便应用程序调用。
JRobin是RRD的java版本,其原理是一致的。假如你打算监测计算机的CPU使用率,除了查看当前时刻的数据外,你可能也关心计算机在过去的一天、一周,甚至一个月、一年的CPU使用率,也就是以前一段时间的数据。对于这个要求,需要考虑以下一些问题:
1、数据的采集
获取数据是监测的第一步,根据监测对象的不同,采集数据的方法也不一样,可以通过SNMP获取数据、可以通过外部程序获取数据、可以通过脚本得到数据、也可以采用Java编写代码来取得数据。这些提供数据的方式,或者说是程序,可以看成是JRobin的数据源。我们不是时时刻刻的采集数据,出于性能和成本的考虑,通常在每次采集数据之间都会有一个间隔,也就是说在采集一次数据后,等待几秒或几分钟,然后再次采集数据,将这些多次采集的离散数据用图像方式展示出来,就成了好看直观的曲线。MRTG的采集间隔是300秒,RRD较为灵活,可以以秒为单位自由设置。
2、数据的保存
在每次采集数据后,我们可以将这些数据和采集数据的时刻保存下来,这样方便以后绘制图像。假如每300秒采集一次数据,那么一天需要采集288次数据。如果打算保存一年的数据,那么数据的个数就是 365 * 288。这样的数据不算多,但是没有大多必要,因为我们对数据关心的程度与采集数据的时间远近成比例,越近的数据越关心。另外,当把这些数据显示在固定大小的图像上时,并不是数据越多就越清晰。
JRobin采用了所谓的RRD的存储方式。比如,我们打算用四个图像显示一日、一周、一月和一年内的数据,那么我们可以这么保存数据:
(1)保存最近的288个数据,也就是最近一天的数据;
(2)每7个数据保存一个,保存288个,也就是最近一周时间内的的一些数据;
(3)每30个数据保存一个,保存288个,也就是最近一月时间内的的一些数据;
(4)每365个数据保存一个,保存288个,也就是最近一年时间内的的一些数据。
实际处理时,可能并不是简单隔几个保存一个,而是应用一些简单或复杂的算法。比如或许会对多个数据作一个平均,然后保存为一个。
以这种方式保存数据在JRobin中称之为归档(Archive)。数据源于归档的关系可以用下图来简要说明:
3、数据格式
JRobin还提供强大的绘制图像的功能,利用其提供的接口,可以很方便的根据数据生成各种样式图像。
举例:
1、定义保存的数据格式,创建数据文件
long end = Util.getTime(), start = end - 7 * 86400; //截至时间为当前时间,起始时间为一周前
String rrdFile = "demo.rrd";
// 创建数据文件定义,保存日数据与周数据
RrdDef rrdDef = new RrdDef(rrdFile, start - 1, 300); //数据间隔为300秒
rrdDef.addDatasource("value1", "GAUGE", 600, Double.NaN, Double.NaN); //定义数据源,可以定义多个
//以下定义归档数据,即如何保存数据
rrdDef.addArchive("AVERAGE", 0.5, 1, 288); //输入给数据源的数据每一个都保存下来,保存288笔数据,即保存最近一天的数据
rrdDef.addArchive("AVERAGE", 0.5, 7, 288); //每7笔数据,取平均值,然后保存,保存288笔数据,即保存最近一周的数据
RrdDb rrdDb = new RrdDb(rrdDef); //根据数据定义创建数据文件
对于月和年的数据,可以用相同的方式处理。
2、更新数据
采用三角函数生成数据。
for (long t = start; t < end; t += 300) {
Sample sample = rrdDb.createSample(t);
sample.setValue("value1", Math.sin(2 * Math.PI * (t / 86400.0)) * 50 + 50);
sample.update();
}
3、生成图形
String pngFile = "";
RrdGraphDef gDef = null;
//生成最近一天的图形
pngFile = "demoday.png";
gDef = new RrdGraphDef();
gDef.setFilename(pngFile);
gDef.setWidth(450);
gDef.setHeight(250);
gDef.setImageFormat("png");
gDef.setTimeSpan(end - 86400, end);
gDef.setTitle("JRobin Demo");
gDef.datasource("demo", rrdFile, "value1", "AVERAGE");
gDef.line("demo", Color.GREEN, "real");
gDef.gprint("demo", "MIN", "%5.1lf Min");
gDef.gprint("demo", "AVERAGE", "%5.1lf Avg");
gDef.gprint("demo", "MAX", "%5.1lf Max");
gDef.setSmallFont(new Font("Monospaced", Font.PLAIN, 11));
gDef.setLargeFont(new Font("SansSerif", Font.BOLD, 14));
new RrdGraph(gDef);
//生成最近一周的图形
pngFile = "demoweek.png";
gDef = new RrdGraphDef();
gDef.setFilename(pngFile);
gDef.setWidth(450);
gDef.setHeight(250);
gDef.setImageFormat("png");
gDef.setTimeSpan(end - 7 * 86400, end);
gDef.setTitle("JRobin Demo");
gDef.datasource("demo", rrdFile, "value1", "AVERAGE");
gDef.line("demo", Color.GREEN, "real");
gDef.gprint("demo", "MIN", "%5.1lf Min");
gDef.gprint("demo", "AVERAGE", "%5.1lf Avg");
gDef.gprint("demo", "MAX", "%5.1lf Max");
//如果需要显示中文,以下两条语句比较重要
gDef.setSmallFont(new Font("Monospaced", Font.PLAIN, 11));
gDef.setLargeFont(new Font("SansSerif", Font.BOLD, 14));
new RrdGraph(gDef);
4、生成的图形如下所示:
(1)按日生成的图形
(2)按周生成的图形
发表评论
-
基于JRobin的网络监控管理
2011-03-31 13:45 971link:http://hongliangpan.iteye. ... -
SVN的标准目录结构:trunk、branches、tags
2011-03-23 16:31 2034我们在一些著名开源项 ... -
从HTTP GET和POST的区别说起
2011-02-24 12:59 984面试时得到的回答大多 ... -
如何减少网页的内存与CPU占用(zz)
2011-02-24 12:37 1513http://justjavac.iteye.com/blog ... -
开发时候,怎么debug依赖包源码
2011-02-21 16:01 1245编码的时候, 最好把JDK 的DOC/SRC 都纳入到ECLI ... -
利用 iText 实现 PDF 报表下载 (转)
2010-12-10 15:15 1489很久没更新 blog 了,工作和一些事情占用了大部分精力,实在 ... -
httpclient 4
2010-11-24 17:38 10301. HttpClient4.0.1应用指南 ... -
转Java程序命令行下的执行
2010-11-04 12:30 1367IED用惯了,基础都快忘记了 javac 先不说了,环境变 ... -
通过Ssh协议连接到服务器执行执行的指令
2010-11-03 16:28 1738通过Ssh协议连接到服务器执行执行的指令。echo $?这条命 ... -
eclipse remote debug
2010-09-01 12:01 861$TOMCAT_HOME/ bin/ catalina.sh/ ... -
CATALINA_OPTS v JAVA_OPTS - What is the difference?
2010-08-31 19:06 1177There are two environment varia ... -
java.lang.OutOfMemoryError: PermGen space及其解决方法
2010-08-31 18:43 991SUN JDK+Tomcat 运行服务的时候遇到问题,服 ... -
Tomcat多站点配置方法
2010-07-13 18:03 2529Tomcat多站点配置方法 A. ... -
myeclipse中文乱码 解决方案
2010-06-25 10:32 3323昨晚在Myeclipse导入一个项目,有中文乱码问题,所以郁闷 ... -
WebService之Axis2
2010-04-07 13:18 858http://www.jobedu.com.cn/archiv ... -
utf-8 中文乱码解决方案
2009-12-29 13:56 23161.java类: CharacterEncodingFilte ... -
telnet \socket \ httpproxy 三种客户端实现
2009-11-20 17:41 34871.socket实现方式: public class Tes ... -
书籍推荐
2009-11-17 15:08 1228《现代操作系统概论》《数据库系统概念》《算法与数据结构》《计算 ... -
ant使用
2009-11-05 13:13 962Ant是一种专为java量身订做的构建工具,基础已经了java ... -
web.xml 中的listener、 filter、servlet 加载顺序及其详解
2009-07-17 14:48 986在项目中总会遇到一些关于加载的优先级问题,近期也同样遇到过类似 ...
相关推荐
赠送jar包:jrobin-1.5.9.jar; 赠送原API文档:jrobin-1.5.9-javadoc.jar; 赠送源代码:jrobin-1.5.9-sources.jar; 赠送Maven依赖信息文件:jrobin-1.5.9.pom; 包含翻译后的API文档:jrobin-1.5.9-javadoc-API...
赠送jar包:jrobin-1.5.9.jar; 赠送原API文档:jrobin-1.5.9-javadoc.jar; 赠送源代码:jrobin-1.5.9-sources.jar; 赠送Maven依赖信息文件:jrobin-1.5.9.pom; 包含翻译后的API文档:jrobin-1.5.9-javadoc-API...
介绍RRD与RRDTool JRobin 分享给那些做流量监控的朋友们.
jrobin-1.5.14.jar和源代码
学习用jrobin绘图的绝佳例子程序 学习用jrobin绘图的绝佳例子程序
JRboin 是java 一开源的流量图型开源框架
这里是jrobin流量监控代码(我自己写的)! 可以创建一个rrd文件,然后对柔软的文件进行更新和画图;是一个很有用的画图代码!
javaMelody jrobin java监控运行时系统; 提供一些图表让你知道项目的运行情况,可以按天、周、月、年、全部(从运行至今)来查看监控信息
JRobin是RRDTool的100%纯Java替代品,具有几乎完全相同的规格。 如果向RRDTool和JRobin提供相同的数据,则将获得完全相同的结果和图形。 支持所有标准RRDTool操作。
JavaMelody javamelody-core-1.52.0.jar jrobin-1.5.9.jar 集成所需的jar包
监控器需要的jar,需在web.xml中配置 <filter-name>monitoring <filter-class>net.bull.javamelody.MonitoringFilter</filter-class> <filter-name>monitoring <url-pattern>/* ...可以进入到监控页面
注:下文中的 *** 代表文件名中的组件名称。 # 包含: 中文-英文对照文档:【***-javadoc-API文档-中文(简体)-英语-对照版.zip】 jar包下载地址:【***.jar下载地址(官方地址+国内镜像地址).txt】 ...
snmp-tutorialSNMP tutorial :Jrobin、SNMP4jsnmp4j-1x-demoSNMP4j实现同步和异步的GET的示例SNMP4j实现同步和异步的Walk的示例SNMP4j实现Trap的示例SNMP4j实现SET的示例SNMP4j实现GETBLUK的示例robin-demoJRobin ...
包含javamelody.jar、jrobin-1.5.9.1.jar和javamelody.war文件,测试可用
javamelody.jar和jrobin-1.5.9.1.jar 博文链接:https://navylee.iteye.com/blog/746914
JRobin is just an API. With this API you are free to optimize your code so that RRD files are open or closed only when necessary. This could lead to huge performance benefits.
2014/03/07 14:17 238,016 jrobin-1.5.9.1.jar 2014/03/07 14:17 11,358 LICENSE 2014/10/01 23:31 18,519 pom.xml 2014/05/14 18:24 1,979 README.txt 2014/03/07 14:18 <DIR> src 2014/10/01 23:29 40 VERSION....
里面含有具体文件,web.xml 配置、 javamelody-1.32.1.jar、 jrobin-1.5.9.1.jar、javamelody-1.32.1.war, 把你的web.xml配置 然后把两个jar放到你的项目下面,然后把那个war包放到你的服务下,启动就可以监控你的...
jrobin-1.5.9.1.jar 3、如果您的web项目有SpringSecurity,修改SpringSecurity资源过滤配置、不过滤/monitoring的访问 <!-- -------------------------------------需监控工程修改结束-------------------------...
RRDSharp 是 rrdtool (www.rrdtool.org) 的 100% 托管实现,在 Mono 和 .NET 上运行,并基于 Java JRobin 项目。 该项目最初由 David Quintana 开发。