用千分尺查询数据

2024-01-11

我们有这个奇特的监控系统,我们的 spring-boot 服务通过千分尺将指标发布到流入数据库。有一个不错的 grafana 前端,但问题是我们现在处于这样一个阶段:我们必须在其他服务中提供其中一些指标来进行推理。 整个体系是我的前任建立的,我现在对它的了解几乎为零。我可以添加和发布新指标,但我一生都无法得到任何东西out of it.

这是一个简短的例子: 我们的网关会为相机向其发送的每张图像增加计数器。计数器的定义如下所示:

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")
    }
}

这有两个问题:首先它总是返回零,所以显然我做错了。我就是不明白那是什么。 其次,即使它会返回一个合理的值,我也没有找到一种方法来限制时间(我通常需要当月上传的图像数量)。

让我担心的是,虽然我可以找到很多有关如何使用千分尺发布数据的文档,但我似乎找不到任何有关如何查询的文档。 Micrometer是不是只能发布监控数据,不能查询? .getOrPut() 方法表明它可以同时执行这两种操作,但据我所知,由于查询数据似乎没有记录,这可能是我的误解。

有一个用于 Java 的 influx-db 客户端,我接下来会尝试它,但最终我不希望应用程序中的多个组件仅仅因为我不熟悉我继承的工具而做同样的事情。


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

请参阅以下测试以了解其工作原理:https://github.com/izeye/sample-micrometer-spring-boot/blob/influx/src/test/java/com/izeye/sample/InfluxMeterRegistryTests.java https://github.com/izeye/sample-micrometer-spring-boot/blob/influx/src/test/java/com/izeye/sample/InfluxMeterRegistryTests.java

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用千分尺查询数据 的相关文章

