class ElasticAPM::Metrics::Collector

def start

rubocop:disable Metrics/MethodLength
def start
  return unless config.collect_metrics?
  @timer_task = Concurrent::TimerTask.execute(
    run_now: true,
    execution_interval: config.metrics_interval,
    timeout_interval: TIMEOUT_INTERVAL
  ) do
    begin
      collect_and_send
      true
    rescue StandardError => e
      error 'Error while collecting metrics: %e', e.inspect
      debug { e.backtrace.join("\n") }
      false
    end
  end
  @running = true
end