場景
文章開頭斋竞,先做個小調(diào)查:平常工作中遇到需要追蹤或者分析公司日常業(yè)務(wù)數(shù)據(jù)的時候【比如需要分析系統(tǒng)每日用戶增長情況】倔约,你們一般是使用怎么樣的分析手段呢?大家可以先想想自己是怎么做的窃页,這樣的做法是否繁瑣跺株,有沒有更好的方案复濒。
在沒遇到 Grafana 之前,遇到產(chǎn)品需要這個數(shù)據(jù)的時候乒省,由于公司人力有限巧颈,沒有開發(fā)人員開發(fā)數(shù)據(jù)平臺,所以一般有幾種處理方案:
- 第一種方案袖扛,如果本身 APP 端有接入一些第三方數(shù)據(jù)統(tǒng)計平臺【友盟砸泛、Bugly】,則可以讓產(chǎn)品直接在這些平臺看數(shù)據(jù)蛆封,
缺點是:這種平臺的數(shù)據(jù)一般是指下載 APP 的唇礁,并非是真實的平臺注冊數(shù)
; - 第二種方案惨篱,平臺的精確的注冊數(shù)據(jù):每次寫一下 Sql 語句按天分組直接從數(shù)據(jù)庫導(dǎo)出產(chǎn)品需要時間內(nèi)的用戶注冊情況盏筐,然后導(dǎo)出一個 Excel 表格給到產(chǎn)品,產(chǎn)品在做成可視化的折線圖之類的來分析波動情況砸讳;
- 第三種方案琢融,可能相對少一些重復(fù)工作,用 Python 腳本程序自動導(dǎo)出可視化結(jié)果圖簿寂;
Grafana 登場
木有錯漾抬,今天要介紹的主角是:Grafana,它是什么呢常遂?Grafana 是一個通用的可視化 Go 編寫的開源工具纳令,通用的意思也就是說你可以添加各種數(shù)據(jù)源【不過得是目前支持的數(shù)據(jù)源,具體支持哪些數(shù)據(jù)源克胳,后面會講到】平绩,安裝部署也是非常非常的簡單,基本是一條命令即可部署漠另,以 mac 系統(tǒng)為例:
brew update
brew install grafana
brew services start grafana
是的馒过,就是這么簡單,經(jīng)過三條命令酗钞,我們本地的系統(tǒng)已經(jīng)部署好了,這時訪問:http://127.0.0.1:3000即可訪問到部署好的 grafana来累,默認賬號密碼是:admin/admin砚作,進去之后我們可以像堆積木一樣一步步增加我們業(yè)務(wù)的數(shù)據(jù)看板,支持各種形式的展示方式:表格嘹锁、曲線葫录、餅狀圖等。
我們先來一個圖领猾,看一下官方的 LiveDemo 數(shù)據(jù)圖米同,一睹驚艷的展示方式【哈骇扇,驚不驚艷的不重要,重要的是實用】:
第一步:安裝 Grafana
由于我的環(huán)境是 mac面粮,所以這里只列出 mac 上通過 brew
的方式安裝詳情(其他系統(tǒng)安裝可以參考官方給出的詳細操作方式
):
~ ? brew install grafana
Updating Homebrew...
==> Downloading https://homebrew.bintray.com/bottles/grafana-6.3.3.mojave.bottle.tar.gz
Already downloaded: /Users/zhangdeyi/Library/Caches/Homebrew/downloads/2087dc91f087ca0d1314958797e3ef2696c575f081afb810393f74648d47942b--grafana-6.3.3.mojave.bottle.tar.gz
==> Pouring grafana-6.3.3.mojave.bottle.tar.gz
Warning: grafana dependency icu4c was built with a different C++ standard
library (libc++ from clang). This may cause problems at runtime.
==> Caveats
To have launchd start grafana now and restart at login:
brew services start grafana
Or, if you don't want/need a background service you can just run:
grafana-server --config=/usr/local/etc/grafana/grafana.ini --homepath /usr/local/share/grafana --packaging=brew cfg:default.paths.logs=/usr/local/var/log/grafana cfg:default.paths.data=/usr/local/var/lib/grafana cfg:default.paths.plugins=/usr/local/var/lib/grafana/plugins
==> Summary
?? /usr/local/Cellar/grafana/6.3.3: 3,635 files, 171.8MB
第二步:添加數(shù)據(jù)源
安裝完之后少孝,可以根據(jù)自己的實際情況,先添加自己業(yè)務(wù)的數(shù)據(jù)源熬苍,一般常用的數(shù)據(jù)源是 MySQL:
初次安裝只包含了這些數(shù)據(jù)源類型:
當(dāng)然也可以安裝一些其他數(shù)據(jù)源的
plugins
來支持更多的:數(shù)據(jù)源
第三步: 新增我們的業(yè)務(wù) Dashboard
有了數(shù)據(jù)源之后稍走,就可以增加業(yè)務(wù) Dashboard,入口:主頁 --> ?號 --> Create Dashboard柴底,比如我把 Dashboard 命名成 MyCoreData婿脸,一個 Dashboard 可以由不同展示類型的 Panel
組成:
平常我用得比較多的是
Graph
,這個展示形式比較方便看出業(yè)務(wù)數(shù)據(jù)的波動情況:點擊操作菜單的 Edit
即可進入面板的編輯模式柄驻,這個模式可以對面板重命名狐树,編寫業(yè)務(wù)SQL,展示細節(jié)調(diào)整鸿脓,編輯面板如下所示:
- General tab 可以設(shè)置面板的標(biāo)題信息抑钟、表述信息等;
- Metrics tab 可以選擇數(shù)據(jù)源答憔,編寫SQL 語句:有兩種模式味赃,一種是手動選操作,另外一種是直接編寫 SQL 模式【推薦用這種模式】虐拓,點擊
Show Help
可以查看提供的內(nèi)置函數(shù):
內(nèi)置的函數(shù)
編寫完 SQL 之后心俗,展示形式是這樣的(時間選擇的是這個月的):
Graph 展示形式
這種展示形式已經(jīng)大致能看出趨勢,是否可以有更好的展示形式呢蓉驹,答案是有的城榛,點擊Legend
tab 可以設(shè)置展示一些更加詳細的形式,比如用table
的形式态兴,展示出total
狠持、avg
,current
這些值瞻润,最終效果如下所示:
更加形象的展示
當(dāng)然還有其他更細節(jié)的設(shè)置喘垂,可以自行探索,其他的面板展示形式也可以自行探索绍撞;
第五步:分配賬號正勒,并管理好不同賬號的查看權(quán)限
很棒!經(jīng)過前面一步的:增加業(yè)務(wù) Dashboard傻铣,接下來我們就可以分配賬號給產(chǎn)品和Boss們章贞,并根據(jù)不同的角色分配不同的 Dashboard 查看權(quán)限。
使用 admin
賬號登錄非洲,可以分配不同的賬號權(quán)限鸭限,入口:左邊的設(shè)置按鈕 --> Server Admin --> Users --> Add new user蜕径,
具體 Dashboard 的權(quán)限設(shè)置入口:以管理員賬號訪問某個 Dashboard --> 右上角的設(shè)置按鈕 --> Permissions 按鈕 --> Add Permission 即可管理這個 Dashboard 的訪問權(quán)限:
最后想說的
好啦!當(dāng)我們搭建好這樣一個平臺之后败京,我們不再需要重復(fù)之前的繁瑣的導(dǎo)數(shù)據(jù)工作兜喻,而且產(chǎn)品和 Boss 也可以開心愉快的實時查詢公司的各項業(yè)務(wù)數(shù)據(jù),我們只需要專注在上面添磚加瓦:增加各個業(yè)務(wù)數(shù)據(jù)的細分 Dashboard喧枷。
今天的安利 Grafana 的文章先寫到這里虹统,寫得相對比較糙,不少細節(jié)沒怎么介紹隧甚,不過今天的主要目的也是為了給大家演示一下如何用這個平臺來提升自己的工作效率车荔,方便同事之間的數(shù)據(jù)溝通工作。
最后的最后戚扳,如果你所在的團隊或者公司還沒有一個比較完備的數(shù)據(jù)平臺忧便,真心推薦你們可以搭建探索一下(跟進業(yè)務(wù)數(shù)據(jù),或者監(jiān)控服務(wù)器運行情況都是可以的)帽借,如果在探索過程中有遇到什么問題珠增,可以在文章的后面留言,我這邊會盡量為大家解答砍艾。
好啦蒂教,祝大家周末愉快,準(zhǔn)備出門吃小龍蝦去啦~~~~~