Graphite + Jenkins 作业级别指标

Graphite + Jenkins Job level Metrics

我正在尝试获取 Jenkins 上每个单独作业的指标(我有 100 多个作业)。

使用 InfluxDB,我能够为每个作业中的每个构建获取很多指标(例如:构建编号、上次成功构建的构建状态消息、项目名称等) .

我试图在 Jenkins 上使用 Graphite 获得类似的指标,但我找不到方法来做到这一点。

Jenkins 使用的插件:

  1. https://wiki.jenkins.io/display/JENKINS/InfluxDB+Plugin

  2. https://wiki.jenkins.io/display/JENKINS/Metrics+Graphite+Plugin

  3. https://wiki.jenkins.io/display/JENKINS/Prometheus+Plugin

感谢任何帮助,谢谢:)

TL;DR:它 可以 完成,但它似乎需要我能找到的无人承担的工作,而且似乎石墨的这一特性通常应该不要过度使用,因为石墨似乎不能有效地存储它(尽管 Jenkins 的使用似乎是一种非常合理的使用方式)


石墨插件的代码非常简单:

https://github.com/jenkinsci/metrics-graphite-plugin/blob/master/src/main/java/jenkins/metrics/impl/graphite/PluginImpl.java#L69

显然 Graphite 确实支持 0.9.9 版的元数据(显然是 10/6/11)(我没有完全意识到这一点): https://graphite.readthedocs.io/en/latest/events.html

但是那些文档似乎暗示它与实际记录的指标是分开的,所以看起来插件需要发出两个请求来添加该元数据。可以将其添加到插件中,但它可能会显着降低使用该功能的任何日志语句的速度。

此外,据我所知,library it is using 似乎不支持此元数据,因此可能需要从头开始添加该功能。

Tags 是 Graphite 的另一个特性,在 libaries/plugins 中似乎很少实际实现,但也可以探索