Grafana中文化

歡迎體驗我發(fā)布的漢化Grafana7.2 Docker鏡像 DockerHub

可視化圖表

Grafana是一個通用的可視化工具毕箍。通過Grafana可以管理用戶權限励幼,數據分析熙卡,查看掏湾,導出,設置告警等飞盆。

儀表盤Dashboard

通過數據源定義好可視化的數據來源之后娄琉,對于用戶而言最重要的事情就是實現數據的可視化。

面板 Panel

Panel是Grafana中最基本的可視化單元吓歇。每一種類型的面板都提供了相應的查詢編輯器(Query Editor)车胡,讓用戶可以從不同的數據源(如Prometheus)中查詢出相應的監(jiān)控數據,并且以可視化的方式展現照瘾。
Grafana中所有的面板均以插件的形式進行使用匈棘,當前內置了5種類型的面板,分別是:Graph析命,Singlestat主卫,Heatmap, Dashlist,Table以及Text鹃愤。

翻譯工作

上面簡單介紹了一下工具簇搅,主要是讓我們方便查看監(jiān)控的數據。這里我還是沒有更深入的去研究公式等圖形的設置软吐。這里先主要寫一下翻譯方面的工作瘩将。

公司也考慮展示內容為中文化比較好,這里Grafana沒有提供語言包的方式來處理多語言問題凹耙。在我查看代碼過程中姿现,發(fā)現工具后臺是在GO里面寫死的很多導航,返回值等數據肖抱。前臺是在頁面上直接寫的很多內容备典。所以我個人認為無法使用語言包來直接處理多語言問題。那就只好自己來搞定了意述。

翻譯的內容

更具代碼查看提佣,主要分為兩大部分:

  • 后端: go文件,主要內容在/pkg 目錄下荤崇。
  • 前端: /public 目錄下拌屏, 1. 系統頁面 2. 插件頁面 专筷。

準備工作

首先git clone Grafana庫
git clone https://github.com/chenweil/grafana.git

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

之后我們根據自己翻譯的版本來檢出自己的項目酝惧。
我的分之是 grafana-chs
我們在自己創(chuàng)建的分支就可以來處理我們的工作了瑰抵。

前端調試環(huán)境

需要 npm署惯,nodejs,yarn

終端執(zhí)行命令yarn install --pure-lockfile 初始化. 如果沒有報錯的情況,證明ok.

出現錯誤請先處理問題.
開啟調試環(huán)境時候箕慧,是開啟前端的熱加載來協助我們調試亦渗。
這里安裝完三個環(huán)境可能在執(zhí)行 yarn start 時報錯又兵,這里如果你是在windows上带兜,需要再安裝一下sass.(根據報錯來看問題枫笛,我這里遇到缺少sass問題)

當我們yarn start 執(zhí)行后,等待一段時間刚照,build at 時間證明準備工作已完成刑巧,下面就需要我們在調試模式下測試了。

還需要一個調試的Grafana服務程序无畔,這里是windows環(huán)境啊楚,所以直接從官方下載了zip包,執(zhí)行bin下的grafana-server.exe 來啟動服務浑彰。需要再conf文件夾修改一下public前端資源的配置恭理,如果不修改那么你翻譯的信息是看不到的,服務會直接讀取的當前的public郭变,我們這需要讀取翻譯的public文件位置颜价。

配置在windows服務程序的 /conf/defaults.ini
修改內容:

app_mode = development               # 開發(fā)模式
static_root_path = D:\grafana\public #這里配置到git拉取得位置的public

按照正常的操作 是需要開啟webpack-dev-server
我這里沒有這么設置,直接利用3000端口調試的诉濒。(當我們yarn start 后周伦,通過修改頁面可以看修改的內容。)

翻譯前端文件

前面環(huán)境已經搭建好之后未荒,我們通過修改頁面文件展示內容來翻譯专挪。
例如翻譯登陸頁面:
/public/app/partials/login.html

image

把對應的英文改為中文,保存后webpack會處理片排。處理完成刷新頁面可以看到結果寨腔。

前端翻譯文件不止html,還有ts率寡,tsx等文件脆侮。這里如果不知道具體文件可以在public文件夾下,通過全局搜索頁面的單詞等信息定位到文件勇劣。
我沒有翻譯帶有test 的測試文件靖避。

最后我們把需要的文件都翻譯之后,通過yarn build 生成文件比默。這些文件都存在生成的目錄/public/build中幻捏。把這些文件覆蓋到自己搭建的項目中完成漢文。
建議把整體public目錄替換命咐。
重啟服務既可以看到中文版的頁面了篡九。

后端環(huán)境

