トップ 一覧 検索 ヘルプ RSS ログイン

tips-rrdtoolsの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!RRDtools
[Home|http://oss.oetiker.ch/rrdtool/index.en.html]

[DownLoad|http://oss.oetiker.ch/rrdtool/download.en.html]

!rrdpython

[pipy_rrdtool|https://pypi.org/project/rrdtool/]

[rrdpython|http://oss.oetiker.ch/rrdtool/prog/rrdpython.en.html]

[pipy_python-rrdtool|https://pypi.python.org/pypi/python-rrdtool/]

[pipy_rrdtool|https://pypi.org/project/rrdtool/]

 % pip3.7 --proxy http://127.0.0.1:18080 install --upgrade --user rrdtool

*[GIT|https://github.com/commx/python-rrdtool/tree/master/docs]

!cli info
http://www.sakito.com/2012/10/rrdtool.html

!tip
http://www.itmedia.co.jp/enterprise/articles/0705/25/news013_2.html

!check
http://blog.majide.com/2009/02/socket-programming-server/

----
 ネットワークの転送量は
 //sys/class/net/eth2/statistics/tx_bytes
 /proc/net/dev
 のいずれかから
 
  FreeBSD の場合には
    sysctl -a | grep em1 | grep recvd

----
pipy_rrdtools - sample

% cat test_CREATE.py 

 import rrdtool
 
 # Create Round Robin Database
 rrdtool.create('test.rrd', '--start', 'now', '--step', '300', 'RRA:AVERAGE:0.5:1:1200', 'DS:temp:GAUGE:600:-273:5000')
 
 # Feed updates to the RRD
 rrdtool.update('test.rrd', 'N:32')

% cat ./test_FETCH.py 

 import rrdtool
 
 result = rrdtool.fetch("test.rrd", "AVERAGE")
 start, end, step = result[0]
 ds = result[1]
 rows = result[2]
 
 print(ds)
 
 print(rows)

% cat ./test_graph.py 

 import rrdtool
 
 result = rrdtool.graph("graph.png", *args)
 width = result[0]
 height = result[1]
 
 if result[2] is not None:
    calcpr = result[2]  # list

% cat ./test_info.py 

 import rrdtool
 
 ret = rrdtool.info("test.rrd")
 
 
 print(ret)

----
RRDtols の応用

https://heartbeats.jp/hbblog/2013/02/predict-rrdtool.html

% cat ./test02.sh 

 rrdtool graph g0002.png \
    --start="-1w" \
    --end="+1w" \
    --imgformat=PNG \
    --title="Load Average (5min)" \
    --height=400 \
    --width=800 \
    --lower-limit=0 \
 DEF:load=/var/munin/PXY000/PXY000-load-load-g.rrd:42:MAX \
    CDEF:sm=load,10800,TREND \
    CDEF:cf=86400,-8,3600,sm,PREDICT \
    AREA:load#CC0000:"Load Average (5min)" \
    LINE1:sm#00CC00:"Smoothing" \
    LINE1:cf#0000CC:"Curve Fitting" \
    LINE2:2#CCCCCC:"Limit"
 
 # DEF:load=/var/munin/PXY000/PXY000-load-load-g.rrd:42:AVERAGE \
 #  AREA:load#CC0000:"Load Average (5min)" \
 #     LINE2:2#CCCCCC:"Limit
----
python-rrdtool sample
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
 import rrdtool
 
 
 def create():
     data_sources = [
        'DS:load1:GAUGE:600:0:U',
        'DS:load5:GAUGE:600:0:U',
        'DS:load15:GAUGE:600:0:U',
    ]
    rras = [
        'RRA:AVERAGE:0.5:1:600',
        'RRA:AVERAGE:0.5:6:700',
        'RRA:AVERAGE:0.5:24:775',
        'RRA:AVERAGE:0.5:288:797',
        'RRA:MAX:0.5:1:600',
        'RRA:MAX:0.5:6:700',
        'RRA:MAX:0.5:24:775',
        'RRA:MAX:0.5:288:797',
        'RRA:MIN:0.5:1:600',
        'RRA:MIN:0.5:6:700',
        'RRA:MIN:0.5:24:775',
        'RRA:MIN:0.5:288:797',
    ]
 
    rrdtool.create('pyload.rrd',
                   '--step', '300',
                   data_sources,
                   rras)
 
 
 def main():
    create()
 
 if __name__ == '__main__':
    main()
----