查询具有微米数据(querying data with micrometer)

2019-11-05 06:02发布

我们要,我们的弹簧引导服务张贴指标,涌入DB具有微米这个奇特监控系统。 有一个很好的grafana前端,但问题是,我们现在是在哪里,我们必须有一些其他的服务提供给理由对这些指标的阶段。 整个系统成立了由我的前任和我目前对它的了解几乎为零。 我可以添加和发布新的指标,但我不能为我的生命得到任何东西出来

这里有一个简单的例子:我们的网关递增计数器为每个图像,一个摄像头的帖子吧。 计数器的定义是这样的:

private val imageCounters = mutableMapOf<String, Counter>()
private val imageCounter = { camera: String ->
    imageCounters.getOrPut(camera) {
        registry.counter("gateway.image.counter", "camera", camera)
    }

而计数器增加在这样的代码:

imageCounter("placeholder-id").increment()

现在,我们正在改善我们的计费和结算服务需要知道某个摄像机许多图像如何通过网关去。 所以很自然我尝试的第一件事情是这样的:

class MonitoringService(val metrics: MeterRegistry) {

    private val log = logger()
    private val imageCounters = mutableMapOf<String, Counter>()
    private val imageCounter = { camera: String ->
        imageCounters.getOrPut(camera) {
            metrics.counter("gateway.image.counter", "camera", camera)
        }
    }

    fun test() {
        val test = imageCounter("16004").count()
        val bugme = true
        log.info("influx test: $test")
    }
}

有两个问题:首先,它总是返回零,所以很明显,我做错了。 我只是无法弄清楚它是什么。 其次,即使它会返回一个合理的值,我不明白的方式通过时间限制的(我通常需要在本月份上传的图片数量)。

我担心的是,虽然我可以找到很多关于如何与发布数据微米文件,我似乎无法找到关于如何查询的任何文档。 是千分尺仅设计发布的监测数据,但不能查询呢? 在.getOrPut()方法将表明它都可以做,但由于查询数据,似乎只要我可以告诉无证,这可能是我的一个误解。

有面向Java,我将尝试下涌入-DB客户端,但在这一天结束时,我不希望在我的应用程序的多个组件做同样的事情,只是因为我不熟悉,我继承的工具。

Answer 1:

InfluxMeterRegistryStepMeterRegistry ,所以创建Counter从它是一个StepCounterStepCounter.increment()增加当前步骤,但数StepCounter.count()将返回计数在上一步骤。 这就是为什么你会看到有0 count()虽然你已经调用increment()几次。 你可以看到它在下一步中,默认步长为1分钟了,所以你必须等待1分钟才能看到它。

请参见下面的测试来得到它是如何工作的想法: https://github.com/izeye/sample-micrometer-spring-boot/blob/influx/src/test/java/com/izeye/sample/InfluxMeterRegistryTests.java



文章来源: querying data with micrometer