
com.groupbyinc.flux.monitor.jvm.HotThreads.class Maven / Gradle / Ivy
???? 4? *com/groupbyinc/flux/monitor/jvm/HotThreads java/lang/Object HotThreads.java 7com/groupbyinc/flux/monitor/jvm/HotThreads$MyThreadInfo MyThreadInfo %java/lang/invoke/MethodHandles$Lookup java/lang/invoke/MethodHandles Lookup mutex Ljava/lang/Object; DATE_TIME_FORMATTER ;Lcom/groupbyinc/flux/common/time/CompoundDateTimeFormatter; busiestThreads I interval +Lcom/groupbyinc/flux/common/unit/TimeValue; threadElementsSnapshotDelay threadElementsSnapshotCount type Ljava/lang/String; ignoreIdleThreads Z EMPTY [Ljava/lang/StackTraceElement; ()V
" )com/groupbyinc/flux/common/unit/TimeValue $ ? java/util/concurrent/TimeUnit ( MILLISECONDS Ljava/util/concurrent/TimeUnit; * + ) , #(JLjava/util/concurrent/TimeUnit;)V .
% / 1
(J)V 5
% 6 8 : cpu < > @ this ,Lcom/groupbyinc/flux/monitor/jvm/HotThreads; Y(Lcom/groupbyinc/flux/common/unit/TimeValue;)Lcom/groupbyinc/flux/monitor/jvm/HotThreads; /(I)Lcom/groupbyinc/flux/monitor/jvm/HotThreads; /(Z)Lcom/groupbyinc/flux/monitor/jvm/HotThreads; @(Ljava/lang/String;)Lcom/groupbyinc/flux/monitor/jvm/HotThreads; java/lang/String H equals (Ljava/lang/Object;)Z J K
I L wait N block P "java/lang/IllegalArgumentException R java/lang/StringBuilder T
U type not supported [ W append -(Ljava/lang/String;)Ljava/lang/StringBuilder; Y Z
U [ ] ] toString ()Ljava/lang/String; _ `
U a (Ljava/lang/String;)V c
S d detect java/lang/Exception g i innerDetect k `
l java/lang/Throwable n isIdleThread $(Ljava/lang/management/ThreadInfo;)Z java/lang/management/ThreadInfo r
getThreadName t `
s u Signal Dispatcher w Finalizer y Reference Handler {
getStackTrace ()[Ljava/lang/StackTraceElement; } ~
s java/lang/StackTraceElement ? getClassName ? `
? ?
getMethodName ? `
? ? 'java.util.concurrent.ThreadPoolExecutor ? getTask ? sun.nio.ch.SelectorImpl ? select ? =com.groupbyinc.flux.threadpool.ThreadPool$EstimatedTimeThread ? run ? :com.groupbyinc.flux.indices.ttl.IndicesTTLService$Notifier ? await ? (java.util.concurrent.LinkedTransferQueue ? poll ? className
methodName frame Ljava/lang/StackTraceElement;
threadInfo !Ljava/lang/management/ThreadInfo;
threadName &java/lang/management/ManagementFactory ? getThreadMXBean %()Ljava/lang/management/ThreadMXBean; ? ?
? ? !java/lang/management/ThreadMXBean ? isThreadCpuTimeSupported ()Z ? ? ? ? *com/groupbyinc/flux/ElasticsearchException ? ,thread CPU time is not supported on this JDK ? ((Ljava/lang/String;[Ljava/lang/Object;)V ?
? ? Hot threads at ? ? java/time/Clock ? systemUTC ()Ljava/time/Clock; ? ?
? ? java/time/LocalDateTime ? now ,(Ljava/time/Clock;)Ljava/time/LocalDateTime; ? ?
? ? 9com/groupbyinc/flux/common/time/CompoundDateTimeFormatter ? format 9(Ljava/time/temporal/TemporalAccessor;)Ljava/lang/String; ? ?
? ? , interval= ? -(Ljava/lang/Object;)Ljava/lang/StringBuilder; Y ?
U ? , busiestThreads= ? (I)Ljava/lang/StringBuilder; Y ?
U ? , ignoreIdleThreads= ? (Z)Ljava/lang/StringBuilder; Y ?
U ? :
? java/util/HashMap ?
? getAllThreadIds ()[J ? ? ? ?
java/util/Map ? [J ? java/lang/Thread ?
currentThread ()Ljava/lang/Thread; ? ?
? ? getId ()J ? ?
? ? getThreadCpuTime (J)J ? ? ? ?????????
getThreadInfo %(JI)Ljava/lang/management/ThreadInfo; ? ? ? ? java/lang/Long ? valueOf (J)Ljava/lang/Long;
? Q(Lcom/groupbyinc/flux/monitor/jvm/HotThreads;JLjava/lang/management/ThreadInfo;)V
put 8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; ? millis ?
% sleep 5
? remove &(Ljava/lang/Object;)Ljava/lang/Object; ? get ? setDelta %(JLjava/lang/management/ThreadInfo;)V
java/util/ArrayList values ()Ljava/util/Collection; ? (Ljava/util/Collection;)V "
# java/util/List% size ()I'(&) java/lang/Math+ min (II)I-.
,/ "java/lang/invoke/LambdaMetafactory1 metafactory ?(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;34
256 (Ljava/lang/Object;)J8 lambda$innerDetect$0 <(Lcom/groupbyinc/flux/monitor/jvm/HotThreads$MyThreadInfo;)J:;
<=; applyAsLong %()Ljava/util/function/ToLongFunction;@A B lambda$innerDetect$1D;
EF B lambda$innerDetect$2I;
JK B Eexpected thread type to be either 'cpu', 'wait', or 'block', but was N !java/util/function/ToLongFunctionP java/util/ComparatorR
comparingLong ;(Ljava/util/function/ToLongFunction;)Ljava/util/Comparator;TUSV reversed ()Ljava/util/Comparator;XYSZ