This is an automated email from the ASF dual-hosted git repository.

xincheng pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git


The following commit(s) were added to refs/heads/dev by this push:
     new 97d164cda7 feat: add heartbeat metrics (#16267)
97d164cda7 is described below

commit 97d164cda71d6ed1e99ba4b4cec48e2a62a36cc2
Author: Gallardot <[email protected]>
AuthorDate: Wed Jul 3 18:38:45 2024 +0800

    feat: add heartbeat metrics (#16267)
    
    Signed-off-by: Gallardot <[email protected]>
---
 .../dolphinscheduler/alert/metrics/AlertServerMetrics.java       | 8 ++++++++
 .../dolphinscheduler/alert/registry/AlertHeartbeatTask.java      | 2 ++
 .../server/master/metrics/MasterServerMetrics.java               | 8 ++++++++
 .../dolphinscheduler/server/master/task/MasterHeartBeatTask.java | 2 ++
 .../server/worker/metrics/WorkerServerMetrics.java               | 9 +++++++++
 .../dolphinscheduler/server/worker/task/WorkerHeartBeatTask.java | 2 ++
 6 files changed, 31 insertions(+)

diff --git 
a/dolphinscheduler-alert/dolphinscheduler-alert-server/src/main/java/org/apache/dolphinscheduler/alert/metrics/AlertServerMetrics.java
 
b/dolphinscheduler-alert/dolphinscheduler-alert-server/src/main/java/org/apache/dolphinscheduler/alert/metrics/AlertServerMetrics.java
index 606834a2e9..dfe819fbfa 100644
--- 
a/dolphinscheduler-alert/dolphinscheduler-alert-server/src/main/java/org/apache/dolphinscheduler/alert/metrics/AlertServerMetrics.java
+++ 
b/dolphinscheduler-alert/dolphinscheduler-alert-server/src/main/java/org/apache/dolphinscheduler/alert/metrics/AlertServerMetrics.java
@@ -39,6 +39,11 @@ public class AlertServerMetrics {
                     .description("Alert failure count")
                     .register(Metrics.globalRegistry);
 
+    private final Counter alertHeartBeatCounter =
+            Counter.builder("ds.alert.heartbeat.count")
+                    .description("alert heartbeat count")
+                    .register(Metrics.globalRegistry);
+
     public void registerPendingAlertGauge(final Supplier<Number> supplier) {
         Gauge.builder("ds.alert.pending", supplier)
                 .description("Number of pending alert")
@@ -65,4 +70,7 @@ public class AlertServerMetrics {
         alertFailCounter.increment();
     }
 
+    public void incAlertHeartbeatCount() {
+        alertHeartBeatCounter.increment();
+    }
 }
diff --git 
a/dolphinscheduler-alert/dolphinscheduler-alert-server/src/main/java/org/apache/dolphinscheduler/alert/registry/AlertHeartbeatTask.java
 
b/dolphinscheduler-alert/dolphinscheduler-alert-server/src/main/java/org/apache/dolphinscheduler/alert/registry/AlertHeartbeatTask.java
index a5481fdd49..b8640dd539 100644
--- 
a/dolphinscheduler-alert/dolphinscheduler-alert-server/src/main/java/org/apache/dolphinscheduler/alert/registry/AlertHeartbeatTask.java
+++ 
b/dolphinscheduler-alert/dolphinscheduler-alert-server/src/main/java/org/apache/dolphinscheduler/alert/registry/AlertHeartbeatTask.java
@@ -18,6 +18,7 @@
 package org.apache.dolphinscheduler.alert.registry;
 
 import org.apache.dolphinscheduler.alert.config.AlertConfig;
+import org.apache.dolphinscheduler.alert.metrics.AlertServerMetrics;
 import org.apache.dolphinscheduler.alert.service.AlertHAServer;
 import org.apache.dolphinscheduler.common.enums.ServerStatus;
 import org.apache.dolphinscheduler.common.model.AlertServerHeartBeat;
@@ -85,6 +86,7 @@ public class AlertHeartbeatTask extends 
BaseHeartBeatTask<AlertServerHeartBeat>
     public void writeHeartBeat(AlertServerHeartBeat heartBeat) {
         String heartBeatJson = JSONUtils.toJsonString(heartBeat);
         registryClient.persistEphemeral(heartBeatPath, heartBeatJson);
+        AlertServerMetrics.incAlertHeartbeatCount();
         log.debug("Success write master heartBeatInfo into registry, 
masterRegistryPath: {}, heartBeatInfo: {}",
                 heartBeatPath, heartBeatJson);
     }
diff --git 
a/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/metrics/MasterServerMetrics.java
 
b/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/metrics/MasterServerMetrics.java
index 1fc92200df..3b99eebfc9 100644
--- 
a/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/metrics/MasterServerMetrics.java
+++ 
b/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/metrics/MasterServerMetrics.java
@@ -43,6 +43,11 @@ public class MasterServerMetrics {
                     .description("Master server consume command count")
                     .register(Metrics.globalRegistry);
 
+    private final Counter masterHeartBeatCounter =
+            Counter.builder("ds.master.heartbeat.count")
+                    .description("master heartbeat count")
+                    .register(Metrics.globalRegistry);
+
     public void registerMasterMemoryAvailableGauge(Supplier<Number> supplier) {
         Gauge.builder("ds.master.memory.available", supplier)
                 .description("Master memory available")
@@ -75,4 +80,7 @@ public class MasterServerMetrics {
         masterConsumeCommandCounter.increment(commandCount);
     }
 
+    public void incMasterHeartbeatCount() {
+        masterHeartBeatCounter.increment();
+    }
 }
diff --git 
a/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/task/MasterHeartBeatTask.java
 
b/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/task/MasterHeartBeatTask.java
index b7b5e7a21e..f6c1e7ee3c 100644
--- 
a/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/task/MasterHeartBeatTask.java
+++ 
b/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/task/MasterHeartBeatTask.java
@@ -29,6 +29,7 @@ import 
org.apache.dolphinscheduler.meter.metrics.SystemMetrics;
 import org.apache.dolphinscheduler.registry.api.RegistryClient;
 import org.apache.dolphinscheduler.server.master.config.MasterConfig;
 import 
org.apache.dolphinscheduler.server.master.config.MasterServerLoadProtection;
+import org.apache.dolphinscheduler.server.master.metrics.MasterServerMetrics;
 
 import lombok.NonNull;
 import lombok.extern.slf4j.Slf4j;
@@ -80,6 +81,7 @@ public class MasterHeartBeatTask extends 
BaseHeartBeatTask<MasterHeartBeat> {
     public void writeHeartBeat(MasterHeartBeat masterHeartBeat) {
         String masterHeartBeatJson = JSONUtils.toJsonString(masterHeartBeat);
         registryClient.persistEphemeral(heartBeatPath, masterHeartBeatJson);
+        MasterServerMetrics.incMasterHeartbeatCount();
         log.debug("Success write master heartBeatInfo into registry, 
masterRegistryPath: {}, heartBeatInfo: {}",
                 heartBeatPath, masterHeartBeatJson);
     }
diff --git 
a/dolphinscheduler-worker/src/main/java/org/apache/dolphinscheduler/server/worker/metrics/WorkerServerMetrics.java
 
b/dolphinscheduler-worker/src/main/java/org/apache/dolphinscheduler/server/worker/metrics/WorkerServerMetrics.java
index 613e7eaf28..e17db2f346 100644
--- 
a/dolphinscheduler-worker/src/main/java/org/apache/dolphinscheduler/server/worker/metrics/WorkerServerMetrics.java
+++ 
b/dolphinscheduler-worker/src/main/java/org/apache/dolphinscheduler/server/worker/metrics/WorkerServerMetrics.java
@@ -52,6 +52,11 @@ public class WorkerServerMetrics {
                     .description("worker resource download failure count")
                     .register(Metrics.globalRegistry);
 
+    private final Counter workerHeartBeatCounter =
+            Counter.builder("ds.worker.heartbeat.count")
+                    .description("worker heartbeat count")
+                    .register(Metrics.globalRegistry);
+
     private final Timer workerResourceDownloadDurationTimer =
             Timer.builder("ds.worker.resource.download.duration")
                     .publishPercentiles(0.5, 0.75, 0.95, 0.99)
@@ -83,6 +88,10 @@ public class WorkerServerMetrics {
         workerResourceDownloadFailCounter.increment();
     }
 
+    public void incWorkerHeartbeatCount() {
+        workerHeartBeatCounter.increment();
+    }
+
     public void recordWorkerResourceDownloadTime(final long milliseconds) {
         workerResourceDownloadDurationTimer.record(milliseconds, 
TimeUnit.MILLISECONDS);
     }
diff --git 
a/dolphinscheduler-worker/src/main/java/org/apache/dolphinscheduler/server/worker/task/WorkerHeartBeatTask.java
 
b/dolphinscheduler-worker/src/main/java/org/apache/dolphinscheduler/server/worker/task/WorkerHeartBeatTask.java
index 4eefd9df10..62bee33a90 100644
--- 
a/dolphinscheduler-worker/src/main/java/org/apache/dolphinscheduler/server/worker/task/WorkerHeartBeatTask.java
+++ 
b/dolphinscheduler-worker/src/main/java/org/apache/dolphinscheduler/server/worker/task/WorkerHeartBeatTask.java
@@ -29,6 +29,7 @@ import 
org.apache.dolphinscheduler.meter.metrics.SystemMetrics;
 import org.apache.dolphinscheduler.registry.api.RegistryClient;
 import org.apache.dolphinscheduler.server.worker.config.WorkerConfig;
 import 
org.apache.dolphinscheduler.server.worker.config.WorkerServerLoadProtection;
+import org.apache.dolphinscheduler.server.worker.metrics.WorkerServerMetrics;
 import 
org.apache.dolphinscheduler.server.worker.runner.WorkerTaskExecutorThreadPool;
 
 import lombok.NonNull;
@@ -85,6 +86,7 @@ public class WorkerHeartBeatTask extends 
BaseHeartBeatTask<WorkerHeartBeat> {
         String workerHeartBeatJson = JSONUtils.toJsonString(workerHeartBeat);
         String workerRegistryPath = workerConfig.getWorkerRegistryPath();
         registryClient.persistEphemeral(workerRegistryPath, 
workerHeartBeatJson);
+        WorkerServerMetrics.incWorkerHeartbeatCount();
         log.debug(
                 "Success write worker group heartBeatInfo into registry, 
workerRegistryPath: {} workerHeartBeatInfo: {}",
                 workerRegistryPath, workerHeartBeatJson);

Reply via email to