Sha256: 03dd1470cc41b596bc3b1557723481d29d5f4244c3cbbef9d82d178735334429

Contents?: true

Size: 852 Bytes

Versions: 1

Compression:

Stored size: 852 Bytes

Contents

# encoding: utf-8
# This file is distributed under New Relic's license terms.
# See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.

require 'new_relic/agent/stats_engine/metric_stats'
require 'new_relic/agent/stats_engine/gc_profiler'
require 'new_relic/agent/stats_engine/stats_hash'

module NewRelic
  module Agent
    # This class handles all the statistics gathering for the agent
    class StatsEngine
      include MetricStats

      attr_accessor :metric_rules

      def initialize
        @stats_lock   = Mutex.new
        @stats_hash   = StatsHash.new
        @metric_rules = RulesEngine.new
      end

      # All access to the @stats_hash ivar should be funnelled through this
      # method to ensure thread-safety.
      def with_stats_lock
        @stats_lock.synchronize { yield }
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
newrelic_rpm-4.0.0.332 lib/new_relic/agent/stats_engine.rb