随机推荐

  • 如何访问Azure Service Fabric有状态/无状态服务中的settings.xml?

    如何访问和读取中定义的参数PackageRoot Settings Settings xml来自我的有状态 无状态服务代码的文件 例如 我有一个带有参数 EndpointUrl 的 DocumentDbConfig 部分 section s
  • 显示成功消息,然后在超时后使用 PageFlow 重定向到另一个页面

    如何显示成功消息 然后在超时后将用户重定向到另一个页面 例如5秒 成功登录后我需要这个作为登录页面 我尝试了以下操作 我可以看到登录失败时的警告消息 但看不到登录成功时的成功消息 它立即显示目标页面 public String check
  • Amazon EC2丢失私钥,如何访问服务器? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 前天我的电脑被偷了 我把我的一台服务器私钥放进去 该密钥受密码保护 所以应该没问题 但问题是现在我无法访问服务器 服务器是Ubuntu 亚马逊EC2
  • 管理到非管理开销

    在 NET 中 有几个地方必须离开托管代码并进入非托管 也称为本机代码 领域 仅举几例 外部 DLL 函数 COM调用 总是有一些关于开销的评论从一个原因跳到另一个原因 我的问题是是否有人测量了正在发生的确切开销 并可以解释如何计算它 例如
  • 是否可以将 Azure 虚拟机移动到另一个区域?

    我有一个带有非托管磁盘的 Azure VM 我想把它移到另一个地区 除了概括我当前的虚拟机之外还有其他方法吗 除了概括我当前的虚拟机之外还有其他方法吗 Azure 不支持更改 VM 的位置 您需要将 VM 的 VHD 复制到另一个位置并使用
  • 如何加载本地json文件?

    有没有办法使用 about config 配置 Firefox 以允许本地文件访问 用于演示目的 特别是使用 FF12 我需要能够对 json 数据进行本地文件访问 它在服务器上运行良好 但我想让这个演示更加便携 ajax url asse
  • 如何查看 Android 设备的屏幕状态?

    有没有办法在没有广播接收器的情况下知道Android设备屏幕是否打开 我想通过警报管理器调用的服务在设备上进行分钟间隔更新 我还想延长电池寿命 因此 如果设备屏幕打开 更新服务就会运行 我用这段代码找到了解决我的问题的方法 PowerMan
  • os.fork 和 multiprocessing.Process 之间的行为差​​异

    我有这个代码 import os pid os fork if pid 0 os environ HOME rep1 external function else os environ HOME rep2 external function
  • 驱动器文件更新错误 500

    我的应用程序在 appdata 文件夹中保留了一些应用程序特定文件 但是 当文件尝试更新云端硬盘应用程序数据中的文件时 反复从云端硬盘服务器收到内部错误 我正在使用 Objective c 客户端调用 Drive API 你能帮忙看看这些有
  • 如何区分“使用鼠标右键单击”和“在物理键盘上按上下文菜单键”

    如何区分使用鼠标右键单击和物理键盘上的上下文菜单按键 使用此代码我尝试在控制台中打印事件 inputId bind contextmenu function e console log e 我抓取了上面代码的一些输出 对于使用鼠标右键单击
  • 为所有浏览器嵌入 Windows Media Player

    Edit 这个问题是2008年写的 相当于3个互联网时代之前的事了 如果这个问题仍然与您的环境相关 请接受我的哀悼 其他人都应该转换成一种格式您的浏览器支持 https videojs com html5 video support 如果需
  • Mysql2::Error: key 'index_admin_users_on_email' 的重复条目 '' Ruby on Rails 错误

    我正在尝试在从github获得的rails代码上运行ruby 最后我使用homebrew安装了mysql 然后也直接从http dev mysql com http dev mysql com 直到那时 当我在应用程序文件中使用 rake
  • 垃圾收集在内部 Map 中跟踪其自身实例的对象

    在我的类的构造函数中 我映射当前对象 this 连同它的键 在构造函数中作为参数输入的字符串 一起放入静态 LinkedHashMap 中 这样我就可以在以后可能需要的任何地方通过该字符串引用该对象 这是代码 如果有帮助的话 public
  • 我的API函数应该采用shared_ptr还是weak_ptr

    我目前正在设计一个 API 我不确定我的函数是否应该采用shared ptr or weak ptr 有些小部件包含查看器 观众有一个功能add painter这为观看者添加了一位画家 当查看器需要重绘时 它使用其绘制器绘制到缓冲区并显示结
  • IE 11 Bug - 表单内标签内的图像

    在 IE11 中 以下代码将按预期检查单选按钮
  • 由于上下文丢失,WebGL 场景无法渲染

    我有一个带纹理和不带纹理的道路 3D 模型 当我加载没有纹理的道路时 一切正常 60fps 但是当我加载带有纹理的道路时 有两种变体 1 如果 3D 模型不大 那么它可以加载并工作 但 fps 非常低 10 20 2 如果 3D 模型很大
  • PDO 语句比 MySQL CLI 花费的时间长 400 倍 [重复]

    这个问题在这里已经有答案了 我正在运行一个 PDO 准备语句来从大约 6k 行的表中进行选择 由于 WHERE 语句具有约 5k pId 因此该特定查询最终返回所有行 该表在 pId 列上也有一个索引 SELECT FROM table a
  • 如何让 geom_text 与 ggplot2 左对齐

    我想左对齐geom text层与ggplot2 我正在使用以下代码 library tidyverse library hydroGOF library scales summ lt df gt group by Date gt summa
  • Selenium 2 StaleElementReferenceException 将 DropDownList 与 AutoPostBack 与 InternetExplorerDriver 一起使用时

    我正在使用 Selenium 2 使用 InternetExplorerDriver 测试 asp net Web 表单页面 并且遇到 StaleElementReferenceException 该页面包含一个 自动回发 下拉列表 我从中
  • 用千分尺查询数据

    我们有这个奇特的监控系统 我们的 spring boot 服务通过千分尺将指标发布到流入数据库 有一个不错的 grafana 前端 但问题是我们现在处于这样一个阶段 我们必须在其他服务中提供其中一些指标来进行推理 整个体系是我的前任建立的