后端是用GO寫的。后端我沒有調試醋奠,不想前端那樣可以邊調邊看榛臼。我的辦法就是全部改完伊佃,build程序,啟動查看后端翻譯的結果沛善。
所需航揉,本人是在windows10下處理的,需要gcc金刁,go帅涂。

翻譯后端文件

文件所在位置: /pkg/

image

首頁我們的導航,二級菜單這些不是前端控制的尤蛮,這些是在 /pkg/api/index.go

image

其余還有很多文件媳友,內容包含:html數據,返回值信息产捞,debug信息等醇锚。如果你前端翻譯完成,那么后端對你來說也是很輕松的坯临。

請注意一些參數或者判斷不要給翻譯了

當翻譯完成后焊唬,需要build。
首先到項目根目錄尿扯,這里可以看到 build.go 文件求晶。用這個來生成后端程序。 windows下可以build .exe程序衷笋。 時間很短芳杏,便于我們調試。

build前辟宗,先steup一下爵赵,執(zhí)行 go run build.go setup

$ go run build.go setup
Version: 6.3.4, Linux Version: 6.3.4, Package Iteration: 1568870230
go install -v ./pkg/cmd/grafana-server
github.com/grafana/grafana/pkg/api
github.com/grafana/grafana/pkg/cmd/grafana-server

如果沒有報錯泊脐,那么證明是可以執(zhí)行build了空幻。
這里可能你會遇到一些錯誤,出現錯誤先解決錯誤再重新執(zhí)行 go run build.go setup容客,直到沒有錯誤秕铛。
環(huán)境不同,此處僅供參考缩挑。
我遇到一下錯誤:

  • error loading module requirements
    這個問題一查一大把但两,原因就是你需要的模塊下載不到,地址被墻供置。
    解決方式: 其中一種:go.mod 添加replace() 替換地址谨湘。下面并非全部用到,我是偷懶全粘上。

      replace (
          golang.org/x/build => github.com/golang/build v0.0.0-20190416225751-b5f252a0a7dd
          golang.org/x/crypto => github.com/golang/crypto v0.0.0-20190411191339-88737f569e3a
          golang.org/x/exp => github.com/golang/exp v0.0.0-20190413192849-7f338f571082
          golang.org/x/image => github.com/golang/image v0.0.0-20190417020941-4e30a6eb7d9a
          golang.org/x/lint => github.com/golang/lint v0.0.0-20190409202823-959b441ac422
          golang.org/x/mobile => github.com/golang/mobile v0.0.0-20190415191353-3e0bab5405d6
          golang.org/x/net => github.com/golang/net v0.0.0-20190415214537-1da14a5a36f2
          golang.org/x/oauth2 => github.com/golang/oauth2 v0.0.0-20190402181905-9f3314589c9a
          golang.org/x/perf => github.com/golang/perf v0.0.0-20190312170614-0655857e383f
          golang.org/x/sync => github.com/golang/sync v0.0.0-20190412183630-56d357773e84
          golang.org/x/sys => github.com/golang/sys v0.0.0-20190416152802-12500544f89f
          golang.org/x/text => github.com/golang/text v0.3.0
          golang.org/x/time => github.com/golang/time v0.0.0-20190308202827-9d24e82272b4
          golang.org/x/tools => github.com/golang/tools v0.0.0-20190417005754-4ca4b55e2050
          golang.org/x/xerrors => github.com/golang/xerrors v0.0.0-20190410155217-1f06c39b4373
          google.golang.org/api => github.com/googleapis/google-api-go-client v0.3.2
          google.golang.org/appengine => github.com/golang/appengine v1.5.0
          google.golang.org/genproto => github.com/google/go-genproto v0.0.0-20190415143225-d1146b9035b9
          google.golang.org/grpc => github.com/grpc/grpc-go v1.20.0
          gopkg.in/asn1-ber.v1 => github.com/go-asn1-ber/asn1-ber v0.0.0-20181015200546-f715ec2f112d
          gopkg.in/fsnotify.v1 => github.com/Jwsonic/recinotify v0.0.0-20151201212458-7389700f1b43
          gopkg.in/gorethink/gorethink.v4 => github.com/rethinkdb/rethinkdb-go v4.0.0+incompatible
          gopkg.in/ini.v1 => github.com/go-ini/ini v1.42.0
          gopkg.in/src-d/go-billy.v4 => github.com/src-d/go-billy v4.2.0+incompatible
          gopkg.in/src-d/go-git-fixtures.v3 => github.com/src-d/go-git-fixtures v3.4.0+incompatible
          gopkg.in/yaml.v2 => github.com/go-yaml/yaml v2.1.0+incompatible
          k8s.io/api => github.com/kubernetes/api v0.0.0-20190416052506-9eb4726e83e4
          k8s.io/apimachinery => github.com/kubernetes/apimachinery v0.0.0-20190416092415-3370b4aef5d6
          k8s.io/client-go => github.com/kubernetes/client-go v11.0.0+incompatible
          k8s.io/klog => github.com/simonpasquier/klog-gokit v0.1.0
          k8s.io/kube-openapi => github.com/kubernetes/kube-openapi v0.0.0-20190401085232-94e1e7b7574c
          k8s.io/utils => github.com/kubernetes/utils v0.0.0-20190308190857-21c4ce38f2a7
          sigs.k8s.io/yaml => github.com/kubernetes-sigs/yaml v1.1.0
          go.uber.org/atomic => github.com/uber-go/atomic v1.3.2
      )
    

    還有方法是通過設置Module GOPROXY代理紧阔。大概意思就是當構建或運行你的應用時,Go 會通過 GOPROXY 獲取依賴坊罢。

  • exec: "gcc": executable file not found in %PATH%
    這個問題是我們環(huán)境沒有gcc,這個玩意兒需要下載一個軟件MinGW擅耽。
    此地址提供的壓縮包文件活孩。解壓可以使用,此網站也提供下載器安裝方式秫筏。這網站下載賊慢
    解壓之后設置環(huán)境變量诱鞠,當前解壓完路徑是: C:\MinGW\mingw64 在環(huán)境變量添加此目錄挎挖。
    cmd 測試 gcc -v 有信息即ok这敬。

