如何将管道中的版本号添加到 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 中我们也可以根据版本号过滤结果的主要内容,如果未能解决你的问题,请参考以下文章