如何将管道中的版本号添加到 K6-InfluxDB-Grafana 堆栈中,以便在 grafana 中我们也可以根据版本号过滤结果

Posted

技术标签:

【中文标题】如何将管道中的版本号添加到 K6-InfluxDB-Grafana 堆栈中,以便在 grafana 中我们也可以根据版本号过滤结果【英文标题】:How to add release number from pipeline into K6-InfluxDB-Grafana stack so that in grafana we can filter results based on Release Number as well 【发布时间】:2022-01-15 04:53:42 【问题描述】:

我有已集成到 Azure 发布管道中的 K6- InfluxDB - Grafana 堆栈。 在 Grafana 中,我可以根据时间线过滤结果,因为 Influxdb 是一个时间序列数据库。但我也希望能够灵活地根据发布管道号过滤结果。有可能做到吗?我们可以将版本号作为环境变量传递吗?但是我如何处理版本号,如何将它集成到我的 k6 脚本或 Influxdb 中,以便 Grafana 可以读取它。

有什么建议吗?

【问题讨论】:

【参考方案1】:

我在负载测试中做了类似的事情。您可以在 options 对象中设置测试范围标签,或者如果使用场景,则为每个场景设置一个标签。标签值可以通过环境变量注入。

使用 InfluxDB 输出时,标签会自动添加到每个数据点。请注意时间序列的数量,这将创建。

export const options = 
  tags = 
    pipeline_id = __ENV.AZURE_PIPELINE_ID || 'unknown',
  ,
;

有场景:

export const options = 
  scenarios: 
    executor: '…',
    tags: 
      pipeline_id = __ENV.AZURE_PIPELINE_ID || 'unknown',
    ,
    …,
  ,
;

请注意,这两种选择中的一种就足够了,具体取决于您的用例。

然后,您可以使用 InfluxDB 数据源轻松地在 Grafana 仪表板中的标签“pipeline_id”上定义过滤器:

SELECT max("value") FROM "vus" WHERE ("pipeline_id" = '$pipeline_id') AND $timeFilter GROUP BY time($__interval) fill(none)

(或使用查询生成器)

【讨论】:

以上是关于如何将管道中的版本号添加到 K6-InfluxDB-Grafana 堆栈中,以便在 grafana 中我们也可以根据版本号过滤结果的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Google App Engine 中创建版本号

将版本号添加到 Windows 中的通用文件

如何自动将内部版本号添加到 Xcode ios 存档

如何比较 Python 中的版本号?

如何比较 Python 中的版本号?

从构建管道触发发布管道并传入内部版本号