Found it. The thread dump page does hardcode a 1-second polling interval, and it's not configurable.
Key code — views/instances/threaddump/index.vue:
javascript
// Line 111
createSubscription() {
return timer(0, 1000) // hardcoded 1000ms, not configurable
.pipe(
concatMap(this.fetchThreaddump), // requests /actuator/threaddump each time
...
)
}
Each poll calls this.instance.fetchThreaddump(), which requests the /actuator/threaddump endpoint of the monitored application. Thread dump content is often large (several hundred KB), and fetching it every second introduces significant overhead on both the server and the network.
For comparison: pollTimer.threads: 2500 (2.5 seconds) controls the thread metrics chart on the detail page — that's a different thing. The thread dump page does not use sbaConfig.uiSettings.pollTimer; it directly hardcodes 1000.
Optimization suggestions
Since the upstream doesn't provide a configuration entry, the simplest approach is to modify the interval directly in the source:
javascript
// threaddump/index.vue
return timer(0, 10000) // change to 10 seconds
Alternatively, add a new entry in sba-config.ts (e.g., threaddump: 10000), then reference sbaConfig.uiSettings.pollTimer.threaddump in the thread dump page to keep consistent with the existing style.
Found it. The thread dump page does hardcode a 1-second polling interval, and it's not configurable.
Key code — views/instances/threaddump/index.vue:
javascript
// Line 111
createSubscription() {
return timer(0, 1000) // hardcoded 1000ms, not configurable
.pipe(
concatMap(this.fetchThreaddump), // requests /actuator/threaddump each time
...
)
}
Each poll calls this.instance.fetchThreaddump(), which requests the /actuator/threaddump endpoint of the monitored application. Thread dump content is often large (several hundred KB), and fetching it every second introduces significant overhead on both the server and the network.
For comparison: pollTimer.threads: 2500 (2.5 seconds) controls the thread metrics chart on the detail page — that's a different thing. The thread dump page does not use sbaConfig.uiSettings.pollTimer; it directly hardcodes 1000.
Optimization suggestions
Since the upstream doesn't provide a configuration entry, the simplest approach is to modify the interval directly in the source:
javascript
// threaddump/index.vue
return timer(0, 10000) // change to 10 seconds
Alternatively, add a new entry in sba-config.ts (e.g., threaddump: 10000), then reference sbaConfig.uiSettings.pollTimer.threaddump in the thread dump page to keep consistent with the existing style.