Mercurial > hg > thermostat-ng > agent
changeset 2720:3beac5ce66b4
Removal of obsolete perflog logging level
Reviewed-by: jerboaa
Review-thread: http://icedtea.classpath.org/pipermail/thermostat/2017-June/023972.html
Review-thread: http://icedtea.classpath.org/pipermail/thermostat/2017-July/023977.html
author | Christopher Koehler <chkoehle@redhat.com> |
---|---|
date | Mon, 17 Jul 2017 09:10:13 -0400 |
parents | 597f67d95197 |
children | 1210fbb16bd5 |
files | common/core/src/main/java/com/redhat/thermostat/common/utils/LoggingUtils.java config/pom.xml config/src/main/java/com/redhat/thermostat/shared/perflog/PerformanceLogFormatter.java config/src/main/java/com/redhat/thermostat/shared/perflog/PerformanceLogFormatterBuilder.java config/src/main/java/com/redhat/thermostat/shared/perflog/internal/PerformanceLogFormatterImpl.java config/src/test/java/com/redhat/thermostat/shared/perflog/PerformanceLogFormatterTest.java config/src/test/java/com/redhat/thermostat/shared/perflog/internal/PerfomanceLogFormatterImplTest.java |
diffstat | 7 files changed, 0 insertions(+), 458 deletions(-) [+] |
line wrap: on
line diff
--- a/common/core/src/main/java/com/redhat/thermostat/common/utils/LoggingUtils.java Tue Jul 11 17:00:25 2017 -0400 +++ b/common/core/src/main/java/com/redhat/thermostat/common/utils/LoggingUtils.java Mon Jul 17 09:10:13 2017 -0400 @@ -53,36 +53,6 @@ */ public final class LoggingUtils { - public enum LogLevel { - /* - * Custom log level, intended for use with Thermostat's internal performance - * analysis framework. Log messages at this level should be formatted using - * {@link com.redhat.thermostat.shared.perflog.PerformanceLogFormatter}. - */ - PERFLOG(new Level("PERFLOG", 50) { - private static final long serialVersionUID = 1L; - }), - ALL(Level.ALL), - CONFIG(Level.CONFIG), - FINE(Level.FINE), - FINER(Level.FINER), - FINEST(Level.FINEST), - INFO(Level.INFO), - OFF(Level.OFF), - SEVERE(Level.SEVERE), - WARNING(Level.WARNING); - - private Level level; - - LogLevel(Level level) { - this.level = level; - } - - public Level getLevel() { - return level; - } - } - // package private for testing static final String ROOTNAME = "com.redhat.thermostat";
--- a/config/pom.xml Tue Jul 11 17:00:25 2017 -0400 +++ b/config/pom.xml Mon Jul 17 09:10:13 2017 -0400 @@ -62,7 +62,6 @@ <Export-Package> com.redhat.thermostat.shared.locale, com.redhat.thermostat.shared.config, - com.redhat.thermostat.shared.perflog, </Export-Package> <Private-Package> com.redhat.thermostat.shared.config.internal,
--- a/config/src/main/java/com/redhat/thermostat/shared/perflog/PerformanceLogFormatter.java Tue Jul 11 17:00:25 2017 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,109 +0,0 @@ -/* - * Copyright 2012-2017 Red Hat, Inc. - * - * This file is part of Thermostat. - * - * Thermostat is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published - * by the Free Software Foundation; either version 2, or (at your - * option) any later version. - * - * Thermostat is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Thermostat; see the file COPYING. If not see - * <http://www.gnu.org/licenses/>. - * - * Linking this code with other modules is making a combined work - * based on this code. Thus, the terms and conditions of the GNU - * General Public License cover the whole combination. - * - * As a special exception, the copyright holders of this code give - * you permission to link this code with independent modules to - * produce an executable, regardless of the license terms of these - * independent modules, and to copy and distribute the resulting - * executable under terms of your choice, provided that you also - * meet, for each linked independent module, the terms and conditions - * of the license of that module. An independent module is a module - * which is not derived from or based on this code. If you modify - * this code, you may extend this exception to your version of the - * library, but you are not obligated to do so. If you do not wish - * to do so, delete this exception statement from your version. - */ - -package com.redhat.thermostat.shared.perflog; - - -/** - * - * Log formatter for Thermostat internal performance metrics. - * - * @see PerformanceLogFormatterBuilder - * - */ -public interface PerformanceLogFormatter { - - /** - * - * Log tags the Thermostat internal log analyzer knows about. - * - */ - public enum LogTag { - - // Note: Keep string values in sync with thermostat-perflog-analyzer's - // LogTag. - - /** - * Log tag for storage related messages. In particular messages emitted - * from backing proxied storage (usually from within the webapp). - */ - STORAGE_BACKING_PROXIED("s-backing-proxied"), - /** - * Log tag for storage related messages. In particular messages emitted - * from front-end storage. - */ - STORAGE_FRONT_END("s-front-end"), - ; - - private final String value; - - LogTag(String value) { - this.value = value; - } - - @Override - public String toString() { - return value; - } - } - - /** - * Format a log message with the given duration. - * - * @param tag Useful if logs are split across files - * and should get combined or aggregated in some way via - * this token. See also {@link LogTag#toString()}. - * @param msg The message to log - * @param durationInNanos - * @return A formatted string suitable for logging at the - * {@link com.redhat.thermostat.common.utils.LoggingUtils.PERFLOG} - * level. - */ - public String format(LogTag tag, String msg, long durationInNanos); - - /** - * Format a log message. - * - * @param tag Useful if logs are split across files - * and should get combined or aggregated in some way via - * this token. See also {@link LogTag#toString()}. - * @param msg The message to log - * @return A formatted string suitable for logging at the - * {@link com.redhat.thermostat.common.utils.LoggingUtils.PERFLOG} - * level. - */ - public String format(LogTag tag, String msg); -}
--- a/config/src/main/java/com/redhat/thermostat/shared/perflog/PerformanceLogFormatterBuilder.java Tue Jul 11 17:00:25 2017 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,76 +0,0 @@ -/* - * Copyright 2012-2017 Red Hat, Inc. - * - * This file is part of Thermostat. - * - * Thermostat is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published - * by the Free Software Foundation; either version 2, or (at your - * option) any later version. - * - * Thermostat is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Thermostat; see the file COPYING. If not see - * <http://www.gnu.org/licenses/>. - * - * Linking this code with other modules is making a combined work - * based on this code. Thus, the terms and conditions of the GNU - * General Public License cover the whole combination. - * - * As a special exception, the copyright holders of this code give - * you permission to link this code with independent modules to - * produce an executable, regardless of the license terms of these - * independent modules, and to copy and distribute the resulting - * executable under terms of your choice, provided that you also - * meet, for each linked independent module, the terms and conditions - * of the license of that module. An independent module is a module - * which is not derived from or based on this code. If you modify - * this code, you may extend this exception to your version of the - * library, but you are not obligated to do so. If you do not wish - * to do so, delete this exception statement from your version. - */ - -package com.redhat.thermostat.shared.perflog; - -import java.util.concurrent.TimeUnit; - -import com.redhat.thermostat.shared.perflog.internal.PerformanceLogFormatterImpl; - -public class PerformanceLogFormatterBuilder { - - private TimeUnit timeUnitToPrint; - - private PerformanceLogFormatterBuilder() { - // only instantiate via factory method - } - - public static PerformanceLogFormatterBuilder create() { - return new PerformanceLogFormatterBuilder(); - } - - /** - * @param timeUnit The time unit to use in logs. - * @return This instance. - */ - public PerformanceLogFormatterBuilder setLoggedTimeUnit(TimeUnit timeUnit) { - this.timeUnitToPrint = timeUnit; - return this; - } - - /** - * - * @return The configured logger. - * - * @throws IllegalStateException if no filename or timeunit was set. - */ - public PerformanceLogFormatter build() { - if (timeUnitToPrint == null) { - throw new IllegalStateException("Must set time unit"); - } - return new PerformanceLogFormatterImpl(timeUnitToPrint); - } -}
--- a/config/src/main/java/com/redhat/thermostat/shared/perflog/internal/PerformanceLogFormatterImpl.java Tue Jul 11 17:00:25 2017 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,115 +0,0 @@ -/* - * Copyright 2012-2017 Red Hat, Inc. - * - * This file is part of Thermostat. - * - * Thermostat is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published - * by the Free Software Foundation; either version 2, or (at your - * option) any later version. - * - * Thermostat is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Thermostat; see the file COPYING. If not see - * <http://www.gnu.org/licenses/>. - * - * Linking this code with other modules is making a combined work - * based on this code. Thus, the terms and conditions of the GNU - * General Public License cover the whole combination. - * - * As a special exception, the copyright holders of this code give - * you permission to link this code with independent modules to - * produce an executable, regardless of the license terms of these - * independent modules, and to copy and distribute the resulting - * executable under terms of your choice, provided that you also - * meet, for each linked independent module, the terms and conditions - * of the license of that module. An independent module is a module - * which is not derived from or based on this code. If you modify - * this code, you may extend this exception to your version of the - * library, but you are not obligated to do so. If you do not wish - * to do so, delete this exception statement from your version. - */ - -package com.redhat.thermostat.shared.perflog.internal; - -import java.util.concurrent.TimeUnit; - -import com.redhat.thermostat.shared.perflog.PerformanceLogFormatter; -import com.redhat.thermostat.shared.perflog.PerformanceLogFormatterBuilder; -import com.redhat.thermostat.shared.perflog.internal.TimeStampProvider; - -/** - * @see PerformanceLogFormatter - * @see PerformanceLogFormatterBuilder - */ -public class PerformanceLogFormatterImpl implements PerformanceLogFormatter { - - private static final char MICRO_SIGN = '\u00b5'; - private static final String DAYS_SHORT = "days"; - private static final String HOURS_SHORT = "hours"; - private static final String MINUTES_SHORT = "mins"; - private static final String SECONDS_SHORT = "s"; - private static final String MILLIS_SHORT = "ms"; - private static final String MICROS_SHORT = MICRO_SIGN + "s"; - private static final String NANOS_SHORT = "ns"; - // unique-token, msg, duration - private static final String FORMAT_WITH_DURATION = "1|%s|%s|%s"; - // unique-token, msg - private static final String FORMAT_NO_DURATION = "0|%s|%s"; - private final TimeUnit timeUnit; - private final String durationFormat; - private TimeStampProvider ts; - - public PerformanceLogFormatterImpl(TimeUnit timeUnit) { - this.timeUnit = timeUnit; - this.durationFormat = getDurationFormat(timeUnit); - ts = new TimeStampProvider(); - } - - private String getDurationFormat(TimeUnit unit) { - String format = "%s "; - switch (unit) { - case DAYS: - return format + DAYS_SHORT; - case HOURS: - return format + HOURS_SHORT; - case MINUTES: - return format + MINUTES_SHORT; - case SECONDS: - return format + SECONDS_SHORT; - case MILLISECONDS: - return format + MILLIS_SHORT; - case MICROSECONDS: - return format + MICROS_SHORT; - case NANOSECONDS: - return format + NANOS_SHORT; - default: - return format; - } - } - - @Override - public String format(LogTag tag, String msg, long durationInNanos) { - StringBuilder sb = new StringBuilder(ts.getTimeStamp()); - String duration = getFormattedDuration(durationInNanos); - sb.append(String.format(FORMAT_WITH_DURATION, tag.toString(), msg, duration)); - return sb.toString(); - } - - @Override - public String format(LogTag tag, String msg) { - StringBuilder sb = new StringBuilder(ts.getTimeStamp()); - sb.append(String.format(FORMAT_NO_DURATION, tag.toString(), msg)); - return sb.toString(); - } - - private String getFormattedDuration(long durationInNanos) { - long convertedTime = timeUnit.convert(durationInNanos, TimeUnit.NANOSECONDS); - return String.format(durationFormat, convertedTime); - } - -}
--- a/config/src/test/java/com/redhat/thermostat/shared/perflog/PerformanceLogFormatterTest.java Tue Jul 11 17:00:25 2017 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,60 +0,0 @@ -/* - * Copyright 2012-2017 Red Hat, Inc. - * - * This file is part of Thermostat. - * - * Thermostat is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published - * by the Free Software Foundation; either version 2, or (at your - * option) any later version. - * - * Thermostat is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Thermostat; see the file COPYING. If not see - * <http://www.gnu.org/licenses/>. - * - * Linking this code with other modules is making a combined work - * based on this code. Thus, the terms and conditions of the GNU - * General Public License cover the whole combination. - * - * As a special exception, the copyright holders of this code give - * you permission to link this code with independent modules to - * produce an executable, regardless of the license terms of these - * independent modules, and to copy and distribute the resulting - * executable under terms of your choice, provided that you also - * meet, for each linked independent module, the terms and conditions - * of the license of that module. An independent module is a module - * which is not derived from or based on this code. If you modify - * this code, you may extend this exception to your version of the - * library, but you are not obligated to do so. If you do not wish - * to do so, delete this exception statement from your version. - */ - -package com.redhat.thermostat.shared.perflog; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; - -import com.redhat.thermostat.shared.perflog.PerformanceLogFormatter.LogTag; - -/** - * Verifies that log tags the analyzer knows about keep working. - * That is, if a test regarding log tags fails code in dev/perflog-analyzer - * will need updating. - * - */ -public class PerformanceLogFormatterTest { - - @Test - public void logTagsAreCorrect() { - assertEquals("s-backing-proxied is used in the perflog-analyzer as log tag", - "s-backing-proxied", LogTag.STORAGE_BACKING_PROXIED.toString()); - assertEquals("s-front-end is used in the perflog-analyzer as log tag", - "s-front-end", LogTag.STORAGE_FRONT_END.toString()); - } -}
--- a/config/src/test/java/com/redhat/thermostat/shared/perflog/internal/PerfomanceLogFormatterImplTest.java Tue Jul 11 17:00:25 2017 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,67 +0,0 @@ -/* - * Copyright 2012-2017 Red Hat, Inc. - * - * This file is part of Thermostat. - * - * Thermostat is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published - * by the Free Software Foundation; either version 2, or (at your - * option) any later version. - * - * Thermostat is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Thermostat; see the file COPYING. If not see - * <http://www.gnu.org/licenses/>. - * - * Linking this code with other modules is making a combined work - * based on this code. Thus, the terms and conditions of the GNU - * General Public License cover the whole combination. - * - * As a special exception, the copyright holders of this code give - * you permission to link this code with independent modules to - * produce an executable, regardless of the license terms of these - * independent modules, and to copy and distribute the resulting - * executable under terms of your choice, provided that you also - * meet, for each linked independent module, the terms and conditions - * of the license of that module. An independent module is a module - * which is not derived from or based on this code. If you modify - * this code, you may extend this exception to your version of the - * library, but you are not obligated to do so. If you do not wish - * to do so, delete this exception statement from your version. - */ - -package com.redhat.thermostat.shared.perflog.internal; - -import static org.junit.Assert.assertTrue; - -import java.util.concurrent.TimeUnit; - -import org.junit.Before; -import org.junit.Test; - -import com.redhat.thermostat.shared.perflog.PerformanceLogFormatter.LogTag; - -public class PerfomanceLogFormatterImplTest { - - private PerformanceLogFormatterImpl formatter; - - @Before - public void setup() { - formatter = new PerformanceLogFormatterImpl(TimeUnit.MILLISECONDS); - } - - /* - * verify that toString() is called on log tag values. - */ - @Test - public void verifyLogTagLoggingCallsToStringOnValue() { - String msg = formatter.format(LogTag.STORAGE_BACKING_PROXIED, "ignored"); - assertTrue(msg.contains(LogTag.STORAGE_BACKING_PROXIED.toString())); - msg = formatter.format(LogTag.STORAGE_FRONT_END, "ignored", 20); - assertTrue(msg.contains(LogTag.STORAGE_FRONT_END.toString())); - } -}