Grafana源码学习流程 Grafana

MagicQ 1月前 60

0x01、经过使用一段时间的Grafana愈发的对它的轻量、轻便所吸引,先说说对它的简单了解:

优点:

1、几乎所有东西(包括系统组件,如auth、api等)都是”插件化"运行,学习解耦的时候是一个很好的参考模板

2、相对Zabbix响应速度快(当然,快慢的问题很大一部分受数据库的影响)

3、支持多组织、多Team的配置

4、官方有很多有用的插件和模板,在使用上有极低的配置改造成本

5、比较活跃,更新比较及时

缺点:

1、文档更新不及时、不全,很多功能在官方文档里基本处于一笔带过的状态,需要一个很强大的理解能力,相对的Zabbix的文档,真是太完善了

2、组织管理,太过于简单,不同的组织间DataSource竟然默认都可以是分散的


0x02、源代码目录结构如下:



0x03、Grafana目前有Enterprise/订阅版本,增加的功能还可以,而且大多属于基础类的,如果用户量比较大的情况下,非常建议购买Enterprise。

作为一个好奇用户,而且我只是对LDAP/SAML/Whitelable模块感兴趣,直接购买Enterprise有点不太现实,所以准备先看看开源版本跟企业版代码测有什么区别,看看是否可以通过修改代码的方式来达到先试用企业版的功能。这里先剧透一下结论,Grafana的开源版本和企业版可以说是两套代码,并不能想elasticsearch那样可以通过本地开启商业功能。

开工.....

1、修改 pkg/service/licensing/oss.go,把里面的所有false都改成true即可,有兴趣的话也可以把其他的return string的改不改无所谓  注:此package里的方法主要是供前端部分使用

2、修改 pkg/extensions/main.go , 同样把最后一个  isEnterprise = false  改成 true。  注:此文件服务于后端功能部分

3、编译 go run build.go build

4、替换grafana-server文件重启服务

修改后,能够看到一些需要判断是否企业版的地方都能返回true/1了,但是。。。所以企业版功能的功能具体功能代码开源版本里并没有。。。也就是只能看看而已。。。

接下来如果不定于企业服务,还真的需要自己来堆功能代码了,不过简单的做一下whitelabel到是不费事,相关文件在public/app/core/components/Branding/Branding.tsx(可修改登录界面、titile、Dashboards左上logo) 和 public/app/core/components/Footer/Footer.tsx(修改...jio)

注:在编译前段代码前,需要npm安装packages下的包(切不可从npm的源下载同名包安装)

0x04、待完更新...


最后于 1月前 被MagicQ编辑 ,原因:
最新回复 (0)
    • 运维开源项目互助社区—致敬开源
      2
        立即登录 立即注册 
返回