From 7f6b846f5873ed0f76e43f21f2eda905ec5be6ca Mon Sep 17 00:00:00 2001 From: Lei Zhang <27994433+SWJTU-ZhangLei@users.noreply.github.com> Date: Tue, 9 Jul 2024 17:16:31 +0800 Subject: [PATCH] [improve](fe) Add a counter metric for recording large editlog write (#37328) (#37474) --- .../java/org/apache/doris/journal/bdbje/BDBJEJournal.java | 8 ++++++-- .../src/main/java/org/apache/doris/metric/MetricRepo.java | 8 ++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/journal/bdbje/BDBJEJournal.java b/fe/fe-core/src/main/java/org/apache/doris/journal/bdbje/BDBJEJournal.java index c557db9e02..2e71826d77 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/journal/bdbje/BDBJEJournal.java +++ b/fe/fe-core/src/main/java/org/apache/doris/journal/bdbje/BDBJEJournal.java @@ -241,8 +241,12 @@ public class BDBJEJournal implements Journal { // CHECKSTYLE IGNORE THIS LINE: B MetricRepo.COUNTER_EDIT_LOG_SIZE_BYTES.increase((long) theData.getSize()); MetricRepo.COUNTER_CURRENT_EDIT_LOG_SIZE_BYTES.increase((long) theData.getSize()); } - if (LOG.isDebugEnabled()) { - LOG.debug("opCode = {}, journal size = {}", op, theData.getSize()); + + if (LOG.isDebugEnabled() || theData.getSize() > (1 << 20)) { + LOG.info("opCode = {}, journal size = {}", op, theData.getSize()); + if (MetricRepo.isInit) { + MetricRepo.COUNTER_LARGE_EDIT_LOG.increase(1L); + } } // Write the key value pair to bdb. 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 e3e78d5e2d..0a771fa7ad 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 @@ -95,6 +95,8 @@ public final class MetricRepo { public static LongCounterMetric COUNTER_CURRENT_EDIT_LOG_SIZE_BYTES; public static LongCounterMetric COUNTER_EDIT_LOG_CLEAN_SUCCESS; public static LongCounterMetric COUNTER_EDIT_LOG_CLEAN_FAILED; + public static LongCounterMetric COUNTER_LARGE_EDIT_LOG; + public static Histogram HISTO_EDIT_LOG_WRITE_LATENCY; public static Histogram HISTO_JOURNAL_BATCH_SIZE; public static Histogram HISTO_JOURNAL_BATCH_DATA_SIZE; @@ -381,6 +383,12 @@ public final class MetricRepo { "size of current edit log"); COUNTER_CURRENT_EDIT_LOG_SIZE_BYTES.addLabel(new MetricLabel("type", "current_bytes")); DORIS_METRIC_REGISTER.addMetrics(COUNTER_CURRENT_EDIT_LOG_SIZE_BYTES); + + COUNTER_LARGE_EDIT_LOG = new LongCounterMetric("edit_log", MetricUnit.OPERATIONS, + "counter of large edit log write into bdbje"); + COUNTER_LARGE_EDIT_LOG.addLabel(new MetricLabel("type", "large_write")); + DORIS_METRIC_REGISTER.addMetrics(COUNTER_LARGE_EDIT_LOG); + HISTO_EDIT_LOG_WRITE_LATENCY = METRIC_REGISTER.histogram( MetricRegistry.name("editlog", "write", "latency", "ms")); HISTO_JOURNAL_BATCH_SIZE = METRIC_REGISTER.histogram(