如何将管道中的版本号添加到 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

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

有什么建议吗?

我在负载测试中做了类似的事情。您可以在 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)

(或使用查询生成器)