【发布时间】:2020-04-28 17:34:59
【问题描述】:
我想在 influxdb 中明智地获取每个构建和父文件夹的舞台名称并显示在 grafana 仪表板上。
我正在使用 InfluxDB 收集其他 jenkins 构建指标,但不支持内置的阶段名称,因此我为阶段名称创建了 customData,因此无论哪个阶段构建将解析,它都会收集阶段名称并发送到 influxdb我得到如下数据。
time build_number build_time project_name project_name_1 project_path project_path_1 stage1 stage2 stage3 stage4 stage5 stage6 stage7 stage8
---- ------------ ---------- ------------ -------------- ------------ -------------- ------ ------ ------ ------ ------ ------ ------ ------
1588084985624000000 3 19824 TestPetclinic TestPetclinic TestFolder/TestPetclinic TestFolder/TestPetclinic Checkout SCM Publish to InfluxDB petclinic
1588085162281000000 4 38600 testPipeline testPipeline petclinic/testPipeline petclinic/testPipeline Get application version Send Parameters To Spinnaker Build Publish to InfluxDB petclinic
1588085231934000000 4 38785 TestPetclinic TestPetclinic TestFolder/TestPetclinic TestFolder/TestPetclinic Get application version Send Parameters To Spinnaker Build Publish to InfluxDB petclinic
1588085356705000000 5 3616 TestPetclinic TestPetclinic TestFolder/TestPetclinic TestFolder/TestPetclinic Checkout SCM Publish to InfluxDB petclinic
1588085797787000000 7 41916 TestPetclinic TestPetclinic TestFolder/TestPetclinic TestFolder/TestPetclinic Checkout SCM Get application version Publish to InfluxDB petclinic
1588086095058000000 10 81730 TestPetclinic TestPetclinic TestFolder/TestPetclinic TestFolder/TestPetclinic Checkout SCM Get application version Publish to InfluxDB TestFolder
1588087475800000000 11 43199 TestPetclinic TestPetclinic TestFolder/TestPetclinic TestFolder/TestPetclinic Checkout SCM Get application version Publish to InfluxDB TestFolder
1588087564498000000 12 18748 TestPetclinic TestPetclinic TestFolder/TestPetclinic TestFolder/TestPetclinic Checkout SCM Get application version Publish to InfluxDB TestFolder
由此我可以轻松地在每个构建方面(工作方面)获取数据,但在获取数据文件夹方面遇到困难。
下面的屏幕截图来自 grafana,它显示了每个作业的明智数据,计算每个作业在每个阶段解析了多少次
但就像我提到的那样,不明智地获取数据文件夹。因此,我也在解析文件夹内每个作业中的硬编码值,例如上表数据中的最后一列。
Folder Name: abc > Job 1 contains custom data field key: stage8 value: "abc"
Folder Name: abc > Job 2 contains custom data field key: stage8 value: "abc"
Folder Name: xyz > Job 1 contains custom data field key: stage8 value: "xyz"
Folder Name: xyz > Job 2 contains custom data field key: stage8 value: "xyz"
通过它,我得到了额外的 stage8,每个文件夹名称都有 2 个不同的值。
接下来在 grafana 中,我正在尝试创建查询,以获取预期的数据,例如
stage8 Checkout SCM Get application version Send Parameters To Spinnaker Build Unit Test & Publish Report Jacoco
petclinic 14 15 8 7 4 3
TestFolder 11 12 9 8 8 8
但是有了这个查询
SELECT count("stage1") as "Checkout SCM", count("stage2") as "Get application version" , count("stage3") as "Send Parameters To Spinnaker", count("stage4") as "Build", count("stage5") as "Unit Test & Publish Report", count("stage6") as "Jacoco" FROM "jenkins_custom_data" GROUP BY "stage8"
我没有得到预期的表格,而是将两个值组合在一起,例如
stage8 Checkout SCM Get application version Send Parameters To Spinnaker Build Unit Test & Publish Report Jacoco
23 27 17 15 12 11
当我尝试在 InfluxDB 中运行此查询时出现错误
ERR: mixing aggregate and non-aggregate queries is not supported
请告知,我们如何将多个值分组并显示为表格中的行
谢谢。
【问题讨论】:
-
为什么这被标记为influx和MySQL?一个答案是 MySQL,它可能不适用于涌入。
-
@hypernick 是的,你是对的,让我删除 mysql,我最初没有看到流入的 db 类型与 mysqul 相同。但是由于查询不起作用并且已经研究过,因此两个数据库都是分开的,抱歉。删除了 mysql 标签。