[ https://issues.apache.org/jira/browse/ZOOKEEPER-4818?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andrew Kyle Purtell updated ZOOKEEPER-4818: ------------------------------------------- Description: A metric for JVM heap occupancy is not included in ServerMetrics. According to [https://zookeeper.apache.org/doc/current/zookeeperMonitor.html] the recommended practice is for someone to enable the PrometheusMetricsProvider and the Prometheus base class upon which that provider is based does export that information. See [https://zookeeper.apache.org/doc/current/zookeeperMonitor.html] . The example provided for alerting on heap utilization there is: {noformat} - alert: JvmMemoryFillingUp expr: jvm_memory_bytes_used / jvm_memory_bytes_max{area="heap"} > 0.8 for: 5m labels: severity: warning annotations: summary: "JVM memory filling up (instance {{ $labels.instance }})" description: "JVM memory is filling up (> 80%)\n labels: {{ $labels }} value = {{ $value }}\n" {noformat} where {{jvm_memory_bytes_used}} and {{jvm_memory_bytes_max}} are provided by a Prometheus base class. Where PrometheusMetricsProvider is the right choice that's good enough but where the ServerMetrics information is consumed in an alternate way, by 4-letter-word scraping, or by JMX, ServerMetrics should provide the same information. {{jvm_memory_bytes_used}} and {{jvm_memory_bytes_max}} (presuming heap) are reasonable names. An alternative could be to calculate the heap occupancy and provide that as a percentage, either an integer in the range 0 - 100 or floating point value in the range 0.0 - 1.0. There is some precedent for exporting JVM metrics in ServerMetrics from ZOOKEEPER-3845 . was: A metric for JVM heap occupancy is not included in ServerMetrics. According to [https://zookeeper.apache.org/doc/current/zookeeperMonitor.html] the recommended practice is for someone to enable the PrometheusMetricsProvider and the Prometheus base class upon which that provider is based does export that information. See [https://zookeeper.apache.org/doc/current/zookeeperMonitor.html] . The example provided for alerting on heap utilization there is: {noformat} - alert: JvmMemoryFillingUp expr: jvm_memory_bytes_used / jvm_memory_bytes_max{area="heap"} > 0.8 for: 5m labels: severity: warning annotations: summary: "JVM memory filling up (instance {{ $labels.instance }})" description: "JVM memory is filling up (> 80%)\n labels: {{ $labels }} value = {{ $value }}\n" {noformat} where {{jvm_memory_bytes_used}} and {{jvm_memory_bytes_max}} are provided by a Prometheus base class. Where PrometheusMetricsProvider is the right choice that's good enough but where the ServerMetrics information is consumed in an alternate way, by 4-letter-word scraping, or by JMX, ServerMetrics should provide the same information. {{jvm_memory_bytes_used}} and {{jvm_memory_bytes_max}} (presuming heap) are reasonable names. An alternative could be to calculate the heap occupancy and provide that as a percentage, either an integer in the range 0 - 100 or floating point value in the range 0.0 - 1.0. > Export JVM heap metrics in ServerMetrics > ---------------------------------------- > > Key: ZOOKEEPER-4818 > URL: https://issues.apache.org/jira/browse/ZOOKEEPER-4818 > Project: ZooKeeper > Issue Type: Improvement > Components: metric system > Reporter: Andrew Kyle Purtell > Priority: Minor > > A metric for JVM heap occupancy is not included in ServerMetrics. > According to [https://zookeeper.apache.org/doc/current/zookeeperMonitor.html] > the recommended practice is for someone to enable the > PrometheusMetricsProvider and the Prometheus base class upon which that > provider is based does export that information. See > [https://zookeeper.apache.org/doc/current/zookeeperMonitor.html] . The > example provided for alerting on heap utilization there is: > {noformat} > - alert: JvmMemoryFillingUp > expr: jvm_memory_bytes_used / jvm_memory_bytes_max{area="heap"} > 0.8 > for: 5m > labels: > severity: warning > annotations: > summary: "JVM memory filling up (instance {{ $labels.instance }})" > description: "JVM memory is filling up (> 80%)\n labels: {{ $labels }} > value = {{ $value }}\n" > {noformat} > where {{jvm_memory_bytes_used}} and {{jvm_memory_bytes_max}} are provided by > a Prometheus base class. > Where PrometheusMetricsProvider is the right choice that's good enough but > where the ServerMetrics information is consumed in an alternate way, by > 4-letter-word scraping, or by JMX, ServerMetrics should provide the same > information. {{jvm_memory_bytes_used}} and {{jvm_memory_bytes_max}} > (presuming heap) are reasonable names. An alternative could be to calculate > the heap occupancy and provide that as a percentage, either an integer in the > range 0 - 100 or floating point value in the range 0.0 - 1.0. > There is some precedent for exporting JVM metrics in ServerMetrics from > ZOOKEEPER-3845 . -- This message was sent by Atlassian Jira (v8.20.10#820010)