Search in sources :

Example 1 with FailureDetector

use of org.komamitsu.fluency.fluentd.ingester.sender.failuredetect.FailureDetector in project fluency by komamitsu.

the class FluencyBuilderForFluentdTest method buildWithComplexConfig.

@Test
void buildWithComplexConfig() throws IOException {
    String tmpdir = System.getProperty("java.io.tmpdir");
    assertThat(tmpdir, is(notNullValue()));
    FluencyBuilderForFluentd builder = new FluencyBuilderForFluentd();
    builder.setFlushAttemptIntervalMillis(200);
    builder.setMaxBufferSize(Long.MAX_VALUE);
    builder.setBufferChunkInitialSize(7 * 1024 * 1024);
    builder.setBufferChunkRetentionSize(13 * 1024 * 1024);
    builder.setBufferChunkRetentionTimeMillis(19 * 1000);
    builder.setJvmHeapBufferMode(true);
    builder.setSenderMaxRetryCount(99);
    builder.setSenderBaseRetryIntervalMillis(20);
    builder.setSenderMaxRetryIntervalMillis(100000);
    builder.setConnectionTimeoutMilli(12345);
    builder.setReadTimeoutMilli(9876);
    builder.setAckResponseMode(true);
    builder.setWaitUntilBufferFlushed(42);
    builder.setWaitUntilFlusherTerminated(24);
    builder.setFileBackupDir(tmpdir);
    try (Fluency fluency = builder.build(Arrays.asList(new InetSocketAddress("333.333.333.333", 11111), new InetSocketAddress("444.444.444.444", 22222)))) {
        assertThat(fluency.getBuffer(), instanceOf(Buffer.class));
        Buffer buffer = fluency.getBuffer();
        assertThat(buffer.getMaxBufferSize(), is(Long.MAX_VALUE));
        assertThat(buffer.getFileBackupDir(), is(tmpdir));
        assertThat(buffer.bufferFormatType(), is("packed_forward"));
        assertThat(buffer.getChunkRetentionTimeMillis(), is(19 * 1000));
        assertThat(buffer.getChunkExpandRatio(), is(2f));
        assertThat(buffer.getChunkInitialSize(), is(7 * 1024 * 1024));
        assertThat(buffer.getChunkRetentionSize(), is(13 * 1024 * 1024));
        assertThat(buffer.getJvmHeapBufferMode(), is(true));
        Flusher flusher = fluency.getFlusher();
        assertThat(flusher.isTerminated(), is(false));
        assertThat(flusher.getFlushAttemptIntervalMillis(), is(200));
        assertThat(flusher.getWaitUntilBufferFlushed(), is(42));
        assertThat(flusher.getWaitUntilTerminated(), is(24));
        assertThat(flusher.getIngester().getSender(), instanceOf(RetryableSender.class));
        RetryableSender retryableSender = (RetryableSender) flusher.getIngester().getSender();
        assertThat(retryableSender.getRetryStrategy(), instanceOf(ExponentialBackOffRetryStrategy.class));
        ExponentialBackOffRetryStrategy retryStrategy = (ExponentialBackOffRetryStrategy) retryableSender.getRetryStrategy();
        assertThat(retryStrategy.getMaxRetryCount(), is(99));
        assertThat(retryStrategy.getBaseIntervalMillis(), is(20));
        assertThat(retryStrategy.getMaxIntervalMillis(), is(100000));
        assertThat(retryableSender.getBaseSender(), instanceOf(MultiSender.class));
        MultiSender multiSender = (MultiSender) retryableSender.getBaseSender();
        assertThat(multiSender.getSenders().size(), is(2));
        assertThat(multiSender.getSenders().get(0), instanceOf(TCPSender.class));
        {
            TCPSender sender = (TCPSender) multiSender.getSenders().get(0);
            assertThat(sender.getHost(), is("333.333.333.333"));
            assertThat(sender.getPort(), is(11111));
            assertThat(sender.getConnectionTimeoutMilli(), is(12345));
            assertThat(sender.getReadTimeoutMilli(), is(9876));
            FailureDetector failureDetector = sender.getFailureDetector();
            assertThat(failureDetector.getFailureIntervalMillis(), is(3 * 1000));
            assertThat(failureDetector.getFailureDetectStrategy(), instanceOf(PhiAccrualFailureDetectStrategy.class));
            assertThat(failureDetector.getHeartbeater(), instanceOf(TCPHeartbeater.class));
            assertThat(failureDetector.getHeartbeater().getHost(), is("333.333.333.333"));
            assertThat(failureDetector.getHeartbeater().getPort(), is(11111));
            assertThat(failureDetector.getHeartbeater().getIntervalMillis(), is(1000));
        }
        assertThat(multiSender.getSenders().get(1), instanceOf(TCPSender.class));
        {
            TCPSender sender = (TCPSender) multiSender.getSenders().get(1);
            assertThat(sender.getHost(), is("444.444.444.444"));
            assertThat(sender.getPort(), is(22222));
            assertThat(sender.getConnectionTimeoutMilli(), is(12345));
            assertThat(sender.getReadTimeoutMilli(), is(9876));
            FailureDetector failureDetector = sender.getFailureDetector();
            assertThat(failureDetector.getFailureIntervalMillis(), is(3 * 1000));
            assertThat(failureDetector.getFailureDetectStrategy(), instanceOf(PhiAccrualFailureDetectStrategy.class));
            assertThat(failureDetector.getHeartbeater(), instanceOf(TCPHeartbeater.class));
            assertThat(failureDetector.getHeartbeater().getHost(), is("444.444.444.444"));
            assertThat(failureDetector.getHeartbeater().getPort(), is(22222));
            assertThat(failureDetector.getHeartbeater().getIntervalMillis(), is(1000));
        }
    }
}
Also used : Buffer(org.komamitsu.fluency.buffer.Buffer) Fluency(org.komamitsu.fluency.Fluency) InetSocketAddress(java.net.InetSocketAddress) Flusher(org.komamitsu.fluency.flusher.Flusher) ExponentialBackOffRetryStrategy(org.komamitsu.fluency.fluentd.ingester.sender.retry.ExponentialBackOffRetryStrategy) FailureDetector(org.komamitsu.fluency.fluentd.ingester.sender.failuredetect.FailureDetector) MultiSender(org.komamitsu.fluency.fluentd.ingester.sender.MultiSender) RetryableSender(org.komamitsu.fluency.fluentd.ingester.sender.RetryableSender) TCPSender(org.komamitsu.fluency.fluentd.ingester.sender.TCPSender) Test(org.junit.jupiter.api.Test)

