Skip to content

feat(thread-dump): Enhancements for thread dump analyzer#389

Open
zachelnet wants to merge 1 commit into
eclipse-jifa:mainfrom
zachelnet:feature/thread-dump-backport
Open

feat(thread-dump): Enhancements for thread dump analyzer#389
zachelnet wants to merge 1 commit into
eclipse-jifa:mainfrom
zachelnet:feature/thread-dump-backport

Conversation

@zachelnet

@zachelnet zachelnet commented Jun 18, 2026

Copy link
Copy Markdown

Overview

This PR ports PR #231 by jutzig/SEEBURGER to the current Vue 3 / Spring Boot 3 codebase.


Changes

Backend (analysis/thread-dump)

  • Diagnoser: New ThreadDumpDiagnoser with configurable thresholds (ThreadDumpAnalysisConfig) detects the following issues:
    • Deadlocks
    • High blocked thread count
    • High total thread count
    • Threads with very large stacks
    • Threads with high CPU ratio
    • Threads throwing exceptions
  • New API endpoints:
    • diagnose() – runs all diagnostic checks
    • blockingThreads() – returns blocking/blocked thread trees
    • cpuConsumingThreads() – top N threads by CPU time
    • cpuConsumingThreadsCompare() – compare CPU usage across two snapshots
    • searchThreads() – full-text search with regex, field and state filters
    • threads() extended with threadState and ids parameters
  • Converter: Robust locale-aware number parsing (1.234,56 and 1,234.56)
  • New VOs: SearchHit, VBlockingThread, extended VThread
  • Tests: TestDiagnoser, TestConverter, updated TestAnalyzer

Frontend (Vue 3 / TypeScript)

  • New components:
    • Diagnose – displays diagnoser results with message, file and suggestion columns
    • BlockedThreads – D3.js tree diagram of blocking/blocked thread chains
    • CpuConsumingThreads – horizontal bar chart (ECharts) of top CPU threads
    • ThreadDumpSearch + ThreadDumpSearchForm – full-text thread search with regex, field selection, state filter and results table
    • ThreadDumpOverview – summary panel with state distribution (ECharts Doughnut), top CPU threads (ECharts Bar) and thread group summary
  • Charts (ECharts integration):
    • Automatic dark/light mode via watch(isDark)
    • Native resize() handler on window resize
    • Proper dispose() + removeEventListener on unmount
  • Thread state visualization:
    • Colored el-tag per state in Thread Summary and Thread Group Summary – clickable to filter threads by state
    • STATE_COLORS covers all actual enum values from JavaThreadState and OSThreadState (PARKED_TIMED, PARKED, IN_OBJECT_WAIT, IN_OBJECT_WAIT_TIMED, SLEEPING, BLOCKED_ON_MONITOR_ENTER, COND_VAR_WAIT, OBJECT_WAIT, MONITOR_WAIT, etc.)
  • i18n: Full English and Chinese translations for all new keys

AI Disclosure

This contribution was developed with AI assistance.

Assisted-by: GitHub Copilot (Claude Sonnet 4.5)

@zachelnet zachelnet closed this Jun 18, 2026
@zachelnet zachelnet reopened this Jun 18, 2026
@zachelnet zachelnet force-pushed the feature/thread-dump-backport branch from 20be784 to 2e175d4 Compare June 18, 2026 17:46
@zachelnet zachelnet changed the title feature: Enhancements for thread dump analyzer feat Enhancements for thread dump analyzer Jun 18, 2026
@zachelnet zachelnet force-pushed the feature/thread-dump-backport branch 2 times, most recently from 974d2fc to 20be784 Compare June 18, 2026 18:04
@zachelnet zachelnet changed the title feat Enhancements for thread dump analyzer feat(thread-dump): Enhancements for thread dump analyzer Jun 18, 2026
@zachelnet zachelnet force-pushed the feature/thread-dump-backport branch from 20be784 to c26b251 Compare June 19, 2026 05:15
…pring Boot 3

Backend (analysis/thread-dump):
- New diagnoser: ThreadDumpDiagnoser, Diagnostic, ThreadDumpAnalysisConfig
- ThreadDumpAnalyzer: diagnose(), blockingThreads(), cpuConsumingThreads(),
  cpuConsumingThreadsCompare(), searchThreads(), threads() with state/id filter
- Converter: robust locale-aware number parsing
- New VOs: SearchHit, VBlockingThread, extended VThread
- Tests: TestDiagnoser, TestConverter, TestAnalyzer updated

Frontend (Vue 3):
- New components: Diagnose, BlockedThreads (D3 tree), CpuConsumingThreads
  (ECharts bar), ThreadDumpSearch, ThreadDumpSearchForm, ThreadDumpOverview
- ThreadDump.vue: thread summary with clickable colored el-tags per state
- ThreadDumpOverview.vue: ECharts Doughnut + Bar charts with dark mode,
  resize handler and onUnmounted cleanup
- STATE_COLORS covers all JavaThreadState + OSTreadState enum values
- i18n: en.ts + zh.ts for all new keys

Assisted-by: GitHub Copilot (Claude Sonnet 4.5)
@zachelnet zachelnet force-pushed the feature/thread-dump-backport branch from c26b251 to f614d7a Compare June 19, 2026 05:28
@zachelnet zachelnet marked this pull request as draft June 19, 2026 07:56
@zachelnet zachelnet marked this pull request as ready for review June 19, 2026 08:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant