黑盒导出器响应作为度量标签
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_probe
的fail_if_body_not_matches_regexp
检查。
试图将状态置于已经走向白盒监控的状态:只有当您拥有系统模型时,该状态才有意义。这就解释了为什么如果您真的需要三种状态,黑盒导出器不是正确的工具。
为了快速获取状态,我最喜欢的备用方法是使用exporter_exporter,它能够运行脚本并将标准输出解析为开放度量内容。通过巧妙地使用 curl,您可以提取所需的任何内容。这不是最有效地使用您的 CPU,但它仍然相对便宜。
否则将无法滚动您自己的导出器或将 Prometheus 指标集成到您的软件中。
【讨论】:
以上是关于黑盒导出器响应作为度量标签的主要内容,如果未能解决你的问题,请参考以下文章
Prometheus Helm Chart:如何配置黑盒导出器?
Prometheus Alertmanager:基于实例的黑盒导出器警报