有没有办法跟踪Jenkins中全局共享库的使用情况?

有没有办法跟踪Jenkins中全局共享库的使用情况?,jenkins,usage-statistics,jenkins-shared-libraries,Jenkins,Usage Statistics,Jenkins Shared Libraries,上下文: 在我的工作中,大多数开发人员都可以自由地为自己团队的项目编写自己的Jenkins文件 作为Jenkins管理员,我为开发人员提供了一个全局共享库 大多数项目使用v1、v2或v3或该库的其他版本,使用惯用语library(“theSharedLib@v#) 问题:有没有一种方法可以让我知道哪个Jenkinsfile正在使用哪个版本的共享库,而不必实际查找所有这些Jenkinsfile文件(git repo中有50多个文件) 我最喜欢的是一些机制,可以在加载库时将哪个project/J

上下文:

  • 在我的工作中,大多数开发人员都可以自由地为自己团队的项目编写自己的Jenkins文件
  • 作为Jenkins管理员,我为开发人员提供了一个全局共享库
  • 大多数项目使用v1、v2或v3或该库的其他版本,使用惯用语
    library(“theSharedLib@v#)
问题:有没有一种方法可以让我知道哪个Jenkinsfile正在使用哪个版本的共享库,而不必实际查找所有这些Jenkinsfile文件(git repo中有50多个文件)

我最喜欢的是一些机制,可以在加载库时将哪个project/Jenkins文件使用哪个版本写入(Jenkins master或DB中的文件)

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

我写信是为了从詹金斯那里收集这样的信息。它有一个插件,可以根据已完成作业的控制台日志运行正则表达式,然后将事件发布到弹性搜索

Jenkins在日志的开始处发布库加载,如:

Loading library sharedLib@version
所以一个简单的正则表达式

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

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

旁注:了解这些知识有助于了解谁会受到库中中断更改的影响,并提前通知他们。我需要知道谁是我的库用户。如果您只使用一个master,或者使用非常少的代理,那么在jenkins workspace目录上运行grep只需要一分钟:
find/home/jenkins/workspace-name“Jenkinsfile”-exec grep-H“theSharedLib”{}\但是,如果您有数百个代理,那么这可能不实用。正如您所提到的,对于小型设置来说,这听起来是个好主意。但是,我确实有大约70个代理,它们混合在Windows和Linux之间(多个版本)。好吧,我可以把Nagios放在这上面。谢谢你的主意!也许你可以将共享库所在的git repo的日志进行grep。我在这个问题上加了一个星号,以防有人提出一个基于詹金斯的解决方案。