Grafana开发者指南:从环境搭建到测试部署全流程

Grafana开发者指南:从环境搭建到测试部署全流程

grafana The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more. grafana 项目地址: https://gitcode.com/gh_mirrors/gr/grafana

前言

Grafana作为一款流行的开源数据可视化平台,其开发环境搭建和代码贡献流程对于开发者而言至关重要。本文将全面介绍Grafana项目的开发环境配置、代码构建、测试运行等核心内容,帮助开发者快速上手Grafana项目开发。

开发环境准备

基础依赖安装

在开始Grafana开发前,需要确保系统已安装以下基础工具:

  1. 版本控制工具:Git是必备的代码管理工具
  2. Go语言环境:Grafana后端使用Go语言开发,需安装指定版本的Go
  3. Node.js环境:前端开发需要LTS版本的Node.js,建议使用nvm等版本管理工具
  4. GCC编译器:用于编译Cgo依赖项
macOS环境配置

推荐使用Homebrew进行依赖管理:

brew install git go node@22

启用并安装yarn:

corepack enable
corepack install
Windows环境配置

建议使用WSL(Windows Subsystem for Linux)来运行Grafana开发环境,可获得更好的开发体验。

获取源代码

使用Git命令行获取Grafana源代码:

git clone https://github.com/grafana/grafana.git
cd grafana

注意:不要使用go get命令获取Grafana代码,这与项目结构不兼容。

预提交钩子配置

Grafana使用lefthook管理预提交钩子,用于代码格式化和静态检查:

安装钩子:

make lefthook-install

卸载钩子:

make lefthook-uninstall

前端开发者强烈建议安装预提交钩子,以确保代码风格一致。

项目构建

Grafana由前端和后端两部分组成,需要分别构建。

前端构建

  1. 安装依赖:
yarn install --immutable
  1. 启动开发构建:
yarn start

此命令会:

  • 生成SASS主题文件
  • 构建所有外部插件
  • 持续监控文件变化并自动重建
插件开发

Grafana内置插件位于public/app/plugins目录,开发时需要单独构建:

构建所有插件:

yarn plugin:build:dev

构建单个插件:

yarn workspace <插件名称> dev

后端构建

运行后端服务:

make run

默认访问地址:http://localhost:3000/

默认登录凭证:

  • 用户名:admin
  • 密码:admin

首次登录后会要求修改密码。

Windows后端构建

Windows环境下需要额外安装GCC编译器,推荐使用TDM-GCC或Scoop安装。

构建步骤:

  1. 安装Wire工具
  2. 生成Wire代码
  3. 构建二进制文件

测试体系

Grafana包含三类测试:前端测试、后端测试和端到端测试。

前端测试

使用Jest测试框架:

yarn test

后端测试

基础测试:

go test -v ./pkg/...

集成测试:

  • SQLite:默认集成
  • MySQL/PostgreSQL:需要Docker环境支持

端到端测试

核心功能使用Cypress,插件使用Playwright。

Cypress测试

运行所有测试:

yarn e2e

调试模式:

yarn e2e:debug
Playwright测试

安装浏览器:

yarn playwright install chromium

运行测试:

yarn e2e:playwright

开发配置

配置文件位于conf目录:

  • defaults.ini:默认配置
  • custom.ini:自定义配置(覆盖默认值)

启用开发模式:

app_mode = development

数据源配置

使用devenv脚本快速设置开发数据源:

cd devenv
./setup.sh

启动依赖服务(如InfluxDB、Loki):

make devenv sources=influxdb,loki

Docker构建

构建Docker镜像:

make build-docker-full

生成的镜像标记为grafana/grafana:dev

常见问题解决

  1. 文件监视限制
# Linux
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

# macOS
sudo sysctl -w kern.maxfiles=524288
  1. 内存不足
export NODE_OPTIONS="--max-old-space-size=8192"
  1. 测试错误:确保所有后端服务调用都有对应的mock。

结语

本文详细介绍了Grafana项目的开发环境搭建、代码构建、测试运行等核心流程。掌握这些基础知识后,开发者可以更高效地参与Grafana项目开发和贡献。建议进一步阅读Grafana的架构文档和代码风格指南,以深入了解项目设计理念和编码规范。

grafana The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more. grafana 项目地址: https://gitcode.com/gh_mirrors/gr/grafana

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈冉茉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值