我们使用Jersey和web创建了多个APIendpoint。xml设置而不是资源配置设置。我们希望捕获并显示每个endpoint的所有请求的度量,包括所有不同的响应代码。到目前为止,我已经创建了一个类,它扩展了InstrumentedFilterContextListener,并在其中包含了Graphite reporter。
在web.xml中,我添加了以下块来使报告工作:
<listener>
<listener-class>metrics.MyInstrumentedFilterContextListener</listener-class>
</listener>
<filter>
<filter-name>testFilter</filter-name>
<filter-class>com.codahale.metrics.servlet.InstrumentedFilter</filter-class>
<init-param>
<param-name>name-prefix</param-name>
<param-value>testEndpoint</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>testFilter</filter-name>
<url-pattern>/api/testEP1/*</url-pattern>
</filter-mapping>
enter code here
<filter>
<filter-name>testFilter2</filter-name>
<filter-class>com.codahale.metrics.servlet.InstrumentedFilter</filter-class>
<init-param>
<param-name>name-prefix</param-name>
<param-value>testEndpoint2</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>testFilter2</filter-name>
<url-pattern>/api/testEP2/*</url-pattern>
</filter-mapping>
因此,通过上述配置和下面的类,我在Graphite仪表板中获得了一些信息:
public class MyInstrumentedFilterContextListener extends InstrumentedFilterContextListener {
public static MetricRegistry METRIC_REGISTRY = new MetricRegistry();
static {
final Graphite graphite = new Graphite(new InetSocketAddress("localhost", 8080));
final GraphiteReporter reporter = GraphiteReporter.forRegistry(METRIC_REGISTRY)
.prefixedWith("API.Metrics")
.convertRatesTo(TimeUnit.SECONDS)
.convertDurationsTo(TimeUnit.MILLISECONDS)
.build(graphite);
reporter.start(10, TimeUnit.SECONDS);
}
@Override
protected MetricRegistry getMetricRegistry() {
return METRIC_REGISTRY;
}
}
我目前的问题是,据我所知,这主要是机器相关的指标,cpu,内存等。,而不是我所映射的endpoint的ok、error或not found请求数。我已经通过添加ConsoleReporter测试了我的listener类正在捕获请求,这样我就可以看到不同请求的计数都在增加。最后,我的问题是,我如何在Graphite中看到所有相同的仪表和计时器数据?我需要设置一些额外的设置来获得这些数据吗?或者这些数据在Graphite中被称为完全不同的东西?
问题是这行中指定的套接字不正确,但找到套接字的唯一方法是使用netstat,在我的例子中,它最终是22033:
final Graphite graphite = new Graphite(new InetSocketAddress("localhost", 8080));
这可能是在石墨的某个文件中指定的,但我没有在任何文档中找到它。
1. 介绍 Graphite是一个Github项目,没有自己的独立域名网站,文档也host在专门存放文档的网站上。 新官方文档 http://graphite.readthedocs.org 旧官方文档 http://graphite.wikidot.com The Architecture of Open Source Applications: Graphite Graphite 专注于两个最
Graphite 是一个用于采集网站实时信息并进行统计的开源项目,可用于采集多种网站服务运行状态信息。Graphite服务平均每分钟有4800次更新操作。实践已经证实要监测网站发发生什么是非常有用的,它的简单文本协议和绘图功能可以方便地即插即 用的方式用于任何需要监控的系统上。
我是Java新手。在探索监控卡桑德拉的方法时,我发现(https://cassandra.apache.org/doc/latest/operating/metrics.html)“使用Dropwizard度量库管理Cassandra中的度量”。然而,在一些地方,我读到了Codahale度量,这让我对两者之间的区别/关系感到困惑。这些不同的库是在做同样的事情,还是以前称为dropwizard的度量
我试图收集一些关于石墨和碳守护进程性能的数据。幸运的是,carbon守护程序每60秒向graphite报告一次,并提供一些关于其工作的统计信息,例如收到的度量数。 我不知道这些指标是从哪里来的,为什么它们以每秒15次的速度出现。此外,每当我启动statsd时,CPU都会将负载增加大约10%。我注意到的是,当我增加statsd的刷新间隔时,接收到的度量值的数量会减少。 这是我的statsd配置文件:
我正在尝试通过拖放向导 IO 指标监视某些指标。我想获取在特定时间段内下载的文件数,并且我想自己聚合该指标。例如,假设在 10.00 到 10.15 之间,下载了 60 个文件。我希望指标在此时间段和 10.15 之后为 60,它必须返回零。但是,在 10.15 之后,指标始终返回 60。有没有办法避免其自动聚合?
Install Graphite 0.9.12 on Windows Reference 新版官方安装说明文档(不完整):http://graphite.readthedocs.org/en/latest/install.html 旧版官方安装说明:http://graphite.wikidot.com/quickstart-guide 民间Windows安装小结: http://www.s2-i