【问题标题】:Get multiple group wise data query from InfluxDB in Grafana从 Grafana 中的 InfluxDB 获取多组明智的数据查询
【发布时间】: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 标签。

标签: jenkins grafana influxdb


【解决方案1】:

我很惊讶,你有任何结果,mysql workbench 根本没有骗你的查询。

请咨询When to use single quotes, double quotes, and backticks in MySQL 了解更多关于单引号和反引号的信息

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`

例如https://www.db-fiddle.com/f/bVvbUy1rirBp5tD9Fq9J8X/3

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-06
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多