apache/skywalking-cliApache SkyWalking CLI(命令行界面)是Apache SkyWalking的官方命令行交互工具,作为浏览器GUI的替代方案,供用户或运维团队通过命令行与SkyWalking进行交互。该工具基于SkyWalking GraphQL查询协议开发,功能与GUI一致。
自0.9.0版本起,SkyWalking CLI提供Docker镜像以简化部署与使用流程。同时,为方便开发者测试最新功能,项目向GitHub容器 registry推送快照镜像(非Apache官方发布,仅用于测试,禁止在生产环境使用)。
swctl help命令获取详细使用说明及示例。apache/skywalking-cli镜像。ghcr.io/apache/skywalking-cli/skywalking-cli测试新功能。shelldocker pull apache/skywalking-cli:latest
通过docker run直接执行CLI命令,示例如下:
shell# 列出所有服务 docker run -it --rm apache/skywalking-cli service ls # 查询特定服务指标(假设服务名为"product-service") docker run -it --rm apache/skywalking-cli metrics get --service-name product-service --metric-name service_resp_time
-it:交互式终端,支持命令行输入。--rm:命令执行后自动删除容器,避免残留。shell# 拉取快照镜像 docker pull ghcr.io/apache/skywalking-cli/skywalking-cli:latest # 运行快照镜像命令 docker run -it --rm ghcr.io/apache/skywalking-cli/skywalking-cli service ls
如需与SkyWalking OAP服务联动(如连接远程OAP服务器),可通过docker-compose.yml配置网络与环境变量:
yamlversion: '3.8' services: skywalking-cli: image: apache/skywalking-cli:latest command: service ls # 执行的CLI命令 environment: - SW_OAP_URL=[***] # 连接OAP服务的地址(需与OAP容器网络互通) networks: - skywalking-network # 与OAP服务共享网络 networks: skywalking-network: external: true # 假设已存在SkyWalking OAP所在网络
启动命令:
shelldocker-compose up
除Docker外,CLI还支持以下安装方式(详情参见官方文档):
make命令编译(需Go环境)。CLI需连接SkyWalking OAP服务以执行操作,默认连接本地OAP(http://localhost:***)。如需连接远程OAP,可通过以下方式指定:
shelldocker run -it --rm apache/skywalking-cli --oap-url [***] service ls
shelldocker run -it --rm -e SW_OAP_URL=[***] apache/skywalking-cli service ls
若OAP启用认证,需通过--auth-token参数或SW_AUTH_TOKEN环境变量传入令牌:
shelldocker run -it --rm -e SW_AUTH_TOKEN=your-token apache/skywalking-cli service ls
CLI支持bash与PowerShell自动补全,可通过容器内命令生成补全脚本。
shell# 生成补全脚本并配置 docker run --rm apache/skywalking-cli completion bash > swctl_bash_completion sudo cp swctl_bash_completion /etc/bash_completion.d/swctl echo "export PROG=swctl" >> ~/.bashrc source ~/.bashrc
powershell# 生成补全脚本并配置(需管理员权限) docker run --rm apache/skywalking-cli completion powershell >> $profile Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
通过help命令获取详细使用说明:
shell# 查看全局帮助 docker run --rm apache/skywalking-cli help # 查看特定子命令帮助(如service list) docker run --rm apache/skywalking-cli service help list
在GitHub Actions部署流程中嵌入CLI,上报服务部署事件至SkyWalking:
yamljobs: deploy: runs-on: ubuntu-latest steps: - name: 部署服务并上报事件 uses: docker://apache/skywalking-cli:latest with: args: event report --service product-service --instance asia-southeast --message "Deploy v1.2.0" env: SW_OAP_URL: ${{ secrets.OAP_URL }} SW_AUTH_TOKEN: ${{ secrets.OAP_AUTH_TOKEN }}
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务