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 48b7132026..60787f3f2b 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 @@ -190,20 +190,20 @@ public class PrometheusMetricVisitor extends MetricVisitor { } } final String fullName = prefix + String.join("_", names); - final String fullTag = String.join(" ", tags); + final String fullTag = String.join(",", tags); 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(fullTag).append("} ") + sb.append(fullName).append("{quantile=\"0.75\"").append(delimiter).append(fullTag).append("} ") .append(snapshot.get75thPercentile()).append("\n"); - sb.append(fullName).append("{quantile=\"0.95\" ").append(fullTag).append("} ") + sb.append(fullName).append("{quantile=\"0.95\"").append(delimiter).append(fullTag).append("} ") .append(snapshot.get95thPercentile()).append("\n"); - sb.append(fullName).append("{quantile=\"0.98\" ").append(fullTag).append("} ") + sb.append(fullName).append("{quantile=\"0.98\"").append(delimiter).append(fullTag).append("} ") .append(snapshot.get98thPercentile()).append("\n"); - sb.append(fullName).append("{quantile=\"0.99\" ").append(fullTag).append("} ") + sb.append(fullName).append("{quantile=\"0.99\"").append(delimiter).append(fullTag).append("} ") .append(snapshot.get99thPercentile()).append("\n"); - sb.append(fullName).append("{quantile=\"0.999\" ").append(fullTag).append("} ") + 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"); 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 b4f0e73ec5..0446495025 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 @@ -66,6 +66,10 @@ public class MetricsTest { for (Map.Entry entry : histograms.entrySet()) { visitor.visitHistogram(sb, MetricVisitor.FE_PREFIX, entry.getKey(), entry.getValue()); } - Assert.assertTrue(sb.toString().contains("# TYPE doris_fe_query_latency_ms summary")); + 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")); + } }