Sha256: 48e0fbb7ccaad1a1c64275ac79ef5fdcb96298aa151ad0d2659be1031e9e5e65

Contents?: true

Size: 1.27 KB

Versions: 11

Compression:

Stored size: 1.27 KB

Contents

# encoding: utf-8

require 'one_apm/collector/sampler'

module OneApm
  module Collector
    module Samplers

      class MemorySampler < OneApm::Collector::Sampler
        named :memory

        def set_poller poller
          @poller = poller
        end

        def platform
          OneApm::Collector::Samplers::MemorySampler.platform
        end

        def poll
          sample = get_sample
          if sample
            OneApm::Manager.record_metric("Memory/Used", sample)
          end
        end

        def get_sample
          begin
            m = @poller.memory 
            if m.nil?
              OneApm::Manager.logger.warn "Unable to get the resident memory for process #{$$}.  Disabling memory sampler."
            end
            return m
          rescue => e
            OneApm::Manager.logger.warn "Unable to get the resident memory for process #{$$}. Disabling memory sampler.", e
            return nil
          end
        end

        def self.supported_on_this_platform?
          defined?(::JRuby) or platform =~ /linux|darwin|freebsd|solaris/
        end

        def self.platform
          if RUBY_PLATFORM =~ /java/
            %x[uname -s].downcase
          else
            RUBY_PLATFORM.downcase
          end
        end

      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
oneapm_rpm-1.4.2 lib/one_apm/collector/samplers/memory_sampler.rb
oneapm_rpm-1.4.1 lib/one_apm/collector/samplers/memory_sampler.rb
oneapm_rpm-1.4.0 lib/one_apm/collector/samplers/memory_sampler.rb
oneapm_rpm-1.3.7 lib/one_apm/collector/samplers/memory_sampler.rb
oneapm_rpm-1.3.7.rc1 lib/one_apm/collector/samplers/memory_sampler.rb
oneapm_rpm-1.3.6 lib/one_apm/collector/samplers/memory_sampler.rb
oneapm_rpm-1.3.6.rc1 lib/one_apm/collector/samplers/memory_sampler.rb
oneapm_rpm-1.3.5 lib/one_apm/collector/samplers/memory_sampler.rb
oneapm_rpm-1.3.5.rc1 lib/one_apm/collector/samplers/memory_sampler.rb
oneapm_rpm-1.3.4 lib/one_apm/collector/samplers/memory_sampler.rb
oneapm_rpm-1.3.4.rc1 lib/one_apm/collector/samplers/memory_sampler.rb