diff options
Diffstat (limited to 'ambari-logsearch/ambari-logsearch-logfeeder')
3 files changed, 36 insertions, 4 deletions
diff --git a/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/LogFeederUtil.java b/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/LogFeederUtil.java index 15dd5c9584..9881b55782 100644 --- a/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/LogFeederUtil.java +++ b/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/LogFeederUtil.java @@ -87,6 +87,15 @@ public class LogFeederUtil { return gson; } + private static ThreadLocal<SimpleDateFormat> dateFormatter = new ThreadLocal<SimpleDateFormat>() { + @Override + protected SimpleDateFormat initialValue() { + SimpleDateFormat sdf = new SimpleDateFormat(SOLR_DATE_FORMAT); + sdf.setTimeZone(TimeZone.getTimeZone("UTC")); + return sdf; + } + }; + /** * This method will read the properties from System, followed by propFile * and finally from the map @@ -382,11 +391,18 @@ public class LogFeederUtil { public static String getDate(String timeStampStr) { try { - DateFormat sdf = new SimpleDateFormat(SOLR_DATE_FORMAT); - sdf.setTimeZone(TimeZone.getTimeZone("UTC")); - Date netDate = (new Date(Long.parseLong(timeStampStr))); - return sdf.format(netDate); + return dateFormatter.get().format(new Date(Long.parseLong(timeStampStr))); + } catch (Exception ex) { + logger.error(ex); + return null; + } + } + + public static String getActualDateStr() { + try { + return dateFormatter.get().format(new Date()); } catch (Exception ex) { + logger.error(ex); return null; } } diff --git a/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/output/OutputSolr.java b/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/output/OutputSolr.java index 43d908e48b..b4dac72398 100644 --- a/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/output/OutputSolr.java +++ b/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/output/OutputSolr.java @@ -59,6 +59,7 @@ public class OutputSolr extends Output { private static final int DEFAULT_NUMBER_OF_SHARDS = 1; private static final int DEFAULT_SPLIT_INTERVAL = 30; private static final int DEFAULT_NUMBER_OF_WORKERS = 1; + private static final boolean DEFAULT_SKIP_LOGTIME = false; private static final int RETRY_INTERVAL = 30; @@ -71,6 +72,7 @@ public class OutputSolr extends Output { private int maxBufferSize; private boolean isComputeCurrentCollection = false; private int lastSlotByMin = -1; + private boolean skipLogtime = false; private BlockingQueue<OutputData> outgoingBuffer = null; private List<SolrWorkerThread> workerThreadList = new ArrayList<>(); @@ -96,6 +98,8 @@ public class OutputSolr extends Output { numberOfShards = getIntValue("number_of_shards", DEFAULT_NUMBER_OF_SHARDS); + skipLogtime = getBooleanValue("skip_logtime", DEFAULT_SKIP_LOGTIME); + maxIntervalMS = getIntValue("idle_flush_time_ms", DEFAULT_MAX_INTERVAL_MS); workers = getIntValue("workers", DEFAULT_NUMBER_OF_WORKERS); @@ -243,12 +247,19 @@ public class OutputSolr extends Output { public void write(Map<String, Object> jsonObj, InputMarker inputMarker) throws Exception { try { trimStrValue(jsonObj); + useActualDateIfNeeded(jsonObj); outgoingBuffer.put(new OutputData(jsonObj, inputMarker)); } catch (InterruptedException e) { // ignore } } + private void useActualDateIfNeeded(Map<String, Object> jsonObj) { + if (skipLogtime) { + jsonObj.put("logtime", LogFeederUtil.getActualDateStr()); + } + } + public void flush() { LOG.info("Flush called..."); setDrain(true); diff --git a/ambari-logsearch/ambari-logsearch-logfeeder/src/main/scripts/run.sh b/ambari-logsearch/ambari-logsearch-logfeeder/src/main/scripts/run.sh index dba85fa279..dfc7b7bb98 100644 --- a/ambari-logsearch/ambari-logsearch-logfeeder/src/main/scripts/run.sh +++ b/ambari-logsearch/ambari-logsearch-logfeeder/src/main/scripts/run.sh @@ -59,6 +59,11 @@ if [ "$LOGFEEDER_CONF_DIR" = "" ]; then fi +LOGFEEDER_DEBUG_SUSPEND=${LOGFEEDER_DEBUG_SUSPEND:-n} +if [ "$LOGFEEDER_DEBUG" = "true" ] && [ ! -z "$LOGFEEDER_DEBUG_PORT" ]; then + LOGFEEDER_JAVA_OPTS="$LOGSEARCH_JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,address=$LOGFEEDER_DEBUG_PORT,server=y,suspend=$LOGFEEDER_DEBUG_SUSPEND " +fi + LOGFEEDER_GC_LOGFILE=`dirname $LOGFILE`/logfeeder_gc.log LOGFEEDER_GC_OPTS="-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:$LOGFEEDER_GC_LOGFILE" |