summaryrefslogtreecommitdiff
path: root/ambari-logsearch/ambari-logsearch-logfeeder
diff options
context:
space:
mode:
Diffstat (limited to 'ambari-logsearch/ambari-logsearch-logfeeder')
-rw-r--r--ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/LogFeederUtil.java24
-rw-r--r--ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/output/OutputSolr.java11
-rw-r--r--ambari-logsearch/ambari-logsearch-logfeeder/src/main/scripts/run.sh5
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"