
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
https://github.com/ViktorUJ/cks
本项目是一个小型HTTP服务器,能在响应中返回传入请求及元数据,包括发送者的IP地址、所有请求参数和头信息。服务器配置可通过环境变量修改,同时支持CPU和内存负载测试,并提供Prometheus格式指标。运行中的服务器参数可通过API进行修改。
该服务器可作为Docker容器或Kubernetes资源运行(支持x86和ARM平台),也可作为编译后的二进制文件运行或从源码编译。
适用于API测试、服务监控、负载测试、容器编排测试等场景,尤其适合SRE、开发人员进行服务调试和性能测试。
运行基础HTTP ping-pong服务器
bashkubectl run test --image viktoruj/ping_pong
运行自定义服务器名称的HTTP ping-pong服务器
bashkubectl run test --image viktoruj/ping_pong --env SERVER_NAME=pingPongServer
运行serverName等于podName的HTTP ping-pong服务器
bashkubectl run test --image viktoruj/ping_pong --env ENABLE_DEFAULT_HOSTNAME=false
运行带内存使用配置的HTTP ping-pong服务器
bashkubectl run test --image viktoruj/ping_pong --env MEMORY_USAGE_PROFILE='5=60 20=60 1024=360 ' --env ENABLE_LOAD_MEMORY=true
运行带CPU和内存负载及日志的HTTP ping-pong服务器(使用2个CPU核心)
bashkubectl run test --image viktoruj/ping_pong --env CPU_USAGE_PROFILE='1=400=1=60 1=4=1=60 10=1=4=60' --env ENABLE_LOAD_CPU=true --env ENABLE_LOG_LOAD_CPU=true --env CPU_MAXPROC=2 --env MEMORY_USAGE_PROFILE='5=60 20=60 1024=360 ' --env ENABLE_LOAD_MEMORY=true --env ENABLE_LOG_LOAD_MEMORY=true
运行带10秒启动延迟的HTTP ping-pong服务器
bashkubectl run test --image viktoruj/ping_pong --env DELAY_START=10
运行带3秒响应延迟和10个工作线程的HTTP ping-pong服务器
bashkubectl run test --image viktoruj/ping_pong --env RESPONSE_DELAY=3000 --env MAX_RESPONSE_WORKER=10
Docker容器
基本运行命令:
bashdocker run -d -p 8080:8080 docker.xuanyuan.run/viktoruj/ping_pong
镜像标签:
latest:基于scratch镜像,仅包含二进制文件 Dockerfilealpine:基于alpine镜像,包含二进制文件和工具 Dockerfile_alpinedebug:基于amazon/aws-cli镜像,包含工具 Dockerfile_debug_arm 和 Dockerfile_debug_x86所有镜像支持x86和ARM平台
Kubernetes
参见使用场景示例中的kubectl命令
二进制文件
下载链接:
在macOS上运行:
bashsudo xattr -d com.apple.quarantine ping-pong-darwin-amd64 sudo chmod +x ping-pong-darwin-amd64 ./ping-pong-darwin-amd64 # 或自定义服务器名称 SERVER_NAME=myCustomServer ./ping-pong-linux-amd64 # 检查服务器 curl 127.0.0.1:8080
在Linux上运行:
bashsudo chmod +x ping-pong-linux-amd64 ./ping-pong-linux-amd64 # 或自定义服务器名称 SERVER_NAME=myCustomServer ./ping-pong-linux-amd64 # 检查服务器 curl 127.0.0.1:8080
在Android上运行(使用Termux):
bashcp ping-pong-android-arm64 /data/data/com.termux/files/usr/bin/ chmod +x /data/data/com.termux/files/usr/bin/ping-pong-android-arm64 ping-pong-android-arm64
从源码编译
bashcd docker/ping_pong/app go mod tidy go run app.go # 或 go build app.go
| 环境变量 | 应用变量 | 是否可通过API设置 | 描述 |
|---|---|---|---|
SERVER_NAME | serverName | 是 | 服务器名称,默认值为ping_pong_server |
ENABLE_DEFAULT_HOSTNAME | enableDefaultHostName | 是 | 是否使用默认主机名(默认值="true") |
SRV_PORT | serverPort | 否 | 服务器运行端口 |
METRIC_PORT | metricPort | 否 | Prometheus格式指标端口,可通过{server_address}:{METRIC_PORT}/metrics查看当前指标 |
ENABLE_OUTPUT | enableOutput | 是 | 是否输出日志到stdout(默认值="true") |
LOG_PATH | logPath | 是 | 日志文件路径,将日志写入${LOG_PATH}(默认值为空,不输出到文件) |
ENABLE_LOAD_MEMORY | enableLoadMemory | 是 | 是否启用内存负载(默认值=false) |
MEMORY_USAGE_PROFILE | memoryProfileStr | 是 | 内存使用配置,格式为内存大小MB=持续时间秒,示例:5=10 7=60 1024=360 |
ENABLE_LOG_LOAD_MEMORY | enableLogLoadMemory | 是 | 是否记录内存负载日志 |
ENABLE_LOAD_CPU | enableLoadCpu | 是 | 是否启用CPU负载(默认值=false) |
ENABLE_LOG_LOAD_CPU | enableLogLoadCpu | 是 | 是否记录CPU负载日志 |
CPU_USAGE_PROFILE | cpuProfileStr | 是 | CPU使用配置,格式为迭代次数(百万)=等待毫秒=协程数=持续时间秒,示例:10=1=1=30 1=400=1=60 |
CPU_MAXPROC | cpuMaxProc | 是 | GOMAXPROCS值(默认值=1),指定使用的CPU核心数 |
DELAY_START | parsedDelay | 否 | 启动延迟时间(秒),在应用启动前等待指定时间(默认值=0),适用于测试应用的缓慢启动和启动探针 |
RESPONSE_DELAY | responseDelay | 是 | 响应延迟时间(毫秒) |
MAX_RESPONSE_WORKER | maxResponseWorker | 是 | 最大响应工作线程数 |
服务器提供以下API端点:
/ping-pong-api/getVar - 获取所有服务器变量/ping-pong-api/setVar - 设置服务器变量/ping-pong-api/osInfo - 获取系统信息/ping-pong-api/panic - 模拟应用崩溃/ping-pong-api/getMetric - 获取性能指标API使用示例
获取变量
bashcurl {ping-pong服务器IP}:8080/ping-pong-api/getVar -s | jq
响应示例:
json{ "cpuMaxProc": 2, "cpuProfileStr": "1000=1=1=30", "delayStart": 0, "enableDefaultHostName": "true", "enableLoadCpu": "true", "enableLoadMemory": "false", "enableLogLoadCpu": "true", "enableLogLoadMemory": "false", "enableOutput": "true", "hostName": "ping_pong_server", "logPath": "", "memoryProfiles": null, "serverName": "ping_pong_server" }
设置变量
bashcurl -X POST "http://{ping-pong服务器IP}:8080/ping-pong-api/setVar" -H "Content-Type: application/json" -d '{"enableLoadCpu":"true", "cpuProfileStr":"1000=1=1=30","cpuMaxProc":2}' -s | jq
响应示例:
json{ "changes": { "cpuMaxProc": { "new": "2", "old": "1" }, "cpuProfileStr": { "new": "1000=1=1=30", "old": "1000=1=2=30" }, "enableLoadCpu": { "new": "true", "old": "false" } }, "status": "Variables updated. Handlers reloaded." }
获取系统信息
bashcurl {ping-pong服务器IP}:8080/ping-pong-api/osInfo -s | jq
响应示例(部分):
json{ "architecture": { "architecture": "amd64", "goamd64": "v4", "goarm": "" }, "cpu": { "cores": [ { "core": 1, "unit": "percentage", "usage": 13.7 }, { "core": 2, "unit": "percentage", "usage": 7.6 } ] } }
获取性能指标
bashcurl {ping-pong服务器IP}:8080/ping-pong-api/getMetric -s | jq
响应示例:
json{ "goroutines": 6, "requests_per_minute": 0, "requests_per_second": 0, "requests_total": 0 }
模拟应用崩溃
bashcurl {ping-pong服务器IP}:8080/ping-pong-api/panic -s
应用日志输出:
Panic occurred: Test panic exit status 1
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务