Module: DistribCore::Metrics

Defined in:
lib/distrib_core/metrics.rb

Overview

Collect metrics from Leader and Workers.

Class Method Summary collapse

Class Method Details

.queue_exposedObject

Records Leader is ready to serve tests



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

def queue_exposed
  report[:queue_exposed_at] = Time.now.to_i
end

.reportObject

Stores metrics



6
7
8
9
10
11
12
13
# File 'lib/distrib_core/metrics.rb', line 6

def report
  @report ||= {
    queue_exposed_at: nil,
    first_test_taken_at: nil,
    watchdog_repush_count: 0,
    repushed_files: Hash.new { |h, k| h[k] = [] }
  }
end

.test_takenObject

Records first test was taken by a worker



21
22
23
# File 'lib/distrib_core/metrics.rb', line 21

def test_taken
  report[:first_test_taken_at] ||= Time.now.to_i
end

.watchdog_repushed(test, timeout_in_seconds) ⇒ Object

Records when watchdog repushes files back to queue because of timeout

Parameters:

  • test (String)
  • timeout_in_seconds (Float)

    timeout which was exceeded



29
30
31
32
# File 'lib/distrib_core/metrics.rb', line 29

def watchdog_repushed(test, timeout_in_seconds)
  report[:watchdog_repush_count] += 1
  report[:repushed_files][test] << timeout_in_seconds
end