核心功能
chart-image 是一款面向服务器环境优化的图表生成工具,基于 Vega-Lite 生成 PNG 图表。核心价值在于零依赖重型基础设施:无需 Puppeteer、无需 Chrome、无需 Canvas 原生编译,仅依赖 Sharp 预构建二进制文件。
显著优点
| 特性 | 优势 |
|------|------|
| **部署友好** | 仅 ~15MB 依赖,对比 Puppeteer 方案 400MB+ |
| **冷启动快** | <500ms 生成图表,无浏览器预热延迟 |
| **离线可用** | 零外部 API 调用,纯本地计算 |
| **图表丰富** | 线形/柱状/面积/饼图/K 线/热力图/多系列/堆叠/双轴 |
| **监控场景优化** | 内置 `--show-change`、`--focus-recent`、`sparkline` 等告警专用模式 |
局限性与风险
1. 功能边界:依赖 Vega-Lite 语法,复杂自定义图表需手写 JSON spec
2. 数据规模:未明确说明大数据集性能上限,超大规模数据可能需预处理
3. 格式限制:输出为 PNG/SVG,不支持交互式图表(如网页 hover)
4. 时区假设:自动暗黑模式基于以色列时间(20:00-07:00),非用户本地时区
适用人群
- 运维/监控场景:快速生成告警配图、指标趋势图
- Bot/自动化系统:Discord/Telegram 机器人嵌入图表
- 资源受限环境:Fly.io 免费 tier、Docker 轻量容器
- 离线/合规场景:无法调用 QuickChart.io 等外部 API 的企业环境
常规风险
- 输入注入:
--data接收 JSON 字符串,需确保上游数据已净化 - 文件路径:
--output支持任意路径,建议限制写入/data/clawd/tmp/ - 资源消耗:高频调用需考虑 Sharp 图像处理的 CPU/内存占用