在我的处理程序中,我定义了以下内容:
(def reg (new-registry))
(def app (-> app-routes
(expose-metrics-as-json)
(instrument reg)))
如果我去/metrics
我只看到一个空的json对象。我错过了什么?此外,关于我如何在控制台上报告的文档还不清楚,文档中的report-to-console
似乎不再使用,而是有记者,但我找不到任何关于你如何使用的文档记者。
编辑:
我已经看到通过查看以下内容来添加和记录指标:
(meters/rates ((all-metrics reg) "ring.responses.rate.2xx"))
结果如预期,如:
{1 0.06325196458537237, 5 0.01824839591203641, 15 0.006466051961211013, :total 6}
所以看来虽然expose-metrics-as-json正在创建一个端点,但指标并没有被添加到它中。
答案 0 :(得分:3)
哈!我发现这实际上是代码中的一个错误。 https://github.com/sjl/metrics-clojure/blob/master/metrics-clojure-ring/src/metrics/ring/expose.clj
([handler uri registry]
(expose-metrics-as-json handler uri default-registry {:pretty-print? false}))
这会忽略registry
参数。我通过使用
(expose-metrics-as-json "/metrics" reg {:pretty-print? false})
我将修复并创建拉取请求。
答案 1 :(得分:2)
您没有将注册表传递给expose-metrics-as-json
。它回退到默认注册表。
在线程表达式中,尝试更改第二行,使其显示为:
(def app (-> app-routes
(expose-metrics-as-json "/metrics" reg)
(instrument reg)))