SuperAPI AI 工具集

grafana-plugin-scaffolding

编程与开发

查看项目

更新于 10-16 10:04

技能介绍

Grafana Plugin Scaffolding 技能用于自动化创建 Grafana 插件项目,基于官方 @grafana/create-plugin 脚手架工具。支持 Grafana 版本为 v12.x 及以上。

用途 该技能负责项目脚手架搭建、开发环境设置,以及所有插件类型的初始配置。

前置条件 在脚手架搭建前需验证以下工具:Node.js(需 v18+,用 node --version 检查)、npm(用 npm --version 检查)、Docker(可选,用于本地开发,用 docker --version 检查)。若缺少前置条件,可引导用户从相应官网安装。

使用方式 第 1 步:验证前置条件。第 2 步:使用官方工具脚手架搭建,运行 npx @grafana/create-plugin@latest,工具会提示选择插件类型(panel、datasource、app、scenesapp)、组织名称、插件名称、是否包含后端。第 3 步:进入新插件目录 cd <orgName>-<pluginName>-<pluginType>,安装前端依赖 npm install,如为后端插件则安装 Go 依赖 go mod tidy。第 4 步:启动开发环境。选项 A 为 Docker 热重载(推荐),脚手架生成 docker-compose.yaml,可使用 docker compose watch 启动文件监听,或 docker compose up -d 标准启动,Grafana 地址为 http://localhost:3000,登录 admin / admin;docker compose watch 下前端 dist/ 更改自动同步,后端二进制更改触发容器重启。选项 B 为手动方式:npm run dev 构建并监听前端,mage -v 构建后端,并在 grafana.ini 中配置 plugins.allow_loading_unsigned_plugins。第 5 步:验证插件安装,访问 http://localhost:3000,进入 Administration > Plugins,搜索插件名并确认可添加至仪表板。

主要能力与插件类型工作流 面板插件:选择 panel,后端选 No。脚手架后编辑 src/components/SimplePanel.tsx 可视化逻辑、src/types.ts 面板选项接口、src/module.ts 选项配置。 数据源插件(仅前端):选择 datasource,后端选 No。编辑 src/datasource.ts 查询逻辑、src/ConfigEditor.tsx 连接设置、src/QueryEditor.tsx 查询构建界面。 数据源插件(带后端):选择 datasource,后端选 Yes。编辑 pkg/plugin/datasource.go 的 Go 查询逻辑,实现 QueryData 和 CheckHealth 方法,用 mage -v 构建后端。 应用插件:选择 app,后端可选。编辑 src/pages/ 应用页面,更新 plugin.json includes 用于导航,添加 React 组件页面。

开发命令 包括 npm run dev(前端开发监听)、npm run build(前端生产构建)、mage -v(后端 Go 构建)、npm test(单元测试)、npx playwright test(E2E 测试,需 Grafana 运行)、npm run lint(代码检查)、npm run typecheck(类型检查)。

E2E 测试 脚手架包含基于 @grafana/plugin-e2e 和 Playwright 的 E2E 测试设置。运行 npx playwright install --with-deps chromium 安装浏览器,docker compose up -d 启动 Grafana,npx playwright test 运行测试,npx playwright test --ui 以 UI 模式调试。更多测试模式、fixtures 与 CI/CD 设置见 references/e2e-testing.md。

最佳实践 从简单功能开始再迭代;使用 Docker 保持团队环境一致;早期频繁测试;前端代码使用 TypeScript 类型安全;保持 @grafana/data、@grafana/ui、@grafana/runtime 版本对齐。

常见问题 插件不显示:检查 plugin.json 的 id 字段、Docker 卷挂载、npm run dev 是否无错误完成。后端插件错误:运行 mage -v 重建 Go 代码,检查 dist/ 中 plugin_start_linux_* 或 gpx_* 二进制,确认 plugin.json 有 "backend": true。开发服务器问题:清除浏览器缓存,docker compose down && docker compose up -d 重启,用 docker compose logs grafana 查看日志。

委派 对于复杂架构决策、插件设计模式或故障排查,可委派给 grafana-plugin-expert 智能体,其可通过 Context7 访问最新 SDK 文档。