class OneApm::Collector::CollectorService

Constants

OA_PROTOCOL_VERSION

Attributes

agent_id[RW]
collector[R]
marshaller[R]
metric_id_cache[R]
request_timeout[RW]

Public Class Methods

new(license_key = nil, collector = nil) click to toggle source
# File lib/one_apm/collector/collector_service.rb, line 24
def initialize(license_key = nil, collector = nil)
  @license_key = license_key || OneApm::Manager.config[:license_key]
  @collector = collector || server
  @request_timeout = OneApm::Manager.config[:timeout]
  @metric_id_cache = {}
  @audit_logger = ::OneApm::Logger::AuditLogger.new

  OneApm::Manager.config.register_callback(:'audit_log.enabled') do |enabled|
    @audit_logger.enabled = enabled
  end

  OneApm::Manager.config.register_callback(:ssl) do |ssl|
    if !ssl
      OneApm::Manager.logger.warn("Agent is configured not to use SSL when communicating with OneApm's servers")
    else
      OneApm::Manager.logger.debug("Agent is configured to use SSL")
    end
  end

  OneApm::Manager.config.register_callback(:marshaller) do |marshaller|
    @marshaller = OneApm::Support::JsonMarshaller.new
  end
end

Public Instance Methods

agent_command_results(results) click to toggle source
# File lib/one_apm/collector/collector_service.rb, line 99
def agent_command_results(results)
  invoke_remote(:agent_command_results, [@agent_id, results])
end
analytic_event_data(data) click to toggle source
# File lib/one_apm/collector/collector_service.rb, line 107
def analytic_event_data(data)
  invoke_remote(:analytic_event_data, data, :item_count => data.size)
end
connect(settings={}) click to toggle source
# File lib/one_apm/collector/collector_service.rb, line 52
def connect(settings={})
  if host = get_redirect_host
    @collector = server_from_host(host)
  end
  response = invoke_remote(:connect, [settings])
  @agent_id = response['agent_run_id'] if response
  response
end
custom_event_data(data) click to toggle source
# File lib/one_apm/collector/collector_service.rb, line 111
def custom_event_data(data)
  invoke_remote(:custom_event_data, [@agent_id, data], :item_count => data.size)
end
error_data(unsent_errors) click to toggle source
# File lib/one_apm/collector/collector_service.rb, line 79
def error_data(unsent_errors)
  invoke_remote(:error_data, [@agent_id, unsent_errors], :item_count => unsent_errors.size)
end
fetch_config() click to toggle source
# File lib/one_apm/collector/collector_service.rb, line 119
def fetch_config
  invoke_remote(:get_external_rule,[],{},:hash_value=>0)
end
get_agent_commands() click to toggle source
# File lib/one_apm/collector/collector_service.rb, line 95
def get_agent_commands
  invoke_remote(:get_agent_commands, [@agent_id])
end
get_redirect_host() click to toggle source
# File lib/one_apm/collector/collector_service.rb, line 48
def get_redirect_host
  invoke_remote(:get_redirect_host)
end
get_xray_metadata(xray_ids) click to toggle source
# File lib/one_apm/collector/collector_service.rb, line 103
def get_xray_metadata(xray_ids)
  invoke_remote(:get_xray_metadata, [@agent_id, *xray_ids])
end
metric_data(stats_hash) click to toggle source
# File lib/one_apm/collector/collector_service.rb, line 65
def metric_data(stats_hash)
  timeslice_start = stats_hash.started_at
  timeslice_end   = stats_hash.harvested_at || Time.now

  metric_data_array = build_metric_data_array(stats_hash)
  result = invoke_remote(
    :metric_data,
    [@agent_id, timeslice_start.to_f, timeslice_end.to_f, metric_data_array],
    :item_count => metric_data_array.size
  )
  fill_metric_id_cache(result)
  result
end
profile_data(profile) click to toggle source
# File lib/one_apm/collector/collector_service.rb, line 91
def profile_data(profile)
  invoke_remote(:profile_data, [@agent_id, profile], :skip_normalization => true) || ''
end
shutdown(time) click to toggle source
# File lib/one_apm/collector/collector_service.rb, line 61
def shutdown(time)
  invoke_remote(:shutdown, [@agent_id, time.to_i]) if @agent_id
end
sql_trace_data(sql_traces) click to toggle source
# File lib/one_apm/collector/collector_service.rb, line 87
def sql_trace_data(sql_traces)
  invoke_remote(:sql_trace_data, [sql_traces], :item_count => sql_traces.size)
end
transaction_sample_data(traces) click to toggle source
# File lib/one_apm/collector/collector_service.rb, line 83
def transaction_sample_data(traces)
  invoke_remote(:transaction_sample_data, [@agent_id, traces], :item_count => traces.size)
end
utilization_data(data) click to toggle source
# File lib/one_apm/collector/collector_service.rb, line 115
def utilization_data(data)
  invoke_remote(:utilization_data, data)
end