add memory utilization metrics and support for ZGC/Shenandoah #1203
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The PR includes three improvements to our GC-related metrics:
jvm.memory.utilization
metric that tracks the percentage of memory used across old/tenured/single regions. This metric simplifies GC monitoring and alerting because there is no need to do math on the monitoring backend to come up with the usage based on max vs used memoryThreadMXBean.getThreadAllocatedBytes(...)
to measure allocated bytes instead of trying to infer the allocated bytes from the Eden sizes. This is a more reliable approach, although we might miss some allocation data when threads disappear (which is not typical in common application behavior where a set number of thread pools are allocated and stay constant through the app's lifetime)