首页 > 解决方案 > 有没有办法跟踪 Jenkins 中全局共享库的使用情况?

问题描述

语境:

问题:有没有办法让我找出哪个 Jenkinsfile 正在使用哪个版本的共享库,而无需实际查找所有这些 Jenkinsfile 文件(在尽可能多的 git repos 中的 50 多个文件)?

我会看到最好的是一些机制,它在加载库时写入(写入 Jenkins 主机或数据库中的文件)哪个项目/Jenkinsfile 正在使用哪个版本。

一种可能的解决方案是向库中的每个函数添加一些代码,这些函数实际上会执行此报告。然后我可以看到谁使用了哪个功能。有更好的解决方案吗?

标签: jenkinsusage-statisticsjenkins-shared-libraries

解决方案


我写了https://github.com/CiscoDevNet/es-logger从 Jenkins 那里收集诸如此类的信息。它有一个插件,可以针对已完成作业的控制台日志运行正则表达式,然后可以将事件发布到弹性搜索。

詹金斯在日志开始时有用地发布库负载,例如:

Loading library sharedLib@version

所以一个简单的正则表达式

"^Loading library\S+(?P<library_name>.*?)@(?P<library_version>.*?)\S+$"

添加到 console_log_events 插件将在弹性搜索中为每个用法和每个版本生成事件。


推荐阅读