Example 2 with FailureDetector

use of org.komamitsu.fluency.fluentd.ingester.sender.failuredetect.FailureDetector in project fluency by komamitsu.

the class SSLSenderTest method testSendWithHeartbeart.

@Test
void testSendWithHeartbeart() throws Exception {
    testSendBase(port -> {
        SSLHeartbeater.Config hbConfig = new SSLHeartbeater.Config();
        hbConfig.setPort(port);
        hbConfig.setIntervalMillis(400);
        SSLSender.Config senderConfig = new SSLSender.Config();
        senderConfig.setPort(port);
        return new SSLSender(senderConfig, new FailureDetector(new PhiAccrualFailureDetectStrategy(), new SSLHeartbeater(hbConfig)));
    }, greaterThan(1), greaterThan(1));
}
Also used : PhiAccrualFailureDetectStrategy(org.komamitsu.fluency.fluentd.ingester.sender.failuredetect.PhiAccrualFailureDetectStrategy) SSLHeartbeater(org.komamitsu.fluency.fluentd.ingester.sender.heartbeat.SSLHeartbeater) FailureDetector(org.komamitsu.fluency.fluentd.ingester.sender.failuredetect.FailureDetector) Test(org.junit.jupiter.api.Test)

Example 3 with FailureDetector

use of org.komamitsu.fluency.fluentd.ingester.sender.failuredetect.FailureDetector in project fluency by komamitsu.

the class TCPSenderTest method testSendWithHeartbeart.

@Test
void testSendWithHeartbeart() throws Exception {
    testSendBase(port -> {
        TCPHeartbeater.Config hbConfig = new TCPHeartbeater.Config();
        hbConfig.setPort(port);
        hbConfig.setIntervalMillis(400);
        TCPSender.Config senderConfig = new TCPSender.Config();
        senderConfig.setPort(port);
        return new TCPSender(senderConfig, new FailureDetector(new PhiAccrualFailureDetectStrategy(), new TCPHeartbeater(hbConfig)));
    }, greaterThan(1), greaterThan(1));
}
Also used : PhiAccrualFailureDetectStrategy(org.komamitsu.fluency.fluentd.ingester.sender.failuredetect.PhiAccrualFailureDetectStrategy) TCPHeartbeater(org.komamitsu.fluency.fluentd.ingester.sender.heartbeat.TCPHeartbeater) FailureDetector(org.komamitsu.fluency.fluentd.ingester.sender.failuredetect.FailureDetector) Test(org.junit.jupiter.api.Test)

