grafana二次開發


grafana官方地址: https://github.com/grafana/grafana

開發文檔:http://docs.grafana.org/project/building_from_source/ 

grafana官方的readme文檔中也有開發文檔,但是沒有打包的過程,開發文檔中有。

按照官方的文檔的順序:

一. 環境准備:

mac下打包的話,不能在centos下運行,只能在centos下打包。

所以我在mac下開發,centos下打包。

當然,也可以在window下開發,把生成好的build文件夾和配置文件替換一下,也是可以的

需要安裝go, nodejs等

提前把GOPATH設置好。

二.構建后端

go get github.com/grafana/grafana
cd $GOPATH/src/github.com/grafana/grafana
go run build.go setup
go run build.go build

第一句go get github.com/grafana/grafana:

把源碼下載到$GOPATH/src/github.com/grafana/grafana路徑下,所以GOPATH要設置好

第三句:go run build.go setup,執行build.go文件的setup:我們看一下它里的操作:

第四句:go run build.go build,執行build:

 

 

也就是執行這兩個命令:

 

三. 構建前端:

npm install -g yarn 
yarn install --pure-lockfile
yarn watch

全局安裝yarn

通過yarn進行依賴包的安裝

下面是幾種yarn install的區別:也可以查看文檔:https://yarnpkg.com/lang/zh-hans/docs/cli/install/

yarn install                      //安裝package.json里所有包,並將包及它的所有依賴項保存進yarn.lock
yarn install --flat           //安裝一個包的單一版本
yarn install --force           //強制重新下載所有包
yarn install --production   //只安裝dependencies里的包
yarn install --no-lockfile  //不讀取或生成yarn.lock
yarn install --pure-lockfile //不生成yarn.lock

 

 yarn watch就是調用了npm中定義的腳本:

這時,如果我們修改前端的文件,會看到有控制台有更新了。

為了看到效果,我們可以運行一下

./bin/<os>-<architecture>/grafana-server

控制台的輸出會告訴我們,打開瀏覽器: http://localhost:3000

但是我發現,如果我們修改了前端的文件,雖然webpack監控到了文件修改,但是頁面並沒有自動更新,手動刷新一下也不行,

不知道為什么了,只能重新運行上述命令,再刷新頁面才可以看到效果,有知道的同學希望可以指導一下。

文檔中了如果是開發模塊下可以安裝:go get github.com/Unknwon/bra

運行:bra run,但在我這里不起作用,報bra不識別命令。

雖然有一點問題,但是我們能自定義開發:

我們的要求是修改登錄頁:

它對應的css文件:

 

開發完成,接下來,就是要打包了:

執行命令:go run build.go build package

執行成功后會在dis目錄下生成壓縮文件:

 

或者可以生成rpm文件:

執行命令:

go run build.go pkg-rpm
安裝過程會報fpm 不是可執行的命令

需要手動安裝fpm

gem install fpm


安裝過程報無法連接ssl ruby的一個地址,就是那個地址應該是被牆了,
添加一個阿里雲的地址:
gem sources -a http://mirrors.aliyun.com/rubygems/ 
// 移除原生的ruby倉庫
gem sources --remove http://rubygems.org/
// 再次執行安裝即可

 

上述命令會在 grafana/dist目錄下面生成rpm結尾的文件,即為rpm包

 

如果在構建匱乏打包過程中遇到報錯,如類型轉換問題,依賴包問題,那就把node_modules文件更刪除,重新來遍,一般可以解決問題,因為源碼肯定沒有問題

如果想要修改title的話,可以修改index.templat.html文件 和config.ts文件中的配置window_title_prefix

const defaults = {
      datasources: {},
      windowTitlePrefix: 'Grafana - ',
      panels: {},
      newPanelTitle: 'Panel Title',
      playlist_timespan: '1m',
      unsaved_changes_warning: true,
      appSubUrl: '',
      buildInfo: {
        version: 'v1.0',
        commit: '1',
        env: 'production',
        isEnterprise: false,
      },
    };

    _.extend(this, defaults, options);

css文件存儲在下列文件中:

 

 pages中對應着各個頁面的css文件

dark主題和light主題的顏色配置分別是_variables.*.scss文件中

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM