Search in sources :

Example 16 with Logger

use of org.apache.logging.log4j.Logger in project elasticsearch by elastic.

the class MergeSchedulerSettingsTests method testUpdateMergeMaxThreadCount.

// #6882: make sure we can change index.merge.scheduler.max_thread_count live
public void testUpdateMergeMaxThreadCount() throws Exception {
    MockAppender mockAppender = new MockAppender("testUpdateAutoThrottleSettings");
    mockAppender.start();
    final Logger settingsLogger = Loggers.getLogger("org.elasticsearch.common.settings.IndexScopedSettings");
    Loggers.addAppender(settingsLogger, mockAppender);
    Loggers.setLevel(settingsLogger, Level.TRACE);
    try {
        Settings.Builder builder = Settings.builder().put(IndexMetaData.SETTING_VERSION_CREATED, Version.CURRENT).put(IndexMetaData.SETTING_NUMBER_OF_SHARDS, "1").put(IndexMetaData.SETTING_NUMBER_OF_REPLICAS, "0").put(MergePolicyConfig.INDEX_MERGE_POLICY_MAX_MERGE_AT_ONCE_SETTING.getKey(), "2").put(MergePolicyConfig.INDEX_MERGE_POLICY_SEGMENTS_PER_TIER_SETTING.getKey(), "2").put(MergeSchedulerConfig.MAX_THREAD_COUNT_SETTING.getKey(), "10000").put(MergeSchedulerConfig.MAX_MERGE_COUNT_SETTING.getKey(), "10000");
        IndexSettings settings = new IndexSettings(newIndexMeta("index", builder.build()), Settings.EMPTY);
        assertEquals(settings.getMergeSchedulerConfig().getMaxMergeCount(), 10000);
        assertEquals(settings.getMergeSchedulerConfig().getMaxThreadCount(), 10000);
        settings.updateIndexMetaData(newIndexMeta("index", builder.build()));
        assertFalse(mockAppender.sawUpdateMaxThreadCount);
        builder.put(MergeSchedulerConfig.MAX_THREAD_COUNT_SETTING.getKey(), "1");
        settings.updateIndexMetaData(newIndexMeta("index", builder.build()));
        // Make sure we log the change:
        assertTrue(mockAppender.sawUpdateMaxThreadCount);
    } finally {
        Loggers.removeAppender(settingsLogger, mockAppender);
        mockAppender.stop();
        Loggers.setLevel(settingsLogger, (Level) null);
    }
}
Also used : Logger(org.apache.logging.log4j.Logger) Settings(org.elasticsearch.common.settings.Settings)

Example 17 with Logger

use of org.apache.logging.log4j.Logger in project elasticsearch by elastic.

the class MergeSchedulerSettingsTests method testUpdateAutoThrottleSettings.

public void testUpdateAutoThrottleSettings() throws Exception {
    MockAppender mockAppender = new MockAppender("testUpdateAutoThrottleSettings");
    mockAppender.start();
    final Logger settingsLogger = Loggers.getLogger("org.elasticsearch.common.settings.IndexScopedSettings");
    Loggers.addAppender(settingsLogger, mockAppender);
    Loggers.setLevel(settingsLogger, Level.TRACE);
    try {
        Settings.Builder builder = Settings.builder().put(IndexMetaData.SETTING_VERSION_CREATED, Version.CURRENT).put(IndexMetaData.SETTING_NUMBER_OF_SHARDS, "1").put(IndexMetaData.SETTING_NUMBER_OF_REPLICAS, "0").put(MergePolicyConfig.INDEX_MERGE_POLICY_MAX_MERGE_AT_ONCE_SETTING.getKey(), "2").put(MergePolicyConfig.INDEX_MERGE_POLICY_SEGMENTS_PER_TIER_SETTING.getKey(), "2").put(MergeSchedulerConfig.MAX_THREAD_COUNT_SETTING.getKey(), "1").put(MergeSchedulerConfig.MAX_MERGE_COUNT_SETTING.getKey(), "2").put(MergeSchedulerConfig.AUTO_THROTTLE_SETTING.getKey(), "true");
        IndexSettings settings = new IndexSettings(newIndexMeta("index", builder.build()), Settings.EMPTY);
        assertEquals(settings.getMergeSchedulerConfig().isAutoThrottle(), true);
        builder.put(MergeSchedulerConfig.AUTO_THROTTLE_SETTING.getKey(), "false");
        settings.updateIndexMetaData(newIndexMeta("index", builder.build()));
        // Make sure we log the change:
        assertTrue(mockAppender.sawUpdateAutoThrottle);
        assertEquals(settings.getMergeSchedulerConfig().isAutoThrottle(), false);
    } finally {
        Loggers.removeAppender(settingsLogger, mockAppender);
        mockAppender.stop();
        Loggers.setLevel(settingsLogger, (Level) null);
    }
}
Also used : Logger(org.apache.logging.log4j.Logger) Settings(org.elasticsearch.common.settings.Settings)

Example 18 with Logger

use of org.apache.logging.log4j.Logger in project elasticsearch by elastic.

the class JvmGcMonitorServiceTests method testSlowGcLogging.

public void testSlowGcLogging() {
    final Logger logger = mock(Logger.class);
    when(logger.isWarnEnabled()).thenReturn(true);
    when(logger.isInfoEnabled()).thenReturn(true);
    when(logger.isDebugEnabled()).thenReturn(true);
    final JvmGcMonitorService.JvmMonitor.Threshold threshold = randomFrom(JvmGcMonitorService.JvmMonitor.Threshold.values());
    final String name = randomAsciiOfLength(16);
    final long seq = randomIntBetween(1, 1 << 30);
    final int elapsedValue = randomIntBetween(1, 1 << 10);
    final long totalCollectionCount = randomIntBetween(1, 16);
    final long currentCollectionCount = randomIntBetween(1, 16);
    final TimeValue totalCollectionTime = TimeValue.timeValueMillis(randomIntBetween(1, elapsedValue));
    final TimeValue currentCollectionTime = TimeValue.timeValueMillis(randomIntBetween(1, elapsedValue));
    final ByteSizeValue lastHeapUsed = new ByteSizeValue(randomIntBetween(1, 1 << 10));
    JvmStats lastJvmStats = mock(JvmStats.class);
    JvmStats.Mem lastMem = mock(JvmStats.Mem.class);
    when(lastMem.getHeapUsed()).thenReturn(lastHeapUsed);
    when(lastJvmStats.getMem()).thenReturn(lastMem);
    when(lastJvmStats.toString()).thenReturn("last");
    final ByteSizeValue currentHeapUsed = new ByteSizeValue(randomIntBetween(1, 1 << 10));
    JvmStats currentJvmStats = mock(JvmStats.class);
    JvmStats.Mem currentMem = mock(JvmStats.Mem.class);
    when(currentMem.getHeapUsed()).thenReturn(currentHeapUsed);
    when(currentJvmStats.getMem()).thenReturn(currentMem);
    when(currentJvmStats.toString()).thenReturn("current");
    JvmStats.GarbageCollector gc = mock(JvmStats.GarbageCollector.class);
    when(gc.getName()).thenReturn(name);
    when(gc.getCollectionCount()).thenReturn(totalCollectionCount);
    when(gc.getCollectionTime()).thenReturn(totalCollectionTime);
    final ByteSizeValue maxHeapUsed = new ByteSizeValue(Math.max(lastHeapUsed.getBytes(), currentHeapUsed.getBytes()) + 1 << 10);
    JvmGcMonitorService.JvmMonitor.SlowGcEvent slowGcEvent = new JvmGcMonitorService.JvmMonitor.SlowGcEvent(gc, currentCollectionCount, currentCollectionTime, elapsedValue, lastJvmStats, currentJvmStats, maxHeapUsed);
    JvmGcMonitorService.logSlowGc(logger, threshold, seq, slowGcEvent, (l, c) -> l.toString() + ", " + c.toString());
    switch(threshold) {
        case WARN:
            verify(logger).isWarnEnabled();
            verify(logger).warn("[gc][{}][{}][{}] duration [{}], collections [{}]/[{}], total [{}]/[{}], memory [{}]->[{}]/[{}], all_pools {}", name, seq, totalCollectionCount, currentCollectionTime, currentCollectionCount, TimeValue.timeValueMillis(elapsedValue), currentCollectionTime, totalCollectionTime, lastHeapUsed, currentHeapUsed, maxHeapUsed, "last, current");
            break;
        case INFO:
            verify(logger).isInfoEnabled();
            verify(logger).info("[gc][{}][{}][{}] duration [{}], collections [{}]/[{}], total [{}]/[{}], memory [{}]->[{}]/[{}], all_pools {}", name, seq, totalCollectionCount, currentCollectionTime, currentCollectionCount, TimeValue.timeValueMillis(elapsedValue), currentCollectionTime, totalCollectionTime, lastHeapUsed, currentHeapUsed, maxHeapUsed, "last, current");
            break;
        case DEBUG:
            verify(logger).isDebugEnabled();
            verify(logger).debug("[gc][{}][{}][{}] duration [{}], collections [{}]/[{}], total [{}]/[{}], memory [{}]->[{}]/[{}], all_pools {}", name, seq, totalCollectionCount, currentCollectionTime, currentCollectionCount, TimeValue.timeValueMillis(elapsedValue), currentCollectionTime, totalCollectionTime, lastHeapUsed, currentHeapUsed, maxHeapUsed, "last, current");
            break;
    }
    verifyNoMoreInteractions(logger);
}
Also used : ByteSizeValue(org.elasticsearch.common.unit.ByteSizeValue) Logger(org.apache.logging.log4j.Logger) TimeValue(org.elasticsearch.common.unit.TimeValue)

Example 19 with Logger

use of org.apache.logging.log4j.Logger in project elasticsearch by elastic.

the class OldIndexUtils method isUpgraded.

public static boolean isUpgraded(Client client, String index) throws Exception {
    Logger logger = Loggers.getLogger(OldIndexUtils.class);
    int toUpgrade = 0;
    for (IndexUpgradeStatus status : getUpgradeStatus(client, index)) {
        logger.info("Index: {}, total: {}, toUpgrade: {}", status.getIndex(), status.getTotalBytes(), status.getToUpgradeBytes());
        toUpgrade += status.getToUpgradeBytes();
    }
    return toUpgrade == 0;
}
Also used : IndexUpgradeStatus(org.elasticsearch.action.admin.indices.upgrade.get.IndexUpgradeStatus) Logger(org.apache.logging.log4j.Logger)

Example 20 with Logger

use of org.apache.logging.log4j.Logger in project elasticsearch by elastic.

the class NodeTests method testWarnIfPreRelease.

public void testWarnIfPreRelease() {
    final Logger logger = mock(Logger.class);
    final int id = randomIntBetween(1, 9) * 1000000;
    final Version releaseVersion = Version.fromId(id + 99);
    final Version preReleaseVersion = Version.fromId(id + randomIntBetween(0, 98));
    Node.warnIfPreRelease(releaseVersion, false, logger);
    verifyNoMoreInteractions(logger);
    reset(logger);
    Node.warnIfPreRelease(releaseVersion, true, logger);
    verify(logger).warn("version [{}] is a pre-release version of Elasticsearch and is not suitable for production", releaseVersion + "-SNAPSHOT");
    reset(logger);
    final boolean isSnapshot = randomBoolean();
    Node.warnIfPreRelease(preReleaseVersion, isSnapshot, logger);
    verify(logger).warn("version [{}] is a pre-release version of Elasticsearch and is not suitable for production", preReleaseVersion + (isSnapshot ? "-SNAPSHOT" : ""));
}
Also used : Version(org.elasticsearch.Version) Logger(org.apache.logging.log4j.Logger)

Aggregations

Logger (org.apache.logging.log4j.Logger)470 Test (org.junit.Test)223 File (java.io.File)80 Test (org.junit.jupiter.api.Test)69 IOException (java.io.IOException)34 StatusLogger (org.apache.logging.log4j.status.StatusLogger)30 BufferedReader (java.io.BufferedReader)29 LoggerContext (org.apache.logging.log4j.core.LoggerContext)29 Collectors (java.util.stream.Collectors)28 Appender (org.apache.logging.log4j.core.Appender)27 FileReader (java.io.FileReader)26 Path (java.nio.file.Path)26 Level (org.apache.logging.log4j.Level)23 CountDownLatch (java.util.concurrent.CountDownLatch)22 IntStream (java.util.stream.IntStream)20 Map (java.util.Map)19 java.util (java.util)18 LoggerConfig (org.apache.logging.log4j.core.config.LoggerConfig)18 LogManager (org.apache.logging.log4j.LogManager)17 Configuration (org.apache.logging.log4j.core.config.Configuration)17