Example 4 with FailureDetector

use of org.komamitsu.fluency.fluentd.ingester.sender.failuredetect.FailureDetector in project fluency by komamitsu.

the class FluencyBuilderForFluentdTest method buildWithSslAndComplexConfig.

@Test
void buildWithSslAndComplexConfig() throws IOException {
    String tmpdir = System.getProperty("java.io.tmpdir");
    assertThat(tmpdir, is(notNullValue()));
    FluencyBuilderForFluentd builder = new FluencyBuilderForFluentd();
    builder.setSslEnabled(true);
    builder.setFlushAttemptIntervalMillis(200);
    builder.setMaxBufferSize(Long.MAX_VALUE);
    builder.setBufferChunkInitialSize(7 * 1024 * 1024);
    builder.setBufferChunkRetentionSize(13 * 1024 * 1024);
    builder.setJvmHeapBufferMode(true);
    builder.setSenderMaxRetryCount(99);
    builder.setSenderBaseRetryIntervalMillis(20);
    builder.setSenderMaxRetryIntervalMillis(100000);
    builder.setConnectionTimeoutMilli(12345);
    builder.setReadTimeoutMilli(9876);
    builder.setAckResponseMode(true);
    builder.setWaitUntilBufferFlushed(42);
    builder.setWaitUntilFlusherTerminated(24);
    builder.setFileBackupDir(tmpdir);
    try (Fluency fluency = builder.build(Arrays.asList(new InetSocketAddress("333.333.333.333", 11111), new InetSocketAddress("444.444.444.444", 22222)))) {
        assertThat(fluency.getFlusher().getIngester().getSender(), instanceOf(RetryableSender.class));
        RetryableSender retryableSender = (RetryableSender) fluency.getFlusher().getIngester().getSender();
        assertThat(retryableSender.getRetryStrategy(), instanceOf(ExponentialBackOffRetryStrategy.class));
        ExponentialBackOffRetryStrategy retryStrategy = (ExponentialBackOffRetryStrategy) retryableSender.getRetryStrategy();
        assertThat(retryStrategy.getMaxRetryCount(), is(99));
        assertThat(retryStrategy.getBaseIntervalMillis(), is(20));
        assertThat(retryStrategy.getMaxIntervalMillis(), is(100000));
        assertThat(retryableSender.getBaseSender(), instanceOf(MultiSender.class));
        MultiSender multiSender = (MultiSender) retryableSender.getBaseSender();
        assertThat(multiSender.getSenders().size(), is(2));
        assertThat(multiSender.getSenders().get(0), instanceOf(SSLSender.class));
        {
            SSLSender sender = (SSLSender) multiSender.getSenders().get(0);
            assertThat(sender.getHost(), is("333.333.333.333"));
            assertThat(sender.getPort(), is(11111));
            assertThat(sender.getConnectionTimeoutMilli(), is(12345));
            assertThat(sender.getReadTimeoutMilli(), is(9876));
            FailureDetector failureDetector = sender.getFailureDetector();
            assertThat(failureDetector.getFailureIntervalMillis(), is(3 * 1000));
            assertThat(failureDetector.getFailureDetectStrategy(), instanceOf(PhiAccrualFailureDetectStrategy.class));
            assertThat(failureDetector.getHeartbeater(), instanceOf(SSLHeartbeater.class));
            assertThat(failureDetector.getHeartbeater().getHost(), is("333.333.333.333"));
            assertThat(failureDetector.getHeartbeater().getPort(), is(11111));
            assertThat(failureDetector.getHeartbeater().getIntervalMillis(), is(1000));
        }
        assertThat(multiSender.getSenders().get(1), instanceOf(SSLSender.class));
        {
            SSLSender sender = (SSLSender) multiSender.getSenders().get(1);
            assertThat(sender.getHost(), is("444.444.444.444"));
            assertThat(sender.getPort(), is(22222));
            assertThat(sender.getConnectionTimeoutMilli(), is(12345));
            assertThat(sender.getReadTimeoutMilli(), is(9876));
            FailureDetector failureDetector = sender.getFailureDetector();
            assertThat(failureDetector.getFailureIntervalMillis(), is(3 * 1000));
            assertThat(failureDetector.getFailureDetectStrategy(), instanceOf(PhiAccrualFailureDetectStrategy.class));
            assertThat(failureDetector.getHeartbeater(), instanceOf(SSLHeartbeater.class));
            assertThat(failureDetector.getHeartbeater().getHost(), is("444.444.444.444"));
            assertThat(failureDetector.getHeartbeater().getPort(), is(22222));
            assertThat(failureDetector.getHeartbeater().getIntervalMillis(), is(1000));
        }
    }
}
Also used : Fluency(org.komamitsu.fluency.Fluency) SSLSender(org.komamitsu.fluency.fluentd.ingester.sender.SSLSender) InetSocketAddress(java.net.InetSocketAddress) ExponentialBackOffRetryStrategy(org.komamitsu.fluency.fluentd.ingester.sender.retry.ExponentialBackOffRetryStrategy) FailureDetector(org.komamitsu.fluency.fluentd.ingester.sender.failuredetect.FailureDetector) MultiSender(org.komamitsu.fluency.fluentd.ingester.sender.MultiSender) RetryableSender(org.komamitsu.fluency.fluentd.ingester.sender.RetryableSender) Test(org.junit.jupiter.api.Test)

