You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by ya...@apache.org on 2021/04/19 01:27:09 UTC

[incubator-doris] branch master updated: [Metric] Add metrics for routine load (#5641)

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

yangzhg pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-doris.git


The following commit(s) were added to refs/heads/master by this push:
     new 4313639  [Metric] Add metrics for routine load (#5641)
4313639 is described below

commit 4313639157507ffb0110c45f30d5669e102efff1
Author: Mingyu Chen <mo...@gmail.com>
AuthorDate: Mon Apr 19 09:26:58 2021 +0800

    [Metric] Add metrics for routine load (#5641)
    
    * [Metric] Add metrics for routine load
    
    Add following metrics for routine load:
    doris_fe_job{job="load", type="ROUTINE_LOAD", state="NEED_SCHEDULE"} 0
    doris_fe_job{job="load", type="ROUTINE_LOAD", state="RUNNING"} 1
    doris_fe_job{job="load", type="ROUTINE_LOAD", state="PAUSED"} 0
    doris_fe_job{job="load", type="ROUTINE_LOAD", state="STOPPED"} 0
    doris_fe_job{job="load", type="ROUTINE_LOAD", state="CANCELLED"} 0
    
    * change UTC
---
 .../org/apache/doris/common/util/TimeUtils.java    |  3 +-
 .../java/org/apache/doris/metric/MetricRepo.java   | 32 ++++++++++++++++++++--
 2 files changed, 31 insertions(+), 4 deletions(-)

diff --git a/fe/fe-core/src/main/java/org/apache/doris/common/util/TimeUtils.java b/fe/fe-core/src/main/java/org/apache/doris/common/util/TimeUtils.java
index 0fbac6c..85901be 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/common/util/TimeUtils.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/common/util/TimeUtils.java
@@ -49,13 +49,14 @@ import java.util.regex.Pattern;
 public class TimeUtils {
     private static final Logger LOG = LogManager.getLogger(TimeUtils.class);
 
+    public static final String UTC_TIME_ZONE = "Europe/London"; // This is just a Country to represent UTC offset +00:00
     public static final String DEFAULT_TIME_ZONE = "Asia/Shanghai";
 
     private static final TimeZone TIME_ZONE;
 
     // set CST to +08:00 instead of America/Chicago
     public static final ImmutableMap<String, String> timeZoneAliasMap = ImmutableMap.of(
-            "CST", DEFAULT_TIME_ZONE, "PRC", DEFAULT_TIME_ZONE);
+            "CST", DEFAULT_TIME_ZONE, "PRC", DEFAULT_TIME_ZONE, "UTC", UTC_TIME_ZONE);
 
     // NOTICE: Date formats are not synchronized.
     // it must be used as synchronized externally.
diff --git a/fe/fe-core/src/main/java/org/apache/doris/metric/MetricRepo.java b/fe/fe-core/src/main/java/org/apache/doris/metric/MetricRepo.java
index 0fddec8..8b1d308 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/metric/MetricRepo.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/metric/MetricRepo.java
@@ -26,6 +26,8 @@ import org.apache.doris.common.ThreadPoolManager;
 import org.apache.doris.load.EtlJobType;
 import org.apache.doris.load.loadv2.JobState;
 import org.apache.doris.load.loadv2.LoadManager;
+import org.apache.doris.load.routineload.RoutineLoadJob;
+import org.apache.doris.load.routineload.RoutineLoadManager;
 import org.apache.doris.metric.Metric.MetricUnit;
 import org.apache.doris.monitor.jvm.JvmService;
 import org.apache.doris.monitor.jvm.JvmStats;
@@ -36,12 +38,14 @@ import org.apache.doris.system.SystemInfoService;
 
 import com.codahale.metrics.Histogram;
 import com.codahale.metrics.MetricRegistry;
+import com.google.common.collect.Sets;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 import java.util.SortedMap;
 import java.util.concurrent.ScheduledThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
@@ -117,19 +121,41 @@ public final class MetricRepo {
                     }
                 };
                 gauge.addLabel(new MetricLabel("job", "load"))
-                    .addLabel(new MetricLabel("type", jobType.name()))
-                    .addLabel(new MetricLabel("state", state.name()));
+                        .addLabel(new MetricLabel("type", jobType.name()))
+                        .addLabel(new MetricLabel("state", state.name()));
                 PALO_METRIC_REGISTER.addPaloMetrics(gauge);
             }
         }
 
+        //  routine load jobs
+        RoutineLoadManager routineLoadManager = Catalog.getCurrentCatalog().getRoutineLoadManager();
+        for (RoutineLoadJob.JobState jobState : RoutineLoadJob.JobState.values()) {
+            GaugeMetric<Long> gauge = (GaugeMetric<Long>) new GaugeMetric<Long>("job",
+                    MetricUnit.NOUNIT, "routine load job statistics") {
+                @Override
+                public Long getValue() {
+                    if (!Catalog.getCurrentCatalog().isMaster()) {
+                        return 0L;
+                    }
+                    Set<RoutineLoadJob.JobState> states = Sets.newHashSet();
+                    states.add(jobState);
+                    List<RoutineLoadJob> jobs = routineLoadManager.getRoutineLoadJobByState(states);
+                    return Long.valueOf(jobs.size());
+                }
+            };
+            gauge.addLabel(new MetricLabel("job", "load"))
+                    .addLabel(new MetricLabel("type", "ROUTINE_LOAD"))
+                    .addLabel(new MetricLabel("state", jobState.name()));
+            PALO_METRIC_REGISTER.addPaloMetrics(gauge);
+        }
+
         // running alter job
         Alter alter = Catalog.getCurrentCatalog().getAlterInstance();
         for (JobType jobType : JobType.values()) {
             if (jobType != JobType.SCHEMA_CHANGE && jobType != JobType.ROLLUP) {
                 continue;
             }
-            
+
             GaugeMetric<Long> gauge = (GaugeMetric<Long>) new GaugeMetric<Long>("job",
                     MetricUnit.NOUNIT, "job statistics") {
                 @Override

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org