24H玩轉 Grafana 被工程師稱相當專業,如何做到?

来源:https://www.cnblogs.com/jjliu/archive/2019/10/09/11641034.html
-Advertisement-
Play Games

國慶假期發生了兩件小事,其一是我默默度過 `35` 周歲生日,其二是玩了下` grafana` `併在節後第一天被工程師 M 稱贊:相當專業。為什麼學、如何做到、以及必要的提醒。 ...


國慶假期發生了兩件小事,其一是我默默度過 35 周歲生日,其二是玩了下grafana `併在節後第一天被工程師 M 稱贊:相當專業。

1、我為什麼要玩 grafana 呢?

數月前我提交了一份數據後臺需求給工程師 M,他選用和部署了 grafana 這個第三方開源的工具,僅用兩三天就完成了這份需求。這效率相當快,令我對 M 和 grafana 印象深刻。但我仍不滿足,M提交的成品所有數據都圖形化的而我更想要表格樣式的數據。為了進一步整合其它數據進行統計分析,我還需手動導出數據,並寫了複雜的 python 腳本用 pandas 做統計分析,每周至少運行一次。我常常冒出新的數據需求,它們並不大,但走一遍需求評審、排期開發驗收的流程,似乎還挺麻煩的。

這些都還只算鋪墊,真正的導火索是國慶假期前的 sprint 總結會上提及我們幾個產品的數據將整合到 grafana 統一實現。 CTO 曾對我提及如果我懂些 sql 語句,可以自己寫。——哈?我懂點 sql 語句的吖,這不剛整理了一份筆記《【總結】python如何與mysql實現交互及常用sql語句》嘛。我處於 “sql 不過如此,放馬過來啊”的大無畏狀態-_-||

國慶假期來了,那就玩玩兒看唄。

2、短時間如何上手 grafana

M之前為了開發我的需求,已經完成了 grafana 的部署,並設置好了數據源。這次他專門創建了一個練慣用的 dashboard 並開通編輯許可權給我。特別說明,我的編輯許可權僅有數據源的查詢權,沒有增刪改的許可權,這對數據源是安全的。另外,M 已有的實現也讓初次上手的我可以照葫蘆畫瓢。這些是我比完全零準備的 grafana 新手占便宜的地方。

我並不想把 M 已經開發的需求重新實現一遍,我想要實現自己的數據需求。——想要什麼數據,以什麼樣式呈現,我腦子裡的需求俯拾即是。

學習過程具體分為三個部分:

  • A:熟悉和瞭解 grafana 在 dashboard 上如何添加、編輯圖表等模塊,就是瞭解這個工具如何使用。
  • B:熟悉和瞭解 數據源(我們產品的資料庫),有哪些表,有哪些欄位之類。
  • C:實現數據需求的 sql 語句該如何寫。

A 部分,搜了兩篇 grafana 如何使用之類的文章,大概瀏覽下即可。總是照著別人整理的步驟圖按部就班,學習體驗不好。大部分時候,我都是直接鼓搗。這種開源的可視化的工具,自己嘗試一下就能快速熟悉起來。

B 部分,當個伸手黨,讓工程師幫忙把所有表格 describe 導出也 OK 的;M給我的是一份表格的類定義文件。通過 A 部分的探索,我很快發現,在 dashboard 上創建一個模塊,如果選擇折線圖類型,sql 語句編輯區可以任人挑選表格名稱,這樣有哪些數據表格就清楚了;如果選擇表格類型,並使用select * from table_name limit 50 ,就能呈現該表的部分數據,這樣該表格有哪些欄位也就清楚了。

C 部分,我把 M 之前實現的 sql 語句單獨拷貝到 jupyter notebook 里,自己拆解為更基礎的知識點,然後一點點熟悉瞭解。一個小技巧是,對於新手來說 sql 語句的易讀相當重要,能直接降低複雜度。所以我採用 markdown 語法如下,語法呈現就很清晰了:
image

