Class: MergeRequests::Mergeability::Logger

Inherits:
Object
  • Object
show all
Includes:
Gitlab::Utils::StrongMemoize
Defined in:
app/services/merge_requests/mergeability/logger.rb

Instance Method Summary collapse

Constructor Details

#initialize(merge_request:, destination: Gitlab::AppJsonLogger) ⇒ Logger

Returns a new instance of Logger.



8
9
10
11
# File 'app/services/merge_requests/mergeability/logger.rb', line 8

def initialize(merge_request:, destination: Gitlab::AppJsonLogger)
  @destination = destination
  @merge_request = merge_request
end

Instance Method Details

#commitObject



13
14
15
# File 'app/services/merge_requests/mergeability/logger.rb', line 13

def commit
  commit_logs
end

#instrument(mergeability_name:) ⇒ Object

Raises:

  • (ArgumentError)


17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'app/services/merge_requests/mergeability/logger.rb', line 17

def instrument(mergeability_name:)
  raise ArgumentError, 'block not given' unless block_given?

  op_start_db_counters = current_db_counter_payload
  op_started_at = current_monotonic_time

  result = yield

  observe_result(mergeability_name, result)
  observe("mergeability.#{mergeability_name}.duration_s", current_monotonic_time - op_started_at)
  observe_sql_counters(mergeability_name, op_start_db_counters, current_db_counter_payload)

  result
end