From f3ff440a1b6e4c3366d2eb70114cb181cbb35948 Mon Sep 17 00:00:00 2001 From: Suneet Saldanha Date: Wed, 2 Aug 2023 19:05:47 -0700 Subject: [PATCH 1/4] Additional dimensions for service/heartbeat --- .../resources/defaultMetricDimensions.json | 2 +- .../server/metrics/ServiceStatusMonitor.java | 10 +++++---- .../org/apache/druid/cli/CliCoordinator.java | 3 ++- .../apache/druid/cli/CliMiddleManager.java | 19 +++++++++++++++++ .../org/apache/druid/cli/CliOverlord.java | 3 ++- .../java/org/apache/druid/cli/CliPeon.java | 21 +++++++++++++++++++ 6 files changed, 51 insertions(+), 7 deletions(-) diff --git a/extensions-contrib/statsd-emitter/src/main/resources/defaultMetricDimensions.json b/extensions-contrib/statsd-emitter/src/main/resources/defaultMetricDimensions.json index a7bdfbf3e585..9b134cc54218 100644 --- a/extensions-contrib/statsd-emitter/src/main/resources/defaultMetricDimensions.json +++ b/extensions-contrib/statsd-emitter/src/main/resources/defaultMetricDimensions.json @@ -175,5 +175,5 @@ "namespace/cache/numEntries" : { "dimensions" : [], "type" : "gauge" }, "namespace/cache/heapSizeInBytes" : { "dimensions" : [], "type" : "gauge" }, - "service/heartbeat" : { "dimensions" : ["leader"], "type" : "gauge" } + "service/heartbeat" : { "dimensions" : ["leader"], "type" : "count" } } diff --git a/server/src/main/java/org/apache/druid/server/metrics/ServiceStatusMonitor.java b/server/src/main/java/org/apache/druid/server/metrics/ServiceStatusMonitor.java index d56bf76ec43c..de54d6b4c541 100644 --- a/server/src/main/java/org/apache/druid/server/metrics/ServiceStatusMonitor.java +++ b/server/src/main/java/org/apache/druid/server/metrics/ServiceStatusMonitor.java @@ -33,8 +33,12 @@ */ public class ServiceStatusMonitor extends AbstractMonitor { + /** + * The named binding for tags that should be reported with the `service/heartbeat` metric. + */ + public static final String TAGS_BINDING = "heartbeat"; - @Named("heartbeat") + @Named(TAGS_BINDING) @Inject(optional = true) Supplier> heartbeatTagsSupplier = null; @@ -43,9 +47,7 @@ public boolean doMonitor(ServiceEmitter emitter) { final ServiceMetricEvent.Builder builder = new ServiceMetricEvent.Builder(); if (heartbeatTagsSupplier != null && heartbeatTagsSupplier.get() != null) { - heartbeatTagsSupplier.get().forEach((k, v) -> { - builder.setDimension(k, v); - }); + heartbeatTagsSupplier.get().forEach(builder::setDimension); } emitter.emit(builder.build("service/heartbeat", 1)); diff --git a/services/src/main/java/org/apache/druid/cli/CliCoordinator.java b/services/src/main/java/org/apache/druid/cli/CliCoordinator.java index 6d9be301d184..86a1dee0a1f3 100644 --- a/services/src/main/java/org/apache/druid/cli/CliCoordinator.java +++ b/services/src/main/java/org/apache/druid/cli/CliCoordinator.java @@ -114,6 +114,7 @@ import org.apache.druid.server.initialization.jetty.JettyServerInitializer; import org.apache.druid.server.lookup.cache.LookupCoordinatorManager; import org.apache.druid.server.lookup.cache.LookupCoordinatorManagerConfig; +import org.apache.druid.server.metrics.ServiceStatusMonitor; import org.apache.druid.server.router.TieredBrokerConfig; import org.eclipse.jetty.server.Server; import org.joda.time.Duration; @@ -332,7 +333,7 @@ public void configure(Binder binder) binder.bind(RowIngestionMetersFactory.class).toProvider(Providers.of(null)); // Bind HeartbeatSupplier only when the service operates independently of Overlord. binder.bind(new TypeLiteral>>() {}) - .annotatedWith(Names.named("heartbeat")) + .annotatedWith(Names.named(ServiceStatusMonitor.TAGS_BINDING)) .toProvider(HeartbeatSupplier.class); } diff --git a/services/src/main/java/org/apache/druid/cli/CliMiddleManager.java b/services/src/main/java/org/apache/druid/cli/CliMiddleManager.java index d5d5cba5cfcc..0d4302785062 100644 --- a/services/src/main/java/org/apache/druid/cli/CliMiddleManager.java +++ b/services/src/main/java/org/apache/druid/cli/CliMiddleManager.java @@ -20,7 +20,10 @@ package org.apache.druid.cli; import com.github.rvesse.airline.annotations.Command; +import com.google.common.base.Supplier; +import com.google.common.base.Suppliers; import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import com.google.inject.Binder; import com.google.inject.Inject; @@ -28,6 +31,7 @@ import com.google.inject.Module; import com.google.inject.Provides; import com.google.inject.multibindings.MapBinder; +import com.google.inject.name.Named; import com.google.inject.name.Names; import com.google.inject.util.Providers; import org.apache.druid.curator.ZkEnablementConfig; @@ -50,6 +54,7 @@ import org.apache.druid.indexing.common.TaskStorageDirTracker; import org.apache.druid.indexing.common.config.TaskConfig; import org.apache.druid.indexing.common.stats.DropwizardRowIngestionMetersFactory; +import org.apache.druid.indexing.common.task.Task; import org.apache.druid.indexing.common.task.batch.parallel.ParallelIndexSupervisorTaskClientProvider; import org.apache.druid.indexing.common.task.batch.parallel.ShuffleClient; import org.apache.druid.indexing.overlord.ForkingTaskRunner; @@ -76,11 +81,13 @@ import org.apache.druid.server.DruidNode; import org.apache.druid.server.http.SelfDiscoveryResource; import org.apache.druid.server.initialization.jetty.JettyServerInitializer; +import org.apache.druid.server.metrics.ServiceStatusMonitor; import org.apache.druid.server.metrics.WorkerTaskCountStatsProvider; import org.apache.druid.timeline.PruneLastCompactionState; import org.eclipse.jetty.server.Server; import java.util.List; +import java.util.Map; import java.util.Properties; import java.util.Set; @@ -195,6 +202,18 @@ private void configureIntermediaryData(Binder binder) biddy.addBinding("deepstore").to(DeepStorageIntermediaryDataManager.class).in(LazySingleton.class); } + @Provides + @LazySingleton + @Named(ServiceStatusMonitor.TAGS_BINDING) + public Supplier> heartbeatDimensions(WorkerConfig workerConfig, WorkerTaskManager workerTaskManager) + { + return () -> ImmutableMap.of( + "workerVersion", workerConfig.getVersion(), + "workerCapacity", workerConfig.getCapacity(), + "workerEnabled", workerTaskManager.isWorkerEnabled() ? 1 : 0 + ); + } + @Provides @LazySingleton public Worker getWorker(@Self DruidNode node, WorkerConfig config) diff --git a/services/src/main/java/org/apache/druid/cli/CliOverlord.java b/services/src/main/java/org/apache/druid/cli/CliOverlord.java index 1bbe1a0e9c88..ca63e3eadc7d 100644 --- a/services/src/main/java/org/apache/druid/cli/CliOverlord.java +++ b/services/src/main/java/org/apache/druid/cli/CliOverlord.java @@ -118,6 +118,7 @@ import org.apache.druid.server.initialization.ServerConfig; import org.apache.druid.server.initialization.jetty.JettyServerInitUtils; import org.apache.druid.server.initialization.jetty.JettyServerInitializer; +import org.apache.druid.server.metrics.ServiceStatusMonitor; import org.apache.druid.server.metrics.TaskCountStatsProvider; import org.apache.druid.server.metrics.TaskSlotCountStatsProvider; import org.apache.druid.server.security.AuthConfig; @@ -361,7 +362,7 @@ public TaskStorageDirTracker getTaskStorageDirTracker(WorkerConfig workerConfig, @Provides @LazySingleton - @Named("heartbeat") + @Named(ServiceStatusMonitor.TAGS_BINDING) public Supplier> getHeartbeatSupplier(TaskMaster taskMaster) { return () -> { diff --git a/services/src/main/java/org/apache/druid/cli/CliPeon.java b/services/src/main/java/org/apache/druid/cli/CliPeon.java index bad007af6731..02d164069f22 100644 --- a/services/src/main/java/org/apache/druid/cli/CliPeon.java +++ b/services/src/main/java/org/apache/druid/cli/CliPeon.java @@ -24,8 +24,11 @@ import com.github.rvesse.airline.annotations.Command; import com.github.rvesse.airline.annotations.Option; import com.github.rvesse.airline.annotations.restrictions.Required; +import com.google.common.base.Supplier; +import com.google.common.base.Suppliers; import com.google.common.base.Throwables; import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import com.google.inject.Binder; import com.google.inject.Inject; @@ -33,6 +36,7 @@ import com.google.inject.Key; import com.google.inject.Module; import com.google.inject.Provides; +import com.google.inject.TypeLiteral; import com.google.inject.multibindings.MapBinder; import com.google.inject.name.Named; import com.google.inject.name.Names; @@ -124,12 +128,14 @@ import org.apache.druid.server.initialization.jetty.ChatHandlerServerModule; import org.apache.druid.server.initialization.jetty.JettyServerInitializer; import org.apache.druid.server.metrics.DataSourceTaskIdHolder; +import org.apache.druid.server.metrics.ServiceStatusMonitor; import org.eclipse.jetty.server.Server; import java.io.File; import java.io.IOException; import java.nio.file.Paths; import java.util.List; +import java.util.Map; import java.util.Properties; import java.util.Set; @@ -259,6 +265,21 @@ public void configure(Binder binder) } } + @Provides + @LazySingleton + @Named(ServiceStatusMonitor.TAGS_BINDING) + public Supplier> heartbeatDimensions(Task task) + { + return Suppliers.ofInstance( + ImmutableMap.of( + "taskId", task.getId(), + "dataSource", task.getDataSource(), + "taskType", task.getType(), + "groupId", task.getGroupId() + ) + ); + } + @Provides @LazySingleton public Task readTask(@Json ObjectMapper mapper, ExecutorLifecycleConfig config) From 619f18e9c2c585be511fa66fcf5c028a2361c9f8 Mon Sep 17 00:00:00 2001 From: Suneet Saldanha Date: Wed, 2 Aug 2023 19:21:53 -0700 Subject: [PATCH 2/4] docs --- docs/operations/metrics.md | 6 +++--- services/src/main/java/org/apache/druid/cli/CliPeon.java | 9 +++++---- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/docs/operations/metrics.md b/docs/operations/metrics.md index 95099406f282..424c7808ec53 100644 --- a/docs/operations/metrics.md +++ b/docs/operations/metrics.md @@ -336,9 +336,9 @@ These metrics are for the Druid Coordinator and are reset each time the Coordina ### Service Health -|Metric|Description|Dimensions|Normal value| -|------|-----------|----------|------------| -| `service/heartbeat` | Metric indicating the service is up. `ServiceStatusMonitor` must be enabled. |`leader` on the Overlord and Coordinator.|1| +|Metric|Description| Dimensions |Normal value| +|------|-----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------| +| `service/heartbeat` | Metric indicating the service is up. `ServiceStatusMonitor` must be enabled. | `leader` on the Overlord and Coordinator.
`workerVersion`, `workerCapacity`, `workerEnabled` on the Middle Manager.
`taskId`, `groupId`, `taskType`, `dataSource` on the Peon |1| ### Historical diff --git a/services/src/main/java/org/apache/druid/cli/CliPeon.java b/services/src/main/java/org/apache/druid/cli/CliPeon.java index 02d164069f22..619599b5ecfc 100644 --- a/services/src/main/java/org/apache/druid/cli/CliPeon.java +++ b/services/src/main/java/org/apache/druid/cli/CliPeon.java @@ -100,6 +100,7 @@ import org.apache.druid.java.util.common.logger.Logger; import org.apache.druid.metadata.IndexerSQLMetadataStorageCoordinator; import org.apache.druid.metadata.input.InputSourceModule; +import org.apache.druid.query.DruidMetrics; import org.apache.druid.query.QuerySegmentWalker; import org.apache.druid.query.lookup.LookupModule; import org.apache.druid.segment.handoff.CoordinatorBasedSegmentHandoffNotifierConfig; @@ -272,10 +273,10 @@ public Supplier> heartbeatDimensions(Task task) { return Suppliers.ofInstance( ImmutableMap.of( - "taskId", task.getId(), - "dataSource", task.getDataSource(), - "taskType", task.getType(), - "groupId", task.getGroupId() + DruidMetrics.TASK_ID, task.getId(), + DruidMetrics.DATASOURCE, task.getDataSource(), + DruidMetrics.TASK_TYPE, task.getType(), + DruidMetrics.GROUP_ID, task.getGroupId() ) ); } From 0dfc8aab20e8626848312ea552a86e438a527070 Mon Sep 17 00:00:00 2001 From: Suneet Saldanha Date: Wed, 2 Aug 2023 21:08:53 -0700 Subject: [PATCH 3/4] review --- docs/operations/metrics.md | 4 ++-- .../apache/druid/server/metrics/ServiceStatusMonitor.java | 4 ++-- .../src/main/java/org/apache/druid/cli/CliCoordinator.java | 2 +- .../main/java/org/apache/druid/cli/CliMiddleManager.java | 6 ++---- .../src/main/java/org/apache/druid/cli/CliOverlord.java | 2 +- services/src/main/java/org/apache/druid/cli/CliPeon.java | 3 +-- 6 files changed, 9 insertions(+), 12 deletions(-) diff --git a/docs/operations/metrics.md b/docs/operations/metrics.md index 424c7808ec53..483debac4180 100644 --- a/docs/operations/metrics.md +++ b/docs/operations/metrics.md @@ -336,8 +336,8 @@ These metrics are for the Druid Coordinator and are reset each time the Coordina ### Service Health -|Metric|Description| Dimensions |Normal value| -|------|-----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------| +|Metric|Description|Dimensions|Normal value| +|------|-----------|----------|------------| | `service/heartbeat` | Metric indicating the service is up. `ServiceStatusMonitor` must be enabled. | `leader` on the Overlord and Coordinator.
`workerVersion`, `workerCapacity`, `workerEnabled` on the Middle Manager.
`taskId`, `groupId`, `taskType`, `dataSource` on the Peon |1| ### Historical diff --git a/server/src/main/java/org/apache/druid/server/metrics/ServiceStatusMonitor.java b/server/src/main/java/org/apache/druid/server/metrics/ServiceStatusMonitor.java index de54d6b4c541..ad87c1bcb638 100644 --- a/server/src/main/java/org/apache/druid/server/metrics/ServiceStatusMonitor.java +++ b/server/src/main/java/org/apache/druid/server/metrics/ServiceStatusMonitor.java @@ -36,9 +36,9 @@ public class ServiceStatusMonitor extends AbstractMonitor /** * The named binding for tags that should be reported with the `service/heartbeat` metric. */ - public static final String TAGS_BINDING = "heartbeat"; + public static final String HEARTBEAT_TAGS_BINDING = "heartbeat"; - @Named(TAGS_BINDING) + @Named(HEARTBEAT_TAGS_BINDING) @Inject(optional = true) Supplier> heartbeatTagsSupplier = null; diff --git a/services/src/main/java/org/apache/druid/cli/CliCoordinator.java b/services/src/main/java/org/apache/druid/cli/CliCoordinator.java index 86a1dee0a1f3..dcc8c1a95ac0 100644 --- a/services/src/main/java/org/apache/druid/cli/CliCoordinator.java +++ b/services/src/main/java/org/apache/druid/cli/CliCoordinator.java @@ -333,7 +333,7 @@ public void configure(Binder binder) binder.bind(RowIngestionMetersFactory.class).toProvider(Providers.of(null)); // Bind HeartbeatSupplier only when the service operates independently of Overlord. binder.bind(new TypeLiteral>>() {}) - .annotatedWith(Names.named(ServiceStatusMonitor.TAGS_BINDING)) + .annotatedWith(Names.named(ServiceStatusMonitor.HEARTBEAT_TAGS_BINDING)) .toProvider(HeartbeatSupplier.class); } diff --git a/services/src/main/java/org/apache/druid/cli/CliMiddleManager.java b/services/src/main/java/org/apache/druid/cli/CliMiddleManager.java index 0d4302785062..2973fda7add9 100644 --- a/services/src/main/java/org/apache/druid/cli/CliMiddleManager.java +++ b/services/src/main/java/org/apache/druid/cli/CliMiddleManager.java @@ -21,7 +21,6 @@ import com.github.rvesse.airline.annotations.Command; import com.google.common.base.Supplier; -import com.google.common.base.Suppliers; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; @@ -54,7 +53,6 @@ import org.apache.druid.indexing.common.TaskStorageDirTracker; import org.apache.druid.indexing.common.config.TaskConfig; import org.apache.druid.indexing.common.stats.DropwizardRowIngestionMetersFactory; -import org.apache.druid.indexing.common.task.Task; import org.apache.druid.indexing.common.task.batch.parallel.ParallelIndexSupervisorTaskClientProvider; import org.apache.druid.indexing.common.task.batch.parallel.ShuffleClient; import org.apache.druid.indexing.overlord.ForkingTaskRunner; @@ -204,12 +202,12 @@ private void configureIntermediaryData(Binder binder) @Provides @LazySingleton - @Named(ServiceStatusMonitor.TAGS_BINDING) + @Named(ServiceStatusMonitor.HEARTBEAT_TAGS_BINDING) public Supplier> heartbeatDimensions(WorkerConfig workerConfig, WorkerTaskManager workerTaskManager) { return () -> ImmutableMap.of( "workerVersion", workerConfig.getVersion(), - "workerCapacity", workerConfig.getCapacity(), + "workerCategory", workerConfig.getCategory(), "workerEnabled", workerTaskManager.isWorkerEnabled() ? 1 : 0 ); } diff --git a/services/src/main/java/org/apache/druid/cli/CliOverlord.java b/services/src/main/java/org/apache/druid/cli/CliOverlord.java index ca63e3eadc7d..d72d5eb24737 100644 --- a/services/src/main/java/org/apache/druid/cli/CliOverlord.java +++ b/services/src/main/java/org/apache/druid/cli/CliOverlord.java @@ -362,7 +362,7 @@ public TaskStorageDirTracker getTaskStorageDirTracker(WorkerConfig workerConfig, @Provides @LazySingleton - @Named(ServiceStatusMonitor.TAGS_BINDING) + @Named(ServiceStatusMonitor.HEARTBEAT_TAGS_BINDING) public Supplier> getHeartbeatSupplier(TaskMaster taskMaster) { return () -> { diff --git a/services/src/main/java/org/apache/druid/cli/CliPeon.java b/services/src/main/java/org/apache/druid/cli/CliPeon.java index 619599b5ecfc..8b8e1a426e8f 100644 --- a/services/src/main/java/org/apache/druid/cli/CliPeon.java +++ b/services/src/main/java/org/apache/druid/cli/CliPeon.java @@ -36,7 +36,6 @@ import com.google.inject.Key; import com.google.inject.Module; import com.google.inject.Provides; -import com.google.inject.TypeLiteral; import com.google.inject.multibindings.MapBinder; import com.google.inject.name.Named; import com.google.inject.name.Names; @@ -268,7 +267,7 @@ public void configure(Binder binder) @Provides @LazySingleton - @Named(ServiceStatusMonitor.TAGS_BINDING) + @Named(ServiceStatusMonitor.HEARTBEAT_TAGS_BINDING) public Supplier> heartbeatDimensions(Task task) { return Suppliers.ofInstance( From b53a2eff0d8e889a4a90c1425b696a185edffdfa Mon Sep 17 00:00:00 2001 From: Suneet Saldanha Date: Thu, 3 Aug 2023 10:38:00 -0700 Subject: [PATCH 4/4] review --- docs/operations/metrics.md | 2 +- .../src/main/java/org/apache/druid/query/DruidMetrics.java | 3 +++ .../druid/server/metrics/WorkerTaskCountStatsMonitor.java | 5 +++-- .../main/java/org/apache/druid/cli/CliMiddleManager.java | 7 ++++--- 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/docs/operations/metrics.md b/docs/operations/metrics.md index 483debac4180..c8918e35170f 100644 --- a/docs/operations/metrics.md +++ b/docs/operations/metrics.md @@ -338,7 +338,7 @@ These metrics are for the Druid Coordinator and are reset each time the Coordina |Metric|Description|Dimensions|Normal value| |------|-----------|----------|------------| -| `service/heartbeat` | Metric indicating the service is up. `ServiceStatusMonitor` must be enabled. | `leader` on the Overlord and Coordinator.
`workerVersion`, `workerCapacity`, `workerEnabled` on the Middle Manager.
`taskId`, `groupId`, `taskType`, `dataSource` on the Peon |1| +| `service/heartbeat` | Metric indicating the service is up. `ServiceStatusMonitor` must be enabled. | `leader` on the Overlord and Coordinator.
`workerVersion`, `category`, `status` on the Middle Manager.
`taskId`, `groupId`, `taskType`, `dataSource` on the Peon |1| ### Historical diff --git a/processing/src/main/java/org/apache/druid/query/DruidMetrics.java b/processing/src/main/java/org/apache/druid/query/DruidMetrics.java index 3dc8685fc002..f85dd0016005 100644 --- a/processing/src/main/java/org/apache/druid/query/DruidMetrics.java +++ b/processing/src/main/java/org/apache/druid/query/DruidMetrics.java @@ -49,6 +49,9 @@ public class DruidMetrics public static final String TAGS = "tags"; + public static final String CATEGORY = "category"; + public static final String WORKER_VERSION = "workerVersion"; + public static int findNumComplexAggs(List aggs) { int retVal = 0; diff --git a/server/src/main/java/org/apache/druid/server/metrics/WorkerTaskCountStatsMonitor.java b/server/src/main/java/org/apache/druid/server/metrics/WorkerTaskCountStatsMonitor.java index 26d23bf9aca9..a464a81a81de 100644 --- a/server/src/main/java/org/apache/druid/server/metrics/WorkerTaskCountStatsMonitor.java +++ b/server/src/main/java/org/apache/druid/server/metrics/WorkerTaskCountStatsMonitor.java @@ -26,6 +26,7 @@ import org.apache.druid.java.util.emitter.service.ServiceEmitter; import org.apache.druid.java.util.emitter.service.ServiceMetricEvent; import org.apache.druid.java.util.metrics.AbstractMonitor; +import org.apache.druid.query.DruidMetrics; import java.util.Set; @@ -71,8 +72,8 @@ private void emit(ServiceEmitter emitter, String metricName, Long value) { if (value != null) { final ServiceMetricEvent.Builder builder = new ServiceMetricEvent.Builder(); - builder.setDimension("category", workerCategory); - builder.setDimension("workerVersion", workerVersion); + builder.setDimension(DruidMetrics.CATEGORY, workerCategory); + builder.setDimension(DruidMetrics.WORKER_VERSION, workerVersion); emitter.emit(builder.build(metricName, value)); } } diff --git a/services/src/main/java/org/apache/druid/cli/CliMiddleManager.java b/services/src/main/java/org/apache/druid/cli/CliMiddleManager.java index 2973fda7add9..70aa26b7c132 100644 --- a/services/src/main/java/org/apache/druid/cli/CliMiddleManager.java +++ b/services/src/main/java/org/apache/druid/cli/CliMiddleManager.java @@ -70,6 +70,7 @@ import org.apache.druid.indexing.worker.shuffle.ShuffleModule; import org.apache.druid.java.util.common.logger.Logger; import org.apache.druid.metadata.input.InputSourceModule; +import org.apache.druid.query.DruidMetrics; import org.apache.druid.query.lookup.LookupSerdeModule; import org.apache.druid.segment.incremental.RowIngestionMetersFactory; import org.apache.druid.segment.realtime.appenderator.AppenderatorsManager; @@ -206,9 +207,9 @@ private void configureIntermediaryData(Binder binder) public Supplier> heartbeatDimensions(WorkerConfig workerConfig, WorkerTaskManager workerTaskManager) { return () -> ImmutableMap.of( - "workerVersion", workerConfig.getVersion(), - "workerCategory", workerConfig.getCategory(), - "workerEnabled", workerTaskManager.isWorkerEnabled() ? 1 : 0 + DruidMetrics.WORKER_VERSION, workerConfig.getVersion(), + DruidMetrics.CATEGORY, workerConfig.getCategory(), + DruidMetrics.STATUS, workerTaskManager.isWorkerEnabled() ? "Enabled" : "Disabled" ); }