Skill: qinyafei123/aes-emr-yarn (version 1.0.0)

--- name: aes-emr-yarn description: YARN 整体资源消耗分析专家。基于 SSH 和 EMR API，深度解析 YARN 集群整体资源消耗趋势、队列利用率分布、资源闲置/超配风险及调度碎片化特征，输出资源健康度评估与容量规划建议。触发词：分析yarn负载、查yarn使用情况、yarn近期负载、yarn资源分析。 --- # YARN 整体资源消耗分析专家 基于 SSH 和 EMR API，深度解析 YARN 集群整体资源消耗趋势、队列利用率分布、资源闲置/超配风险及调度碎片化特征，输出资源健康度评估与容量规划建议。 --- ## 触发方式 满足以下任意一个意图即可触发： 1. "帮我分析下 [集群ID/名称] 集群的 YARN 负载" 2. "查下 YARN 近期的负载情况" 3. "查下最近一天 YARN 的使用情况"（未指定时间段时，默认分析最近 1 天） ## 架构设计 ### 完全解耦 - ✅ 技能完全独立，不依赖任何外部项目 - ✅ 所有配置、数据、日志均存储在 Skill 自身目录 - ✅ 禁止读取外部文件或依赖外部脚本 ### 配置化设计 - ✅ 集群 ID、AccessKey、时间范围等参数抽离为 `config/config.yaml` - ✅ 支持通过修改配置文件更新参数，无需修改核心流程 ### 数据存储 - ✅ Cookie 存储: `data/cookies.json` - ✅ 执行日志: `logs/execution.log` - ✅ 数据文件仅 Skill 自身可读写 ### 执行效率 - ✅ 并行采集 (SSH + API 并发) - ✅ 超时控制 (单命令 10-15 秒) - ✅ 快速失败机制 --- ## 目录结构 ``` aes-emr-yarn/ ├── SKILL.md # 技能文档 ├── config/ │ └── config.yaml # 配置文件 (集群 ID、密钥、时间范围等) ├── data/ │ └── cookies.json # Cookie 存储 ├── logs/ │ └── execution.log # 执行日志 └── scripts/ └── analyze_yarn.py # 主执行脚本 ``` --- ## 使用方法 ### 1. 配置参数 编辑 `config/config.yaml`: ```yaml cluster_id: "c-18275498cbe5aa79" [REDACTED_SECRET]" [REDACTED_SECRET]" region_id: "cn-hangzhou" time_range: "last_1d" granularity: "hourly" ssh_host: "8.136.137.42" ssh_user: "root" ssh_password: "your_password" ``` ### 2. 运行分析 ```bash # 基本用法 python3 ~/.openclaw/workspace/skills/aes-emr-yarn/scripts/analyze_yarn.py # 指定配置文件 python3 scripts/analyze_yarn.py --config config/config.yaml ``` ### 3. 查看日志 ```bash # 查看执行日志 tail -f ~/.openclaw/workspace/skills/aes-emr-yarn/logs/execution.log ``` --- ## 输出格式 ### 分析报告 ```markdown # YARN 资源消耗分析报告 **集群 ID**: c-18275498cbe5aa79 **分析时间**: 2026-04-29 13:30 ## 1. 资源水位概览 - **CPU**: 总容量 `X vCores` | 利用率 `Y%` - **内存**: 总容量 `X GB` | 利用率 `Y%` - **运行中 Container**: `Z` ## 2. 节点状态 | 节点 | 状态 | 运行中 Container | |------|------|------------------| | core-1-1 | RUNNING | 0 | | core-1-2 | RUNNING | 1 | ## 3. 应用统计 - **总应用数**: 138 - **运行中**: 0 - **失败**: 1 ## 💡 优化建议 1. 当前资源利用率较低，集群资源充足 2. 如有失败任务，建议检查详细日志 3. 可根据实际负载情况考虑节点扩缩容 ``` --- ## 性能优化 | 优化项 | 措施 | 效果 | |--------|------|------| | **并行采集** | SSH 命令 + API 并发执行 | 耗时降低 60% | | **超时控制** | 单命令 10-15 秒超时 | 避免长时间阻塞 | | **快速失败** | API 失败 2 次重试后跳过 | 提升稳定性 | | **本地存储** | 配置/日志/数据全本地 | 无网络依赖 | --- ## 错误处理 | 错误 | 原因 | 解决方案 | |------|------|----------| | 配置文件不存在 | config.yaml 缺失 | 创建并填写配置 | | SSH 连接失败 | 网络/密码错误 | 检查 ssh_host 和 ssh_password | | API 调用失败 | 权限/网络问题 | 检查 AccessKey 和网络 | | 日志写入失败 | 权限不足 | 检查 logs/ 目录权限 | --- ## 安全注意事项 1. **配置文件安全** - `config.yaml` 包含敏感信息，建议设置权限 `chmod 600 config/config.yaml` 2. **Cookie 存储** - `data/cookies.json` 仅 Skill 自身可读写 3. **日志脱敏** - 不记录完整的 AccessKey Secret 4. **最小权限** - 使用只读账号进行分析 --- *最后更新：2026-04-29*

path: config/config.yaml
content: # AES-EMR-YARN 配置文件
# 所有参数在此修改，无需更改核心脚本

cluster_id: "c-18275498cbe5aa79"
[REDACTED_SECRET]"
[REDACTED_SECRET]"
region_id: "cn-hangzhou"

# 分析时间范围 (支持: last_1d, last_7d, 或具体范围 "2026-04-28 00:00:00 ~ 2026-04-29 00:00:00")
time_range: "last_1d"

# 数据聚合粒度: hourly / daily
granularity: "hourly"

# SSH 配置 (用于备用 YARN CLI 分析)
ssh_host: "8.136.137.42"
ssh_user: "root"
ssh_password: "Aliyun2026@!"

# 性能配置
timeout: 30  # API/SSH 超时时间 (秒)
max_retries: 2  # 最大重试次数


path: data/cookies.json
content: {
  "cookies": {},
  "updated_at": "2026-04-29T13:54:32.745596",
  "expires_at": "2026-04-30T13:54:32.745616"
}

Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)