Example 5 with FailureDetector

use of org.komamitsu.fluency.fluentd.ingester.sender.failuredetect.FailureDetector in project fluency by komamitsu.

the class FluencyBuilderForFluentdTest method assertDefaultFluentdSender.

private void assertDefaultFluentdSender(FluentdSender sender, String expectedHost, int expectedPort, Class<? extends NetworkSender> expectedBaseClass) {
    assertThat(sender, instanceOf(RetryableSender.class));
    RetryableSender retryableSender = (RetryableSender) sender;
    assertDefaultRetryableSender(retryableSender, expectedBaseClass);
    NetworkSender networkSender = (NetworkSender) retryableSender.getBaseSender();
    assertThat(networkSender.getHost(), is(expectedHost));
    assertThat(networkSender.getPort(), is(expectedPort));
    assertThat(networkSender.getConnectionTimeoutMilli(), is(5000));
    assertThat(networkSender.getReadTimeoutMilli(), is(5000));
    FailureDetector failureDetector = networkSender.getFailureDetector();
    assertThat(failureDetector, is(nullValue()));
}
Also used : FailureDetector(org.komamitsu.fluency.fluentd.ingester.sender.failuredetect.FailureDetector) NetworkSender(org.komamitsu.fluency.fluentd.ingester.sender.NetworkSender) RetryableSender(org.komamitsu.fluency.fluentd.ingester.sender.RetryableSender)

Aggregations

FailureDetector (org.komamitsu.fluency.fluentd.ingester.sender.failuredetect.FailureDetector)6 Test (org.junit.jupiter.api.Test)4 RetryableSender (org.komamitsu.fluency.fluentd.ingester.sender.RetryableSender)3 PhiAccrualFailureDetectStrategy (org.komamitsu.fluency.fluentd.ingester.sender.failuredetect.PhiAccrualFailureDetectStrategy)3 InetSocketAddress (java.net.InetSocketAddress)2 Fluency (org.komamitsu.fluency.Fluency)2 MultiSender (org.komamitsu.fluency.fluentd.ingester.sender.MultiSender)2 SSLSender (org.komamitsu.fluency.fluentd.ingester.sender.SSLSender)2 TCPSender (org.komamitsu.fluency.fluentd.ingester.sender.TCPSender)2 SSLHeartbeater (org.komamitsu.fluency.fluentd.ingester.sender.heartbeat.SSLHeartbeater)2 TCPHeartbeater (org.komamitsu.fluency.fluentd.ingester.sender.heartbeat.TCPHeartbeater)2 ExponentialBackOffRetryStrategy (org.komamitsu.fluency.fluentd.ingester.sender.retry.ExponentialBackOffRetryStrategy)2 Buffer (org.komamitsu.fluency.buffer.Buffer)1 NetworkSender (org.komamitsu.fluency.fluentd.ingester.sender.NetworkSender)1 Flusher (org.komamitsu.fluency.flusher.Flusher)1