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