lib/elastic_apm/agent.rb in elastic-apm-2.2.0 vs lib/elastic_apm/agent.rb in elastic-apm-2.3.0
- old
+ new
@@ -4,10 +4,11 @@
require 'elastic_apm/error_builder'
require 'elastic_apm/stacktrace_builder'
require 'elastic_apm/error'
require 'elastic_apm/transport/base'
require 'elastic_apm/spies'
+require 'elastic_apm/metrics'
module ElasticAPM
# rubocop:disable Metrics/ClassLength
# @api private
class Agent
@@ -53,22 +54,25 @@
@context_builder = ContextBuilder.new(config)
@error_builder = ErrorBuilder.new(self)
@transport = Transport::Base.new(config)
@instrumenter = Instrumenter.new(
- config, stacktrace_builder: stacktrace_builder
+ config,
+ stacktrace_builder: stacktrace_builder
) { |event| enqueue event }
+ @metrics = Metrics.new(config) { |event| enqueue event }
end
attr_reader :config, :transport, :instrumenter,
- :stacktrace_builder, :context_builder, :error_builder
+ :stacktrace_builder, :context_builder, :error_builder, :metrics
def start
info '[%s] Starting agent, reporting to %s', VERSION, config.server_url
transport.start
instrumenter.start
+ metrics.start
config.enabled_spies.each do |lib|
require "elastic_apm/spies/#{lib}"
end
@@ -78,9 +82,10 @@
def stop
debug 'Stopping agent'
instrumenter.stop
transport.stop
+ metrics.stop
self
end
at_exit do