
如果你使用 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/concourse/concourse%E4%B8%AD%E8%BF%90%E8%A1%8Chttps://github.com/hellofresh/kangal%E8%B4%9F%E8%BD%BD%E6%B5%8B%E8%AF%95%E3%80%82
proxy_host:可选。Kangal代理的主机名。phase:可选。检查资源时用于过滤的阶段。tags:可选。YAML格式的标签列表。示例:
yamlresources: - name: my-load-tests type: kangal icon: nuke source: proxy_host: kangal-proxy.tld tags: team: platform department: tech plan: user-registration
check:检查负载测试从[***] API返回负载测试列表,并根据source.phase和source.tags过滤。
in:获取负载测试从[***]{load-test-name} API返回所选负载测试的数据。
参数
report:设为true以生成report.json文件并将报告导出到环境变量。环境变量
将生成包含以下变量的env文件:
bashexport LOAD_TEST_NAME=loadtest-running-orangutan export LOAD_TEST_TYPE=JMeter export LOAD_TEST_DISTRIBUTED_PODS=6 export LOAD_TEST_PHASE=finished export LOAD_TEST_TAGS=plan:user-registration,team:platform,department:tech export LOAD_TEST_TIMESTAMP=1604054807914 export LOAD_TEST_TIMESTAMP_60MIN_BEFORE=1604051207914 export LOAD_TEST_TIMESTAMP_45MIN_BEFORE=1604052107914 export LOAD_TEST_TIMESTAMP_30MIN_BEFORE=1604053007914 export LOAD_TEST_TIMESTAMP_15MIN_BEFORE=1604053907914 export LOAD_TEST_TIMESTAMP_15MIN_AFTER=1604055707914 export LOAD_TEST_TIMESTAMP_30MIN_AFTER=1604056607914 export LOAD_TEST_TIMESTAMP_45MIN_AFTER=1604057507914 export LOAD_TEST_TIMESTAMP_60MIN_AFTER=1604058407914 export LOAD_TEST_DATE_60MIN_BEFORE=2020-10-30T09:46:47Z export LOAD_TEST_DATE_45MIN_BEFORE=2020-10-30T10:01:47Z export LOAD_TEST_DATE_30MIN_BEFORE=2020-10-30T10:16:47Z export LOAD_TEST_DATE_15MIN_BEFORE=2020-10-30T10:31:47Z export LOAD_TEST_DATE_15MIN_AFTER=2020-10-30T11:01:47Z export LOAD_TEST_DATE_30MIN_AFTER=2020-10-30T11:16:47Z export LOAD_TEST_DATE_45MIN_AFTER=2020-10-30T11:31:47Z export LOAD_TEST_DATE_60MIN_AFTER=2020-10-30T11:46:47Z export LOAD_TEST_DATE_MS_60MIN_BEFORE=2020-10-30T09:46:47.000Z export LOAD_TEST_DATE_MS_45MIN_BEFORE=2020-10-30T10:01:47.000Z export LOAD_TEST_DATE_MS_30MIN_BEFORE=2020-10-30T10:16:47.000Z export LOAD_TEST_DATE_MS_15MIN_BEFORE=2020-10-30T10:31:47.000Z export LOAD_TEST_DATE_MS_15MIN_AFTER=2020-10-30T11:01:47.000Z export LOAD_TEST_DATE_MS_30MIN_AFTER=2020-10-30T11:16:47.000Z export LOAD_TEST_DATE_MS_45MIN_AFTER=2020-10-30T11:31:47.000Z export LOAD_TEST_DATE_MS_60MIN_AFTER=2020-10-30T11:46:47.000Z
bashexport LOAD_TEST_REPORT_APDEX_OVERALL_APDEX=0.5 export LOAD_TEST_REPORT_APDEX_OVERALL_TOLERATION_THRESHOLD=200 export LOAD_TEST_REPORT_APDEX_OVERALL_FRUSTRATION_THRESHOLD=500 export LOAD_TEST_REPORT_APDEX_OVERALL_LABEL=Total export LOAD_TEST_REPORT_APDEX_ITEMS_0_APDEX=0.5 export LOAD_TEST_REPORT_APDEX_ITEMS_0_TOLERATION_THRESHOLD=200 export LOAD_TEST_REPORT_APDEX_ITEMS_0_FRUSTRATION_THRESHOLD=500 export LOAD_TEST_REPORT_APDEX_ITEMS_0_LABEL=/register export LOAD_TEST_REPORT_STATISTICS_OVERALL_LABEL=Total export LOAD_TEST_REPORT_STATISTICS_OVERALL_NUM_SAMPLES=160780 export LOAD_TEST_REPORT_STATISTICS_OVERALL_KO=11 export LOAD_TEST_REPORT_STATISTICS_OVERALL_ERROR_RATE=0.01 export LOAD_TEST_REPORT_STATISTICS_OVERALL_AVERAGE=2105.69 export LOAD_TEST_REPORT_STATISTICS_OVERALL_MIN=5 export LOAD_TEST_REPORT_STATISTICS_OVERALL_MAX=64165 export LOAD_TEST_REPORT_STATISTICS_OVERALL_90TH_PERCENTILE=4186.9 export LOAD_TEST_REPORT_STATISTICS_OVERALL_95TH_PERCENTILE=7783.85 export LOAD_TEST_REPORT_STATISTICS_OVERALL_99TH_PERCENTILE=12995.98 export LOAD_TEST_REPORT_STATISTICS_OVERALL_THROUGHPUT=476.55 export LOAD_TEST_REPORT_STATISTICS_OVERALL_RECEIVED=201.65 export LOAD_TEST_REPORT_STATISTICS_OVERALL_SENT=104.92 export LOAD_TEST_REPORT_STATISTICS_ITEMS_0_LABEL=/register export LOAD_TEST_REPORT_STATISTICS_ITEMS_0_NUM_SAMPLES=160780 export LOAD_TEST_REPORT_STATISTICS_ITEMS_0_KO=11 export LOAD_TEST_REPORT_STATISTICS_ITEMS_0_ERROR_RATE=0.01 export LOAD_TEST_REPORT_STATISTICS_ITEMS_0_AVERAGE=2105.69 export LOAD_TEST_REPORT_STATISTICS_ITEMS_0_MIN=5 export LOAD_TEST_REPORT_STATISTICS_ITEMS_0_MAX=64165 export LOAD_TEST_REPORT_STATISTICS_ITEMS_0_90TH_PERCENTILE=4186.9 export LOAD_TEST_REPORT_STATISTICS_ITEMS_0_95TH_PERCENTILE=7783.85 export LOAD_TEST_REPORT_STATISTICS_ITEMS_0_99TH_PERCENTILE=12995.98 export LOAD_TEST_REPORT_STATISTICS_ITEMS_0_THROUGHPUT=476.55 export LOAD_TEST_REPORT_STATISTICS_ITEMS_0_RECEIVED=201.65 export LOAD_TEST_REPORT_STATISTICS_ITEMS_0_SENT=104.92 export LOAD_TEST_REPORT_ERRORS_ITEMS_0_ERROR_TYPE=connect timed out export LOAD_TEST_REPORT_ERRORS_ITEMS_0_NUM_ERRORS=2 export LOAD_TEST_REPORT_ERRORS_ITEMS_0_PERCENT_IN_ERRORS=18.18 export LOAD_TEST_REPORT_ERRORS_ITEMS_0_PERCENT_IN_SAMPLES=0 export LOAD_TEST_REPORT_ERRORS_ITEMS_1_ERROR_TYPE=504/GATEWAY_TIMEOUT export LOAD_TEST_REPORT_ERRORS_ITEMS_1_NUM_ERRORS=4 export LOAD_TEST_REPORT_ERRORS_ITEMS_1_PERCENT_IN_ERRORS=36.36 export LOAD_TEST_REPORT_ERRORS_ITEMS_1_PERCENT_IN_SAMPLES=0 export LOAD_TEST_REPORT_ERRORS_ITEMS_2_ERROR_TYPE=Non HTTP response code: java.net.SocketTimeoutException/Non HTTP response message: Read timed out export LOAD_TEST_REPORT_ERRORS_ITEMS_2_NUM_ERRORS=5 export LOAD_TEST_REPORT_ERRORS_ITEMS_2_PERCENT_IN_ERRORS=45.45 export LOAD_TEST_REPORT_ERRORS_ITEMS_2_PERCENT_IN_SAMPLES=0
报告示例
json{ "apdex": { "overall": { "apdex": "0.5022484139818385", "toleration_threshold": "200", "frustration_threshold": "500", "label": "Total" }, "items": [ { "apdex": "0.5022484139818385", "toleration_threshold": "200", "frustration_threshold": "500", "label": "/register" } ] }, "statistics": { "overall": { "label": "Total", "num_samples": "160780", "ko": "11", "error_rate": "0.006841646971016296", "average": "2105.686049259857", "min": "5", "max": "64165", "90th_percentile": "4186.9000000000015", "95th_percentile": "7783.850000000002", "99th_percentile": "12995.980000000003", "throughput": "476.55180181515317", "received": "201.64581964027423", "sent": "104.91854895285611" }, "items": [ { "label": "/register", "num_samples": "160780", "ko": "11", "error_rate": "0.006841646971016296", "average": "2105.686049259857", "min": "5", "max": "64165", "90th_percentile": "4186.9000000000015", "95th_percentile": "7783.850000000002", "99th_percentile": "12995.980000000003", "throughput": "476.55180181515317", "received": "201.64581964027423", "sent": "104.91854895285611" } ] }, "errors": { "overall": null, "items": [ { "error_type": "connect timed out", "num_errors": "2", "percent_in_errors": "18.181818181818183", "percent_in_samples": "0.0012439358129120537" }, { "error_type": "504/GATEWAY_TIMEOUT", "num_errors": "4", "percent_in_errors": "36.36363636363637", "percent_in_samples": "0.0024878716258241074" }, { "error_type": "Non HTTP response code: java.net.SocketTimeoutException/Non HTTP response message: Read timed out", "num_errors": "5", "percent_in_errors": "45.45454545454545", "percent_in_samples": "0.0031098395322801346" } ] } }
out:运行新的负载测试参数
plan:负载测试文件的路径。data:负载测试数据的路径。pods:负载测试的分布式Pod数量。overwrite:是否覆盖已存在的负载测试,可选值true或false。type:负载测试类型。可选参数
vars:环境变量文件的路径。这些参数将用于通过以下API调用创建负载测试:
负载测试将被标记为source配置中的tags加上当前纳秒级时间戳(用于排序版本)。
shellcurl -X POST http://${KANGAL_PROXY_ADDRESS}/load-test \ -H 'Content-Type: multipart/form-data' \ -F distributedPods=${pods} \ -F testFile=@${plan} \ -F testData=@${data} \ -F tags=${tags} \ -F type=${type} \ -F overwrite=${overwrite} \ -F envVars=@${vars}
yamlresource_types: - name: kangal type: docker-image source: repository: nhatthm/concourse-kangal tag: latest resources: - name: my-load-tests type: kangal icon: nuke source: tags: team: platform department: tech plan: user-registration groups: - name: load-tests jobs: - my-load-tests jobs: - name: my-load-tests public: false serial: true plan: # 准备testplan.jmx和testdata.csv # # 例如: # 这些任务的输出是load-tests/testplan.jmx和load-tests/testdata.csv # # - in_parallel: # - get: source-code # attempts: ((default_attempts)) # timeout: ((default_timeout)) # resource: master-source-code # # - get: every-4am # timeout: ((default_timeout)) # trigger: true # # - task: prepare # timeout: ((default_timeout)) # file: source-code/ci/tasks/prepare-load-tests.yml # params: # ENV: live # LOAD_TEST_FILE: testplan.template.jmx - put: run resource: my-load-tests params: plan: load-tests/testplan.jmx data: load-tests/testdata.csv vars: load-tests/envVars.csv pods: "9"
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务