RRDtool

出自Gea-Suan Lin's Wiki
跳至導覽 跳至搜尋

RRDtool是一套TSDB

概念

主要的兩個概念是DS與RRA。

DS

Data Sources(DS)比較好理解,定義資料,依照官方的說明是:

DS:ds-name:{GAUGE | COUNTER | DERIVE | DCOUNTER | DDERIVE | ABSOLUTE}:heartbeat:min:max

其中:

  • DS表示這是DS。
  • ds-name是自己定義的名稱。
  • GAUGE這串挑一個用。
  • heartbeat表示單一一個數字表示的有效時間,平常用不太到,但遇到前後有缺資料的時候會使用者個設定。
  • minmax表示這個資料的範圍區間。

所以像是這樣的DS定義就是將foo定成uint32,有效區間五分鐘:

DS:foo:COUNTER:5m:0:4294967295

RRA

Round Robin Archive(RRA)是定義要存的資料量,最基礎的定義是:

RRA:{AVERAGE | MIN | MAX | LAST}:xff:steps:rows

其中:

  • RRA表示這是一個RRA。
  • AVERAGE這串挑一個用。
  • xff需要設定為的值(也就是「大於等於0但小於1」的值),常常用0.5(取中間)。
  • steps表示取樣數量。
  • rows表示產出數量(保留在RRD資料庫的數量)。

舉例來說,我想要有小時平均值的數據,然後保留一天:

RRA:AVERAGE:0.5:1h:1d

安裝

一般透過系統的套件就可以直接安裝:

sudo apt install -y rrdtool; sudo apt clean

範例

先建立一個test.rrd

rrdtool create test.rrd --start 19800101 --step 5m DS:foo:COUNTER:5m:0:4294967295 RRA:AVERAGE:0.5:1h:1d

馬上就可以dump成XML:

rrdtool dump test.rrd

加入資料:

rrdtool update test.rrd N:100

外部連結