Когда я открываю файл .jfr (Java Flight Record) с помощью Java Mission Control, я могу найти «Stack Trace», «Longest» и «Count» в Thread -> Latencies -> Latency Stack Traces. Я забочусь о среднем, но не самый длинный.
На вкладке Java Latencies есть среднее значение, но оно содержит все задержки, связанные с типом события. Некоторые из них для меня бессмысленны, например:
sun.misc.Unsafe.park(boolean, long)
295,569,155,245 436,427
java.util.concurrent.locks.LockSupport.park(Object)
295,569,155,245 344,030
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await()
295,569,155,245 263,418
java.util.concurrent.LinkedBlockingQueue.take()
63,773,776,315 257,531
java.util.concurrent.ThreadPoolExecutor.getTask()
63,773,776,315 257,511
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker)
63,773,776,315 257,511
java.util.concurrent.ThreadPoolExecutor$Worker.run()
63,773,776,315 257,511
java.lang.Thread.run()
63,773,776,315 257,511
Выше указано время простоя пула потоков, оно ожидает следующей задачи. Среднее значение этого и всех остальных стековых трасс не имеет смысла. Я забочусь только о задержках следов бизнес-стека.
Как я могу получить среднее значение конкретной трассировки стека задержки. Могу ли я экспортировать исходные данные в CSV, тогда я могу рассчитать самостоятельно.