Is your Blocking Queue... Blocking?

This title could be clearer and more informative.Try out Clickbait Shieldfor free (5 uses left this month).

When a bounded Java BlockingQueue fills up, producers block — but detecting this in production is non-trivial. Standard JFR 'Lock Instances' views don't capture LockSupport-based locks used by ArrayBlockingQueue. The post explores several approaches: custom JFR events, JMC Agent bytecode instrumentation, and ultimately filtering JFR 'Thread Park' events using JFR Analytics with SQL queries and a new HAS_MATCHING_FRAME() function. A sample project demonstrates identifying blocked put() calls via SQL against a JFR recording. The post also previews future work: real-time streaming analysis of JFR events using Apache Flink for live alerting and predictive analytics like anticipating full GC events.

8m read timeFrom morling.dev
Post cover image

Sort: