LINUX.ORG.RU

Проблемы с созданием rrd-файла

 ,


0

2
require 'rrd' # rrd-ffi gem
# skiped detection of columns and range_max, file_path - as param goes to code
  rrd = RRD::Base.new file_path
  rrd.create! ({:start => Time.now - 10, :step => 5.minutes})  do |rrdi|
    columns.times do |u|
      rrdi.datasource "n#{u}", :type => :gauge, :heartbeat => 1200.seconds, :min => 0, :max => range_max
    end
    rrdi.archive :average, :every => 1.hour, :during => 1.day
    rrdi.archive :average, :every => 7.day, :during => 1.month
    rrdi.archive :average, :every => 1.month, :during => 1.year
    rrdi.archive :max
    rrdi.archive :min
  end

В общем в указанный кусок кода не работает с параметром :step отличным от 5.minutes.

Ставлю :step => 15.minutes (в принципе за этот период я и получаю данные), вываливается ошибка - Step should be > 1.

сталкивался кто нибудь с данным гемом? и как решили проблему?

★★★★★

Последнее исправление: etwrq (всего исправлений: 1)

Я в свое время реализовал следующий сценарий:

создание базы данных:

require «rrd»
interval = 60 # seconds
inbound_file = '../db/inbound.rrd'
my_rrd = RRD.new(inbound_file, 'inbound')
my_rrd.create(interval)


апдэйт этой базы - раз в минуту по крону:

rrd_file = '../db/inbound.rrd'
my_rrd = RRD.new(rrd_file, '../graph/')
my_rrd.update(inbound)
my_rrd.graph(60, 'inbound')

где inbound - это собственно сам контролируемый параметр

в библиотеке я вообще ничего не трогал

kto_tama ★★★★★
()
Последнее исправление: kto_tama (всего исправлений: 1)
Ответ на: комментарий от kto_tama
1.9.3-p392 :001 > require 'rrd'
 => true 
1.9.3-p392 :002 > interval = 60 # seconds
 => 60 
1.9.3-p392 :003 > inbound_file = '../db/inbound.rrd'
 => "../db/inbound.rrd" 
1.9.3-p392 :004 > my_rrd = RRD.new(inbound_file, 'inbound')
NoMethodError: undefined method `new' for RRD:Module
	from (irb):4
	from /opt/ror/.rvm/rubies/ruby-1.9.3-p392/bin/irb:16:in `<main>'
1.9.3-p392 :005 > my_rrd.create(interval)
NoMethodError: undefined method `create' for nil:NilClass
	from (irb):5
	from /opt/ror/.rvm/rubies/ruby-1.9.3-p392/bin/irb:16:in `<main>'
1.9.3-p392 :006 > 

не взлетает, к сожалению

etwrq ★★★★★
() автор топика

Судя по ./rrdtool-1.4.3/src/rrd_create.c:

379                     default:
380                         rrd.rra_def[rrd.stat_head->rra_cnt].pdp_cnt =
381                             atoi(token);
382                         if (atoi(token) < 1)
383                             rrd_set_error("Invalid step: must be >= 1");
384                         break;
385                     }
проблемы скорее с определением RRA

etwrq ★★★★★
() автор топика

пепел на мою лысеющую голову!
для :max и :min тоже надо указывать интервалы сбора статистики!
всем спасибо за внимание

etwrq ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.