public class org.apache.zookeeper.server.util.RequestPathMetricsCollector extends java.lang.Object
{
private static final org.slf4j.Logger LOG;
private final int REQUEST_STATS_SLOT_DURATION;
private final int REQUEST_STATS_SLOT_CAPACITY;
private final int REQUEST_PREPROCESS_PATH_DEPTH;
private final float REQUEST_PREPROCESS_SAMPLE_RATE;
private final long COLLECTOR_INITIAL_DELAY;
private final long COLLECTOR_DELAY;
private final int REQUEST_PREPROCESS_TOPPATH_MAX;
private final boolean enabled;
public static final java.lang.String PATH_STATS_SLOT_CAPACITY;
public static final java.lang.String PATH_STATS_SLOT_DURATION;
public static final java.lang.String PATH_STATS_MAX_DEPTH;
public static final java.lang.String PATH_STATS_SAMPLE_RATE;
public static final java.lang.String PATH_STATS_COLLECTOR_INITIAL_DELAY;
public static final java.lang.String PATH_STATS_COLLECTOR_DELAY;
public static final java.lang.String PATH_STATS_TOP_PATH_MAX;
public static final java.lang.String PATH_STATS_ENABLED;
private static final java.lang.String PATH_SEPERATOR;
private final java.util.Map immutableRequestsMap;
private final java.util.concurrent.ScheduledThreadPoolExecutor scheduledExecutor;
private final boolean accurateMode;
public void <init>()
{
org.apache.zookeeper.server.util.RequestPathMetricsCollector v;
v := @this: org.apache.zookeeper.server.util.RequestPathMetricsCollector;
specialinvoke v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector: void <init>(boolean)>(0);
return;
}
public void <init>(boolean)
{
java.lang.Integer v, v, v, v, v, v, v;
java.lang.Long v, v, v, v;
java.util.Map v;
java.lang.Runtime v;
org.apache.zookeeper.server.util.RequestPathMetricsCollector v;
long v, v, v, v;
java.util.concurrent.ScheduledExecutorService v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
boolean v, v, v;
java.util.concurrent.ScheduledThreadPoolExecutor v, v;
float v;
org.apache.zookeeper.server.util.RequestPathMetricsCollector$PathStatsQueue v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.util.HashMap v;
int v, v, v, v, v, v, v, v;
java.lang.Boolean v;
org.slf4j.Logger v, v, v, v, v, v;
v := @this: org.apache.zookeeper.server.util.RequestPathMetricsCollector;
v := @parameter: boolean;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector: boolean accurateMode> = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer getInteger(java.lang.String,int)>("zookeeper.pathStats.topPathMax", 20);
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector: int REQUEST_PREPROCESS_TOPPATH_MAX> = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer getInteger(java.lang.String,int)>("zookeeper.pathStats.slotDuration", 15);
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector: int REQUEST_STATS_SLOT_DURATION> = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer getInteger(java.lang.String,int)>("zookeeper.pathStats.slotCapacity", 60);
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector: int REQUEST_STATS_SLOT_CAPACITY> = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer getInteger(java.lang.String,int)>("zookeeper.pathStats.maxDepth", 6);
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector: int REQUEST_PREPROCESS_PATH_DEPTH> = v;
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String,java.lang.String)>("zookeeper.pathStats.sampleRate", "0.1");
v = staticinvoke <java.lang.Float: float parseFloat(java.lang.String)>(v);
v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector: float REQUEST_PREPROCESS_SAMPLE_RATE> = v;
v = staticinvoke <java.lang.Long: java.lang.Long getLong(java.lang.String,long)>("zookeeper.pathStats.initialDelay", 5L);
v = virtualinvoke v.<java.lang.Long: long longValue()>();
v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector: long COLLECTOR_INITIAL_DELAY> = v;
v = staticinvoke <java.lang.Long: java.lang.Long getLong(java.lang.String,long)>("zookeeper.pathStats.delay", 5L);
v = virtualinvoke v.<java.lang.Long: long longValue()>();
v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector: long COLLECTOR_DELAY> = v;
v = staticinvoke <java.lang.Boolean: boolean getBoolean(java.lang.String)>("zookeeper.pathStats.enabled");
v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector: boolean enabled> = v;
v = <org.apache.zookeeper.server.util.RequestPathMetricsCollector: org.slf4j.Logger LOG>;
v = v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector: int REQUEST_STATS_SLOT_CAPACITY>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object,java.lang.Object)>("{} = {}", "zookeeper.pathStats.slotCapacity", v);
v = <org.apache.zookeeper.server.util.RequestPathMetricsCollector: org.slf4j.Logger LOG>;
v = v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector: int REQUEST_STATS_SLOT_DURATION>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object,java.lang.Object)>("{} = {}", "zookeeper.pathStats.slotDuration", v);
v = <org.apache.zookeeper.server.util.RequestPathMetricsCollector: org.slf4j.Logger LOG>;
v = v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector: int REQUEST_PREPROCESS_PATH_DEPTH>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object,java.lang.Object)>("{} = {}", "zookeeper.pathStats.maxDepth", v);
v = <org.apache.zookeeper.server.util.RequestPathMetricsCollector: org.slf4j.Logger LOG>;
v = v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector: long COLLECTOR_INITIAL_DELAY>;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object,java.lang.Object)>("{} = {}", "zookeeper.pathStats.initialDelay", v);
v = <org.apache.zookeeper.server.util.RequestPathMetricsCollector: org.slf4j.Logger LOG>;
v = v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector: long COLLECTOR_DELAY>;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object,java.lang.Object)>("{} = {}", "zookeeper.pathStats.delay", v);
v = <org.apache.zookeeper.server.util.RequestPathMetricsCollector: org.slf4j.Logger LOG>;
v = v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector: boolean enabled>;
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(v);
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object,java.lang.Object)>("{} = {}", "zookeeper.pathStats.enabled", v);
v = staticinvoke <java.lang.Runtime: java.lang.Runtime getRuntime()>();
v = virtualinvoke v.<java.lang.Runtime: int availableProcessors()>();
v = staticinvoke <java.util.concurrent.Executors: java.util.concurrent.ScheduledExecutorService newScheduledThreadPool(int)>(v);
v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector: java.util.concurrent.ScheduledThreadPoolExecutor scheduledExecutor> = v;
v = v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector: java.util.concurrent.ScheduledThreadPoolExecutor scheduledExecutor>;
virtualinvoke v.<java.util.concurrent.ScheduledThreadPoolExecutor: void setContinueExistingPeriodicTasksAfterShutdownPolicy(boolean)>(0);
v = v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector: java.util.concurrent.ScheduledThreadPoolExecutor scheduledExecutor>;
virtualinvoke v.<java.util.concurrent.ScheduledThreadPoolExecutor: void setExecuteExistingDelayedTasksAfterShutdownPolicy(boolean)>(0);
v = staticinvoke <org.apache.zookeeper.server.Request: java.lang.String op2String(int)>(1);
v = new org.apache.zookeeper.server.util.RequestPathMetricsCollector$PathStatsQueue;
specialinvoke v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector$PathStatsQueue: void <init>(org.apache.zookeeper.server.util.RequestPathMetricsCollector,int)>(v, 1);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = staticinvoke <org.apache.zookeeper.server.Request: java.lang.String op2String(int)>(15);
v = new org.apache.zookeeper.server.util.RequestPathMetricsCollector$PathStatsQueue;
specialinvoke v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector$PathStatsQueue: void <init>(org.apache.zookeeper.server.util.RequestPathMetricsCollector,int)>(v, 15);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = staticinvoke <org.apache.zookeeper.server.Request: java.lang.String op2String(int)>(19);
v = new org.apache.zookeeper.server.util.RequestPathMetricsCollector$PathStatsQueue;
specialinvoke v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector$PathStatsQueue: void <init>(org.apache.zookeeper.server.util.RequestPathMetricsCollector,int)>(v, 19);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = staticinvoke <org.apache.zookeeper.server.Request: java.lang.String op2String(int)>(20);
v = new org.apache.zookeeper.server.util.RequestPathMetricsCollector$PathStatsQueue;
specialinvoke v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector$PathStatsQueue: void <init>(org.apache.zookeeper.server.util.RequestPathMetricsCollector,int)>(v, 20);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = staticinvoke <org.apache.zookeeper.server.Request: java.lang.String op2String(int)>(2);
v = new org.apache.zookeeper.server.util.RequestPathMetricsCollector$PathStatsQueue;
specialinvoke v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector$PathStatsQueue: void <init>(org.apache.zookeeper.server.util.RequestPathMetricsCollector,int)>(v, 2);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = staticinvoke <org.apache.zookeeper.server.Request: java.lang.String op2String(int)>(3);
v = new org.apache.zookeeper.server.util.RequestPathMetricsCollector$PathStatsQueue;
specialinvoke v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector$PathStatsQueue: void <init>(org.apache.zookeeper.server.util.RequestPathMetricsCollector,int)>(v, 3);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = staticinvoke <org.apache.zookeeper.server.Request: java.lang.String op2String(int)>(5);
v = new org.apache.zookeeper.server.util.RequestPathMetricsCollector$PathStatsQueue;
specialinvoke v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector$PathStatsQueue: void <init>(org.apache.zookeeper.server.util.RequestPathMetricsCollector,int)>(v, 5);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = staticinvoke <org.apache.zookeeper.server.Request: java.lang.String op2String(int)>(4);
v = new org.apache.zookeeper.server.util.RequestPathMetricsCollector$PathStatsQueue;
specialinvoke v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector$PathStatsQueue: void <init>(org.apache.zookeeper.server.util.RequestPathMetricsCollector,int)>(v, 4);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = staticinvoke <org.apache.zookeeper.server.Request: java.lang.String op2String(int)>(6);
v = new org.apache.zookeeper.server.util.RequestPathMetricsCollector$PathStatsQueue;
specialinvoke v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector$PathStatsQueue: void <init>(org.apache.zookeeper.server.util.RequestPathMetricsCollector,int)>(v, 6);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = staticinvoke <org.apache.zookeeper.server.Request: java.lang.String op2String(int)>(7);
v = new org.apache.zookeeper.server.util.RequestPathMetricsCollector$PathStatsQueue;
specialinvoke v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector$PathStatsQueue: void <init>(org.apache.zookeeper.server.util.RequestPathMetricsCollector,int)>(v, 7);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = staticinvoke <org.apache.zookeeper.server.Request: java.lang.String op2String(int)>(8);
v = new org.apache.zookeeper.server.util.RequestPathMetricsCollector$PathStatsQueue;
specialinvoke v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector$PathStatsQueue: void <init>(org.apache.zookeeper.server.util.RequestPathMetricsCollector,int)>(v, 8);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = staticinvoke <org.apache.zookeeper.server.Request: java.lang.String op2String(int)>(12);
v = new org.apache.zookeeper.server.util.RequestPathMetricsCollector$PathStatsQueue;
specialinvoke v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector$PathStatsQueue: void <init>(org.apache.zookeeper.server.util.RequestPathMetricsCollector,int)>(v, 12);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = staticinvoke <org.apache.zookeeper.server.Request: java.lang.String op2String(int)>(17);
v = new org.apache.zookeeper.server.util.RequestPathMetricsCollector$PathStatsQueue;
specialinvoke v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector$PathStatsQueue: void <init>(org.apache.zookeeper.server.util.RequestPathMetricsCollector,int)>(v, 17);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = staticinvoke <org.apache.zookeeper.server.Request: java.lang.String op2String(int)>(18);
v = new org.apache.zookeeper.server.util.RequestPathMetricsCollector$PathStatsQueue;
specialinvoke v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector$PathStatsQueue: void <init>(org.apache.zookeeper.server.util.RequestPathMetricsCollector,int)>(v, 18);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = staticinvoke <org.apache.zookeeper.server.Request: java.lang.String op2String(int)>(105);
v = new org.apache.zookeeper.server.util.RequestPathMetricsCollector$PathStatsQueue;
specialinvoke v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector$PathStatsQueue: void <init>(org.apache.zookeeper.server.util.RequestPathMetricsCollector,int)>(v, 105);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = staticinvoke <org.apache.zookeeper.server.Request: java.lang.String op2String(int)>(9);
v = new org.apache.zookeeper.server.util.RequestPathMetricsCollector$PathStatsQueue;
specialinvoke v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector$PathStatsQueue: void <init>(org.apache.zookeeper.server.util.RequestPathMetricsCollector,int)>(v, 9);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = staticinvoke <java.util.Collections: java.util.Map unmodifiableMap(java.util.Map)>(v);
v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector: java.util.Map immutableRequestsMap> = v;
return;
}
static boolean isWriteOp(int)
{
int v;
v := @parameter: int;
tableswitch(v)
{
case 1: goto label;
case 2: goto label;
case 3: goto label;
case 4: goto label;
case 5: goto label;
case 6: goto label;
case 7: goto label;
case 8: goto label;
case 9: goto label;
case 10: goto label;
case 11: goto label;
case 12: goto label;
case 13: goto label;
case 14: goto label;
case 15: goto label;
case 16: goto label;
case 17: goto label;
case 18: goto label;
case 19: goto label;
case 20: goto label;
default: goto label;
};
label:
return 1;
label:
return 0;
}
static java.lang.String trimPathDepth(java.lang.String, int)
{
java.util.StringTokenizer v;
int v, v, v;
java.lang.StringBuilder v;
java.lang.String v, v, v;
boolean v;
v := @parameter: java.lang.String;
v := @parameter: int;
v = 0;
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>()>();
v = new java.util.StringTokenizer;
specialinvoke v.<java.util.StringTokenizer: void <init>(java.lang.String,java.lang.String)>(v, "/");
label:
v = virtualinvoke v.<java.util.StringTokenizer: boolean hasMoreElements()>();
if v == 0 goto label;
v = v;
v = v + 1;
if v >= v goto label;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("/");
v = virtualinvoke v.<java.util.StringTokenizer: java.lang.String nextToken()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
goto label;
label:
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
return v;
}
public void shutdown()
{
org.slf4j.Logger v;
org.apache.zookeeper.server.util.RequestPathMetricsCollector v;
java.util.concurrent.ScheduledThreadPoolExecutor v;
boolean v;
v := @this: org.apache.zookeeper.server.util.RequestPathMetricsCollector;
v = v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector: boolean enabled>;
if v != 0 goto label;
return;
label:
v = <org.apache.zookeeper.server.util.RequestPathMetricsCollector: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("shutdown scheduledExecutor");
v = v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector: java.util.concurrent.ScheduledThreadPoolExecutor scheduledExecutor>;
virtualinvoke v.<java.util.concurrent.ScheduledThreadPoolExecutor: java.util.List shutdownNow()>();
return;
}
public void start()
{
org.slf4j.Logger v;
org.apache.zookeeper.server.util.RequestPathMetricsCollector v;
java.util.concurrent.ScheduledThreadPoolExecutor v;
long v, v;
java.lang.Runnable v;
java.util.concurrent.TimeUnit v;
java.util.Map v;
java.util.function.BiConsumer v;
boolean v;
v := @this: org.apache.zookeeper.server.util.RequestPathMetricsCollector;
v = v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector: boolean enabled>;
if v != 0 goto label;
return;
label:
v = <org.apache.zookeeper.server.util.RequestPathMetricsCollector: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("Start the RequestPath collector");
v = v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector: java.util.Map immutableRequestsMap>;
v = staticinvoke <org.apache.zookeeper.server.util.RequestPathMetricsCollector$lambda_start_0__222: java.util.function.BiConsumer bootstrap$()>();
interfaceinvoke v.<java.util.Map: void forEach(java.util.function.BiConsumer)>(v);
v = v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector: java.util.concurrent.ScheduledThreadPoolExecutor scheduledExecutor>;
v = staticinvoke <org.apache.zookeeper.server.util.RequestPathMetricsCollector$lambda_start_5__223: java.lang.Runnable bootstrap$(org.apache.zookeeper.server.util.RequestPathMetricsCollector)>(v);
v = v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector: long COLLECTOR_INITIAL_DELAY>;
v = v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector: long COLLECTOR_DELAY>;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit MINUTES>;
virtualinvoke v.<java.util.concurrent.ScheduledThreadPoolExecutor: java.util.concurrent.ScheduledFuture scheduleWithFixedDelay(java.lang.Runnable,long,long,java.util.concurrent.TimeUnit)>(v, v, v, v);
return;
}
public void registerRequest(int, java.lang.String)
{
org.slf4j.Logger v;
org.apache.zookeeper.server.util.RequestPathMetricsCollector v;
java.lang.Integer v;
byte v;
java.util.Map v;
java.util.concurrent.ThreadLocalRandom v;
int v;
float v, v;
java.lang.Object v;
java.lang.String v, v;
boolean v;
v := @this: org.apache.zookeeper.server.util.RequestPathMetricsCollector;
v := @parameter: int;
v := @parameter: java.lang.String;
v = v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector: boolean enabled>;
if v != 0 goto label;
return;
label:
v = staticinvoke <java.util.concurrent.ThreadLocalRandom: java.util.concurrent.ThreadLocalRandom current()>();
v = virtualinvoke v.<java.util.concurrent.ThreadLocalRandom: float nextFloat()>();
v = v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector: float REQUEST_PREPROCESS_SAMPLE_RATE>;
v = v cmpg v;
if v > 0 goto label;
v = v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector: java.util.Map immutableRequestsMap>;
v = staticinvoke <org.apache.zookeeper.server.Request: java.lang.String op2String(int)>(v);
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
virtualinvoke v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector$PathStatsQueue: void registerRequest(java.lang.String)>(v);
goto label;
label:
v = <org.apache.zookeeper.server.util.RequestPathMetricsCollector: org.slf4j.Logger LOG>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object)>("We should not handle {}", v);
label:
return;
}
public void dumpTopRequestPath(java.io.PrintWriter, java.lang.String, int)
{
java.io.PrintWriter v;
org.apache.zookeeper.server.util.RequestPathMetricsCollector v;
java.util.function.Consumer v;
java.util.Map v, v;
int v, v, v;
java.lang.Object v;
java.lang.String v, v, v;
v := @this: org.apache.zookeeper.server.util.RequestPathMetricsCollector;
v := @parameter: java.io.PrintWriter;
v := @parameter: java.lang.String;
v := @parameter: int;
if v >= 1 goto label;
return;
label:
v = v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector: java.util.Map immutableRequestsMap>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Can not find path stats for type: \u0001");
virtualinvoke v.<java.io.PrintWriter: void println(java.lang.String)>(v);
return;
label:
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("The top requests of type: \u0001");
virtualinvoke v.<java.io.PrintWriter: void println(java.lang.String)>(v);
v = v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector: int REQUEST_PREPROCESS_PATH_DEPTH>;
v = staticinvoke <java.lang.Math: int min(int,int)>(v, v);
v = virtualinvoke v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector$PathStatsQueue: java.util.Map collectStats(int)>(v);
v = staticinvoke <org.apache.zookeeper.server.util.RequestPathMetricsCollector$lambda_dumpTopRequestPath_6__224: java.util.function.Consumer bootstrap$(java.io.PrintWriter)>(v);
virtualinvoke v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector: void logTopPaths(java.util.Map,java.util.function.Consumer)>(v, v);
return;
}
public void dumpTopReadPaths(java.io.PrintWriter, int)
{
java.io.PrintWriter v;
java.util.function.Predicate v;
int v;
org.apache.zookeeper.server.util.RequestPathMetricsCollector v;
v := @this: org.apache.zookeeper.server.util.RequestPathMetricsCollector;
v := @parameter: java.io.PrintWriter;
v := @parameter: int;
virtualinvoke v.<java.io.PrintWriter: void println(java.lang.String)>("The top read requests are");
v = staticinvoke <org.apache.zookeeper.server.util.RequestPathMetricsCollector$lambda_dumpTopReadPaths_7__225: java.util.function.Predicate bootstrap$()>();
specialinvoke v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector: void dumpTopAggregatedPaths(java.io.PrintWriter,int,java.util.function.Predicate)>(v, v, v);
return;
}
public void dumpTopWritePaths(java.io.PrintWriter, int)
{
java.io.PrintWriter v;
java.util.function.Predicate v;
int v;
org.apache.zookeeper.server.util.RequestPathMetricsCollector v;
v := @this: org.apache.zookeeper.server.util.RequestPathMetricsCollector;
v := @parameter: java.io.PrintWriter;
v := @parameter: int;
virtualinvoke v.<java.io.PrintWriter: void println(java.lang.String)>("The top write requests are");
v = staticinvoke <org.apache.zookeeper.server.util.RequestPathMetricsCollector$lambda_dumpTopWritePaths_8__226: java.util.function.Predicate bootstrap$()>();
specialinvoke v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector: void dumpTopAggregatedPaths(java.io.PrintWriter,int,java.util.function.Predicate)>(v, v, v);
return;
}
public void dumpTopPaths(java.io.PrintWriter, int)
{
java.io.PrintWriter v;
java.util.function.Predicate v;
int v;
org.apache.zookeeper.server.util.RequestPathMetricsCollector v;
v := @this: org.apache.zookeeper.server.util.RequestPathMetricsCollector;
v := @parameter: java.io.PrintWriter;
v := @parameter: int;
virtualinvoke v.<java.io.PrintWriter: void println(java.lang.String)>("The top requests are");
v = staticinvoke <org.apache.zookeeper.server.util.RequestPathMetricsCollector$lambda_dumpTopPaths_9__227: java.util.function.Predicate bootstrap$()>();
specialinvoke v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector: void dumpTopAggregatedPaths(java.io.PrintWriter,int,java.util.function.Predicate)>(v, v, v);
return;
}
private void dumpTopAggregatedPaths(java.io.PrintWriter, int, java.util.function.Predicate)
{
java.io.PrintWriter v;
java.util.function.Consumer v;
java.util.function.Predicate v;
java.util.Map v;
int v;
org.apache.zookeeper.server.util.RequestPathMetricsCollector v;
boolean v;
v := @this: org.apache.zookeeper.server.util.RequestPathMetricsCollector;
v := @parameter: java.io.PrintWriter;
v := @parameter: int;
v := @parameter: java.util.function.Predicate;
v = v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector: boolean enabled>;
if v != 0 goto label;
return;
label:
v = virtualinvoke v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector: java.util.Map aggregatePaths(int,java.util.function.Predicate)>(v, v);
v = staticinvoke <org.apache.zookeeper.server.util.RequestPathMetricsCollector$lambda_dumpTopAggregatedPaths_10__228: java.util.function.Consumer bootstrap$(java.io.PrintWriter)>(v);
virtualinvoke v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector: void logTopPaths(java.util.Map,java.util.function.Consumer)>(v, v);
return;
}
java.util.Map aggregatePaths(int, java.util.function.Predicate)
{
java.util.function.Predicate v;
java.util.Collection v;
org.apache.zookeeper.server.util.RequestPathMetricsCollector v;
java.util.HashMap v;
java.util.function.Consumer v;
java.util.stream.Stream v, v;
java.util.Map v;
int v, v, v, v;
v := @this: org.apache.zookeeper.server.util.RequestPathMetricsCollector;
v := @parameter: int;
v := @parameter: java.util.function.Predicate;
v = new java.util.HashMap;
v = v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector: int REQUEST_PREPROCESS_TOPPATH_MAX>;
specialinvoke v.<java.util.HashMap: void <init>(int)>(v);
v = v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector: int REQUEST_PREPROCESS_PATH_DEPTH>;
v = staticinvoke <java.lang.Math: int min(int,int)>(v, v);
v = v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector: java.util.Map immutableRequestsMap>;
v = interfaceinvoke v.<java.util.Map: java.util.Collection values()>();
v = interfaceinvoke v.<java.util.Collection: java.util.stream.Stream stream()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream filter(java.util.function.Predicate)>(v);
v = staticinvoke <org.apache.zookeeper.server.util.RequestPathMetricsCollector$lambda_aggregatePaths_12__229: java.util.function.Consumer bootstrap$(int,java.util.Map)>(v, v);
interfaceinvoke v.<java.util.stream.Stream: void forEach(java.util.function.Consumer)>(v);
return v;
}
void logTopPaths(java.util.Map, java.util.function.Consumer)
{
org.apache.zookeeper.server.util.RequestPathMetricsCollector v;
java.util.Set v;
java.util.function.Function v;
java.util.function.Consumer v;
java.util.stream.Stream v, v, v;
java.util.Map v;
int v;
java.util.Comparator v, v;
v := @this: org.apache.zookeeper.server.util.RequestPathMetricsCollector;
v := @parameter: java.util.Map;
v := @parameter: java.util.function.Consumer;
v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
v = interfaceinvoke v.<java.util.Set: java.util.stream.Stream stream()>();
v = staticinvoke <org.apache.zookeeper.server.util.RequestPathMetricsCollector$getValue__230: java.util.function.Function bootstrap$()>();
v = staticinvoke <java.util.Comparator: java.util.Comparator comparing(java.util.function.Function)>(v);
v = interfaceinvoke v.<java.util.Comparator: java.util.Comparator reversed()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream sorted(java.util.Comparator)>(v);
v = v.<org.apache.zookeeper.server.util.RequestPathMetricsCollector: int REQUEST_PREPROCESS_TOPPATH_MAX>;
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream limit(long)>(v);
interfaceinvoke v.<java.util.stream.Stream: void forEach(java.util.function.Consumer)>(v);
return;
}
static void <clinit>()
{
org.slf4j.Logger v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/apache/zookeeper/server/util/RequestPathMetricsCollector;");
<org.apache.zookeeper.server.util.RequestPathMetricsCollector: org.slf4j.Logger LOG> = v;
return;
}
}