This is an automated email from the ASF dual-hosted git repository.

oleewere pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ambari-logsearch.git


The following commit(s) were added to refs/heads/master by this push:
     new 26485f2  AMBARI-24833. Get rid of custom time based triggering policy
26485f2 is described below

commit 26485f24e5f72f1d1c801f72bc718927c3daed12
Author: Oliver Szabo <oleew...@gmail.com>
AuthorDate: Fri Dec 7 19:32:33 2018 +0100

    AMBARI-24833. Get rid of custom time based triggering policy
---
 .../output/cloud/CloudStorageLoggerFactory.java    | 19 +++--
 .../cloud/CustomTimeBasedTriggeringPolicy.java     | 85 ----------------------
 .../src/main/resources/logfeeder.properties        |  1 +
 3 files changed, 14 insertions(+), 91 deletions(-)

diff --git 
a/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/output/cloud/CloudStorageLoggerFactory.java
 
b/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/output/cloud/CloudStorageLoggerFactory.java
index ea422b9..33516bf 100644
--- 
a/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/output/cloud/CloudStorageLoggerFactory.java
+++ 
b/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/output/cloud/CloudStorageLoggerFactory.java
@@ -30,6 +30,7 @@ import 
org.apache.logging.log4j.core.appender.rolling.CompositeTriggeringPolicy;
 import org.apache.logging.log4j.core.appender.rolling.DefaultRolloverStrategy;
 import 
org.apache.logging.log4j.core.appender.rolling.OnStartupTriggeringPolicy;
 import 
org.apache.logging.log4j.core.appender.rolling.SizeBasedTriggeringPolicy;
+import 
org.apache.logging.log4j.core.appender.rolling.TimeBasedTriggeringPolicy;
 import org.apache.logging.log4j.core.config.AppenderRef;
 import org.apache.logging.log4j.core.config.Configuration;
 import org.apache.logging.log4j.core.config.LoggerConfig;
@@ -79,22 +80,28 @@ public class CloudStorageLoggerFactory {
 
     String rolloverSize = 
logFeederProps.getRolloverConfig().getRolloverSize().toString() + 
logFeederProps.getRolloverConfig().getRolloverSizeFormat();
     SizeBasedTriggeringPolicy sizeBasedTriggeringPolicy = 
SizeBasedTriggeringPolicy.createPolicy(rolloverSize);
-    CustomTimeBasedTriggeringPolicy customTimeBasedTriggeringPolicy = 
CustomTimeBasedTriggeringPolicy
-      
.createPolicy(String.valueOf(logFeederProps.getRolloverConfig().getRolloverThresholdTimeMins()));
+
+    final Integer thresholdMin = 
logFeederProps.getRolloverConfig().getRolloverThresholdTimeMins();
+    final Integer thresholdInterval = thresholdMin * 60000; // 1 min = 60000 
milliseconds
+
+    TimeBasedTriggeringPolicy timeBasedTriggeringPolicy = 
TimeBasedTriggeringPolicy.newBuilder()
+      .withInterval(thresholdInterval)
+      .build();
 
     final CompositeTriggeringPolicy compositeTriggeringPolicy;
 
     if (logFeederProps.getRolloverConfig().isRolloverOnStartup()) {
       OnStartupTriggeringPolicy onStartupTriggeringPolicy = 
OnStartupTriggeringPolicy.createPolicy(1);
       compositeTriggeringPolicy = CompositeTriggeringPolicy
-        .createPolicy(sizeBasedTriggeringPolicy, 
customTimeBasedTriggeringPolicy, onStartupTriggeringPolicy);
+        .createPolicy(sizeBasedTriggeringPolicy, timeBasedTriggeringPolicy, 
onStartupTriggeringPolicy);
     } else {
       compositeTriggeringPolicy = CompositeTriggeringPolicy
-        .createPolicy(sizeBasedTriggeringPolicy, 
customTimeBasedTriggeringPolicy);
+        .createPolicy(sizeBasedTriggeringPolicy, timeBasedTriggeringPolicy);
     }
 
-    DefaultRolloverStrategy defaultRolloverStrategy = 
DefaultRolloverStrategy.newBuilder().withMax(String.valueOf(
-      logFeederProps.getRolloverConfig().getRolloverMaxBackupFiles())).build();
+    DefaultRolloverStrategy defaultRolloverStrategy = 
DefaultRolloverStrategy.newBuilder()
+      
.withMax(String.valueOf(logFeederProps.getRolloverConfig().getRolloverMaxBackupFiles()))
+      .build();
 
     boolean immediateFlush = 
logFeederProps.getRolloverConfig().isImmediateFlush();
     RollingFileAppender appender = RollingFileAppender.newBuilder()
diff --git 
a/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/output/cloud/CustomTimeBasedTriggeringPolicy.java
 
b/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/output/cloud/CustomTimeBasedTriggeringPolicy.java
deleted file mode 100644
index 41bb5ba..0000000
--- 
a/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/output/cloud/CustomTimeBasedTriggeringPolicy.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.ambari.logfeeder.output.cloud;
-
-import org.apache.logging.log4j.core.Core;
-import org.apache.logging.log4j.core.LogEvent;
-import org.apache.logging.log4j.core.appender.rolling.AbstractTriggeringPolicy;
-import org.apache.logging.log4j.core.appender.rolling.RollingFileManager;
-import org.apache.logging.log4j.core.config.plugins.Plugin;
-import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
-import org.apache.logging.log4j.core.config.plugins.PluginFactory;
-
-import java.util.concurrent.TimeUnit;
-
-/**
- * Rolls a file over based on time. - it works with a specific interval, it 
does not use the file date pattern from log4j2 configuration
- */
-@Plugin(name = "CustomTimeBasedTriggeringPolicy", category = 
Core.CATEGORY_NAME, printObject = true)
-public final class CustomTimeBasedTriggeringPolicy extends 
AbstractTriggeringPolicy {
-
-  private final long intervalMin;
-
-  private RollingFileManager manager;
-  private long nextRolloverMillis;
-
-  private CustomTimeBasedTriggeringPolicy(final long intervalMin) {
-    this.intervalMin = intervalMin;
-  }
-
-  public long getIntervalMin() {
-    return this.intervalMin;
-  }
-
-  @Override
-  public void initialize(RollingFileManager manager) {
-    this.manager = manager;
-    long fileTime = this.manager.getFileTime();
-    long actualDate = System.currentTimeMillis();
-    long diff = actualDate - fileTime;
-    long intervalMillis = TimeUnit.MINUTES.toMillis(this.intervalMin);
-    if (diff > intervalMillis) {
-      this.nextRolloverMillis = actualDate;
-    } else {
-      long remainingMillis = intervalMillis - diff;
-      this.nextRolloverMillis = actualDate + remainingMillis;
-    }
-  }
-
-  @Override
-  public boolean isTriggeringEvent(LogEvent event) {
-    if (this.manager.getFileSize() == 0L) {
-      return false;
-    } else {
-      long nowMillis = event.getTimeMillis();
-      if (nowMillis >= this.nextRolloverMillis) {
-        this.nextRolloverMillis = nowMillis + 
TimeUnit.MINUTES.toMillis(this.intervalMin);
-        return true;
-      } else {
-        return false;
-      }
-    }
-  }
-
-  @PluginFactory
-  public static CustomTimeBasedTriggeringPolicy 
createPolicy(@PluginAttribute("intervalMins") final String intervalMins) {
-    return new CustomTimeBasedTriggeringPolicy(Long.parseLong(intervalMins));
-  }
-
-}
diff --git a/ambari-logsearch-logfeeder/src/main/resources/logfeeder.properties 
b/ambari-logsearch-logfeeder/src/main/resources/logfeeder.properties
index 2537913..de70762 100644
--- a/ambari-logsearch-logfeeder/src/main/resources/logfeeder.properties
+++ b/ambari-logsearch-logfeeder/src/main/resources/logfeeder.properties
@@ -57,6 +57,7 @@ logfeeder.cloud.rollover.threshold.min=1000
 logfeeder.cloud.rollover.threshold.size=1
 logfeeder.cloud.rollover.threshold.size.unit=K
 logfeeder.cloud.rollover.immediate.flush=true
+logfeeder.cloud.rollover.use.gzip=true
 
 logfeeder.hdfs.host=c7401.ambari.apache.org
 logfeeder.hdfs.port=8020

Reply via email to