lib/riemann/babbler/plugin.rb in riemann-babbler-0.5.5 vs lib/riemann/babbler/plugin.rb in riemann-babbler-0.5.6

- old
+ new

@@ -24,10 +24,13 @@ def initialize( configatron, logger ) @configatron = configatron @logger = logger @storage = Hash.new + @configatron.riemann.cache_host = Configatron::Dynamic.new{ riemann_ip } + @configatron.riemann.last_cache_time = Time.now + @riemann_ip = riemann_random_ip init run end # Доступ к конфигу определенного плагина @@ -39,12 +42,25 @@ def options @configatron end alias :opts :options + def riemann_ip + if Time.now - options.riemann.last_cache_time > options.riemann.dns_ttl + options.riemann.last_cache_time = Time.now + @riemann_ip = riemann_random_ip + end + @riemann_ip + end + + def riemann_random_ip + ipaddress = Resolv.new.getaddresses(configatron.riemann.host) + ipaddress[rand(ipaddress.length)] + end + def riemann @riemann ||= Riemann::Client.new( - :host => options.riemann.host, + :host => options.riemann.cache_host, :port => options.riemann.port ) end alias :r :riemann