Class: Legion::CLI::Telemetry

Inherits:
Thor
  • Object
show all
Defined in:
lib/legion/cli/telemetry_command.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.exit_on_failure?Boolean

Returns:

  • (Boolean)


6
7
8
# File 'lib/legion/cli/telemetry_command.rb', line 6

def self.exit_on_failure?
  true
end

Instance Method Details

#ingest(path) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/legion/cli/telemetry_command.rb', line 38

def ingest(path)
  out    = formatter
  runner = telemetry_runner
  result = runner.ingest_session(file_path: path)

  if options[:json]
    out.json(result)
  elsif result[:success]
    out.success("Ingested #{result[:event_count]} events from #{path}")
    out.detail({ session_id: result[:session_id], events: result[:event_count] })
  else
    out.error("Error: #{result[:error]}")
  end
end

#stats(session_id = nil) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/legion/cli/telemetry_command.rb', line 16

def stats(session_id = nil)
  out    = formatter
  runner = telemetry_runner

  result = if session_id
             runner.session_stats(session_id: session_id)
           else
             runner.aggregate_stats
           end

  if options[:json]
    out.json(result)
  elsif result[:success]
    out.header(session_id ? "Session: #{session_id}" : 'Aggregate Telemetry Stats')
    display_stats(out, result[:stats])
  else
    out.error("Error: #{result[:error]}")
  end
end

#statusObject



54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/legion/cli/telemetry_command.rb', line 54

def status
  out    = formatter
  runner = telemetry_runner
  result = runner.telemetry_status

  if options[:json]
    out.json(result)
  elsif result[:success]
    out.header('Telemetry Status')
    out.detail({
                 'Buffer Size' => result[:buffer_size].to_s,
                 'Pending'     => result[:pending_count].to_s,
                 'Sessions'    => result[:session_count].to_s,
                 'Parsers'     => result[:parsers].join(', ')
               })
  else
    out.error("Error: #{result[:error]}")
  end
end