class NetuitiveRubyAPI

Attributes

data_manager[RW]
netuitivedServer[RW]
pid[R]

Public Class Methods

add_counter_sample(metric_id, val) click to toggle source
# File lib/netuitive_ruby_api.rb, line 67
def add_counter_sample(metric_id, val)
  @data_manager.add_counter_sample(metric_id, val)
end
add_sample(metric_id, val) click to toggle source
# File lib/netuitive_ruby_api.rb, line 63
def add_sample(metric_id, val)
  @data_manager.add_sample(metric_id, val)
end
aggregate_counter_metric(metric_id, val) click to toggle source
# File lib/netuitive_ruby_api.rb, line 75
def aggregate_counter_metric(metric_id, val)
  @data_manager.aggregate_counter_metric(metric_id, val)
end
aggregate_metric(metric_id, val) click to toggle source
# File lib/netuitive_ruby_api.rb, line 71
def aggregate_metric(metric_id, val)
  @data_manager.aggregate_metric(metric_id, val)
end
check_restart() click to toggle source
# File lib/netuitive_ruby_api.rb, line 49
def check_restart
  NetuitiveRubyApi::NetuitiveLogger.log.debug "stored pid: #{@pid}, process pid: #{Process.pid}"
  return if @pid == Process.pid
  Thread.new { NetuitiveRubyAPI.setup }
end
clear_metrics() click to toggle source
# File lib/netuitive_ruby_api.rb, line 79
def clear_metrics
  netuitivedServer.clearMetrics
end
event(message, timestamp = Time.new, title = 'Ruby Event', level = 'Info', source = 'Ruby Agent', type = 'INFO', tags = nil) click to toggle source
# File lib/netuitive_ruby_api.rb, line 87
def event(message, timestamp = Time.new, title = 'Ruby Event', level = 'Info', source = 'Ruby Agent', type = 'INFO', tags = nil)
  @data_manager.event(message, timestamp, title, level, source, type, tags)
end
exception_event(exception, klass = nil, tags = nil) click to toggle source
# File lib/netuitive_ruby_api.rb, line 91
def exception_event(exception, klass = nil, tags = nil)
  @data_manager.exception_event(exception, klass, tags)
end
flush_events() click to toggle source
# File lib/netuitive_ruby_api.rb, line 55
def flush_events
  @data_manager.flush_events
end
flush_samples() click to toggle source
# File lib/netuitive_ruby_api.rb, line 45
def flush_samples
  @data_manager.flush_samples
end
interval() click to toggle source
# File lib/netuitive_ruby_api.rb, line 83
def interval
  netuitivedServer.interval # synchronous for return value
end
send_metrics() click to toggle source
# File lib/netuitive_ruby_api.rb, line 59
def send_metrics
  netuitivedServer.sendMetrics
end
setup() click to toggle source
# File lib/netuitive_ruby_api.rb, line 17
def setup
  @pid = Process.pid
  NetuitiveRubyApi::ConfigManager.load_config
  NetuitiveRubyApi::NetuitiveLogger.setup
  NetuitiveRubyApi::ConfigManager.read_config
  NetuitiveRubyApi::ErrorLogger.guard('error during api setup') do
    server_uri = "druby://#{NetuitiveRubyApi::ConfigManager.netuitivedAddr}:#{NetuitiveRubyApi::ConfigManager.netuitivedPort}".freeze
    DRb.start_service
    drb_server = DRbObject.new_with_uri(server_uri)
    data_manager = NetuitiveRubyApi::DataManager.new
    data_manager.data_cache = NetuitiveRubyApi::DataCache.new
    data_manager.sample_cache_enabled = NetuitiveRubyApi::ConfigManager.sample_cache_enabled
    data_manager.sample_cache_size = NetuitiveRubyApi::ConfigManager.sample_cache_size
    data_manager.sample_cache_interval = NetuitiveRubyApi::ConfigManager.sample_cache_interval
    data_manager.event_cache_enabled = NetuitiveRubyApi::ConfigManager.event_cache_enabled
    data_manager.event_cache_size = NetuitiveRubyApi::ConfigManager.event_cache_size
    data_manager.event_cache_interval = NetuitiveRubyApi::ConfigManager.event_cache_interval
    data_manager.netuitived_server = drb_server
    @netuitivedServer = drb_server
    @data_manager = data_manager
    NetuitiveRubyApi::SampleSchedule.stop
    NetuitiveRubyApi::EventSchedule.stop
    NetuitiveRubyApi::SampleSchedule.start(NetuitiveRubyApi::ConfigManager.sample_cache_interval) if NetuitiveRubyApi::ConfigManager.sample_cache_enabled
    NetuitiveRubyApi::EventSchedule.start(NetuitiveRubyApi::ConfigManager.event_cache_interval) if NetuitiveRubyApi::ConfigManager.event_cache_enabled
    NetuitiveRubyApi::NetuitiveLogger.log.info 'netuitive_ruby_api finished setup'
  end
end
stop_server() click to toggle source
# File lib/netuitive_ruby_api.rb, line 95
def stop_server
  netuitivedServer.stopServer
end