Module: OpticsAgent::Reporting

Included in:
Agent, Query, QueryTrace, Report, Schema
Defined in:
lib/optics-agent/reporting/query.rb,
lib/optics-agent/reporting/report.rb,
lib/optics-agent/reporting/schema.rb,
lib/optics-agent/reporting/helpers.rb,
lib/optics-agent/reporting/report_job.rb,
lib/optics-agent/reporting/schema_job.rb,
lib/optics-agent/reporting/query-trace.rb,
lib/optics-agent/reporting/detect_server_side_error.rb

Defined Under Namespace

Classes: DetectServerSideError, Query, QueryTrace, Report, ReportJob, Schema, SchemaJob

Instance Method Summary collapse

Instance Method Details

#add_latency(counts, duration_in_seconds) ⇒ Object



35
36
37
# File 'lib/optics-agent/reporting/helpers.rb', line 35

def add_latency(counts, duration_in_seconds)
  counts[latency_bucket_for_duration(duration_in_seconds)] += 1
end

#client_info(rack_env) ⇒ Object

XXX: implement



27
28
29
30
31
32
33
# File 'lib/optics-agent/reporting/helpers.rb', line 27

def client_info(rack_env)
  {
    client_name: 'none',
    client_version: 'none',
    client_address: '::1'
  }
end

#duration_micros(duration_in_seconds) ⇒ Object



22
23
24
# File 'lib/optics-agent/reporting/helpers.rb', line 22

def duration_micros(duration_in_seconds)
  (duration_in_seconds * 1e6).to_i
end

#duration_nanos(duration_in_seconds) ⇒ Object



18
19
20
# File 'lib/optics-agent/reporting/helpers.rb', line 18

def duration_nanos(duration_in_seconds)
  (duration_in_seconds * 1e9).to_i
end

#generate_report_headerObject



4
5
6
7
8
9
# File 'lib/optics-agent/reporting/helpers.rb', line 4

def generate_report_header
  # XXX: fill out
  Apollo::Optics::Proto::ReportHeader.new({
    agent_version: '0'
  })
end

#generate_timestamp(time) ⇒ Object



11
12
13
14
15
16
# File 'lib/optics-agent/reporting/helpers.rb', line 11

def generate_timestamp(time)
  Apollo::Optics::Proto::Timestamp.new({
    seconds: time.to_i,
    nanos: duration_nanos(time.to_i % 1)
  });
end

#latency_bucket_for_duration(duration_in_seconds) ⇒ Object



39
40
41
# File 'lib/optics-agent/reporting/helpers.rb', line 39

def latency_bucket_for_duration(duration_in_seconds)
  latency_bucket(duration_micros(duration_in_seconds))
end