diff --git a/docs/operations/metrics.md b/docs/operations/metrics.md
index 95099406f282..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.|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/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/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/ServiceStatusMonitor.java b/server/src/main/java/org/apache/druid/server/metrics/ServiceStatusMonitor.java
index d56bf76ec43c..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
@@ -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 HEARTBEAT_TAGS_BINDING = "heartbeat";
- @Named("heartbeat")
+ @Named(HEARTBEAT_TAGS_BINDING)
@Inject(optional = true)
Supplier