Json 问:需要关于如何开发Jenkins度量捕获程序(Jenkins Rest API、Groovy等)的建议吗

Json 问:需要关于如何开发Jenkins度量捕获程序(Jenkins Rest API、Groovy等)的建议吗,json,rest,groovy,jenkins,Json,Rest,Groovy,Jenkins,我的任务是制作一个程序,从詹金斯那里提取相关的度量数据。我只有一周的时间来让自己熟悉这个程序所需要的一切,而且我也不是最优秀的程序员。话虽如此,我还是希望那些使用Jenkins REST API和脚本语言(Groovy、Python等)从Jenkins获取度量数据的经验丰富的开发人员给我一些建议 概述:该计划的最终目标是显示Jenkins中保留的一些指标,这将更好地了解构建/部署/测试的进展情况。这将使我的业务能够深入了解跟踪测试和趋势中的构建部署过程。这些指标包括但不限于:有多少测试失败/通过

我的任务是制作一个程序,从詹金斯那里提取相关的度量数据。我只有一周的时间来让自己熟悉这个程序所需要的一切,而且我也不是最优秀的程序员。话虽如此,我还是希望那些使用Jenkins REST API和脚本语言(Groovy、Python等)从Jenkins获取度量数据的经验丰富的开发人员给我一些建议

概述:该计划的最终目标是显示Jenkins中保留的一些指标,这将更好地了解构建/部署/测试的进展情况。这将使我的业务能够深入了解跟踪测试和趋势中的构建部署过程。这些指标包括但不限于:有多少测试失败/通过/跳过,构建执行时间,通过的构建与失败的构建的百分比,等等

我已经整合了您可能需要的有关该计划的所有信息,但以下是我对该计划的最大问题:

  • 是否有可能在一周内学会并应用这些知识?(考虑到我对任何相关技术的熟悉程度为0)。别误会我的意思,如果可能的话,我会努力让这一切顺利进行,但是如果从一个经验丰富的开发人员的角度来看这一切都不可能,那又有什么意义呢

  • 我研究了Jenkins插件开发,就我的目的而言,插件似乎不是我想要的。我这样假设对吗

总之,以下是我所有关于开发该项目的研究、冲突和问题:

1) 经过一些研究,我了解到我可以通过Jenkins的RESTAPI访问我需要的度量。然而,似乎没有太多的文档或教程显示如何连接到API并实际使用它来提取所需的数据(请记住,这是我第一次听说REST API,所以对我来说是相当新的;我遵循了一些使用不同API的示例,但我很难将它们应用到Jenkins API中。如果有人能够向Jenkins API解释这一点并提供详细信息,我将不胜感激)

我还知道,这一步将包括通过Groovy或Python等脚本语言进行编程,以查询Jenkins和检索JSON,但我对这两种语言以及如何使用这两种语言都不熟悉。有没有人有什么资源可以教我仅仅为了本专业的目的而需要知道的东西gram?我可以用另一种语言(如JS或Java)编写这个程序吗

下一步——我知道接下来的步骤是以某种方式将JSON格式解析成我可以使用和显示的格式,但同样——由于没有使用REST API或脚本语言的经验,我非常迷茫。我甚至不知道如何操作链接来过滤我特别想要的字段(例如,我看到一些人在API链接的末尾使用了
tree=builds…等
的约定,但我不知道他们从哪里知道这甚至是可能的…这是在哪里记录的?我甚至不能简单地让链接过滤我想看的东西..)我想这一步就像查找某种JSON解析方法一样简单,但我不能肯定

2) 一旦检索到JSON格式并解析了所需的信息,我需要将其写入一个文件(很可能是CSV逗号分隔值)可以轻松导入Excel的格式。我根本不知道如何继续执行此步骤。但从我的研究来看,显然这不是我应该担心的步骤,因为肯定会有Groovy软件包处理此问题(不管这意味着什么……一位同事刚刚告诉我这件事,并假设我能弄明白就把它注销了,但我真的一点也不知道他是什么意思)。我该如何找到一个符合我需要的软件包?(或者我相信软件包是为这个目的而存在的,这是正确的吗?)

(三)由于这些数据需要随着时间的推移而持久化,我可能需要找到一种方法将其保存到一个文件或数据库中,该文件或数据库可以在每次运行脚本时进行更新。到目前为止,这是该过程中最令人困惑的步骤之一,我根本不知道如何进行。我应该自己在某个地方设置一些数据库,还是请求数据库空间omewhere在公司?每次运行脚本时,我将如何将其保存到文件中?如果我理解正确,这是否意味着每次都需要有人手动执行我的程序来更新它?我将如何实现此过程的自动化


我觉得自己像是在喝消防水龙带里的水,需要尽可能多的帮助。感谢您花时间阅读我的长篇帖子,我感谢您的帮助!

这是一个有趣的项目,我觉得您走上了正确的道路

是否有可能在一周内学会并应用这些知识

嗯。我想这取决于结果的质量。但我也觉得你通过研究问题已经做得很好了。你应该明确你的结果将是解决方案的开始,并且你应该记录你的解决方案和决定(就像你上面做的那样)这样别人就可以接你的工作了。但不要放弃

我研究了Jenkins插件开发,就我的目的而言,插件似乎不是我想要的。我的假设正确吗

我也这么认为。RESTAPI方法听起来很合理

我可以用JS或Java等其他语言编写这个程序吗

是的,好吧,几乎任何语言都可以使用。但是Groovy是解决这类问题的好选择。大约95%的Java代码都是Groovy代码……所以你可以使用你的Java知识来编写Groovy,并加入一些Groovy的快捷方式