黑盒导出器响应作为度量标签

Posted

技术标签:

【中文标题】黑盒导出器响应作为度量标签【英文标题】:Blackbox exporter response as metric label 【发布时间】:2020-05-25 00:01:28 【问题描述】:

我正在尝试使用黑盒导出器将网页中嵌入的值导入 prometheus,但目前看来,http 黑盒探针不支持抓取网页的源代码,这是可以理解的。我的用例是网页可以有 3 种状态:待机、从外部源获取、完成(这是嵌入在页面源中的)。我考虑过滥用 http 响应代码来执行此操作并执行类似的操作

200 = done,
202 = fetching,
400 = standby

然后使用probe_http_status_code 进行警报,例如。 但是我不太喜欢这个解决方案,因为状态码只对黑盒有意义,对任何其他用例来说都是痛苦的。有没有一种聪明的方法可以将一些响应(例如标头的值)输入 prometheus?

【问题讨论】:

【参考方案1】:

黑盒导出器实际上是为狭义的背盒监控而设计的:从用户的角度来看,通过将系统视为黑盒来从外部监控系统。如果只需要检查done状态,可以使用http_probefail_if_body_not_matches_regexp检查。

试图将状态置于已经走向白盒监控的状态:只有当您拥有系统模型时,该状态才有意义。这就解释了为什么如果您真的需要三种状态,黑盒导出器不是正确的工具。

为了快速获取状态,我最喜欢的备用方法是使用exporter_exporter,它能够运行脚本并将标准输出解析为开放度量内容。通过巧妙地使用 curl,您可以提取所需的任何内容。这不是最有效地使用您的 CPU,但它仍然相对便宜。

否则将无法滚动您自己的导出器或将 Prometheus 指标集成到您的软件中。

【讨论】:

以上是关于黑盒导出器响应作为度量标签的主要内容,如果未能解决你的问题,请参考以下文章

Prometheus Helm Chart:如何配置黑盒导出器?

黑盒导出器在哪里存储探测数据?

Prometheus Alertmanager:基于实例的黑盒导出器警报

Prometheus 黑盒导出器失败 https 但不是 http

如何更新以微米为单位的导出度量的标签值?

jmeter微信公众号接口测试实例