class Fluent::Plugin::LocalMetrics

Public Class Methods

new() click to toggle source
Calls superclass method Fluent::Plugin::Metrics::new
# File lib/fluent/plugin/metrics_local.rb, line 25
def initialize
  super
  @store = 0
  @monitor = Monitor.new
end

Public Instance Methods

add(value) click to toggle source
# File lib/fluent/plugin/metrics_local.rb, line 69
def add(value)
  @monitor.synchronize do
    @store += value
  end
end
configure(conf) click to toggle source
Calls superclass method Fluent::Plugin::Metrics#configure
# File lib/fluent/plugin/metrics_local.rb, line 31
def configure(conf)
  super

  if use_gauge_metric
    class << self
      alias_method :dec, :dec_gauge
      alias_method :set, :set_gauge
      alias_method :sub, :sub_gauge
    end
  else
    class << self
      alias_method :set, :set_counter
    end
  end
end
dec_gauge() click to toggle source
# File lib/fluent/plugin/metrics_local.rb, line 63
def dec_gauge
  @monitor.synchronize do
    @store -= 1
  end
end
get() click to toggle source
# File lib/fluent/plugin/metrics_local.rb, line 51
def get
  @monitor.synchronize do
    @store
  end
end
inc() click to toggle source
# File lib/fluent/plugin/metrics_local.rb, line 57
def inc
  @monitor.synchronize do
    @store += 1
  end
end
multi_workers_ready?() click to toggle source
# File lib/fluent/plugin/metrics_local.rb, line 47
def multi_workers_ready?
  true
end
set_counter(value) click to toggle source
# File lib/fluent/plugin/metrics_local.rb, line 81
def set_counter(value)
  return if @store > value

  @monitor.synchronize do
    @store = value
  end
end
set_gauge(value) click to toggle source
# File lib/fluent/plugin/metrics_local.rb, line 89
def set_gauge(value)
  @monitor.synchronize do
    @store = value
  end
end
sub_gauge(value) click to toggle source
# File lib/fluent/plugin/metrics_local.rb, line 75
def sub_gauge(value)
  @monitor.synchronize do
    @store -= value
  end
end