From 24403585cf4a398c2469b8c7aeefdb93e4f30810 Mon Sep 17 00:00:00 2001 From: celenmelike Date: Thu, 30 Apr 2026 14:35:02 +0100 Subject: [PATCH 1/3] doc update in slow operation detector --- docs/modules/ROOT/pages/system-properties.adoc | 1 + docs/modules/cluster-performance/pages/threading.adoc | 2 ++ docs/modules/data-structures/pages/entry-processor.adoc | 2 +- 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/modules/ROOT/pages/system-properties.adoc b/docs/modules/ROOT/pages/system-properties.adoc index 709b3359e..7a38f0528 100644 --- a/docs/modules/ROOT/pages/system-properties.adoc +++ b/docs/modules/ROOT/pages/system-properties.adoc @@ -1086,6 +1086,7 @@ Stack traces are always reported to the Management Center, but by default, they |int |Defines a threshold above which a running operation in `OperationService` is considered to be slow. These operations log a warning and are shown in the Management Center with detailed information, e.g., stacktrace. +The value should be set at least 1000 ms for reliable results. The detector cannot detect operations under 1000 ms. |`hazelcast.socket.bind.any` | true diff --git a/docs/modules/cluster-performance/pages/threading.adoc b/docs/modules/cluster-performance/pages/threading.adoc index c9da4c180..24f00b001 100644 --- a/docs/modules/cluster-performance/pages/threading.adoc +++ b/docs/modules/cluster-performance/pages/threading.adoc @@ -275,6 +275,8 @@ The `SlowOperationDetector` stores the fully qualified classname of the operatio operation details, start time and duration of each slow invocation. All collected data is available in the xref:{page-latest-supported-mc}@management-center:monitor-imdg:monitor-members.adoc[Management Center]. +The `SlowOperationDetector` is designed to detect relatively long-running operations. Due to its internal scanning mechanism, it cannot reliably detect operations around or below ~1 second (1000 ms). Even if you configure a threshold lower than 1000 ms, such operation cannot be detected. If you need to detect operations that take less than 1 second, you should use a JVM profiler. However, use of third-party profiling tools is at your own risk. We do not provide support or warranties for any external profiler tools. + The `SlowOperationDetector` is configured using the following system properties. * `hazelcast.slow.operation.detector.enabled` diff --git a/docs/modules/data-structures/pages/entry-processor.adoc b/docs/modules/data-structures/pages/entry-processor.adoc index 0ffee40c3..4e97bece8 100644 --- a/docs/modules/data-structures/pages/entry-processor.adoc +++ b/docs/modules/data-structures/pages/entry-processor.adoc @@ -150,7 +150,7 @@ We have a slow user code detector which can be used to log a warning controlled include::clusters:partial$ucn-migrate-tip.adoc[] -The defaults catch extremely slow operations but you should set this much lower, say to 1ms, at development time to catch entry processors that could be problematic in production. These are good candidates for our optimizations. +The defaults catch extremely slow operations, but you can set this lower at development time to catch entry processors that could be problematic in production. However, operations with very short execution times (lower than ~1 second) may not always be detected. Entry processors that are detected as slow are good candidates for our optimizations. We have two optimizations: From 78fe7f0d3bc0885a13d62caddb065e524456ea22 Mon Sep 17 00:00:00 2001 From: celenmelike Date: Tue, 12 May 2026 11:31:21 +0100 Subject: [PATCH 2/3] review changes --- docs/modules/ROOT/pages/system-properties.adoc | 2 +- docs/modules/cluster-performance/pages/threading.adoc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/modules/ROOT/pages/system-properties.adoc b/docs/modules/ROOT/pages/system-properties.adoc index 7a38f0528..b57d2c52b 100644 --- a/docs/modules/ROOT/pages/system-properties.adoc +++ b/docs/modules/ROOT/pages/system-properties.adoc @@ -1086,7 +1086,7 @@ Stack traces are always reported to the Management Center, but by default, they |int |Defines a threshold above which a running operation in `OperationService` is considered to be slow. These operations log a warning and are shown in the Management Center with detailed information, e.g., stacktrace. -The value should be set at least 1000 ms for reliable results. The detector cannot detect operations under 1000 ms. +The value should be set at least 1000 ms. The detector cannot reliably detect all operations taking under 1000 ms. |`hazelcast.socket.bind.any` | true diff --git a/docs/modules/cluster-performance/pages/threading.adoc b/docs/modules/cluster-performance/pages/threading.adoc index 24f00b001..5d99de181 100644 --- a/docs/modules/cluster-performance/pages/threading.adoc +++ b/docs/modules/cluster-performance/pages/threading.adoc @@ -275,7 +275,7 @@ The `SlowOperationDetector` stores the fully qualified classname of the operatio operation details, start time and duration of each slow invocation. All collected data is available in the xref:{page-latest-supported-mc}@management-center:monitor-imdg:monitor-members.adoc[Management Center]. -The `SlowOperationDetector` is designed to detect relatively long-running operations. Due to its internal scanning mechanism, it cannot reliably detect operations around or below ~1 second (1000 ms). Even if you configure a threshold lower than 1000 ms, such operation cannot be detected. If you need to detect operations that take less than 1 second, you should use a JVM profiler. However, use of third-party profiling tools is at your own risk. We do not provide support or warranties for any external profiler tools. +The `SlowOperationDetector` is designed to detect relatively long-running operations. Operations are checked every 1,000ms, and due to this scanning mechanism, it cannot reliably detect operations taking less than 1 second (1,000ms). If the slow operation threshold is configured lower than 1,000ms, it may miss operations if they are not running at the time of each scan. If you need to detect operations that take less than 1 second, you should use a JVM profiler. However, use of third-party profiling tools are done at your own risk and should not be used in production environments. The `SlowOperationDetector` is configured using the following system properties. From 5c851ddc0a13124263f0fbb6d4c6bd07ee891853 Mon Sep 17 00:00:00 2001 From: celenmelike Date: Tue, 12 May 2026 14:23:33 +0100 Subject: [PATCH 3/3] review changes --- docs/modules/data-structures/pages/entry-processor.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/modules/data-structures/pages/entry-processor.adoc b/docs/modules/data-structures/pages/entry-processor.adoc index 4e97bece8..9effbe3d1 100644 --- a/docs/modules/data-structures/pages/entry-processor.adoc +++ b/docs/modules/data-structures/pages/entry-processor.adoc @@ -150,7 +150,7 @@ We have a slow user code detector which can be used to log a warning controlled include::clusters:partial$ucn-migrate-tip.adoc[] -The defaults catch extremely slow operations, but you can set this lower at development time to catch entry processors that could be problematic in production. However, operations with very short execution times (lower than ~1 second) may not always be detected. Entry processors that are detected as slow are good candidates for our optimizations. +The defaults catch extremely slow operations, but you can set this lower at development time to catch entry processors that could be problematic in production. However, detection is not guaranteed, especially for operations with very short execution times (lower than ~1 second), so some operations may not be reported. It is useful as a safety net in development, but it should not be relied on for production or metrics. Entry processors that are detected as slow are good candidates for our optimizations. We have two optimizations: