public class org.apache.hadoop.hive.common.metrics.metrics.JsonFileMetricsReporter extends java.lang.Object implements org.apache.hadoop.hive.common.metrics.metrics.CodahaleReporter, java.lang.Runnable
{
private static final org.slf4j.Logger LOGGER;
private static final java.nio.file.attribute.FileAttribute FILE_ATTRS;
private static final java.nio.file.attribute.FileAttribute DIR_ATTRS;
private static final java.lang.String JSON_REPORTER_THREAD_NAME;
private final com.codahale.metrics.MetricRegistry metricRegistry;
private final com.fasterxml.jackson.databind.ObjectWriter jsonWriter;
private java.util.concurrent.ScheduledExecutorService executorService;
private final long interval;
private final java.nio.file.Path path;
private final java.nio.file.Path metricsDir;
public void <init>(com.codahale.metrics.MetricRegistry, org.apache.hadoop.conf.Configuration)
{
java.lang.String[] v;
long v;
org.apache.hadoop.conf.Configuration v;
org.apache.hadoop.hive.metastore.conf.MetastoreConf$ConfVars v, v;
java.lang.String v;
java.nio.file.Path v, v, v, v, v;
com.codahale.metrics.MetricRegistry v;
org.slf4j.Logger v;
com.fasterxml.jackson.databind.ObjectWriter v;
com.fasterxml.jackson.databind.ObjectMapper v, v;
org.apache.hadoop.hive.common.metrics.metrics.JsonFileMetricsReporter v;
java.util.concurrent.TimeUnit v, v, v;
com.codahale.metrics.json.MetricsModule v;
v := @this: org.apache.hadoop.hive.common.metrics.metrics.JsonFileMetricsReporter;
v := @parameter: com.codahale.metrics.MetricRegistry;
v := @parameter: org.apache.hadoop.conf.Configuration;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.apache.hadoop.hive.common.metrics.metrics.JsonFileMetricsReporter: com.codahale.metrics.MetricRegistry metricRegistry> = v;
v = new com.fasterxml.jackson.databind.ObjectMapper;
specialinvoke v.<com.fasterxml.jackson.databind.ObjectMapper: void <init>()>();
v = new com.codahale.metrics.json.MetricsModule;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit MILLISECONDS>;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit MILLISECONDS>;
specialinvoke v.<com.codahale.metrics.json.MetricsModule: void <init>(java.util.concurrent.TimeUnit,java.util.concurrent.TimeUnit,boolean)>(v, v, 0);
v = virtualinvoke v.<com.fasterxml.jackson.databind.ObjectMapper: com.fasterxml.jackson.databind.ObjectMapper registerModule(com.fasterxml.jackson.databind.Module)>(v);
v = virtualinvoke v.<com.fasterxml.jackson.databind.ObjectMapper: com.fasterxml.jackson.databind.ObjectWriter writerWithDefaultPrettyPrinter()>();
v.<org.apache.hadoop.hive.common.metrics.metrics.JsonFileMetricsReporter: com.fasterxml.jackson.databind.ObjectWriter jsonWriter> = v;
v = <org.apache.hadoop.hive.metastore.conf.MetastoreConf$ConfVars: org.apache.hadoop.hive.metastore.conf.MetastoreConf$ConfVars METRICS_JSON_FILE_INTERVAL>;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit MILLISECONDS>;
v = staticinvoke <org.apache.hadoop.hive.metastore.conf.MetastoreConf: long getTimeVar(org.apache.hadoop.conf.Configuration,org.apache.hadoop.hive.metastore.conf.MetastoreConf$ConfVars,java.util.concurrent.TimeUnit)>(v, v, v);
v.<org.apache.hadoop.hive.common.metrics.metrics.JsonFileMetricsReporter: long interval> = v;
v = <org.apache.hadoop.hive.metastore.conf.MetastoreConf$ConfVars: org.apache.hadoop.hive.metastore.conf.MetastoreConf$ConfVars METRICS_JSON_FILE_LOCATION>;
v = staticinvoke <org.apache.hadoop.hive.metastore.conf.MetastoreConf: java.lang.String getVar(org.apache.hadoop.conf.Configuration,org.apache.hadoop.hive.metastore.conf.MetastoreConf$ConfVars)>(v, v);
v = newarray (java.lang.String)[0];
v = staticinvoke <java.nio.file.Paths: java.nio.file.Path get(java.lang.String,java.lang.String[])>(v, v);
v = interfaceinvoke v.<java.nio.file.Path: java.nio.file.Path toAbsolutePath()>();
v.<org.apache.hadoop.hive.common.metrics.metrics.JsonFileMetricsReporter: java.nio.file.Path path> = v;
v = <org.apache.hadoop.hive.common.metrics.metrics.JsonFileMetricsReporter: org.slf4j.Logger LOGGER>;
v = v.<org.apache.hadoop.hive.common.metrics.metrics.JsonFileMetricsReporter: java.nio.file.Path path>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object)>("Reporting metrics to {}", v);
v = v.<org.apache.hadoop.hive.common.metrics.metrics.JsonFileMetricsReporter: java.nio.file.Path path>;
v = interfaceinvoke v.<java.nio.file.Path: java.nio.file.Path getParent()>();
v.<org.apache.hadoop.hive.common.metrics.metrics.JsonFileMetricsReporter: java.nio.file.Path metricsDir> = v;
return;
}
public void start()
{
com.google.common.util.concurrent.ThreadFactoryBuilder v, v;
long v;
java.nio.file.attribute.FileAttribute[] v;
java.util.concurrent.ScheduledExecutorService v, v;
java.lang.String v;
java.util.concurrent.ThreadFactory v;
java.nio.file.Path v, v, v, v;
boolean v;
org.slf4j.Logger v, v;
java.io.IOException v;
java.nio.file.attribute.FileAttribute v;
java.io.File v;
org.apache.hadoop.hive.common.metrics.metrics.JsonFileMetricsReporter v;
java.util.concurrent.TimeUnit v;
v := @this: org.apache.hadoop.hive.common.metrics.metrics.JsonFileMetricsReporter;
v = v.<org.apache.hadoop.hive.common.metrics.metrics.JsonFileMetricsReporter: java.nio.file.Path metricsDir>;
v = interfaceinvoke v.<java.nio.file.Path: java.io.File toFile()>();
v = virtualinvoke v.<java.io.File: boolean exists()>();
if v != 0 goto label;
v = <org.apache.hadoop.hive.common.metrics.metrics.JsonFileMetricsReporter: org.slf4j.Logger LOGGER>;
v = v.<org.apache.hadoop.hive.common.metrics.metrics.JsonFileMetricsReporter: java.nio.file.Path metricsDir>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object)>("Metrics directory {} does not exist, creating one", v);
label:
v = v.<org.apache.hadoop.hive.common.metrics.metrics.JsonFileMetricsReporter: java.nio.file.Path metricsDir>;
v = newarray (java.nio.file.attribute.FileAttribute)[1];
v = <org.apache.hadoop.hive.common.metrics.metrics.JsonFileMetricsReporter: java.nio.file.attribute.FileAttribute DIR_ATTRS>;
v[0] = v;
staticinvoke <java.nio.file.Files: java.nio.file.Path createDirectories(java.nio.file.Path,java.nio.file.attribute.FileAttribute[])>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.hadoop.hive.common.metrics.metrics.JsonFileMetricsReporter: org.slf4j.Logger LOGGER>;
v = v.<org.apache.hadoop.hive.common.metrics.metrics.JsonFileMetricsReporter: java.nio.file.Path metricsDir>;
v = virtualinvoke v.<java.io.IOException: java.lang.String getMessage()>();
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object,java.lang.Object)>("Failed to create directory {}: {}", v, v);
return;
label:
v = new com.google.common.util.concurrent.ThreadFactoryBuilder;
specialinvoke v.<com.google.common.util.concurrent.ThreadFactoryBuilder: void <init>()>();
v = virtualinvoke v.<com.google.common.util.concurrent.ThreadFactoryBuilder: com.google.common.util.concurrent.ThreadFactoryBuilder setNameFormat(java.lang.String)>("json-metric-reporter");
v = virtualinvoke v.<com.google.common.util.concurrent.ThreadFactoryBuilder: java.util.concurrent.ThreadFactory build()>();
v = staticinvoke <java.util.concurrent.Executors: java.util.concurrent.ScheduledExecutorService newScheduledThreadPool(int,java.util.concurrent.ThreadFactory)>(1, v);
v.<org.apache.hadoop.hive.common.metrics.metrics.JsonFileMetricsReporter: java.util.concurrent.ScheduledExecutorService executorService> = v;
v = v.<org.apache.hadoop.hive.common.metrics.metrics.JsonFileMetricsReporter: java.util.concurrent.ScheduledExecutorService executorService>;
v = v.<org.apache.hadoop.hive.common.metrics.metrics.JsonFileMetricsReporter: long interval>;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit MILLISECONDS>;
interfaceinvoke v.<java.util.concurrent.ScheduledExecutorService: java.util.concurrent.ScheduledFuture scheduleWithFixedDelay(java.lang.Runnable,long,long,java.util.concurrent.TimeUnit)>(v, 0L, v, v);
return;
catch java.io.IOException from label to label with label;
}
public void close()
{
java.util.concurrent.ScheduledExecutorService v, v;
org.apache.hadoop.hive.common.metrics.metrics.JsonFileMetricsReporter v;
v := @this: org.apache.hadoop.hive.common.metrics.metrics.JsonFileMetricsReporter;
v = v.<org.apache.hadoop.hive.common.metrics.metrics.JsonFileMetricsReporter: java.util.concurrent.ScheduledExecutorService executorService>;
if v == null goto label;
v = v.<org.apache.hadoop.hive.common.metrics.metrics.JsonFileMetricsReporter: java.util.concurrent.ScheduledExecutorService executorService>;
interfaceinvoke v.<java.util.concurrent.ScheduledExecutorService: void shutdown()>();
label:
return;
}
public void run()
{
java.nio.file.attribute.FileAttribute[] v;
java.lang.SecurityException v;
java.nio.file.Path v, v, v, v;
boolean v, v, v, v;
com.fasterxml.jackson.databind.ObjectWriter v;
java.nio.file.attribute.FileAttribute v;
java.lang.Exception v, v, v, v, v;
org.apache.hadoop.hive.common.metrics.metrics.JsonFileMetricsReporter v;
java.lang.Throwable v, v, v, v;
java.nio.file.CopyOption[] v;
java.nio.file.StandardCopyOption v;
java.nio.charset.Charset v;
java.nio.file.OpenOption[] v;
java.lang.String v, v, v, v, v, v;
java.lang.UnsupportedOperationException v;
com.codahale.metrics.MetricRegistry v;
org.slf4j.Logger v, v, v, v, v, v, v, v, v, v, v, v;
java.io.BufferedWriter v;
java.io.IOException v, v;
java.io.File v, v, v, v;
v := @this: org.apache.hadoop.hive.common.metrics.metrics.JsonFileMetricsReporter;
v = null;
label:
v = v.<org.apache.hadoop.hive.common.metrics.metrics.JsonFileMetricsReporter: com.fasterxml.jackson.databind.ObjectWriter jsonWriter>;
v = v.<org.apache.hadoop.hive.common.metrics.metrics.JsonFileMetricsReporter: com.codahale.metrics.MetricRegistry metricRegistry>;
v = virtualinvoke v.<com.fasterxml.jackson.databind.ObjectWriter: java.lang.String writeValueAsString(java.lang.Object)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.hadoop.hive.common.metrics.metrics.JsonFileMetricsReporter: org.slf4j.Logger LOGGER>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("Unable to convert json to string ", v);
label:
return;
label:
v = v.<org.apache.hadoop.hive.common.metrics.metrics.JsonFileMetricsReporter: java.nio.file.Path metricsDir>;
v = newarray (java.nio.file.attribute.FileAttribute)[1];
v = <org.apache.hadoop.hive.common.metrics.metrics.JsonFileMetricsReporter: java.nio.file.attribute.FileAttribute FILE_ATTRS>;
v[0] = v;
v = staticinvoke <java.nio.file.Files: java.nio.file.Path createTempFile(java.nio.file.Path,java.lang.String,java.lang.String,java.nio.file.attribute.FileAttribute[])>(v, "hmetrics", "json", v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.hadoop.hive.common.metrics.metrics.JsonFileMetricsReporter: org.slf4j.Logger LOGGER>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("failed to create temp file for JSON metrics", v);
label:
return;
label:
v := @caughtexception;
v = <org.apache.hadoop.hive.common.metrics.metrics.JsonFileMetricsReporter: org.slf4j.Logger LOGGER>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("failed to create temp file for JSON metrics: no permissions", v);
label:
return;
label:
v := @caughtexception;
v = <org.apache.hadoop.hive.common.metrics.metrics.JsonFileMetricsReporter: org.slf4j.Logger LOGGER>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("failed to create temp file for JSON metrics: operation not supported", v);
label:
return;
label:
v = <java.nio.charset.StandardCharsets: java.nio.charset.Charset UTF_8>;
v = newarray (java.nio.file.OpenOption)[0];
v = staticinvoke <java.nio.file.Files: java.io.BufferedWriter newBufferedWriter(java.nio.file.Path,java.nio.charset.Charset,java.nio.file.OpenOption[])>(v, v, v);
label:
virtualinvoke v.<java.io.BufferedWriter: void write(java.lang.String)>(v);
label:
virtualinvoke v.<java.io.BufferedWriter: void close()>();
goto label;
label:
v := @caughtexception;
throw v;
label:
v := @caughtexception;
v = <org.apache.hadoop.hive.common.metrics.metrics.JsonFileMetricsReporter: org.slf4j.Logger LOGGER>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.nio.file.Path)>(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[])>("Unable to write to temp file \u0001");
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>(v, v);
label:
if v == null goto label;
v = interfaceinvoke v.<java.nio.file.Path: java.io.File toFile()>();
v = virtualinvoke v.<java.io.File: boolean exists()>();
if v == 0 goto label;
label:
staticinvoke <java.nio.file.Files: void delete(java.nio.file.Path)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.hadoop.hive.common.metrics.metrics.JsonFileMetricsReporter: org.slf4j.Logger LOGGER>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.nio.file.Path)>(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[])>("failed to delete temporary metrics file \u0001");
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>(v, v);
label:
return;
label:
v = v.<org.apache.hadoop.hive.common.metrics.metrics.JsonFileMetricsReporter: java.nio.file.Path path>;
v = newarray (java.nio.file.CopyOption)[1];
v = <java.nio.file.StandardCopyOption: java.nio.file.StandardCopyOption ATOMIC_MOVE>;
v[0] = v;
staticinvoke <java.nio.file.Files: java.nio.file.Path move(java.nio.file.Path,java.nio.file.Path,java.nio.file.CopyOption[])>(v, v, v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.hadoop.hive.common.metrics.metrics.JsonFileMetricsReporter: org.slf4j.Logger LOGGER>;
v = v.<org.apache.hadoop.hive.common.metrics.metrics.JsonFileMetricsReporter: java.nio.file.Path path>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object,java.lang.Object)>("Unable to rename temp file {} to {}", v, v);
v = <org.apache.hadoop.hive.common.metrics.metrics.JsonFileMetricsReporter: org.slf4j.Logger LOGGER>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("Exception during rename", v);
label:
if v == null goto label;
v = interfaceinvoke v.<java.nio.file.Path: java.io.File toFile()>();
v = virtualinvoke v.<java.io.File: boolean exists()>();
if v == 0 goto label;
label:
staticinvoke <java.nio.file.Files: void delete(java.nio.file.Path)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.hadoop.hive.common.metrics.metrics.JsonFileMetricsReporter: org.slf4j.Logger LOGGER>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.nio.file.Path)>(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[])>("failed to delete temporary metrics file \u0001");
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>(v, v);
goto label;
label:
v := @caughtexception;
v = <org.apache.hadoop.hive.common.metrics.metrics.JsonFileMetricsReporter: org.slf4j.Logger LOGGER>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("Error executing scheduled task ", v);
label:
if v == null goto label;
v = interfaceinvoke v.<java.nio.file.Path: java.io.File toFile()>();
v = virtualinvoke v.<java.io.File: boolean exists()>();
if v == 0 goto label;
label:
staticinvoke <java.nio.file.Files: void delete(java.nio.file.Path)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.hadoop.hive.common.metrics.metrics.JsonFileMetricsReporter: org.slf4j.Logger LOGGER>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.nio.file.Path)>(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[])>("failed to delete temporary metrics file \u0001");
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>(v, v);
goto label;
label:
v := @caughtexception;
if v == null goto label;
v = interfaceinvoke v.<java.nio.file.Path: java.io.File toFile()>();
v = virtualinvoke v.<java.io.File: boolean exists()>();
if v == 0 goto label;
label:
staticinvoke <java.nio.file.Files: void delete(java.nio.file.Path)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.hadoop.hive.common.metrics.metrics.JsonFileMetricsReporter: org.slf4j.Logger LOGGER>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.nio.file.Path)>(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[])>("failed to delete temporary metrics file \u0001");
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>(v, v);
label:
throw v;
label:
return;
catch com.fasterxml.jackson.core.JsonProcessingException from label to label with label;
catch java.io.IOException from label to label with label;
catch java.lang.SecurityException from label to label with label;
catch java.lang.UnsupportedOperationException from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.io.IOException from label to label with label;
catch java.lang.Exception from label to label with label;
catch java.lang.Exception from label to label with label;
catch java.lang.Exception from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Exception from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Exception from label to label with label;
}
static void <clinit>()
{
org.slf4j.Logger v;
java.util.Set v, v;
java.nio.file.attribute.FileAttribute v, v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/apache/hadoop/hive/common/metrics/metrics2/JsonFileMetricsReporter;");
<org.apache.hadoop.hive.common.metrics.metrics.JsonFileMetricsReporter: org.slf4j.Logger LOGGER> = v;
v = staticinvoke <java.nio.file.attribute.PosixFilePermissions: java.util.Set fromString(java.lang.String)>("rw-r--r--");
v = staticinvoke <java.nio.file.attribute.PosixFilePermissions: java.nio.file.attribute.FileAttribute asFileAttribute(java.util.Set)>(v);
<org.apache.hadoop.hive.common.metrics.metrics.JsonFileMetricsReporter: java.nio.file.attribute.FileAttribute FILE_ATTRS> = v;
v = staticinvoke <java.nio.file.attribute.PosixFilePermissions: java.util.Set fromString(java.lang.String)>("rwxr-xr-x");
v = staticinvoke <java.nio.file.attribute.PosixFilePermissions: java.nio.file.attribute.FileAttribute asFileAttribute(java.util.Set)>(v);
<org.apache.hadoop.hive.common.metrics.metrics.JsonFileMetricsReporter: java.nio.file.attribute.FileAttribute DIR_ATTRS> = v;
return;
}
}