Sha256: bde5356eda0eaa1294b78fe8e5b59a0a894a3217594a62f376922ac1b4ff468a

Contents?: true

Size: 817 Bytes

Versions: 32

Compression:

Stored size: 817 Bytes

Contents

# This file is distributed under New Relic's license terms.
# See https://github.com/newrelic/newrelic-ruby-agent/blob/main/LICENSE for complete details.
# frozen_string_literal: true

require 'thread'
require 'new_relic/agent/vm/snapshot'

module NewRelic
  module Agent
    module VM
      class JRubyVM
        def snapshot
          snap = Snapshot.new
          gather_stats(snap)
          snap
        end

        def gather_stats(snap)
          if supports?(:gc_runs)
            gc_stats = GC.stat
            snap.gc_runs = gc_stats[:count]
          end

          snap.thread_count = Thread.list.size
        end

        def supports?(key)
          case key
          when :gc_runs, :thread_count
            true
          else
            false
          end
        end
      end
    end
  end
end

Version data entries

32 entries across 32 versions & 1 rubygems

Version Path
newrelic_rpm-9.2.2 lib/new_relic/agent/vm/jruby_vm.rb
newrelic_rpm-9.2.1 lib/new_relic/agent/vm/jruby_vm.rb
newrelic_rpm-9.2.0 lib/new_relic/agent/vm/jruby_vm.rb
newrelic_rpm-9.1.0 lib/new_relic/agent/vm/jruby_vm.rb
newrelic_rpm-9.0.0 lib/new_relic/agent/vm/jruby_vm.rb
newrelic_rpm-8.16.0 lib/new_relic/agent/vm/jruby_vm.rb
newrelic_rpm-8.15.0 lib/new_relic/agent/vm/jruby_vm.rb
newrelic_rpm-8.14.0 lib/new_relic/agent/vm/jruby_vm.rb
newrelic_rpm-8.13.1 lib/new_relic/agent/vm/jruby_vm.rb
newrelic_rpm-8.13.0 lib/new_relic/agent/vm/jruby_vm.rb
newrelic_rpm-8.12.0 lib/new_relic/agent/vm/jruby_vm.rb
newrelic_rpm-8.11.0 lib/new_relic/agent/vm/jruby_vm.rb