This is an automated email from the ASF dual-hosted git repository. caiconghui pushed a commit to branch metrics-1.2 in repository https://gitbox.apache.org/repos/asf/doris.git
commit 78326dffeb9b7f930083b6aefd2e8c2432881d62 Author: caiconghui1 <caicongh...@jd.com> AuthorDate: Thu Jul 20 15:27:24 2023 +0800 [fix](metric) fix prometheus metric format error --- .../src/main/java/org/apache/doris/metric/MetricRepo.java | 6 +++--- .../org/apache/doris/metric/PrometheusMetricVisitor.java | 12 +++++------- .../src/main/java/org/apache/doris/qe/ConnectProcessor.java | 3 ++- .../src/test/java/org/apache/doris/metric/MetricsTest.java | 7 ++++--- 4 files changed, 14 insertions(+), 14 deletions(-) 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 51f6902786..1d6b7d1810 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 @@ -72,7 +72,7 @@ public final class MetricRepo { public static LongCounterMetric COUNTER_QUERY_TABLE; public static LongCounterMetric COUNTER_QUERY_OLAP_TABLE; public static Histogram HISTO_QUERY_LATENCY; - public static AutoMappedMetric<Histogram> DB_HISTO_QUERY_LATENCY; + public static AutoMappedMetric<Histogram> USER_HISTO_QUERY_LATENCY; public static AutoMappedMetric<GaugeMetricImpl<Long>> USER_GAUGE_QUERY_INSTANCE_NUM; public static AutoMappedMetric<LongCounterMetric> USER_COUNTER_QUERY_INSTANCE_BEGIN; public static AutoMappedMetric<LongCounterMetric> BE_COUNTER_QUERY_RPC_ALL; @@ -287,8 +287,8 @@ public final class MetricRepo { DORIS_METRIC_REGISTER.addMetrics(COUNTER_QUERY_OLAP_TABLE); HISTO_QUERY_LATENCY = METRIC_REGISTER.histogram( MetricRegistry.name("query", "latency", "ms")); - DB_HISTO_QUERY_LATENCY = new AutoMappedMetric<>(name -> { - String metricName = MetricRegistry.name("query", "latency", "ms", "db=" + name); + USER_HISTO_QUERY_LATENCY = new AutoMappedMetric<>(name -> { + String metricName = MetricRegistry.name("query", "latency", "ms", "user=" + name); return METRIC_REGISTER.histogram(metricName); }); USER_COUNTER_QUERY_INSTANCE_BEGIN = addLabeledMetrics("user", () -> diff --git a/fe/fe-core/src/main/java/org/apache/doris/metric/PrometheusMetricVisitor.java b/fe/fe-core/src/main/java/org/apache/doris/metric/PrometheusMetricVisitor.java index 20983a4920..04937b4cd8 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/metric/PrometheusMetricVisitor.java +++ b/fe/fe-core/src/main/java/org/apache/doris/metric/PrometheusMetricVisitor.java @@ -191,8 +191,11 @@ public class PrometheusMetricVisitor extends MetricVisitor { } final String fullName = prefix + String.join("_", names); final String fullTag = String.join(",", tags); - sb.append(HELP).append(fullName).append(" ").append("\n"); - sb.append(TYPE).append(fullName).append(" ").append("summary\n"); + // metric name should define only once + if (tags.isEmpty()) { + sb.append(HELP).append(fullName).append(" ").append("\n"); + sb.append(TYPE).append(fullName).append(" ").append("summary\n"); + } String delimiter = tags.isEmpty() ? "" : ","; Snapshot snapshot = histogram.getSnapshot(); sb.append(fullName).append("{quantile=\"0.75\"").append(delimiter).append(fullTag).append("} ") @@ -205,11 +208,6 @@ public class PrometheusMetricVisitor extends MetricVisitor { .append(snapshot.get99thPercentile()).append("\n"); sb.append(fullName).append("{quantile=\"0.999\"").append(delimiter).append(fullTag).append("} ") .append(snapshot.get999thPercentile()).append("\n"); - sb.append(fullName).append("_sum {").append(fullTag).append("} ") - .append(histogram.getCount() * snapshot.getMean()).append("\n"); - sb.append(fullName).append("_count {").append(fullTag).append("} ") - .append(histogram.getCount()).append("\n"); - return; } @Override diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectProcessor.java b/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectProcessor.java index f190f68280..0709064d01 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectProcessor.java +++ b/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectProcessor.java @@ -304,7 +304,8 @@ public class ConnectProcessor { || ctx.getState().getStateType() == MysqlStateType.EOF) { // ok query MetricRepo.HISTO_QUERY_LATENCY.update(elapseMs); - MetricRepo.DB_HISTO_QUERY_LATENCY.getOrAdd(ctx.getDatabase()).update(elapseMs); + MetricRepo.USER_HISTO_QUERY_LATENCY.getOrAdd(ctx.getQualifiedUser()).update(elapseMs); + if (elapseMs > Config.qe_slow_log_ms) { String sqlDigest = DigestUtils.md5Hex(((Queriable) parsedStmt).toDigest()); ctx.getAuditEventBuilder().setSqlDigest(sqlDigest); diff --git a/fe/fe-core/src/test/java/org/apache/doris/metric/MetricsTest.java b/fe/fe-core/src/test/java/org/apache/doris/metric/MetricsTest.java index 0446495025..dc806a9828 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/metric/MetricsTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/metric/MetricsTest.java @@ -58,8 +58,9 @@ public class MetricsTest { } @Test - public void testDBMetrics() { - MetricRepo.DB_HISTO_QUERY_LATENCY.getOrAdd("test_db").update(10L); + public void testUserMetrics() { + MetricRepo.HISTO_QUERY_LATENCY.update(10L); + MetricRepo.USER_HISTO_QUERY_LATENCY.getOrAdd("test_user").update(10L); StringBuilder sb = new StringBuilder(); MetricVisitor visitor = new PrometheusMetricVisitor(); SortedMap<String, Histogram> histograms = MetricRepo.METRIC_REGISTER.getHistograms(); @@ -69,7 +70,7 @@ public class MetricsTest { String metricResult = sb.toString(); Assert.assertTrue(metricResult.contains("# TYPE doris_fe_query_latency_ms summary")); Assert.assertTrue(metricResult.contains("doris_fe_query_latency_ms{quantile=\"0.999\"} 0.0")); - Assert.assertTrue(metricResult.contains("doris_fe_query_latency_ms{quantile=\"0.999\",db=\"test_db\"} 10.0")); + Assert.assertTrue(metricResult.contains("doris_fe_query_latency_ms{quantile=\"0.999\",user=\"test_user\"} 10.0")); } } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org