in lib/elastic_apm/metrics/jvm_set.rb [40:73]
def read!
return if disabled?
heap = platform_bean.get_heap_memory_usage
non_heap = platform_bean.get_non_heap_memory_usage
gauge(:"jvm.memory.heap.used").value = heap.get_used
gauge(:"jvm.memory.heap.committed").value = heap.get_committed
gauge(:"jvm.memory.heap.max").value = heap.get_max
gauge(:"jvm.memory.non_heap.used").value = non_heap.get_used
gauge(:"jvm.memory.non_heap.committed").value = non_heap.get_committed
gauge(:"jvm.memory.non_heap.max").value = non_heap.get_max
pool_beans.each do |bean|
next unless bean.type.name == "HEAP"
tags = { name: bean.get_name }
gauge(:"jvm.memory.heap.pool.used", tags: tags).value = bean.get_usage.get_used
gauge(:"jvm.memory.heap.pool.committed", tags: tags).value = bean.get_usage.get_committed
gauge(:"jvm.memory.heap.pool.max", tags: tags).value = bean.get_usage.get_max
end
rescue Exception => e
error("JVM metrics encountered error: %s", e)
debug("Backtrace:") { e.backtrace.join("\n") }
@error_count += 1
if @error_count >= MAX_TRIES
disable!
error("Disabling JVM metrics after #{MAX_TRIES} errors", e)
end
end