class ElasticAPM::Agent

def self.start(config) # rubocop:disable Metrics/MethodLength

rubocop:disable Metrics/MethodLength
def self.start(config) # rubocop:disable Metrics/MethodLength
  return @instance if @instance
  config = Config.new(config) unless config.is_a?(Config)
  unless config.enabled_environments.include?(config.environment)
    puts format(
      '%sNot tracking anything in "%s" env',
      Log::PREFIX, config.environment
    )
    return
  end
  LOCK.synchronize do
    return @instance if @instance
    @instance = new(config).start
  end
end