Class: NetuitiveRubyAPI

Inherits:
Object
  • Object
show all
Defined in:
lib/netuitive_ruby_api.rb

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.data_managerObject

Returns the value of attribute data_manager.



14
15
16
# File 'lib/netuitive_ruby_api.rb', line 14

def data_manager
  @data_manager
end

.netuitivedServerObject

Returns the value of attribute netuitivedServer.



15
16
17
# File 'lib/netuitive_ruby_api.rb', line 15

def netuitivedServer
  @netuitivedServer
end

.pidObject (readonly)

Returns the value of attribute pid.



16
17
18
# File 'lib/netuitive_ruby_api.rb', line 16

def pid
  @pid
end

Class Method Details

.add_counter_sample(metric_id, val) ⇒ Object



67
68
69
# 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) ⇒ Object



63
64
65
# 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) ⇒ Object



75
76
77
# 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) ⇒ Object



71
72
73
# File 'lib/netuitive_ruby_api.rb', line 71

def aggregate_metric(metric_id, val)
  @data_manager.aggregate_metric(metric_id, val)
end

.check_restartObject



49
50
51
52
53
# 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_metricsObject



79
80
81
# 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) ⇒ Object



87
88
89
# 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) ⇒ Object



91
92
93
# 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_eventsObject



55
56
57
# File 'lib/netuitive_ruby_api.rb', line 55

def flush_events
  @data_manager.flush_events
end

.flush_samplesObject



45
46
47
# File 'lib/netuitive_ruby_api.rb', line 45

def flush_samples
  @data_manager.flush_samples
end

.intervalObject



83
84
85
# File 'lib/netuitive_ruby_api.rb', line 83

def interval
  netuitivedServer.interval # synchronous for return value
end

.send_metricsObject



59
60
61
# File 'lib/netuitive_ruby_api.rb', line 59

def send_metrics
  netuitivedServer.sendMetrics
end

.setupObject



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# 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_serverObject



95
96
97
# File 'lib/netuitive_ruby_api.rb', line 95

def stop_server
  netuitivedServer.stopServer
end