rrdtool fetch возвращает объект None

Я использую библиотеку rrdtool в Python. Тот же скрипт Python вернул данные день назад, но теперь неожиданно он возвращает объект None внутри сгенерированных кортежей. Файлы rrd не были изменены. Тип возвращаемого значения - кортеж и даже информация rrd, если она печатается. Пожалуйста, уделите немного времени, чтобы разобраться с этим.

    import sys
    import pprint
    sys.path.append('/opt/plexus-srv/rrdtool-1.4.9/lib64/python2.6/site-
    packages')
    import rrdtool
    rrd_file = sys.argv[1]
    rrd_info = rrdtool.info(rrd_file)

    data = rrdtool.fetch(rrd_file,"AVERAGE")
    print(type(data))
    pp = pprint.PrettyPrinter(indent =4)
    pp.pprint(data)
    pp.pprint(rrd_info)

Выход:

    <type 'tuple'>
('sum',)
1510142400
[(None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,), (None,)]
     {   'ds[sum].index': 0L,
    'ds[sum].last_ds': '99.3',
    'ds[sum].max': None,
    'ds[sum].min': None,
    'ds[sum].minimal_heartbeat': 120L,
    'ds[sum].type': 'GAUGE',
    'ds[sum].unknown_sec': 0L,
    'ds[sum].value': 1290.8999999999999,
    'filename': '/home/u43555766/aad/plexus/rrdsample/testing/cpu/cpu_idle.rrd',
    'header_size': 1416L,
    'last_update': 1510030543L,
    'rra[0].cdp_prep[0].unknown_datapoints': 0L,
    'rra[0].cdp_prep[0].value': None,
    'rra[0].cf': 'AVERAGE',
    'rra[0].cur_row': 49L,
    'rra[0].pdp_per_row': 1L,
    'rra[0].rows': 490L,
    'rra[0].xff': 0.5,
    'rra[1].cdp_prep[0].unknown_datapoints': 0L,
    'rra[1].cdp_prep[0].value': 198.78666666666669,
    'rra[1].cf': 'AVERAGE',
    'rra[1].cur_row': 2264L,
    'rra[1].pdp_per_row': 4L,
    'rra[1].rows': 2890L,
    'rra[1].xff': 0.5,
    'rra[2].cdp_prep[0].unknown_datapoints': 0L,
    'rra[2].cdp_prep[0].value': 198.78666666666669,
    'rra[2].cf': 'AVERAGE',
    'rra[2].cur_row': 873L,
    'rra[2].pdp_per_row': 20L,
    'rra[2].rows': 2026L,
    'rra[2].xff': 0.5,
    'rra[3].cdp_prep[0].unknown_datapoints': 0L,
    'rra[3].cdp_prep[0].value': 22058.293333333328,
    'rra[3].cf': 'AVERAGE',
    'rra[3].cur_row': 387L,
    'rra[3].pdp_per_row': 240L,
    'rra[3].rows': 754L,
    'rra[3].xff': 0.5,
    'rra[4].cdp_prep[0].unknown_datapoints': 0L,
    'rra[4].cdp_prep[0].value': 117354.74000000028,
    'rra[4].cf': 'AVERAGE',
    'rra[4].cur_row': 214L,
    'rra[4].pdp_per_row': 5760L,
    'rra[4].rows': 375L,
    'rra[4].xff': 0.5,
    'rrd_version': '0003',
    'step': 15L}

2 ответа

Решение

Наиболее очевидный ответ на этот вопрос заключается в том, что нет данных для возврата.

Вы не говорите, если и как вы добавили данные в файл RRD. Поскольку ваш вызов 'fetch' не имеет никаких параметров для определения разрешения, начала или конца, он, скорее всего, получит значение по умолчанию, равное одному дню, которое заканчивается сейчас, с разрешением 5 минут. У вас есть RRA, соответствующий этому, но мы не можем знать, есть ли там какие-либо данные.

Если посмотреть на предоставленные вами данные, то кажется, что вы запускаете fetch во время 1510142400, но последнее обновление RRD было в 1510030543, примерно 31 час назад. Вероятно, нет данных за последний день?

Попробуйте запустить "rrdtool fetch" ​​и "rrdtool dump" из командной строки и убедитесь, что данные сохранены и соответствуют тем временам, о которых вы думаете. Может быть, передать дополнительные параметры в 'fetch', чтобы указать шаг, начало и конец.

Я новичок в rrdtool, поэтому не понял, что пропустил время начала сбора данных. Файлы пришли с сервера несколько дней назад. Команда Fetch пропустила время '-s' и, следовательно, напечатала None Object. Добавление '-s' с '-96h' напечатало данные. Благодаря @ Steve-Shipway

Другие вопросы по тегам