From 7883f4851f081cc438bcaeb869f3d3fec63a7095 Mon Sep 17 00:00:00 2001 From: "tomasz.kowalczewski" Date: Thu, 21 Oct 2021 18:50:13 +0200 Subject: [PATCH 01/14] Re #77: Renamed LogBufferAgent and its thread (ReadingLogBufferAndSendingHttp) to LogShipper. Added option to configure time it sleeps between reading from log buffer to not hog CPU. Also now default is 25ms instead of hardcoded 1ms previously. --- .../{LogBufferAgent.java => LogShipperAgent.java} | 6 +++--- .../java/pl/tkowalcz/tjahzi/TjahziInitializer.java | 8 +++++--- .../test/java/pl/tkowalcz/tjahzi/HeadersTest.java | 3 +++ .../java/pl/tkowalcz/tjahzi/LogBufferAgentTest.java | 12 ++++++------ .../tjahzi/LoggingSystemSanityCheckTest.java | 1 + .../java/pl/tkowalcz/tjahzi/LoggingSystemTest.java | 1 + .../test/java/pl/tkowalcz/tjahzi/ReconnectTest.java | 2 ++ .../tkowalcz/tjahzi/ResourcesCleanupOnCloseTest.java | 5 +++-- 8 files changed, 24 insertions(+), 14 deletions(-) rename core/src/main/java/pl/tkowalcz/tjahzi/{LogBufferAgent.java => LogShipperAgent.java} (93%) diff --git a/core/src/main/java/pl/tkowalcz/tjahzi/LogBufferAgent.java b/core/src/main/java/pl/tkowalcz/tjahzi/LogShipperAgent.java similarity index 93% rename from core/src/main/java/pl/tkowalcz/tjahzi/LogBufferAgent.java rename to core/src/main/java/pl/tkowalcz/tjahzi/LogShipperAgent.java index c5447af..98b3401 100644 --- a/core/src/main/java/pl/tkowalcz/tjahzi/LogBufferAgent.java +++ b/core/src/main/java/pl/tkowalcz/tjahzi/LogShipperAgent.java @@ -6,7 +6,7 @@ import pl.tkowalcz.tjahzi.http.NettyHttpClient; import java.io.IOException; -public class LogBufferAgent implements Agent { +public class LogShipperAgent implements Agent { public static final int MAX_MESSAGES_TO_RETRIEVE = 100; @@ -18,7 +18,7 @@ public class LogBufferAgent implements Agent { private final LogBufferMessageHandler messageHandler; private final TimeCappedBatchingStrategy batchStrategy; - public LogBufferAgent( + public LogShipperAgent( TimeCappedBatchingStrategy batchStrategy, ManyToOneRingBuffer logBuffer, OutputBuffer outputBuffer, @@ -69,6 +69,6 @@ public class LogBufferAgent implements Agent { @Override public String roleName() { - return "ReadingLogBufferAndSendingHttp"; + return "LogShipper"; } } diff --git a/core/src/main/java/pl/tkowalcz/tjahzi/TjahziInitializer.java b/core/src/main/java/pl/tkowalcz/tjahzi/TjahziInitializer.java index 8931f3b..11a2999 100644 --- a/core/src/main/java/pl/tkowalcz/tjahzi/TjahziInitializer.java +++ b/core/src/main/java/pl/tkowalcz/tjahzi/TjahziInitializer.java @@ -23,8 +23,10 @@ public class TjahziInitializer { long batchSizeBytes, long batchWaitMillis, int bufferSizeBytes, + long logShipperIntervalMillis, long shutdownTimeoutMillis, - boolean offHeap) { + boolean offHeap + ) { bufferSizeBytes = findNearestPowerOfTwo(bufferSizeBytes); ByteBuffer javaBuffer = allocateJavaBuffer(bufferSizeBytes, offHeap); @@ -33,7 +35,7 @@ public class TjahziInitializer { ); OutputBuffer outputBuffer = new OutputBuffer(PooledByteBufAllocator.DEFAULT.buffer()); - LogBufferAgent agent = new LogBufferAgent( + LogShipperAgent agent = new LogShipperAgent( new TimeCappedBatchingStrategy( monitoringModule.getClock(), outputBuffer, @@ -52,7 +54,7 @@ public class TjahziInitializer { ); AgentRunner runner = new AgentRunner( - new SleepingMillisIdleStrategy(), + new SleepingMillisIdleStrategy(logShipperIntervalMillis), monitoringModule::addAgentError, null, agent diff --git a/core/src/test/java/pl/tkowalcz/tjahzi/HeadersTest.java b/core/src/test/java/pl/tkowalcz/tjahzi/HeadersTest.java index 920feaf..696bf21 100644 --- a/core/src/test/java/pl/tkowalcz/tjahzi/HeadersTest.java +++ b/core/src/test/java/pl/tkowalcz/tjahzi/HeadersTest.java @@ -89,6 +89,7 @@ class HeadersTest { 0, 0, 1024 * 1024, + 250, 10_000, false ); @@ -141,6 +142,7 @@ class HeadersTest { 0, 0, 1024 * 1024, + 250, 10_000, false ); @@ -195,6 +197,7 @@ class HeadersTest { 0, 0, 1024 * 1024, + 250, 10_000, false ); diff --git a/core/src/test/java/pl/tkowalcz/tjahzi/LogBufferAgentTest.java b/core/src/test/java/pl/tkowalcz/tjahzi/LogBufferAgentTest.java index c238161..8744b75 100644 --- a/core/src/test/java/pl/tkowalcz/tjahzi/LogBufferAgentTest.java +++ b/core/src/test/java/pl/tkowalcz/tjahzi/LogBufferAgentTest.java @@ -47,7 +47,7 @@ class LogBufferAgentTest { NettyHttpClient httpClient = mock(NettyHttpClient.class); OutputBuffer outputBuffer = new OutputBuffer(PooledByteBufAllocator.DEFAULT.buffer()); - LogBufferAgent agent = new LogBufferAgent( + LogShipperAgent agent = new LogShipperAgent( new TimeCappedBatchingStrategy( clock, outputBuffer, @@ -98,7 +98,7 @@ class LogBufferAgentTest { NettyHttpClient httpClient = mock(NettyHttpClient.class); OutputBuffer outputBuffer = new OutputBuffer(PooledByteBufAllocator.DEFAULT.buffer()); - LogBufferAgent agent = new LogBufferAgent( + LogShipperAgent agent = new LogShipperAgent( new TimeCappedBatchingStrategy( clock, outputBuffer, @@ -137,7 +137,7 @@ class LogBufferAgentTest { NettyHttpClient httpClient = mock(NettyHttpClient.class); OutputBuffer outputBuffer = new OutputBuffer(PooledByteBufAllocator.DEFAULT.buffer()); - LogBufferAgent agent = new LogBufferAgent( + LogShipperAgent agent = new LogShipperAgent( new TimeCappedBatchingStrategy( clock, outputBuffer, @@ -186,7 +186,7 @@ class LogBufferAgentTest { SettableClock clock = new SettableClock(); OutputBuffer outputBuffer = new OutputBuffer(PooledByteBufAllocator.DEFAULT.buffer()); - LogBufferAgent agent = new LogBufferAgent( + LogShipperAgent agent = new LogShipperAgent( new TimeCappedBatchingStrategy( clock, outputBuffer, @@ -242,7 +242,7 @@ class LogBufferAgentTest { SettableClock clock = new SettableClock(); OutputBuffer outputBuffer = new OutputBuffer(PooledByteBufAllocator.DEFAULT.buffer()); - LogBufferAgent agent = new LogBufferAgent( + LogShipperAgent agent = new LogShipperAgent( new TimeCappedBatchingStrategy( clock, outputBuffer, @@ -260,7 +260,7 @@ class LogBufferAgentTest { ) ); - for (int i = 0; i < LogBufferAgent.MAX_MESSAGES_TO_RETRIEVE * 2 + 1; i++) { + for (int i = 0; i < LogShipperAgent.MAX_MESSAGES_TO_RETRIEVE * 2 + 1; i++) { logger.log( 42L, LabelSerializerCreator.from(Map.of()), diff --git a/core/src/test/java/pl/tkowalcz/tjahzi/LoggingSystemSanityCheckTest.java b/core/src/test/java/pl/tkowalcz/tjahzi/LoggingSystemSanityCheckTest.java index 778b48f..9ba2ae0 100644 --- a/core/src/test/java/pl/tkowalcz/tjahzi/LoggingSystemSanityCheckTest.java +++ b/core/src/test/java/pl/tkowalcz/tjahzi/LoggingSystemSanityCheckTest.java @@ -67,6 +67,7 @@ class LoggingSystemSanityCheckTest { 0, 0, 1024 * 1024, + 250, 10_000, false ); diff --git a/core/src/test/java/pl/tkowalcz/tjahzi/LoggingSystemTest.java b/core/src/test/java/pl/tkowalcz/tjahzi/LoggingSystemTest.java index 3863ae4..cc681ec 100644 --- a/core/src/test/java/pl/tkowalcz/tjahzi/LoggingSystemTest.java +++ b/core/src/test/java/pl/tkowalcz/tjahzi/LoggingSystemTest.java @@ -71,6 +71,7 @@ class LoggingSystemTest { 1024 * 1024, 0, 0, + 250, 10_000, false ); diff --git a/core/src/test/java/pl/tkowalcz/tjahzi/ReconnectTest.java b/core/src/test/java/pl/tkowalcz/tjahzi/ReconnectTest.java index 767888a..19e42f8 100644 --- a/core/src/test/java/pl/tkowalcz/tjahzi/ReconnectTest.java +++ b/core/src/test/java/pl/tkowalcz/tjahzi/ReconnectTest.java @@ -84,6 +84,7 @@ public class ReconnectTest { 10_000, 1000, 1024 * 1024, + 250, 10_000, false ); @@ -134,6 +135,7 @@ public class ReconnectTest { 0, 0, 1024 * 1024, + 250, 10_000, false ); diff --git a/core/src/test/java/pl/tkowalcz/tjahzi/ResourcesCleanupOnCloseTest.java b/core/src/test/java/pl/tkowalcz/tjahzi/ResourcesCleanupOnCloseTest.java index 89c3d6f..8ed4a1c 100644 --- a/core/src/test/java/pl/tkowalcz/tjahzi/ResourcesCleanupOnCloseTest.java +++ b/core/src/test/java/pl/tkowalcz/tjahzi/ResourcesCleanupOnCloseTest.java @@ -70,6 +70,7 @@ class ResourcesCleanupOnCloseTest { 0, 0, 1024 * 1024, + 250, 10_000, false ); @@ -83,7 +84,7 @@ class ResourcesCleanupOnCloseTest { assertThat(threadInfos) .extracting(ThreadInfo::getThreadName) .contains( - "ReadingLogBufferAndSendingHttp", + "LogShipper", "tjahzi-worker" ); }); @@ -102,7 +103,7 @@ class ResourcesCleanupOnCloseTest { assertThat(threadInfos) .extracting(ThreadInfo::getThreadName) .doesNotContain( - "ReadingLogBufferAndSendingHttp", + "LogShipper", "tjahzi-worker" ); }); From 7ae613aae11a33c9f65932cb24b800787034f2dc Mon Sep 17 00:00:00 2001 From: "tomasz.kowalczewski" Date: Thu, 21 Oct 2021 18:50:24 +0200 Subject: [PATCH 02/14] Re #77: Renamed LogBufferAgent and its thread (ReadingLogBufferAndSendingHttp) to LogShipper. Added option to configure time it sleeps between reading from log buffer to not hog CPU. Also now default is 25ms instead of hardcoded 1ms previously. --- .../tkowalcz/tjahzi/log4j2/LokiAppenderBuilder.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/log4j2-appender/src/main/java/pl/tkowalcz/tjahzi/log4j2/LokiAppenderBuilder.java b/log4j2-appender/src/main/java/pl/tkowalcz/tjahzi/log4j2/LokiAppenderBuilder.java index f161823..8ed1b18 100644 --- a/log4j2-appender/src/main/java/pl/tkowalcz/tjahzi/log4j2/LokiAppenderBuilder.java +++ b/log4j2-appender/src/main/java/pl/tkowalcz/tjahzi/log4j2/LokiAppenderBuilder.java @@ -74,6 +74,9 @@ public class LokiAppenderBuilder> extends Abstr @PluginBuilderAttribute private long batchWait = 5; + @PluginBuilderAttribute + private long logShipperIntervalMillis = 250; + @PluginBuilderAttribute private int shutdownTimeoutSeconds = 10; @@ -142,6 +145,7 @@ public class LokiAppenderBuilder> extends Abstr TimeUnit.SECONDS.toMillis(batchWait), bufferSizeBytes, TimeUnit.SECONDS.toMillis(shutdownTimeoutSeconds), + logShipperIntervalMillis, isUseOffHeapBuffer() ); @@ -247,6 +251,14 @@ public class LokiAppenderBuilder> extends Abstr this.batchWait = batchWait; } + public long getLogShipperIntervalMillis() { + return logShipperIntervalMillis; + } + + public void setLogShipperIntervalMillis(long logShipperIntervalMillis) { + this.logShipperIntervalMillis = logShipperIntervalMillis; + } + public int getShutdownTimeoutSeconds() { return shutdownTimeoutSeconds; } From bca115eef95b403d0eff18778e8193a808a1e1a2 Mon Sep 17 00:00:00 2001 From: "tomasz.kowalczewski" Date: Thu, 21 Oct 2021 19:01:12 +0200 Subject: [PATCH 03/14] Re #77: Improved property naming (logShipperIntervalMillis -> logShipperWakeupIntervalMillis) and implemented missing Logback part. --- .../java/pl/tkowalcz/tjahzi/TjahziInitializer.java | 4 ++-- .../tkowalcz/tjahzi/log4j2/LokiAppenderBuilder.java | 12 ++++++------ .../tjahzi/logback/LokiAppenderConfigurator.java | 9 +++++++++ .../tkowalcz/tjahzi/logback/LokiAppenderFactory.java | 1 + 4 files changed, 18 insertions(+), 8 deletions(-) diff --git a/core/src/main/java/pl/tkowalcz/tjahzi/TjahziInitializer.java b/core/src/main/java/pl/tkowalcz/tjahzi/TjahziInitializer.java index 11a2999..d71e1d2 100644 --- a/core/src/main/java/pl/tkowalcz/tjahzi/TjahziInitializer.java +++ b/core/src/main/java/pl/tkowalcz/tjahzi/TjahziInitializer.java @@ -23,7 +23,7 @@ public class TjahziInitializer { long batchSizeBytes, long batchWaitMillis, int bufferSizeBytes, - long logShipperIntervalMillis, + long logShipperWakeupIntervalMillis, long shutdownTimeoutMillis, boolean offHeap ) { @@ -54,7 +54,7 @@ public class TjahziInitializer { ); AgentRunner runner = new AgentRunner( - new SleepingMillisIdleStrategy(logShipperIntervalMillis), + new SleepingMillisIdleStrategy(logShipperWakeupIntervalMillis), monitoringModule::addAgentError, null, agent diff --git a/log4j2-appender/src/main/java/pl/tkowalcz/tjahzi/log4j2/LokiAppenderBuilder.java b/log4j2-appender/src/main/java/pl/tkowalcz/tjahzi/log4j2/LokiAppenderBuilder.java index 8ed1b18..9604e2e 100644 --- a/log4j2-appender/src/main/java/pl/tkowalcz/tjahzi/log4j2/LokiAppenderBuilder.java +++ b/log4j2-appender/src/main/java/pl/tkowalcz/tjahzi/log4j2/LokiAppenderBuilder.java @@ -75,7 +75,7 @@ public class LokiAppenderBuilder> extends Abstr private long batchWait = 5; @PluginBuilderAttribute - private long logShipperIntervalMillis = 250; + private long logShipperWakeupIntervalMillis = 250; @PluginBuilderAttribute private int shutdownTimeoutSeconds = 10; @@ -145,7 +145,7 @@ public class LokiAppenderBuilder> extends Abstr TimeUnit.SECONDS.toMillis(batchWait), bufferSizeBytes, TimeUnit.SECONDS.toMillis(shutdownTimeoutSeconds), - logShipperIntervalMillis, + logShipperWakeupIntervalMillis, isUseOffHeapBuffer() ); @@ -251,12 +251,12 @@ public class LokiAppenderBuilder> extends Abstr this.batchWait = batchWait; } - public long getLogShipperIntervalMillis() { - return logShipperIntervalMillis; + public long getLogShipperWakeupIntervalMillis() { + return logShipperWakeupIntervalMillis; } - public void setLogShipperIntervalMillis(long logShipperIntervalMillis) { - this.logShipperIntervalMillis = logShipperIntervalMillis; + public void setLogShipperWakeupIntervalMillis(long logShipperWakeupIntervalMillis) { + this.logShipperWakeupIntervalMillis = logShipperWakeupIntervalMillis; } public int getShutdownTimeoutSeconds() { diff --git a/logback-appender/src/main/java/pl/tkowalcz/tjahzi/logback/LokiAppenderConfigurator.java b/logback-appender/src/main/java/pl/tkowalcz/tjahzi/logback/LokiAppenderConfigurator.java index fd276d3..479050c 100644 --- a/logback-appender/src/main/java/pl/tkowalcz/tjahzi/logback/LokiAppenderConfigurator.java +++ b/logback-appender/src/main/java/pl/tkowalcz/tjahzi/logback/LokiAppenderConfigurator.java @@ -26,6 +26,7 @@ public abstract class LokiAppenderConfigurator extends UnsynchronizedAppenderBas private long batchSize = 10_2400; private long batchWait = 5; private long shutdownTimeoutSeconds = 10; + private long logShipperWakeupIntervalMillis = 250; private int maxRequestsInFlight = 100; @@ -120,6 +121,14 @@ public abstract class LokiAppenderConfigurator extends UnsynchronizedAppenderBas this.shutdownTimeoutSeconds = shutdownTimeoutSeconds; } + public long getLogShipperWakeupIntervalMillis() { + return logShipperWakeupIntervalMillis; + } + + public void setLogShipperWakeupIntervalMillis(long logShipperWakeupIntervalMillis) { + this.logShipperWakeupIntervalMillis = logShipperWakeupIntervalMillis; + } + public int getMaxRequestsInFlight() { return maxRequestsInFlight; } diff --git a/logback-appender/src/main/java/pl/tkowalcz/tjahzi/logback/LokiAppenderFactory.java b/logback-appender/src/main/java/pl/tkowalcz/tjahzi/logback/LokiAppenderFactory.java index 7fdfd93..ac7d46d 100644 --- a/logback-appender/src/main/java/pl/tkowalcz/tjahzi/logback/LokiAppenderFactory.java +++ b/logback-appender/src/main/java/pl/tkowalcz/tjahzi/logback/LokiAppenderFactory.java @@ -81,6 +81,7 @@ public class LokiAppenderFactory { TimeUnit.SECONDS.toMillis(configurator.getBatchWait()), bufferSizeBytes, TimeUnit.SECONDS.toMillis(configurator.getShutdownTimeoutSeconds()), + configurator.getLogShipperWakeupIntervalMillis(), configurator.isUseOffHeapBuffer() ); } From 6cd29a189ed90330625f80cc3bb6805eafe1918d Mon Sep 17 00:00:00 2001 From: "tomasz.kowalczewski" Date: Sat, 23 Oct 2021 09:22:46 +0200 Subject: [PATCH 04/14] Re #77: Changed default logShipperWakeupIntervalMillis to 10ms. Added documentation. --- README.md | 6 +++--- log4j2-appender/README.md | 7 +++++++ .../pl/tkowalcz/tjahzi/log4j2/LokiAppenderBuilder.java | 2 +- logback-appender/README.md | 1 + .../tkowalcz/tjahzi/logback/LokiAppenderConfigurator.java | 2 +- 5 files changed, 13 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 46fae54..e44ad28 100644 --- a/README.md +++ b/README.md @@ -63,9 +63,9 @@ You can compare this with [design principles of Aeron](https://github.com/real-l │ . ▼ ┌────────────────────┐ ┌─────────┐ ┌─────────┐ - . Log │ │ │ Reading │ │ I/O │ - ---------------▶│ Log buffer ├--→---→--┤ agent ├--→---→--┤ thread │ - . │ │ │ thread │ │ (Netty) │ + . Log │ │ │ Log │ │ I/O │ + ---------------▶│ Log buffer ├--→---→--┤ shipper ├--→---→--┤ thread │ + . │ │ │ agent │ │ (Netty) │ └────────────────────┘ └─────────┘ └─────────┘ . ▲ │ diff --git a/log4j2-appender/README.md b/log4j2-appender/README.md index d94bbef..ffdefb1 100644 --- a/log4j2-appender/README.md +++ b/log4j2-appender/README.md @@ -275,6 +275,13 @@ Like in [promtail configuration](https://grafana.com/docs/loki/latest/clients/promtail/configuration/) `maximum amount of time to wait before sending a batch, even if that batch isn't full` . +#### logShipperWakeupIntervalMillis (optional, default = 10) + +The agent that reads data from log buffer, compresses it and sends to Loki via http is called `LogShipper`. This property +controls how often it wakes up to perform its duties. Other properties control how often the data should be sent to Loki +(`batchSize`, `batchWait`) this one just control how often to wake up and check for these conditions. In versions before +`0.9.17` it was left at default 1ms which caused high CPU usage on some setups. + #### shutdownTimeoutSeconds (optional, default = 10s) On logging system shutdown (or config reload) Tjahzi will flush its internal buffers so that no logs are lost. This diff --git a/log4j2-appender/src/main/java/pl/tkowalcz/tjahzi/log4j2/LokiAppenderBuilder.java b/log4j2-appender/src/main/java/pl/tkowalcz/tjahzi/log4j2/LokiAppenderBuilder.java index 9604e2e..033e425 100644 --- a/log4j2-appender/src/main/java/pl/tkowalcz/tjahzi/log4j2/LokiAppenderBuilder.java +++ b/log4j2-appender/src/main/java/pl/tkowalcz/tjahzi/log4j2/LokiAppenderBuilder.java @@ -75,7 +75,7 @@ public class LokiAppenderBuilder> extends Abstr private long batchWait = 5; @PluginBuilderAttribute - private long logShipperWakeupIntervalMillis = 250; + private long logShipperWakeupIntervalMillis = 10; @PluginBuilderAttribute private int shutdownTimeoutSeconds = 10; diff --git a/logback-appender/README.md b/logback-appender/README.md index d576833..e3e4f9b 100644 --- a/logback-appender/README.md +++ b/logback-appender/README.md @@ -202,4 +202,5 @@ or use Tjahzi optimized efficient, low allocation encoder: | UseOffHeapBuffer | true | Whether Tjahzi should allocate native buffer for `Log buffer` component. We can go into a rabbit hole of divagations what are the implications of this. Most important in our view is that having 10s or 100s of MB of space taken out of heap is not very friendly to garbage collector which might have to occasionally copy it around. | | BatchSize | 100 KB | Like in [promtail configuration](https://grafana.com/docs/loki/latest/clients/promtail/configuration/) `maximum batch size (in bytes) of logs to accumulate before sending the batch to Loki`.| | BatchWait | 5s | Like in [promtail configuration](https://grafana.com/docs/loki/latest/clients/promtail/configuration/) `maximum amount of time to wait before sending a batch, even if that batch isn't full`.| +| logShipperWakeupIntervalMillis | 10 | The agent that reads data from log buffer, compresses it and sends to Loki via http is called `LogShipper`. This property controls how often it wakes up to perform its duties. Other properties control how often the data should be sent to Loki (`batchSize`, `batchWait`) this one just control how often to wake up and check for these conditions. In versions before `0.9.17` it was left at default 1ms which caused high CPU usage on some setups. | | shutdownTimeoutSeconds | 10s | On logging system shutdown (or config reload) Tjahzi will flush its internal buffers so that no logs are lost. This property sets limit on how long to wait for this to complete before proceeding with shutdown. | diff --git a/logback-appender/src/main/java/pl/tkowalcz/tjahzi/logback/LokiAppenderConfigurator.java b/logback-appender/src/main/java/pl/tkowalcz/tjahzi/logback/LokiAppenderConfigurator.java index 479050c..0f29c55 100644 --- a/logback-appender/src/main/java/pl/tkowalcz/tjahzi/logback/LokiAppenderConfigurator.java +++ b/logback-appender/src/main/java/pl/tkowalcz/tjahzi/logback/LokiAppenderConfigurator.java @@ -26,7 +26,7 @@ public abstract class LokiAppenderConfigurator extends UnsynchronizedAppenderBas private long batchSize = 10_2400; private long batchWait = 5; private long shutdownTimeoutSeconds = 10; - private long logShipperWakeupIntervalMillis = 250; + private long logShipperWakeupIntervalMillis = 10; private int maxRequestsInFlight = 100; From d732c1fdf0b8567b3d905115efd97eaff5c7596f Mon Sep 17 00:00:00 2001 From: "tomasz.kowalczewski" Date: Sat, 23 Oct 2021 15:34:18 +0200 Subject: [PATCH 05/14] Re #77: Explicitly using Loki 2.3.0 docker image. --- .../java/pl/tkowalcz/tjahzi/LoggingSystemSanityCheckTest.java | 2 +- core/src/test/java/pl/tkowalcz/tjahzi/LoggingSystemTest.java | 2 +- .../java/pl/tkowalcz/tjahzi/log4j2/infra/IntegrationTest.java | 2 +- .../java/pl/tkowalcz/tjahzi/logback/infra/IntegrationTest.java | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/core/src/test/java/pl/tkowalcz/tjahzi/LoggingSystemSanityCheckTest.java b/core/src/test/java/pl/tkowalcz/tjahzi/LoggingSystemSanityCheckTest.java index 9ba2ae0..56de92d 100644 --- a/core/src/test/java/pl/tkowalcz/tjahzi/LoggingSystemSanityCheckTest.java +++ b/core/src/test/java/pl/tkowalcz/tjahzi/LoggingSystemSanityCheckTest.java @@ -30,7 +30,7 @@ import static org.hamcrest.CoreMatchers.hasItems; class LoggingSystemSanityCheckTest { @Container - public GenericContainer loki = new GenericContainer("grafana/loki:latest") + public GenericContainer loki = new GenericContainer("grafana/loki:2.3.0") .withCommand("-config.file=/etc/loki-config.yaml") .withClasspathResourceMapping("loki-config.yaml", "/etc/loki-config.yaml", diff --git a/core/src/test/java/pl/tkowalcz/tjahzi/LoggingSystemTest.java b/core/src/test/java/pl/tkowalcz/tjahzi/LoggingSystemTest.java index cc681ec..39a4ecc 100644 --- a/core/src/test/java/pl/tkowalcz/tjahzi/LoggingSystemTest.java +++ b/core/src/test/java/pl/tkowalcz/tjahzi/LoggingSystemTest.java @@ -33,7 +33,7 @@ import static org.hamcrest.CoreMatchers.hasItems; class LoggingSystemTest { @Container - public GenericContainer loki = new GenericContainer("grafana/loki:latest") + public GenericContainer loki = new GenericContainer("grafana/loki:2.3.0") .withCommand("-config.file=/etc/loki-config.yaml") .withClasspathResourceMapping("loki-config.yaml", "/etc/loki-config.yaml", diff --git a/log4j2-appender/src/test/java/pl/tkowalcz/tjahzi/log4j2/infra/IntegrationTest.java b/log4j2-appender/src/test/java/pl/tkowalcz/tjahzi/log4j2/infra/IntegrationTest.java index 6277826..dd34a36 100644 --- a/log4j2-appender/src/test/java/pl/tkowalcz/tjahzi/log4j2/infra/IntegrationTest.java +++ b/log4j2-appender/src/test/java/pl/tkowalcz/tjahzi/log4j2/infra/IntegrationTest.java @@ -18,7 +18,7 @@ import java.net.URL; public class IntegrationTest { @Container - public GenericContainer loki = new GenericContainer("grafana/loki:latest") + public GenericContainer loki = new GenericContainer("grafana/loki:2.3.0") .withCommand("-config.file=/etc/loki-config.yaml") .withClasspathResourceMapping("loki-config.yaml", "/etc/loki-config.yaml", diff --git a/logback-appender/src/test/java/pl/tkowalcz/tjahzi/logback/infra/IntegrationTest.java b/logback-appender/src/test/java/pl/tkowalcz/tjahzi/logback/infra/IntegrationTest.java index a717eb8..26e721f 100644 --- a/logback-appender/src/test/java/pl/tkowalcz/tjahzi/logback/infra/IntegrationTest.java +++ b/logback-appender/src/test/java/pl/tkowalcz/tjahzi/logback/infra/IntegrationTest.java @@ -20,7 +20,7 @@ import java.net.URISyntaxException; public class IntegrationTest { @Container - public GenericContainer loki = new GenericContainer("grafana/loki:latest") + public GenericContainer loki = new GenericContainer("grafana/loki:2.3.0") .withCommand("-config.file=/etc/loki-config.yaml") .withClasspathResourceMapping("loki-config.yaml", "/etc/loki-config.yaml", From 8b8befc8ac33e7e7c28414b6f728a6df2e0b8a6e Mon Sep 17 00:00:00 2001 From: "tomasz.kowalczewski" Date: Sat, 23 Oct 2021 15:56:43 +0200 Subject: [PATCH 06/14] Re #77: Debugging test failure on CircleCI. --- .../src/test/resources/basic-appender-test-configuration.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/log4j2-appender/src/test/resources/basic-appender-test-configuration.xml b/log4j2-appender/src/test/resources/basic-appender-test-configuration.xml index 6bb8074..2006a8c 100644 --- a/log4j2-appender/src/test/resources/basic-appender-test-configuration.xml +++ b/log4j2-appender/src/test/resources/basic-appender-test-configuration.xml @@ -19,6 +19,8 @@ %X{ctx:tid} [%t] %d{DEFAULT} %5p %c{1} - %m%n%exception{full} + 1 +