You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在k6+InfluxDB+Grafana负载测试中单独可视化各端点测试结果?

问题:Grafana中无法查看k6每个端点的单独统计数据

已搭建基于k6、InfluxDB和Grafana的负载测试环境,目前所有端点的请求统计数据在Grafana中是聚合显示的,虽然每个端点有独立的k6测试结果文件,但无法单独查看每个端点的均值、最小值、最大值等数据。


现有配置

k6脚本

import http from 'k6/http';
import { sleep } from 'k6';

const config = JSON.parse(open("./"+__ENV.CONFIG_PATH+".json"));
const body = open("./"+__ENV.BODY_PATH+".json");

export const options = {
    stages: [
        { duration: '10s', target: 100 },
        { duration: '15s', target: 10 },
        { duration: '5s', target: 0 }
    ],
};

export default function () {
    http.request(__ENV.METHOD, [app base URL] + __ENV.API_PATH, body, config);
    sleep(1);
}

测试运行命令

k6 run -e METHOD=POST -e API_PATH="..." -e BODY_PATH="..." -e CONFIG_PATH="..." --out influxdb=http://localhost:8086/k6 load.js > [results filename]

解决方案

要实现每个端点的单独统计,核心是给每个请求添加端点标识标签,让InfluxDB区分不同端点的数据,再在Grafana中基于标签过滤查询。

1. 修改k6脚本,添加请求标签

在http.request调用中,通过tags字段给每个请求打上唯一的端点标签(直接用环境变量中的API_PATH作为标签值即可),修改后的脚本如下:

import http from 'k6/http';
import { sleep } from 'k6';

const config = JSON.parse(open("./"+__ENV.CONFIG_PATH+".json"));
const body = open("./"+__ENV.BODY_PATH+".json");
const endpointTag = __ENV.API_PATH;

export const options = {
    stages: [
        { duration: '10s', target: 100 },
        { duration: '15s', target: 10 },
        { duration: '5s', target: 0 }
    ],
};

export default function () {
    const requestConfig = {
        ...config,
        tags: {
            endpoint: endpointTag
        }
    };
    http.request(__ENV.METHOD, [app base URL] + __ENV.API_PATH, body, requestConfig);
    sleep(1);
}

修改后,k6会将endpoint标签与请求数据一同写入InfluxDB,每个端点的数据就有了唯一标识。

2. 修改Grafana面板查询,按端点过滤

  • 打开Grafana中显示聚合数据的面板,进入编辑模式
  • 创建端点变量:新增一个查询变量,数据源选择你的InfluxDB,查询语句为SHOW TAG VALUES FROM "http_req_duration" WITH KEY = "endpoint",变量会自动加载所有已测试的端点
  • 更新面板查询:在原有查询基础上添加过滤条件,比如WHERE "endpoint" =~ /$endpoint/(支持多选端点)或WHERE "endpoint" = '$endpoint'(单选端点)
  • 保存面板后,即可通过变量切换查看不同端点的单独统计数据

3. 验证数据

重新运行各端点的测试命令,待数据写入InfluxDB后,在Grafana中切换端点变量,确认能看到对应端点的均值、最小值、最大值等独立统计数据。


内容的提问来源于stack exchange,提问作者austinw

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 23:29:49