以上三個部分無需按順序進行。自己對哪個模塊更感興趣,就先開始哪個;過程中也可交叉輪換進行。接下來就是通過實現自己的數據需求,反覆重覆鞏固並深入 以上 3 個部分,直至產生令自己滿意的產出。為此投入的時間開銷24~48H 足夠啦,完全不耽誤假期陪家人、睡懶覺、看電影。

image

3、對職場分工保持清醒

最後需要強調一下,我很清楚自己並不想要取代工程師完成數據後臺的開發。比如:
1、一些複雜需求,我自己寫sql,很難,學起來也慢。這些我會陸續收集羅列出來,走排期,請工程師幫忙,不會自己硬鑽進去。
2、即便最終我完成了非常多的圖表,但實際上我只考慮實現,不考慮性能(也暫無能力考慮),所以即便是我寫出來的功能,也需要工程師把關和優化。

即便如此,我直接接觸數據源並動手用 grafana 實現,也有很顯著的好處:
1、我更清楚原始數據已採集了哪些,哪些指標是我可以定義和統計的,哪些是需要工程師進一步支持的。
2、一些相對簡單的、對業務有幫助的數據監控/統計,我能直接實現。無需 整理描述需求-和工程師溝通-工程師理解後實現-我再驗收這樣複雜的過程。
3、作為需求的發起者,我那些不成熟的需求,自己動手過程中迭代起來也會非常效率。

當然這些想法是需要和工程師、上級溝通清楚的,這樣才不至於產生誤解吖。如果我的筆記對你有幫助,那就點贊或留言告訴我吧!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 題意:查找表中重覆的 . 此題是很典型的對分組結果進行統計篩選例題,因此可以利用 進行分組,然後使用 統計. 此處,對 與`group by`進行比較(引用自:): 後不能跟聚合函數,因為 執行順序大於聚合函數。 子句的作用是在對查詢結果進行分組前,將不符合 條件的行去掉,即在分組之前過濾數據,條件 ...
  • 一、資料庫結構的設計 如果不能設計一個合理的資料庫模型,不僅會增加客戶端和伺服器段程式的編程和維護的難度,而且將會影響系統實際運行的性能。所以,在一個系統開始實施之前,完備的資料庫模型的設計是必須的。 在一個系統分析、設計階段,因為數據量較小,負荷較低。我們往往只註意到功能的實現,而很難註意到性能的 ...
  • 1、表架構 student(sid,sname,sage,ssex) 學生表 course(cid,cname,tid) 課程表 sC(sid,cid,score) 成績表 teacher(tid,tname) 教師表 2、建表sql語句 3、問題:(1)查詢“30001”課程的所有學生的學號與分數 ...
  • 1. 簡述 Clickhouse預設是多分片單副本集群,分散式表的配置是每個分片只有一份,如果某個節點掛掉的話,則會直接導致寫入或查詢異常;Clickhouse是具有高可用特性的,即每個分片具有2個或以上的副本,當某個節點掛掉時,其他節點上的副本會替代其繼續工作,以保證集群正常運行。 本文主要介紹近 ...
  • 這種單表比較條件,一般都是表內進行 操作. 參照此思路,解題如下所示: 運行效率在可以接受的範圍,此外語句也較為清晰便於維護. ...
  • 題意:求表中連續出現3次以上的數據. 因此,根據題意構造第一版本答案(使用連續的ID進行比較): 當前版本答案通過了測試,但是運行效率太低了. 分析原因,可能與 條件相關,當 為0時, 1不會尋找到相關數據,導致 執行緩慢. 因此,修改為如下所示: 此版本,效率得到了巨大的提高。 ...
  • oracle版本12.2.0.1 Errors in file /u01/app/oracle/diag/rdbms/sibcyb1/CYB111/trace/CYB111_q003_166752.trc:ORA-41401: Define character set () does not mat ...
  • 此題,其本質就是賦值行號(需要註意分數相同的情景). 在實踐過程中,初版答案如下所示: 此處,使用 來統計行號,註意使用 來區分相同分數. 但是,此解題方案的效率較差, 運行肯定是越快越好. 因此,在 中引入變數來賦值行號,以替代耗時的 操作. 此處,查詢是在 與臨時表之間進行 . 此外,使用臨時變 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...