如何将 riemann 集成到 dropwizard 中以捕获指标?

How to integrate riemann into the dropwizard to capture metrics?

我有一个 dropwizard 应用程序,它会发出 yammer 指标,并且可以通过 URL 进行监控,例如 http://localhost:8081/admin/metrics,它以 json 的形式给出结果。

我想在 riemann 中发送这些监视器这些指标,但我不知道如何开始。我通过了 riemann-java-客户端,它有一个 RiemannReporter class 用于 yammer 指标,但我不知道如何在我的应用程序中使用它。

如何将此客户端集成到我的应用程序中或如何从 url 捕获 json 并将其作为事件发送到 riemann 服务器?

Java Client Library 中的 RiemanReporter Builder 将 dropwizard 指标注册表带入构造函数。它支持标记事件并将速率转换为黎曼事件。您可以使用 TimeUnit

在启动方法上设置轮询间隔
        Riemann riemann = new Riemann("YOUR_RIEMANN_HOST", 5555);
        ArrayList<String> tags = new ArrayList<String>();
        tags.add("YOUR_APPLICATION_TAG");
        RiemannReporter.Builder builder = RiemannReporter.forRegistry(environment.metrics()).tags(tags);
        RiemannReporter riemannReporter = builder.build(riemann);
        riemannReporter.start(1, TimeUnit.SECONDS);

Riemann 配置以捕获此输出并写入 Riemann 日志:

(streams (where (tag "YOUR_APPLICATION_TAG") #(info %)))