Method: Instana::Collectors::GC#collect
- Defined in:
- lib/instana/collectors/gc.rb
#collect ⇒ Object
collect
To collect garbage collector related metrics.
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/instana/collectors/gc.rb', line 19 def collect @this_gc.clear stats = ::GC.stat # Time spent in GC. Report in milliseconds @this_gc[:totalTime] = ::GC::Profiler.total_time * 1000 ::GC::Profiler.clear # GC metrics only available on newer Ruby versions if RUBY_VERSION >= '2.1' # GC runs. Calculate how many have occurred since the last call @this_gc[:minorGcs] = stats[:minor_gc_count] - @last_minor_count @this_gc[:majorGcs] = stats[:major_gc_count] - @last_major_count # Store these counts so that we have something to compare to next # time around. @last_major_count = stats[:major_gc_count] @last_minor_count = stats[:minor_gc_count] @this_gc[:heap_live] = stats[:heap_live_slots] || stats[:heap_live_num] @this_gc[:heap_free] = stats[:heap_free_slots] || stats[:heap_free_num] else @this_gc[:heap_live] = stats[:heap_live_slot] || stats[:heap_live_num] @this_gc[:heap_free] = stats[:heap_free_slot] || stats[:heap_free_num] end @this_gc rescue => e ::Instana.logger.info "#{__method__}:#{File.basename(__FILE__)}:#{__LINE__}: #{e.}" ::Instana.logger.debug e.backtrace.join("\r\n") end |