From 7ef612cdeac3e0aca5c8f8b3df566f2b4e455a76 Mon Sep 17 00:00:00 2001 From: zhenjiaguo Date: Wed, 19 Jan 2022 11:20:15 +0800 Subject: [PATCH] [KYUUBI #1699] Improve codahale metric ### _Why are the changes needed?_ Improve the codahale metric registered in MetricsSystem. ### _How was this patch tested?_ - [ ] Add some test cases that check the changes thoroughly including negative and positive cases if possible - [x] Add screenshots for manual tests if appropriate Before: ![Screenshot from 2022-01-17 18-50-32](https://user-images.githubusercontent.com/29809822/149756433-d318bc9c-c884-4194-a92b-f90b803dc15f.png) After: ![Screenshot from 2022-01-17 18-52-47](https://user-images.githubusercontent.com/29809822/149756710-6d77f283-0bcc-4b8e-9a78-9716e0c5c697.png) - [x] [Run test](https://kyuubi.readthedocs.io/en/latest/develop_tools/testing.html#running-tests) locally before make a pull request Closes #1782 from zhenjiaguo/improve_codahale_metric. Closes #1699 73ac95be [zhenjiaguo] improve codahale metric Authored-by: zhenjiaguo Signed-off-by: Kent Yao --- .../org/apache/kyuubi/metrics/MetricsConstants.scala | 6 ++++++ .../org/apache/kyuubi/metrics/MetricsSystem.scala | 11 +++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/kyuubi-metrics/src/main/scala/org/apache/kyuubi/metrics/MetricsConstants.scala b/kyuubi-metrics/src/main/scala/org/apache/kyuubi/metrics/MetricsConstants.scala index a2c9afd0f..c0ada08ba 100644 --- a/kyuubi-metrics/src/main/scala/org/apache/kyuubi/metrics/MetricsConstants.scala +++ b/kyuubi-metrics/src/main/scala/org/apache/kyuubi/metrics/MetricsConstants.scala @@ -21,6 +21,12 @@ object MetricsConstants { final private val KYUUBI = "kyuubi." + final val GC_METRIC: String = KYUUBI + "gc" + final val MEMORY_USAGE: String = KYUUBI + "memory_usage" + final val BUFFER_POOL: String = KYUUBI + "buffer_pool" + final val THREAD_STATE: String = KYUUBI + "thread_state" + final val CLASS_LOADING: String = KYUUBI + "class_loading" + final val EXEC_POOL_ALIVE: String = KYUUBI + "exec.pool.threads.alive" final val EXEC_POOL_ACTIVE: String = KYUUBI + "exec.pool.threads.active" diff --git a/kyuubi-metrics/src/main/scala/org/apache/kyuubi/metrics/MetricsSystem.scala b/kyuubi-metrics/src/main/scala/org/apache/kyuubi/metrics/MetricsSystem.scala index 389dba08c..3622ff8d7 100644 --- a/kyuubi-metrics/src/main/scala/org/apache/kyuubi/metrics/MetricsSystem.scala +++ b/kyuubi-metrics/src/main/scala/org/apache/kyuubi/metrics/MetricsSystem.scala @@ -67,10 +67,13 @@ class MetricsSystem extends CompositeService("MetricsSystem") { } override def initialize(conf: KyuubiConf): Unit = synchronized { - registry.registerAll(new GarbageCollectorMetricSet) - registry.registerAll(new MemoryUsageGaugeSet) - registry.registerAll(new BufferPoolMetricSet(ManagementFactory.getPlatformMBeanServer)) - registry.registerAll(new ThreadStatesGaugeSet) + registry.registerAll(MetricsConstants.GC_METRIC, new GarbageCollectorMetricSet) + registry.registerAll(MetricsConstants.MEMORY_USAGE, new MemoryUsageGaugeSet) + registry.registerAll( + MetricsConstants.BUFFER_POOL, + new BufferPoolMetricSet(ManagementFactory.getPlatformMBeanServer)) + registry.registerAll(MetricsConstants.THREAD_STATE, new ThreadStatesGaugeSet) + registry.registerAll(MetricsConstants.CLASS_LOADING, new ClassLoadingGaugeSet) conf.get(METRICS_REPORTERS).map(ReporterType.withName).foreach { case JSON => addService(new JsonReporterService(registry))