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

wusheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking.git


The following commit(s) were added to refs/heads/master by this push:
     new 631161db80 Make more proper histogram buckets in PersistenceTimer. 
(#12368)
631161db80 is described below

commit 631161db80ed6aee208c498cf54760111b6d63ae
Author: 吴晟 Wu Sheng <[email protected]>
AuthorDate: Mon Jun 24 22:49:21 2024 +0800

    Make more proper histogram buckets in PersistenceTimer. (#12368)
---
 docs/en/changes/changes.md                                  |  2 ++
 docs/en/concepts-and-designs/mal.md                         |  4 ++++
 .../oap/server/core/storage/PersistenceTimer.java           | 13 ++++++++++---
 3 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/docs/en/changes/changes.md b/docs/en/changes/changes.md
index 3f9812a17f..a899293562 100644
--- a/docs/en/changes/changes.md
+++ b/docs/en/changes/changes.md
@@ -17,6 +17,8 @@
 * Increase `alarm_record#message` column length to 2000 from 200.
 * Remove `alarm_record#message` column indexing.
 * Add Python as a supported language for Pulsar.
+* Make more proper histogram buckets for the 
`persistence_timer_bulk_prepare_latency`,
+  `persistence_timer_bulk_execute_latency` and 
`persistence_timer_bulk_all_latency` metrics in PersistenceTimer.
 
 #### UI
 
diff --git a/docs/en/concepts-and-designs/mal.md 
b/docs/en/concepts-and-designs/mal.md
index 6a57b3b165..a3c9a33ef2 100644
--- a/docs/en/concepts-and-designs/mal.md
+++ b/docs/en/concepts-and-designs/mal.md
@@ -214,6 +214,10 @@ Examples:
 `histogram(le: '<the tag name of le>')`: Transforms less-based histogram 
buckets to meter system histogram buckets.
 `le` parameter represents the tag name of the bucket.
 
+**Note** In SkyWalking, the histogram buckets are based on time and will be 
transformed to the `milliseconds-based`
+histogram buckets in the meter system. (If the metrics from the Prometheus are 
based on the `seconds-based` histogram
+buckets, will multiply the bucket value by 1000.)
+
 #### histogram_percentile
 `histogram_percentile([<p scalar>])`: Represents the meter-system to calculate 
the p-percentile (0 ≤ p ≤ 100) from the buckets.
 
diff --git 
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/PersistenceTimer.java
 
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/PersistenceTimer.java
index 1ed2f700f5..f191057370 100644
--- 
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/PersistenceTimer.java
+++ 
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/PersistenceTimer.java
@@ -70,16 +70,23 @@ public enum PersistenceTimer {
         prepareLatency = metricsCreator.createHistogramMetric(
             "persistence_timer_bulk_prepare_latency",
             "Latency of the prepare stage in persistence timer",
-            MetricsTag.EMPTY_KEY, MetricsTag.EMPTY_VALUE
+            MetricsTag.EMPTY_KEY, MetricsTag.EMPTY_VALUE,
+            // 50ms -> 30s should be a proper range for the persistence timer 
prepare stage
+            .05, .075, .1, .25, .5, .75, 1, 3, 5, 10, 30
         );
         executeLatency = metricsCreator.createHistogramMetric(
             "persistence_timer_bulk_execute_latency",
             "Latency of the execute stage in persistence timer",
-            MetricsTag.EMPTY_KEY, MetricsTag.EMPTY_VALUE
+            MetricsTag.EMPTY_KEY, MetricsTag.EMPTY_VALUE,
+            // 500ms -> 2min should be a proper range for the persistence 
timer execute stage
+            // 0.5s, 1s, 3s, 5s, 10s, 15s, 20s, 25s, 50s, 120s, Inf+
+            0.5, 1, 3, 5, 10, 15, 20, 25, 50, 120
         );
         allLatency = metricsCreator.createHistogramMetric(
             "persistence_timer_bulk_all_latency", "Latency of the all stage in 
persistence timer",
-            MetricsTag.EMPTY_KEY, MetricsTag.EMPTY_VALUE
+            MetricsTag.EMPTY_KEY, MetricsTag.EMPTY_VALUE,
+            // 500ms -> 2min should be a proper range for the persistence timer
+            0.5, 1, 3, 5, 10, 15, 20, 25, 50, 120
         );
 
         prepareExecutorService = 
Executors.newFixedThreadPool(moduleConfig.getPrepareThreads());

Reply via email to