grafana 8.x 源代码运行(window)

本文档详细介绍了在Windows 10系统上安装和配置Grafana开发环境的步骤,包括Node.js、Go、MinGW的安装,以及GCC和G++的区别。在编译和启动Grafana前后端的过程中,遇到的问题及解决方案,如端口冲突和错误处理。同时,提供了针对仅进行前端或后端开发的简化流程,包括修改配置文件以快速启动。测试版本为Grafana 8.0.0和8.1.5,8.2.0版本存在特定错误,建议使用较低版本。

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-GCC https://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 即可,启动时会去加载配置文件中配置的静态资源

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值