Java中proc是什么意思,在java里头读取/proc/net/dev
直接读取/proc/net/dev
public class NetStatReader implements MetricsReader {
private static File netstat = new File("/proc/net/dev");
private static final Pattern dline =
//rx //tx
// device_name -bytes packets errs drops fifo frame com mult -bytes packets errs drops fifo frame com mult
Pattern.compile("^ *([A-Za-z]+[0-9]*):\\D*(\\d+)\\D+(\\d+)\\D+(\\d+)\\D+(\\d+)\\D+\\d+\\D+\\d+\\D+\\d+\\D+\\d+\\D+(\\d+)\\D+(\\d+)\\D+(\\d+)\\D+(\\d+)\\D+\\d+\\D+\\d+\\D+\\d+\\D+\\d+.*");
private static final Logger LOG = Logger.getLogger(NetStatReader.class.getName());
@Inject
private Configuration conf;
private String device_regexp = "eth0";
/**
* It creates a wrapper to obtain statistics about a network interface by
* reading information from /proc/net/dev
*
* @param interfaceRegexp a string with a regexp to match with the device to
* control (e.g. "sd[ab]")
*
*
*/
public NetStatReader(String interfaceRegexp) {
LOG.log(Level.INFO, "Sampling interfaces {0}", interfaceRegexp);
this.device_regexp = interfaceRegexp;
checkArgument(netstat.exists(), "/proc/diskstats does not exists");
checkArgument(netstat.canRead(), "/proc/diskstats can not be read");
}
/**
* *
*
* @param interfaceRegexp
* @param processPid to bind the statistics to only one process
* @deprecated it seems to give the same results when looking for a process
* instead of the whole system
*/
@Deprecated
public NetStatReader(String interfaceRegexp, Integer processPid) {
LOG.log(Level.INFO, "Sampling interfaces {0} for process {1}",
new Object[]{interfaceRegexp, processPid});
this.device_regexp = interfaceRegexp;
netstat = new File("proc/" + processPid + "/net/dev");
checkArgument(netstat.exists(), "/proc/diskstats does not exists");
checkArgument(netstat.canRead(), "/proc/diskstats can not be read");
}
public NetStatReader() {
// checkArgument(diskstats.exists(), "/proc/diskstats does not exists");
// checkArgument(diskstats.canRead(), "/proc/diskstats can not be read");
}
@Override
public List call() throws Exception {
Builder b = ImmutableList.builder();
LineReader lr = new LineReader(new FileReader(netstat));
String l;
while ((l = lr.readLine()) != null) {
Matcher m = dline.matcher(l);
if (!m.matches()) {
continue;
}
String iface = m.group(1);
if (iface.matches(device_regexp)) {
b.addAll(Metric.Metric(iface)
.addMetric("rx.bytes", Long.parseLong(m.group(2)))
.addMetric("rx.packets", Long.parseLong(m.group(3)))
.addMetric("rx.errs", Long.parseLong(m.group(4)))
.addMetric("rx.drop", Long.parseLong(m.group(5)))
.addMetric("tx.bytes", Long.parseLong(m.group(6)))
.addMetric("tx.packets", Long.parseLong(m.group(7)))
.addMetric("tx.errs", Long.parseLong(m.group(8)))
.addMetric("tx.drop", Long.parseLong(m.group(9))).getList());
}
}
return b.build();
}
@Override
public void configure() {
if (conf.containsKey("netstat-reader.interfaceregexp")) {
this.device_regexp = conf.getString("netstat-reader.interfaceregexp");
checkArgument(netstat.exists(), "/proc/diskstats does not exists");
checkArgument(netstat.canRead(), "/proc/diskstats can not be read");
}
}
@Override
public void setConf(Configuration c) {
conf = c;
}
@Override
public Configuration getConf() {
return conf;
}
}
doc
Java中proc是什么意思,在java里头读取/proc/net/dev相关推荐
- Java中的Volatile如何工作? Java中的volatile关键字示例
如何在Java中使用Volatile关键字 在Java采访中,什么是volatile变量以及何时在Java中使用volatile变量是Java 采访中一个著名的多线程采访问题 . 尽管许多程序员都知道 ...
- java 中的排序_浅谈java中常见的排序
浅谈java中常见的排序 学过java的人都知道,排序这一部分初次接触感觉还是有点难以理解,很多地方也会用到.然而,在java中常见的排序方法:冒泡排序,选择排序,插入排序等等.下面就让我们一起揭开他 ...
- java 中的单元测试_浅谈Java 中的单元测试
单元测试编写 Junit 单元测试框架 对于Java语言而言,其单元测试框架,有Junit和TestNG这两种, 下面是一个典型的JUnit测试类的结构 package com.example.dem ...
- java中next的用法_关于java iterator的next()方法的用法
UYOU next()是java迭代器类(Iterator)的方法,获得当前游标指向的下一个元素,详细说明和应用如下:1.迭代器(Iterator)介绍 迭代器是一种设计模式,它是一个对象,它可以遍历 ...
- java中引用类型_您真的了解Java中的4种引用类型吗?
Java中提供了四个级别的引用:SoftReference,FinalReference,WeakReference和PhantomReference.在四种引用类型中,只有FinalReferenc ...
- java中怎样判断余数为3,Java的基础语法(三): 运算符
7.运算符 定义: 对常量和变量进行操做的符号spa 分类: 6大类---算术, 赋值, 比较, 逻辑, 位, 三元code (1).算术运算符blog +, -, *, / ,%, ++, --字符 ...
- java中打开文件显示_从java程序中打开任何文件
在 java中打开文件似乎有点棘手 – 对于.txt文件,必须将File对象与Scanner或BufferedReader对象结合使用 – 对于图像IO,必须使用 ImageIcon类 – 如果要打开 ...
- java中布局管理器flowlayout,在Java中下列()方法可以把JFrame的布局管理器设为FlowLayout类型。...
在Java中下列()方法可以把JFrame的布局管理器设为FlowLayout类型. 答:jFrame.setLayout(new FlowLayout() ) 在Word 2010的编辑状态,当前编 ...
- java中字符流 字节流_理解Java中字符流与字节流的区别
1. 什么是流 Java中的流是对字节序列的抽象,我们可以想象有一个水管,只不过现在流动在水管中的不再是水,而是字节序列.和水流一样,Java中的流也具有一个"流动的方向",通常可 ...
最新文章
- DeepMind 的新强化学习系统,是迈向通用人工智能的一步吗?
- stata 将数据集变量名称导出_Excel统计年鉴如何转换为面板数据?
- opencv 凹凸性检测 和 缺陷分析
- Unity3D與IE8兼容有問題
- 面向对象三大特性之一:多态(C++)
- 算法分析与设计-实验二 动态规划算法设计
- java后台验证不能为空_java validation 后台参数验证的使用详解
- 精通init ramfs构建
- 2018中国国际大数据大会专属报名通道(粉丝专享)开通啦!
- MSP430学习笔记2---两个LED同时亮灭和顺闪
- HTML5 Canvas JavaScript库 Fabric.js 使用经验
- Glide Golang包管理
- 收藏一篇关于 用两个栈实现一个队列功能的帖子
- 一分钟先生:怎样给员工发奖金
- phpadmin安装到mysql中,mysql 和phpadmin安装
- ListView--QQ联系人样式
- div css经典布局实例,div+css布局实例:常用图文混排(一)--腾讯图文 - 蜗爱CSS
- 指针地址左移右移的代码实例
- vc 6.0++解决兼容性及闪退问题
- Kmeans聚类K值选择Parametric Bootstrap方法,以及数据重抽样方法Bootstrapping
热门文章
- 如何在S/4HANA里创建Custom Business object并实现自定义逻辑
- SAP Hybris的类型系统更改和ABAP的LOAD_PROGRAM_TABLE_MISMATCH
- 在SAP云平台ABAP编程环境里使用CAP模型创建Fiori应用
- SAP Cloud Platform integration上创建一个最简单的iFlow
- 使用Javascript递归遍历本地文件夹
- 错误信息Make an entry in Field Text Area
- SAP CRM WebClient UI,点击Master Data工作中心后执行的JavaScript代码
- Angular应用里使用rxjs提供的观察者和发布者实现事件处理
- 分享一个开源的JavaScript统计图表库,40行代码实现专业统计图表
- 利用CRM中间件Middleware从ERP下载Customer Material的常见错误