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());