start

in lib/elastic_apm/metrics.rb [46:73]


      def start
        unless config.collect_metrics?
          debug 'Skipping metrics'
          return
        end

        define_sets

        debug 'Starting metrics'

        @timer_task = Concurrent::TimerTask.execute(
          run_now: true,
          execution_interval: config.metrics_interval
        ) do
          begin
            debug 'Collecting metrics'
            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