Windows + Docker + k6 + InfluxDB + Grafana

📋 目录

  1. 环境准备
  2. [Docker 配置](#Docker 配置)
  3. [k6 安装](#k6 安装)
  4. 启动服务
  5. [配置 Grafana](#配置 Grafana)
  6. [运行 k6 测试](#运行 k6 测试)
  7. 查看测试结果
  8. 常见问题
  9. 快速命令参考

环境准备

1. 安装 Docker Desktop(Windows)

  1. 下载 Docker Desktop for Windows

  2. 启动 Docker Desktop

    • 确保 Docker Desktop 正在运行
    • 在系统托盘可以看到 Docker 图标
  3. 验证 Docker 安装

    docker --version

    docker compose version

    2. 安装 k6(Windows)

方法1:使用 Chocolatey(推荐)

ll

安装 Chocolatey(如果还没有)

Set-ExecutionPolicy Bypass -Scope Process -Force; System.Net.ServicePointManager::SecurityProtocol = System.Net.ServicePointManager::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

使用 Chocolatey 安装 k6

choco install k6#### 方法2:使用 Scoop

ell

安装 Scoop(如果还没有)

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

irm get.scoop.sh | iex

使用 Scoop 安装 k6

scoop install k6#### 方法3:手动安装

  1. 访问:https://k6.io/docs/getting-started/installation/
  2. 下载 Windows 版本
  3. 解压到某个目录(如 C:\k6
  4. 将目录添加到系统 PATH 环境变量
验证 k6 安装

k6 version---

Docker 配置

创建 docker-compose.yml

在项目目录下创建 docker-compose.yml 文件:

version: '3.8'

services:

influxdb:

image: influxdb:1.8

container_name: k6-influxdb

ports:

  • "8086:8086"

environment:

  • INFLUXDB_DB=k6

  • INFLUXDB_ADMIN_USER=admin

  • INFLUXDB_ADMIN_PASSWORD=admin123456

  • INFLUXDB_HTTP_AUTH_ENABLED=true

volumes:

  • influxdb-data:/var/lib/influxdb

healthcheck:

test: "CMD", "influx", "-version"

interval: 10s

timeout: 5s

retries: 5

grafana:

image: grafana/grafana:10.2.0

container_name: k6-grafana

ports:

  • "3000:3000"

environment:

  • GF_SECURITY_ADMIN_USER=admin

  • GF_SECURITY_ADMIN_PASSWORD=admin123456

  • GF_INSTALL_PLUGINS=

volumes:

  • grafana-data:/var/lib/grafana

depends_on:

influxdb:

condition: service_healthy

healthcheck:

test: "CMD-SHELL", "wget --no-verbose --tries=1 --spider http://localhost:3000/api/health \|\| exit 1"

interval: 10s

timeout: 5s

retries: 5

volumes:

influxdb-data:

grafana-data:### 配置说明

  • InfluxDB 1.8:使用 1.8 版本(兼容 k6)
  • 端口映射
    • InfluxDB: 8086
    • Grafana: 3000
  • 默认账号密码
    • InfluxDB: admin / admin123456
    • Grafana: admin / admin123456
  • 数据持久化:使用 Docker volumes 保存数据

启动服务

1. 启动 Docker 服务

在项目目录下执行:

启动服务(后台运行)

docker compose up -d

查看服务状态

docker compose ps

查看日志

docker compose logs -f### 2. 验证服务运行

检查 InfluxDB

l

检查容器状态

docker ps | findstr influxdb

测试连接

curl http://localhost:8086/ping#### 检查 Grafana

hell

检查容器状态

docker ps | findstr grafana

浏览器访问

http://localhost:3000### 3. 服务管理命令

启动服务

docker compose up -d

停止服务

docker compose down

重启服务

docker compose restart

查看日志

docker compose logs -f influxdb

docker compose logs -f grafana

删除所有数据(谨慎使用)

docker compose down -v---

配置 Grafana

1. 登录 Grafana

  1. 打开浏览器访问:http://localhost:3000
  2. 默认登录信息:
    • 用户名:admin
    • 密码:admin123456
  3. 首次登录会要求修改密码(可以跳过)

2. 配置 InfluxDB 数据源

步骤1:添加数据源
  1. 点击左侧菜单栏的 ⚙️ Configuration(配置图标)
  2. 选择 Data sources(数据源)
  3. 点击右上角的 Add data source(添加数据源)按钮
  4. 在搜索框中输入 InfluxDB 或直接选择 InfluxDB
步骤2:配置数据源参数

HTTP 设置:

  • URL : http://influxdb:8086
    • ⚠️ 重要:使用容器名 influxdb,不要用 localhost
    • 因为 Grafana 和 InfluxDB 在同一个 Docker 网络中

InfluxDB Details:

  • Database : k6
  • User : admin
  • Password : admin123456
  • HTTP Method : GET(默认)

Auth:

  • 保持默认设置,不需要额外配置
步骤3:保存并测试
  1. 滚动到页面底部
  2. 点击 Save & Test(保存并测试)按钮
  3. 应该看到绿色的成功提示:Data source is working

3. 导入 k6 仪表板

方法1:从 Grafana.com 导入(推荐)
  1. 点击左侧菜单栏的 📊 Dashboards(仪表板)
  2. 点击 Import(导入)
  3. Import via grafana.com 输入框中输入仪表板 ID:2587
  4. 点击 Load(加载)按钮
  5. Select a InfluxDB data source 下拉菜单中选择刚才创建的 InfluxDB 数据源
  6. 点击 Import(导入)按钮

运行 k6 测试

1. 基础测试(输出到控制台)

ershell

k6 run k6_login_test.js

2. 输出到 InfluxDB(用于 Grafana 可视化)

k6 run --out "influxdb=http://admin:admin123456@localhost:8086/k6" k6_login_test.js### 3. 压力测试(用于 pprof 分析)

k6 run --out "influxdb=http://admin:admin123456@localhost:8086/k6" k6_login_stress_test.js---

查看测试结果

1. 在 Grafana 中查看

  1. 打开浏览器访问:http://localhost:3000
  2. 登录 Grafana(admin / admin123456)
  3. 点击左侧菜单 Dashboards
  4. 选择导入的 k6 仪表板
  5. 刷新页面查看最新数据

2. 在终端查看

k6 会在终端输出详细的统计信息:

相关推荐
像风一样自由20207 小时前
从本地到公网:Windows 下使用 Cloudflare Quick Tunnel 与 Natapp 联调 FastAPI
windows·fastapi
冰封之寂8 小时前
Docker 资源管理终极指南:CPU、内存与 IO 的精细化控制
linux·运维·服务器·docker·云计算
9523610 小时前
Docker - 基础
运维·后端·docker·容器
Code_Ignis10 小时前
docker国内可用源(持续维护)
运维·docker·容器
2601_9609067213 小时前
科技“无人区”跋涉,难度高、不确定性大
windows·macos·pycharm·myeclipse
会飞的大鱼人13 小时前
一文搞懂 Java HashSet:把它想成游乐园里只允许一次入场的盖章名单
java·开发语言·windows
ziguo112215 小时前
C/C++ 错误处理全解:从 errno 到 C++ 异常
linux·c语言·c++·windows·visual studio
王维同学16 小时前
IFEO Debugger、VerifierDlls 与 SilentProcessExit 配置
c++·windows·安全·注册表
水中加点糖17 小时前
Java中使用远程PlayWright进行网页接口测试(附Docker部署方式)
java·docker·web测试·devtools·playwright·ai自动化测试
您^_^18 小时前
使用技巧(十一):Claude Code 最强审问官 —— grill-me 深度指南,装完先别写代码
人工智能·windows·个人开发·claudecode·deepseek v4 pro