Grafana开发环境搭建

Grafana源码

Grafana版本: 6.5.1

将 Grafana 源码 clone 到本地,源文件较多,如果 github 下载不成功,建议试试 gitee.

下载完成后,打开 grafana 的 package.json 查看对 node 版本的要求:

grafana接口API文档 grafana开发_bc

Node.js

node.js 版本: 10.18.1

grafana-6.5.1 版本对 node 版本需求为 >=10 < 11,根据此要求下载相应版本的 node.js

windows

安装到自己喜欢的文件夹,本文为 D:\node.js\install,将 node.js 配置到环境变量:

grafana接口API文档 grafana开发_版本信息_02


打开命令行,键入 node -v ,如果一切顺利,将会看到 node 的版本信息:

grafana接口API文档 grafana开发_bc_03

ubuntu

下载 node-v10.18.0-linux-x64.tar.gz 并解压缩到自己喜欢的路径,据解压缩路径配置 node.js 到环境变量:

vi ~/.bashrc

文件末尾添加:

grafana接口API文档 grafana开发_grafana接口API文档_04

source ~/.bashrc

打开终端,键入 node -v ,如果一切顺利,将会看到 node 的版本信息:

grafana接口API文档 grafana开发_解压缩_05

GCC

本文安装的 gcc 版本为: 4.8.2

windows

下载离线版本的 mingw-64, 解压缩到自己喜欢的目录,本文解压到目录 D://mingw64,这个安装目录将决定您的有关 gcc 的环境变量配置信息。

grafana接口API文档 grafana开发_版本信息_06


配置环境变量:

需要把 mingw-64 的 bin,include,lib 分别配置到环境变量 path,include,lib:bin

grafana接口API文档 grafana开发_bc_07


include

grafana接口API文档 grafana开发_bc_08


lib

grafana接口API文档 grafana开发_grafana接口API文档_09


如果一切顺利,在命令行工具中输入 gcc -v

grafana接口API文档 grafana开发_版本信息_10

ubuntu

一般来说ubuntu系统自带gcc,输入 gcc --version 查看版本信息:

grafana接口API文档 grafana开发_grafana接口API文档_11


假设 gcc 版本不合要求怎么办呢,这就需要卸载现有版本并安装制定版本gcc:

sudo apt-get install gcc-4.8 g++-4.8

Python2

本文安装的 Python 版本为 2.7.15

windows

下载 Python2 的安装程序,安装到自己喜欢的目录:

grafana接口API文档 grafana开发_grafana接口API文档_12


配置环境变量:

grafana接口API文档 grafana开发_解压缩_13


如果一切顺利,在命令行工具中输入 python 会看到 python 的版本信息:

grafana接口API文档 grafana开发_版本信息_14

ubuntu

一般来说,ubuntu会自带安装python2,终端输入 python 查看是否已经安装以及相应版本信息:

grafana接口API文档 grafana开发_版本信息_15

Go

本文安装的 Go 版本为: 1.13.5

windows

下载 Golang安装包,安装到自己喜欢的目录:

grafana接口API文档 grafana开发_grafana接口API文档_16


配置环境变量:GOROOT

grafana接口API文档 grafana开发_bc_17


GOPATH

grafana接口API文档 grafana开发_grafana接口API文档_18

GOPROXY

grafana接口API文档 grafana开发_解压缩_19


path

grafana接口API文档 grafana开发_grafana接口API文档_20


如果一切顺利,命令行输入 go version

grafana接口API文档 grafana开发_解压缩_21

ubuntu

下载 go1.13.5.linux-amd64.tar.gz 并解压缩到自己喜欢的路径,据解压缩路径配置环境变量:

vi ~/.bashrc

在文件末尾添加:

grafana接口API文档 grafana开发_grafana接口API文档_22


这里 GOPROXY

source ~/.bashrc

如果一切顺利,终端输入 go version 查看版本信息:

grafana接口API文档 grafana开发_bc_23

编译Grafana前端源码

  • 修改下载仓库为淘宝镜像:
npm config set registry http://registry.npm.taobao.org/
  • 如果修改下载源之后依然下载缓慢,可以尝试为 npm 配置上网代理:
npm config set proxy http://username:password@server:port
  • 安装 yarn:
npm install -g yarn
  • 安装依赖
yarn install --pure-lockfile

grafana接口API文档 grafana开发_bc_24


如果一切顺利,此时会看到依赖下载到了 node_modules 文件夹:

grafana接口API文档 grafana开发_版本信息_25

  • 构建前端
yarn build

grafana接口API文档 grafana开发_版本信息_26

  • 热启动
    热启动的方式可以保证 grafana 源码修改后立即生效,不过需要重启一下 grafana-server + 清理浏览器缓存.
yarn start

grafana接口API文档 grafana开发_bc_27

编译Grafana后端源码

go run build.go setup

grafana接口API文档 grafana开发_bc_28

go run build.go build

grafana接口API文档 grafana开发_解压缩_29


如果一切顺利,此时会看到多了一个 bin 文件夹,将 bin/windows-amd64 下的 grafana-server.exegrafana-cli.exe 拷贝到 bin 文件夹下,启动 grafana-server.exe,浏览器访问 localhost:3000

所有涉及 *.go 源文件的更改都需要重新 go run build.go build 然后将新生成的 grafana-server.exe 拷贝到 bin 目录下。

可能遇到的问题

  • 编译后端代码时报错: cc1.exe: sorry, unimplemented: 64-bit mode not compiled in
    原因是在用 Go 调试 C 的时候,要保证 Go 和 gcc 的位数一致,即要么都是32位,要么都是64位:You are using 64-bit version of Go. You must use 64-bit gcc compiler.
  • go run build.go setup 超时无反应:
    需要配置 GOPROXY 到环境变量中。
  • yarn install 一直卡在 Building fresh packages…

    原因应该是网络,可是已经改过镜像源为国内地址了啊,再试试配置node-sass的二进制包镜像地址:
yarn config set sass_binary_site http://cdn.npm.taobao.org/dist/node-sass -g

不过,这个步骤即使不通过,貌似也不会有影响,还是可以运行成功。

tar -zxvf glibc-2.17.tar.gz
cd glibc-2.17
mkdir glibc-build
cd glibc-build
../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
make
make install

这一套操作下来,GLIBC就装好啦,验证一下试试看:

grafana接口API文档 grafana开发_bc_30

参考文献

Grafana开发环境搭建windows下安装mingw-w64yarn安装node-sass失败问题解决yarn install一直卡在Building fresh packagesgo run build.go setup 卡住不动的问题GLIBC版本升级GCC版本升级