当前位置: 首页 > 知识库问答 >
问题:

Graphite中的Dropwizard指标

鞠建安
2023-03-14

我们使用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中被称为完全不同的东西?

共有1个答案

闻修筠
2023-03-14

问题是这行中指定的套接字不正确,但找到套接字的唯一方法是使用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