有没有一种方法可以跟踪詹金斯中的全局共享库的使用?

时间:2019-12-27 17:33:33

标签: jenkins usage-statistics jenkins-shared-libraries

上下文:

  • 在我的工作中,大多数开发人员可以自由地为自己团队的项目编写自己的Jenkinsfile。
  • 作为Jenkins管理员,我为开发人员提供了一个全局共享库。
  • 大多数项目都使用成语library("theSharedLib@v#")使用v1或v2或v3或该库的其他版本。

问题:我有办法找出哪个Jenkinsfile在使用哪个版本的共享库,而不必实际查找所有这些Jenkinsfile文件(50个以上的git repos文件) )?

我最能看到的是一种机制(写入Jenkins主文件或DB中的文件),该项目/ Jenkinsfile在加载库时正在使用哪个版本。

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

1 个答案:

答案 0 :(得分:0)

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

Jenkins会在日志的开头帮助发布库负载,例如:

Loading library sharedLib@version

像这样的简单正则表达式

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

添加到console_log_events插件中后,将通过弹性搜索针对每种用法和每个版本生成事件。