1
通過上期分享《實踐指路明燈,源碼剖析flink-metrics》,對當下較火的流式處理架構 flink 的名額監控體系有了全局的認識,并結合 flink-metrics-xxxx 子產品進行深入分析,對 flink 是如何內建監控輪子了如之掌。
不過,源碼中的 flink-metrics-influxdb 子產品,你是否留意到?按照設計規範,不用多想,那肯定是 flink 名額監控對 influxdb 的內建。
那麼,influxdb ?influxdb 是啥?influxdb 你用過嗎?
今天稍微花一分鐘,帶你 Get 這門技能,放心不會傷腦。

(圖看不清放大了去看)
2
去說 InfluxDB 之前,先聊聊,什麼是時間序列資料(時序資料)?
時間序列資料就是在不同時間上收集到的資料,主要有兩個關鍵名額:監測時間和監測數值。生活中常見的時間序列資料,包括股票價格、網站的 PV/UV、伺服器系統監控資料(比如 CPU 和記憶體占用率)等等。
那時間序列資料應該存到哪兒?時間序列資料庫(TSDB)是啥?
A time series database (TSDB) is a software system that is optimized for storing and serving time series through associated pairs of time(s) and value(s)
https://en.wikipedia.org/wiki/Time_series_database
簡單去了解,時間序列資料可以存儲到 TSDB 中,因為 TSDB 是用于存儲和分析時間序列資料的資料庫。
如圖所示,在 DB-ENGINES 給出的最新的時間序列資料庫的排名中,InfluxDB 高居第一位,而臉熟的 Prometheus、Graphite 等也位居其中,下面就以 InfluxDB 作為突破口進行體驗。
3
3.1 磨刀霍霍。
首先,選擇您最中意的版本進行下載下傳。
https://portal.influxdata.com/downloads/
複制
本次以 v1.7.10 的 Mac 系統版本進行安裝。
https://dl.influxdata.com/influxdb/releases/influxdb-1.7.10_darwin_amd64.tar.gz
複制
下載下傳解壓後的目錄全局概覽,不同安裝方式會不同,但是着重關注 usr/bin/ 目錄,後續操作的指令全在這裡啦。
然後,按照安裝手冊進行配置,若是為了體驗,預設配置也夠用啦。
https://docs.influxdata.com/influxdb/v1.7/introduction/installation/
複制
3.2 披荊斬棘。
下載下傳安裝已經完成,執行 ./influxd 指令啟動 InfluxDB。
一頓指令操作猛如虎,熟練工種。
熟練工種,指令多練就是啦,感受一下與傳統資料庫有啥不同?
另外,InfluxDB 也提供了 HTTP API 方式操作。
簡單整理了一下,/ping 可以擷取 InfluxDB 執行個體資訊以及健康狀況;/write 提供插入資料的功能;/query 提供查詢資料的功能。
InfluxDB 提供 API 要比這多,用到之時再深入也未嘗不可。
3.3 撥雲見日
InfluxDB 與傳統資料庫有啥不同呢?
如圖示意,InfluxDB 中的 measurement 類似于傳統資料庫中的表,包含了列 time、tags 和 fields。
tag key/value 類似于傳統資料庫裡索引的列;
field key/value 類似于傳統資料庫裡沒有索引的列;
time 存着時間戳,類似于傳統資料庫的主鍵。
另外,有沒有什麼輪子,可以更好的展示 InfluxDB 中的資料呢?
InfluxDB 位居 DB-ENGINES 排名首榜,對應的展示資料的輪子還是很多的,例如官方的 Chronograf,以及提及多次的 Grafana 等等。
閑暇之餘,可以參考官方文檔去深入。
https://docs.influxdata.com/influxdb/v1.7/introduction/getting-started/
複制
4
InfluxDB 本次就說到這裡,希望你們能有所獲。
下期,我們将結合源碼,去看看别人都是怎麼用 InfluxDB 的?并嘗試把 InfluxDB、Grafana 這些輪子組裝到一起,看看組裝之後的車子能否跑起來,敬請期待。