Sha256: 9282ac0e6c97c14d6c52fdf6952e292265ac6f9f51015967621ed08843712abc

Contents?: true

Size: 1.02 KB

Versions: 34

Compression:

Stored size: 1.02 KB

Contents

# encoding: utf-8

module OneApm
  class Transaction

    @@java_classes_loaded = false

    if defined? JRuby
      begin
        require 'java'
        java_import 'java.lang.management.ManagementFactory'
        java_import 'com.sun.management.OperatingSystemMXBean'
        @@java_classes_loaded = true
      rescue
      end
    end

    JRUBY_CPU_TIME_ERROR = "Error calculating JRuby CPU Time".freeze

    def jruby_cpu_time
      return nil unless @@java_classes_loaded
      threadMBean = Java::JavaLangManagement::ManagementFactory.getThreadMXBean()

      return nil unless threadMBean.isCurrentThreadCpuTimeSupported
      java_utime = threadMBean.getCurrentThreadUserTime()  # ns

      -1 == java_utime ? 0.0 : java_utime/1e9
    rescue => e
      OneApm::Manager.logger.log_once(:warn, :jruby_cpu_time, JRUBY_CPU_TIME_ERROR, e)
      OneApm::Manager.logger.debug(JRUBY_CPU_TIME_ERROR, e)
      nil
    end

    def jruby_cpu_burn
      return unless @jruby_cpu_start
      jruby_cpu_time - @jruby_cpu_start
    end

  end
end

Version data entries

34 entries across 34 versions & 1 rubygems

Version Path
oneapm_rpm-1.3.6 lib/one_apm/transaction/transaction_jruby_functions.rb
oneapm_rpm-1.3.6.rc1 lib/one_apm/transaction/transaction_jruby_functions.rb
oneapm_rpm-1.3.5 lib/one_apm/transaction/transaction_jruby_functions.rb
oneapm_rpm-1.3.5.rc1 lib/one_apm/transaction/transaction_jruby_functions.rb
oneapm_rpm-1.3.4 lib/one_apm/transaction/transaction_jruby_functions.rb
oneapm_rpm-1.3.4.rc1 lib/one_apm/transaction/transaction_jruby_functions.rb
oneapm_rpm-1.3.3 lib/one_apm/transaction/transaction_jruby_functions.rb
oneapm_rpm-1.3.3.rc1 lib/one_apm/transaction/transaction_jruby_functions.rb
oneapm_rpm-1.3.2 lib/one_apm/transaction/transaction_jruby_functions.rb
oneapm_rpm-1.3.2.rc1 lib/one_apm/transaction/transaction_jruby_functions.rb
oneapm_rpm-1.3.1 lib/one_apm/transaction/transaction_jruby_functions.rb
oneapm_rpm-1.3.1.rc1 lib/one_apm/transaction/transaction_jruby_functions.rb
oneapm_rpm-1.3.0 lib/one_apm/transaction/transaction_jruby_functions.rb
oneapm_rpm-1.3.0.rc1 lib/one_apm/transaction/transaction_jruby_functions.rb
oneapm_rpm-1.2.9 lib/one_apm/transaction/transaction_jruby_functions.rb
oneapm_rpm-1.2.9.rc1 lib/one_apm/transaction/transaction_jruby_functions.rb
oneapm_rpm-1.2.8 lib/one_apm/transaction/transaction_jruby_functions.rb
oneapm_rpm-1.2.8.rc1 lib/one_apm/transaction/transaction_jruby_functions.rb
oneapm_rpm-1.2.7 lib/one_apm/transaction/transaction_jruby_functions.rb
oneapm_rpm-1.2.7.rc1 lib/one_apm/transaction/transaction_jruby_functions.rb