沒有問題 執(zhí)行 go run build.go build
完成后,就可以得到bin文件蕉朵,位置在 /bin/windows-amd64/ 崔涂, 里面有grafana-server.exe 程序。

在測試前端時候始衅,用的那個windwos程序可以下崗了冷蚂,把build之后的bin程序+md5文件一起復制到這目錄里。如果你不放心提前先備份一份汛闸。

之后按照測試前端那樣蝙茶,打開服務,訪問3000诸老,查看自己漢化后端的成果吧隆夯。

生成docker鏡像

在windows可以直接加載public,bin生成之后替換原bin程序.

linux是類似,build出來的bin,需要在linux上build.

我們這里主要是想利用docker.

還沒完,我們剛才只是測試一下自己漢化的后端是否可以别伏。如果測試完都可以之后蹄衷,我們還是要把它build成鏡像,利用docker來運行服務厘肮。
如果你不想用docker愧口,就考慮在build為linux程序。

生成docker鏡像可以分為兩種类茂,一種是你所在linux/amd64中生成的鏡像耍属,另一種是通用的鏡像。

第一種:

linux系統上省事一點
go run build.go setup

go run build.go build

第二種:
make build-docker-full 或者 docker build -t grafana/grafana:dev .

目前我通過生成鏡像方式發(fā)布到 DockerHub

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末巩检,一起剝皮案震驚了整個濱河市厚骗,隨后出現的幾起案子,更是在濱河造成了極大的恐慌碴巾,老刑警劉巖溯捆,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡提揍,警方通過查閱死者的電腦和手機啤月,發(fā)現死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來劳跃,“玉大人谎仲,你說我怎么就攤上這事∨俾兀” “怎么了郑诺?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長杉武。 經常有香客問我辙诞,道長,這世上最難降的妖魔是什么轻抱? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任飞涂,我火速辦了婚禮,結果婚禮上祈搜,老公的妹妹穿的比我還像新娘较店。我一直安慰自己,他們只是感情好容燕,可當我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布梁呈。 她就那樣靜靜地躺著,像睡著了一般蘸秘。 火紅的嫁衣襯著肌膚如雪官卡。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天秘血,我揣著相機與錄音味抖,去河邊找鬼。 笑死灰粮,一個胖子當著我的面吹牛仔涩,可吹牛的內容都是我干的。 我是一名探鬼主播粘舟,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼熔脂,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了柑肴?” 一聲冷哼從身側響起霞揉,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎晰骑,沒想到半個月后适秩,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年秽荞,在試婚紗的時候發(fā)現自己被綠了骤公。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡扬跋,死狀恐怖阶捆,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情钦听,我是刑警寧澤洒试,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站朴上,受9級特大地震影響垒棋,放射性物質發(fā)生泄漏。R本人自食惡果不足惜余指,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一捕犬、第九天 我趴在偏房一處隱蔽的房頂上張望跷坝。 院中可真熱鬧酵镜,春花似錦、人聲如沸柴钻。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽贴届。三九已至靠粪,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間毫蚓,已是汗流浹背占键。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留元潘,地道東北人畔乙。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像翩概,于是被迫代替她去往敵國和親牲距。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,933評論 2 355

推薦閱讀更多精彩內容