文章目录
grafana 参考开发文档 https://github.com/grafana/grafana/blob/v8.1.5/contribute/developer-guide.md,建议选择对应版本的对应开发文档,不同版本可能有变化
文章写的比较简单,都启动成功才记录的,所以少了很多截图,如果有其他错误可以去 grafana 的问题中查找,一般都能找到 https://github.com/grafana/grafana/issues
一、环境:
node:16.4.0
go:1.71
mingw:9.0
grafana:8.0.0 或 grafana:8.1.5(这两个版本按如下步骤成功,grafana:8.2.0失败后面有说明)
window 10
版本说明
- go 语言版本需要查看你下载的 grafana 源代码的 go.mod 版本,高于这个指定版本即可,
- mingw 安装 64 位的,不然会报错(当然你也可以使用官网推荐的
TDM-GCChttps://jmeubank.github.io/tdm-gcc/) - 文中所说的 go 和 golang 是一个东西
二、安装环境
node、go下载安装配置环境变量比较简单就不说了,grafana 源码从 github 直接拉去就行,下面说说 gcc 的安装
1、mingw 安装
grafana 开发文档中讲的是 linux /mac 系统安装比较简单,window 的代替方案为安装适用于 Linux 的 Windows 子系统 (WSL)(开发文档有说明),也可以在 window 上安装 docker 使用Linux容器。
安装 mingw 的目的是安装 c/c++ 编译环境,安装地址 https://sourceforge.net/projects/mingw-w64/,安装完成配置环境变量,打开 cmd 使用 mingw-get install g++ 安装 c/c++ 编译环境(该安装教程自行网上搜索,安装比较慢,WiFi容易失败,或者使用下面链接)
由于是外网,下载比较慢,如果你是科网学上那挺快的,或者你可以使用百度网盘提取,其中里面已经包含 gcc ,下载即用,记得添加环境变量,将 bin 目录添加到 path 中,使用 gcc -v 可以查看版本号证明环境正常
百度网盘链接:https://pan.baidu.com/s/1vk9eJ-a2Ma3SNMNilHoMvQ 提取码:8v42
2、gcc 和 g++ 区别
gcc用于编译C程序,而g++ 用于编译C ++程序。 因为,C程序也可以通过g ++编译,因为它是扩展的,或者可以说是C编程语言的高级编译器。
3、添加 go 模块代理
环境变量中添加 GOPROXY=https://goproxy.cn,也可以使用 https://goproxy.io,grafana 服务端是 go 语言开发的,编译构建时 需要下载很多模块,配置代理比较快。
4、环境变量
- go
- GOPATH=I:\goProject 存放 go 安装的相关模块,类似 node 的安装包,Java 的 maven 依赖
- GOROOT=H:\golang 代表 go 的安装目录
- GOPROXY=https://goproxy.cn 表示 go 模块安装的代理
- path=H:\golang\bin 表示 go 的启动命令
- mingw
- path=H:\MinGW\mingw64\bin
三、编译后端
进入源码目录,如:I:\goProject\grafana-8.0.0,执行如下命令
go run build.go setup
go run build.go build
使用 go run build.go setup 命令时可能会遇到以下错误(grafana:8.2.0 报的错误,更换为 grafana:8.0.0 或 grafana:8.1.5 成功),注意在安装时如果打印任何错误退出程序最终可能不能正常运行

这种是正常结束的

四、启动前端
建议 yarn 配置淘宝镜像
# 查看当前镜像
yarn config get registry
# 配置淘宝镜像
yarn config set registry https://registry.npm.taobao.org/
使用如下命令安装依赖启动
# 如果要修改锁定文件,则以错误退出代码中止
yarn install --immutable
# 不生成锁文件
# yarn install --pure-lockfile
yarn start
前端安装依赖使用 yarn install --immutable 访问首页,可能会报错误 html/template: “index” is undefined,不过官网推荐使用该命令。我使用 yarn install --pure-lockfile 启动正常
五、启动后端
注意:
启动 bin/windows-amd64/grafana-server.exe 时,会爆一个错误

1、解决办法
方法一:
将 bin/windows-amd64 目录下的所有文件复制到 bin 目录下,则启动正常
方法二:
启动时指定 homepath 路径 grafana-server.exe -homepath “I:\goProject\grafana-8.1.5”

2、修改默认端口号
官方地址 https://grafana.com/docs/grafana/latest/installation/windows/
注意:默认的 Grafana 端口是3000. 此端口在 Windows 上可能需要额外的权限。如果它没有出现在默认端口中,您可以尝试更改为其他端口,不要更改 defaults.ini 文件。
修改方法:
- 进入conf目录,复制 sample.ini 到 custom.ini
- 编辑custom.ini并取消 http_port 注释(;是 ini 文件中的注释字符)
- 将其更改为类似8080的端口。

六、说明
截至 2021-10-26,我测试了 grafana 8.0.0 和 grafana 8.1.5 版本如上操作正常,当我使用 grafana 8.2.0 时遇到错误

该错误在 grafana 的源码问题中可以找到,但针对 window 暂时没找到好的解决方法https://github.com/grafana/grafana/issues?q=undefined%3A+server.Initialize
我最终将降版本使用 8.0.0 和 8.1.5 都可以正常运行,没有出现该错误
七、前端解决方案
假如你只做 grafana 的前端二次开发,觉得后端这些搭建比较麻烦,你只想修改 grafana 的前端代码,可以不构建后端代码,使用如下方法
你可以下载 grafana 的程序安装包(不是源码),在下载一份源码文件,只需要安装上面说的步骤构建前端,然后修改程序安装包的 grafana-8.1.5\conf\defaults.ini 文件,修改如下位置,指定前端代码路径,其实你也可以直接删除程序安装包的 public 目录,将自己的源码 public 复制进去,就可以不修改配置文件

最后,你只需要启动源码的前端(使用 yarn start),运行 grafana 服务器(/bin/grafana_server.exe),访问 127.0.0.1:3000 即可成功
八、后端解决方案
如果你只做后端的二次开发,只需要将前端 yarn build 打包即可,不需要 yarn start 启动前端,只需要启动 bin/grafana-server.exe 即可,启动时会去加载配置文件中配置的静态资源
本文档详细介绍了在Windows 10系统上安装和配置Grafana开发环境的步骤,包括Node.js、Go、MinGW的安装,以及GCC和G++的区别。在编译和启动Grafana前后端的过程中,遇到的问题及解决方案,如端口冲突和错误处理。同时,提供了针对仅进行前端或后端开发的简化流程,包括修改配置文件以快速启动。测试版本为Grafana 8.0.0和8.1.5,8.2.0版本存在特定错误,建议使用较低版本。

被折叠的 条评论
为什么被折叠?



