家の皆さんこんにちは!
私のpythonスクリプトはrrdファイルを作成します。create_rrd および update 関数は、値「interval」および「starttime」(現在のエポック) で開始されます。関数が使用されている場合、エポック時間は正確です。BUT: rrd ファイルで rrdtool fetch を実行すると、最後のタイム スタンプは常に 2 時間前になります。ENV 'TZ' で subprocess.Popen を呼び出す私のトリックは機能しません。したがって、すべての rrd ファイルの更新は失敗します。私が間違っている理由を誰かが知っていますか?
よろしくステファン
def create_rrd(self, interval, starttime):
interval = str(interval)
interval_mins = float(interval) / 60
heartbeat = str(int(interval) * 2)
ds_string = 'DS:test:GAUGE:%s:U:U' % heartbeat
rra_1 = 'RRA:AVERAGE:0.5:1:' + str(int(4000 / interval_mins))
rra_2 = 'RRA:AVERAGE:0.5:' + str(int(30 / interval_mins)) + ':800'
rra_3 = 'RRA:AVERAGE:0.5:' + str(int(120 / interval_mins)) + ':800'
rra_4 = 'RRA:AVERAGE:0.5:' + str(int(1440 / interval_mins)) + ':800'
cmd_create = [
'/omd/versions/default/bin/rrdtool',
'create',
self.rrd_name,
'-b',
str(starttime-10),
'--step',
interval,
ds_string,
rra_1,
rra_2,
rra_3 ,
rra_4,
]
print cmd_create
cmd = Popen(cmd_create, stdout=PIPE, stderr=PIPE, env={'LANG':'de_DE@euro','TZ':'Europe/Berlin'})
cmd_output = cmd.communicate()
self.errorprint(cmd_output)
#p = Popen(["date"], env={'TZ':'America/New_York'})
#p.wait()
#p = Popen(["date"], env={'TZ':'Europe/Berlin'})
#p.wait()
def update(self, starttime, *values):
values_args = ''.join([str(value) + ':' for value in values])[:-1]
values_final = '%s:%s' % (str(starttime), values_args)
cmd_update = [
'/omd/versions/default/bin/rrdtool',
'update',
self.rrd_name,
values_final,
]
print cmd_update
cmd = Popen(cmd_update, stdout=PIPE, stderr=PIPE, env={'LANG':'de_DE@euro','TZ':'Europe/Berlin'})
cmd_output = cmd.communicate()
self.errorprint(cmd_output
以下は、作成および更新用の Popen のコマンド リストです。
rrd create
['/omd/versions/default/bin/rrdtool', 'create', '/tmp/test1/CPU_utilization_util.rrd', '-b', '1342630417', '--step', '300', 'DS:test:GAUGE:600:U:U', 'RRA:AVERAGE:0.5:1:800', 'RRA:AVERAGE:0.5:6:800', 'RRA:AVERAGE:0.5:24:800', 'RRA:AVERAGE:0.5:288:800']
rrd update
['/omd/versions/default/bin/rrdtool', 'update', '/tmp/test1/CPU_utilization_util.rrd', '1342630427:8.37649086759']