From b45a55d89cccb9f5b6a8d335a6f4b208ccfa7bdd Mon Sep 17 00:00:00 2001 From: "Wang, Shu" Date: Mon, 28 Oct 2024 13:19:34 +0800 Subject: [PATCH] fix-issue-434 To add proxy related settings to splunk connector Signed-off-by: Wang, Shu --- README.md | 4 ++++ src/main/java/com/splunk/hecclient/Hec.java | 4 ++++ .../java/com/splunk/hecclient/HecConfig.java | 20 ++++++++++++++++ .../splunk/hecclient/HttpClientBuilder.java | 24 ++++++++++++++++--- .../connect/SplunkSinkConnectorConfig.java | 18 +++++++++++++- .../com/splunk/hecclient/HecConfigTest.java | 4 ++++ .../hecclient/HttpClientBuilderTest.java | 21 ++++++++++++++++ .../splunk/kafka/connect/ConfigProfile.java | 22 ++++++++++++++++- .../SplunkSinkConnectorConfigTest.java | 11 +++++++++ .../com/splunk/kafka/connect/UnitUtil.java | 2 ++ target/site/jacoco/jacoco.csv | 12 +++++----- target/site/jacoco/jacoco.xml | 2 +- 12 files changed, 132 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index a1875176..e9b1011f 100644 --- a/README.md +++ b/README.md @@ -119,6 +119,8 @@ Use the below schema to configure Splunk Connect for Kafka "splunk.hec.ack.poll.threads": "", "splunk.hec.ssl.validate.certs": "", "splunk.hec.http.keepalive": "", + "splunk.hec.http.proxy.host": "", + "splunk.hec.http.proxy.port": "", "splunk.hec.max.http.connection.per.channel": "", "splunk.hec.total.channels": "", "splunk.hec.max.batch.size": "", @@ -167,6 +169,8 @@ Use the below schema to configure Splunk Connect for Kafka | `splunk.validation.disable` | Disable validating splunk configurations before creating task. | `false` | | `splunk.hec.ssl.validate.certs` | Valid settings are `true` or `false`. Enables or disables HTTPS certification validation. |`true`| | `splunk.hec.http.keepalive` | Valid settings are `true` or `false`. Enables or disables HTTP connection keep-alive. |`true`| +| `splunk.hec.http.proxy.host` | This setting is the http proxy server hostname. Configure it to use connector level proxy when connecting to HEC endpoint, otherwise, it'll use JVM level proxy setting in JVM_OPTS. | `""` | +| `splunk.hec.http.proxy.port` | This setting is the http proxy server port. Configure it to use connector level proxy when connecting to HEC endpoint, otherwise, it'll use JVM level proxy setting in JVM_OPTS. | `0` | | `splunk.hec.max.http.connection.per.channel` | Controls how many HTTP connections will be created and cached in the HTTP pool for one HEC channel. |`2`| | `splunk.hec.total.channels` | Controls the total channels created to perform HEC event POSTs. See the Load balancer section for more details. |`2`| | `splunk.hec.max.batch.size` | Maximum batch size when posting events to Splunk. The size is the actual number of Kafka events, and not byte size. |`500`| diff --git a/src/main/java/com/splunk/hecclient/Hec.java b/src/main/java/com/splunk/hecclient/Hec.java index 629be36d..e4289b5b 100644 --- a/src/main/java/com/splunk/hecclient/Hec.java +++ b/src/main/java/com/splunk/hecclient/Hec.java @@ -283,6 +283,8 @@ public static CloseableHttpClient createHttpClient(final HecConfig config) { return new HttpClientBuilder().setDisableSSLCertVerification(config.getDisableSSLCertVerification()) .setMaxConnectionPoolSizePerDestination(poolSizePerDest) .setMaxConnectionPoolSize(poolSizePerDest * config.getUris().size()) + .setHttpProxyHost(config.getHttpProxyHost()) + .setHttpProxyPort(config.getHttpProxyPort()) .build(); } @@ -295,6 +297,8 @@ public static CloseableHttpClient createHttpClient(final HecConfig config) { .setMaxConnectionPoolSizePerDestination(poolSizePerDest) .setMaxConnectionPoolSize(poolSizePerDest * config.getUris().size()) .setSslContext(context) + .setHttpProxyHost(config.getHttpProxyHost()) + .setHttpProxyPort(config.getHttpProxyPort()) .build(); } else { diff --git a/src/main/java/com/splunk/hecclient/HecConfig.java b/src/main/java/com/splunk/hecclient/HecConfig.java index d3cb7dbc..b9be3c0a 100644 --- a/src/main/java/com/splunk/hecclient/HecConfig.java +++ b/src/main/java/com/splunk/hecclient/HecConfig.java @@ -41,6 +41,8 @@ public final class HecConfig { private String kerberosKeytabPath; private int concurrentHecQueueCapacity = 100; private Boolean autoExtractTimestamp; + private String httpProxyHost; + private int httpProxyPort = 0; public HecConfig(List uris, String token) { this.uris = uris; @@ -63,6 +65,14 @@ public boolean getHttpKeepAlive() { return httpKeepAlive; } + public String getHttpProxyHost() { + return httpProxyHost; + } + + public int getHttpProxyPort() { + return httpProxyPort; + } + public int getSocketTimeout() { return socketTimeout; } @@ -127,6 +137,16 @@ public HecConfig setHttpKeepAlive(boolean keepAlive) { return this; } + public HecConfig setHttpProxyHost(final String httpProxyHost) { + this.httpProxyHost = httpProxyHost; + return this; + } + + public HecConfig setHttpProxyPort(final int httpProxyPort) { + this.httpProxyPort = httpProxyPort; + return this; + } + public HecConfig setSocketTimeout(int timeout /*seconds*/) { socketTimeout = timeout; return this; diff --git a/src/main/java/com/splunk/hecclient/HttpClientBuilder.java b/src/main/java/com/splunk/hecclient/HttpClientBuilder.java index e1e146fd..3bc6a476 100644 --- a/src/main/java/com/splunk/hecclient/HttpClientBuilder.java +++ b/src/main/java/com/splunk/hecclient/HttpClientBuilder.java @@ -19,6 +19,9 @@ import java.security.KeyStoreException; import java.security.NoSuchAlgorithmException; import java.security.Principal; + +import org.apache.commons.lang3.StringUtils; +import org.apache.http.HttpHost; import org.apache.http.auth.AuthSchemeProvider; import org.apache.http.auth.AuthScope; import org.apache.http.auth.Credentials; @@ -50,6 +53,8 @@ public final class HttpClientBuilder { private int socketTimeout = 60; // in seconds private int socketSendBufferSize = 8 * 1024 * 1024; // in bytes private boolean disableSSLCertVerification = false; + private String httpProxyHost; + private int httpProxyPort; private SSLContext sslContext = null; public HttpClientBuilder setMaxConnectionPoolSizePerDestination(int connections) { @@ -77,6 +82,16 @@ public HttpClientBuilder setDisableSSLCertVerification(boolean disableVerificati return this; } + public HttpClientBuilder setHttpProxyHost(final String httpProxyHost) { + this.httpProxyHost = httpProxyHost; + return this; + } + + public HttpClientBuilder setHttpProxyPort(final int httpProxyPort) { + this.httpProxyPort = httpProxyPort; + return this; + } + public HttpClientBuilder setSslContext(SSLContext context) { this.sslContext = context; return this; @@ -88,9 +103,12 @@ public CloseableHttpClient build() { .setSndBufSize(socketSendBufferSize) .setSoTimeout(socketTimeout * 1000) .build(); - RequestConfig requestConfig = RequestConfig.custom() - .setCookieSpec(CookieSpecs.STANDARD) - .build(); + RequestConfig.Builder requestConfigBuilder = RequestConfig.custom() + .setCookieSpec(CookieSpecs.STANDARD); + if (StringUtils.isNotEmpty(this.httpProxyHost) && this.httpProxyPort != 0) { + requestConfigBuilder.setProxy(new HttpHost(this.httpProxyHost, this.httpProxyPort)); + } + RequestConfig requestConfig = requestConfigBuilder.build(); return HttpClients.custom() .useSystemProperties() diff --git a/src/main/java/com/splunk/kafka/connect/SplunkSinkConnectorConfig.java b/src/main/java/com/splunk/kafka/connect/SplunkSinkConnectorConfig.java index 0859a825..8e8f6813 100644 --- a/src/main/java/com/splunk/kafka/connect/SplunkSinkConnectorConfig.java +++ b/src/main/java/com/splunk/kafka/connect/SplunkSinkConnectorConfig.java @@ -51,6 +51,8 @@ public final class SplunkSinkConnectorConfig extends AbstractConfig { static final String MAX_HTTP_CONNECTION_PER_CHANNEL_CONF = "splunk.hec.max.http.connection.per.channel"; static final String MAX_BATCH_SIZE_CONF = "splunk.hec.max.batch.size"; // record count static final String HTTP_KEEPALIVE_CONF = "splunk.hec.http.keepalive"; + static final String HTTP_PROXY_HOST_CONF = "splunk.hec.http.proxy.host"; + static final String HTTP_PROXY_PORT_CONF = "splunk.hec.http.proxy.port"; static final String HEC_THREDS_CONF = "splunk.hec.threads"; static final String SOCKET_TIMEOUT_CONF = "splunk.hec.socket.timeout"; // seconds static final String SSL_VALIDATE_CERTIFICATES_CONF = "splunk.hec.ssl.validate.certs"; @@ -128,6 +130,10 @@ public final class SplunkSinkConnectorConfig extends AbstractConfig { + "Kafka events not the byte size. By default, this is set to 100."; static final String HTTP_KEEPALIVE_DOC = "Valid settings are true or false. Enables or disables HTTP connection " + "keep-alive. By default, this is set to true"; + static final String HTTP_PROXY_HOST_DOC = "This setting is the http proxy server hostname. Configure it to use connector " + + "level proxy when connecting to HEC endpoint, otherwise, it'll use JVM level proxy setting in JVM_OPTS."; + static final String HTTP_PROXY_PORT_DOC = "This setting is the http proxy server port. Configure it to use connector " + + "level proxy when connecting to HEC endpoint, otherwise, it'll use JVM level proxy setting in JVM_OPTS."; static final String HEC_THREADS_DOC = "Controls how many threads are spawned to do data injection via HEC in a single " + "connector task. By default, this is set to 1."; static final String SOCKET_TIMEOUT_DOC = "Max duration in seconds to read / write data to network before internal TCP " @@ -225,6 +231,8 @@ public final class SplunkSinkConnectorConfig extends AbstractConfig { final int maxHttpConnPerChannel; final int maxBatchSize; final boolean httpKeepAlive; + final String httpProxyHost; + final int httpProxyPort; final int numberOfThreads; final int socketTimeout; final boolean validateCertificates; @@ -280,6 +288,8 @@ public final class SplunkSinkConnectorConfig extends AbstractConfig { sourcetypes = getString(SOURCETYPE_CONF); sources = getString(SOURCE_CONF); httpKeepAlive = getBoolean(HTTP_KEEPALIVE_CONF); + httpProxyHost = getString(HTTP_PROXY_HOST_CONF); + httpProxyPort = getInt(HTTP_PROXY_PORT_CONF); validateCertificates = getBoolean(SSL_VALIDATE_CERTIFICATES_CONF); trustStorePath = getString(SSL_TRUSTSTORE_PATH_CONF); hasTrustStorePath = StringUtils.isNotBlank(trustStorePath); @@ -330,7 +340,7 @@ public final class SplunkSinkConnectorConfig extends AbstractConfig { autoExtractTimestamp = getBoolean(AUTO_EXTRACT_TIMESTAMP_CONF); } - + public static ConfigDef conf() { return new ConfigDef() .define(TOKEN_CONF, ConfigDef.Type.PASSWORD, ConfigDef.Importance.HIGH, TOKEN_DOC) @@ -341,6 +351,8 @@ public static ConfigDef conf() { .define(SOURCETYPE_CONF, ConfigDef.Type.STRING, "", ConfigDef.Importance.MEDIUM, SOURCETYPE_DOC) .define(SOURCE_CONF, ConfigDef.Type.STRING, "", ConfigDef.Importance.MEDIUM, SOURCE_DOC) .define(HTTP_KEEPALIVE_CONF, ConfigDef.Type.BOOLEAN, true, ConfigDef.Importance.MEDIUM, HTTP_KEEPALIVE_DOC) + .define(HTTP_PROXY_HOST_CONF, ConfigDef.Type.STRING, "", ConfigDef.Importance.HIGH, HTTP_PROXY_HOST_DOC) + .define(HTTP_PROXY_PORT_CONF, ConfigDef.Type.INT, 0, ConfigDef.Importance.HIGH, HTTP_PROXY_PORT_DOC) .define(SSL_VALIDATE_CERTIFICATES_CONF, ConfigDef.Type.BOOLEAN, true, ConfigDef.Importance.MEDIUM, SSL_VALIDATE_CERTIFICATES_DOC) .define(SSL_TRUSTSTORE_PATH_CONF, ConfigDef.Type.STRING, "", ConfigDef.Importance.HIGH, SSL_TRUSTSTORE_PATH_DOC) .define(SSL_TRUSTSTORE_TYPE_CONF, ConfigDef.Type.STRING, "JKS", ConfigDef.Importance.LOW, SSL_TRUSTSTORE_TYPE_DOC) @@ -392,6 +404,8 @@ public HecConfig getHecConfig() { .setTotalChannels(totalHecChannels) .setEventBatchTimeout(eventBatchTimeout) .setHttpKeepAlive(httpKeepAlive) + .setHttpProxyHost(httpProxyHost) + .setHttpProxyPort(httpProxyPort) .setAckPollInterval(ackPollInterval) .setlbPollInterval(lbPollInterval) .setAckPollThreads(ackPollThreads) @@ -424,6 +438,8 @@ public String toString() { + "headerSupport:" + headerSupport + ", " + "headerCustom:" + headerCustom + ", " + "httpKeepAlive:" + httpKeepAlive + ", " + + "httpProxyHost:" + httpProxyHost + ", " + + "httpProxyPort:" + httpProxyPort + ", " + "validateCertificates:" + validateCertificates + ", " + "trustStorePath:" + trustStorePath + ", " + "trustStoreType:" + trustStoreType + ", " diff --git a/src/test/java/com/splunk/hecclient/HecConfigTest.java b/src/test/java/com/splunk/hecclient/HecConfigTest.java index 3826bff4..06b54485 100644 --- a/src/test/java/com/splunk/hecclient/HecConfigTest.java +++ b/src/test/java/com/splunk/hecclient/HecConfigTest.java @@ -36,6 +36,8 @@ public void getterSetter() { config.setAckPollInterval(1) .setDisableSSLCertVerification(true) .setHttpKeepAlive(false) + .setHttpProxyHost("test.host") + .setHttpProxyPort(8080) .setSocketSendBufferSize(2) .setSocketTimeout(3) .setMaxHttpConnectionPerChannel(4) @@ -60,6 +62,8 @@ public void getterSetter() { Assert.assertEquals(5, config.getTotalChannels()); Assert.assertEquals(6, config.getAckPollThreads()); Assert.assertEquals(7, config.getEventBatchTimeout()); + Assert.assertEquals("test.host", config.getHttpProxyHost()); + Assert.assertEquals(8080, config.getHttpProxyPort()); Assert.assertEquals("test", config.getTrustStorePath()); Assert.assertEquals("PKCS12", config.getTrustStoreType()); Assert.assertEquals("pass", config.getTrustStorePassword()); diff --git a/src/test/java/com/splunk/hecclient/HttpClientBuilderTest.java b/src/test/java/com/splunk/hecclient/HttpClientBuilderTest.java index 80490f4f..f90c93bc 100644 --- a/src/test/java/com/splunk/hecclient/HttpClientBuilderTest.java +++ b/src/test/java/com/splunk/hecclient/HttpClientBuilderTest.java @@ -44,6 +44,27 @@ public void buildSecureDefault() { .build(); Assert.assertNotNull(client); } + + @Test + public void buildHttpProxy() { + HttpClientBuilder builder = new HttpClientBuilder(); + CloseableHttpClient client = builder.setMaxConnectionPoolSizePerDestination(1) + .setHttpProxyHost("rest.host") + .setHttpProxyPort(8080) + .build(); + Assert.assertNotNull(client); + builder = new HttpClientBuilder(); + client = builder.setMaxConnectionPoolSizePerDestination(1) + .setHttpProxyPort(8080) + .build(); + Assert.assertNotNull(client); + builder = new HttpClientBuilder(); + client = builder.setMaxConnectionPoolSizePerDestination(1) + .setHttpProxyHost("rest.host") + .build(); + Assert.assertNotNull(client); + } + @Test public void buildSecureCustomKeystore() { HttpClientBuilder builder = new HttpClientBuilder(); diff --git a/src/test/java/com/splunk/kafka/connect/ConfigProfile.java b/src/test/java/com/splunk/kafka/connect/ConfigProfile.java index f6c75b9f..5173a0cd 100644 --- a/src/test/java/com/splunk/kafka/connect/ConfigProfile.java +++ b/src/test/java/com/splunk/kafka/connect/ConfigProfile.java @@ -14,6 +14,8 @@ public class ConfigProfile { private String sourcetypes; private String sources; private boolean httpKeepAlive; + private String httpProxyHost; + private int httpProxyPort; private boolean validateCertificates; private boolean hasTrustStorePath; private String trustStorePath; @@ -75,6 +77,8 @@ public ConfigProfile buildProfileDefault() { this.sourcetypes = ""; this.sources = ""; this.httpKeepAlive = true; + this.httpProxyHost = "proxy.host"; + this.httpProxyPort = 8080; this.validateCertificates = true; this.hasTrustStorePath = true; this.trustStorePath = "./src/test/resources/keystoretest.jks"; @@ -311,6 +315,22 @@ public void setHttpKeepAlive(boolean httpKeepAlive) { this.httpKeepAlive = httpKeepAlive; } + public int getHttpProxyPort() { + return httpProxyPort; + } + + public String getHttpProxyHost() { + return httpProxyHost; + } + + public void setHttpProxyHost(final String httpProxyHost) { + this.httpProxyHost = httpProxyHost; + } + + public void setHttpProxyPort(final int httpProxyPort) { + this.httpProxyPort = httpProxyPort; + } + public boolean isValidateCertificates() { return validateCertificates; } @@ -472,6 +492,6 @@ public void setHeaderHost(String headerHost) { } @Override public String toString() { - return "ConfigProfile{" + "topics='" + topics + '\'' + ", topics.regex='" + topicsRegex + '\'' + ", token='" + token + '\'' + ", uri='" + uri + '\'' + ", raw=" + raw + ", ack=" + ack + ", indexes='" + indexes + '\'' + ", sourcetypes='" + sourcetypes + '\'' + ", sources='" + sources + '\'' + ", httpKeepAlive=" + httpKeepAlive + ", validateCertificates=" + validateCertificates + ", hasTrustStorePath=" + hasTrustStorePath + ", trustStorePath='" + trustStorePath + '\'' + ", trustStoreType='" + trustStoreType + '\'' + ", trustStorePassword='" + trustStorePassword + '\'' + ", eventBatchTimeout=" + eventBatchTimeout + ", ackPollInterval=" + ackPollInterval + ", ackPollThreads=" + ackPollThreads + ", maxHttpConnPerChannel=" + maxHttpConnPerChannel + ", totalHecChannels=" + totalHecChannels + ", socketTimeout=" + socketTimeout + ", enrichements='" + enrichements + '\'' + ", enrichementMap=" + enrichementMap + ", trackData=" + trackData + ", maxBatchSize=" + maxBatchSize + ", numOfThreads=" + numOfThreads + '}'; + return "ConfigProfile{" + "topics='" + topics + '\'' + ", topics.regex='" + topicsRegex + '\'' + ", token='" + token + '\'' + ", uri='" + uri + '\'' + ", raw=" + raw + ", ack=" + ack + ", indexes='" + indexes + '\'' + ", sourcetypes='" + sourcetypes + '\'' + ", sources='" + sources + '\'' + ", httpKeepAlive=" + httpKeepAlive + ", httpProxyHost=" + httpProxyHost + ", httpProxyPort=" + httpProxyPort + ", validateCertificates=" + validateCertificates + ", hasTrustStorePath=" + hasTrustStorePath + ", trustStorePath='" + trustStorePath + '\'' + ", " + "trustStoreType='" + trustStoreType + '\'' + ", trustStorePassword='" + trustStorePassword + '\'' + ", eventBatchTimeout=" + eventBatchTimeout + ", ackPollInterval=" + ackPollInterval + ", ackPollThreads=" + ackPollThreads + ", maxHttpConnPerChannel=" + maxHttpConnPerChannel + ", totalHecChannels=" + totalHecChannels + ", socketTimeout=" + socketTimeout + ", enrichements='" + enrichements + '\'' + ", enrichementMap=" + enrichementMap + ", trackData=" + trackData + ", maxBatchSize=" + maxBatchSize + ", numOfThreads=" + numOfThreads + '}'; } } diff --git a/src/test/java/com/splunk/kafka/connect/SplunkSinkConnectorConfigTest.java b/src/test/java/com/splunk/kafka/connect/SplunkSinkConnectorConfigTest.java index 2113fade..eb4a2488 100644 --- a/src/test/java/com/splunk/kafka/connect/SplunkSinkConnectorConfigTest.java +++ b/src/test/java/com/splunk/kafka/connect/SplunkSinkConnectorConfigTest.java @@ -284,6 +284,17 @@ public void testSpecialCharLineBreaker() { Assert.assertEquals("\t", connectorConfig.lineBreaker); } + @Test + public void testHttpProxy() { + UnitUtil uu = new UnitUtil(0); + Map taskConfig = uu.createTaskConfig(); + SplunkSinkConnectorConfig connectorConfig = new SplunkSinkConnectorConfig(taskConfig); + HecConfig config = connectorConfig.getHecConfig(); + + Assert.assertEquals("proxy.host", config.getHttpProxyHost()); + Assert.assertEquals(8080, config.getHttpProxyPort()); + } + @Test public void toStr() { UnitUtil uu = new UnitUtil(0); diff --git a/src/test/java/com/splunk/kafka/connect/UnitUtil.java b/src/test/java/com/splunk/kafka/connect/UnitUtil.java index 85ae6e04..6b0ae485 100644 --- a/src/test/java/com/splunk/kafka/connect/UnitUtil.java +++ b/src/test/java/com/splunk/kafka/connect/UnitUtil.java @@ -41,6 +41,8 @@ public Map createTaskConfig() { config.put(SplunkSinkConnectorConfig.SOURCETYPE_CONF, configProfile.getSourcetypes()); config.put(SplunkSinkConnectorConfig.SOURCE_CONF, configProfile.getSources()); config.put(SplunkSinkConnectorConfig.HTTP_KEEPALIVE_CONF, String.valueOf(configProfile.isHttpKeepAlive())); + config.put(SplunkSinkConnectorConfig.HTTP_PROXY_HOST_CONF, configProfile.getHttpProxyHost()); + config.put(SplunkSinkConnectorConfig.HTTP_PROXY_PORT_CONF, String.valueOf(configProfile.getHttpProxyPort())); config.put(SplunkSinkConnectorConfig.SSL_VALIDATE_CERTIFICATES_CONF, String.valueOf(configProfile.isValidateCertificates())); if(configProfile.getTrustStorePath() != null ) { diff --git a/target/site/jacoco/jacoco.csv b/target/site/jacoco/jacoco.csv index 93fd63ed..2d0b3cf2 100644 --- a/target/site/jacoco/jacoco.csv +++ b/target/site/jacoco/jacoco.csv @@ -3,26 +3,26 @@ splunk-kafka-connect,com.splunk.hecclient,HttpClientBuilder.new Credentials() {. splunk-kafka-connect,com.splunk.hecclient,EventBatch.HttpEventBatchEntity,0,40,0,2,0,9,0,7,0,6 splunk-kafka-connect,com.splunk.hecclient,HttpClientBuilder.new HostnameVerifier() {...},2,6,0,0,1,1,1,1,1,1 splunk-kafka-connect,com.splunk.hecclient,HttpClientBuilder.new TrustStrategy() {...},2,6,0,0,1,1,1,1,1,1 -splunk-kafka-connect,com.splunk.hecclient,Hec,38,298,4,14,10,74,4,20,0,15 +splunk-kafka-connect,com.splunk.hecclient,Hec,38,310,4,14,10,78,4,20,0,15 splunk-kafka-connect,com.splunk.hecclient,ConcurrentHec,23,196,1,13,6,50,1,16,0,10 splunk-kafka-connect,com.splunk.hecclient,HecException,0,9,0,0,0,4,0,2,0,2 splunk-kafka-connect,com.splunk.hecclient,LoadBalancer,48,362,8,24,12,87,7,23,1,13 splunk-kafka-connect,com.splunk.hecclient,HecAckPoller,122,711,11,45,34,160,9,44,0,25 splunk-kafka-connect,com.splunk.hecclient,HecAckPoller.RunAckQuery,21,26,0,0,3,8,0,2,0,2 -splunk-kafka-connect,com.splunk.hecclient,HttpClientBuilder,69,132,0,4,16,46,2,13,2,11 -splunk-kafka-connect,com.splunk.hecclient,RawEvent,11,64,0,8,3,17,0,8,0,4 +splunk-kafka-connect,com.splunk.hecclient,HttpClientBuilder,69,161,0,8,16,52,2,17,2,13 +splunk-kafka-connect,com.splunk.hecclient,RawEvent,11,63,0,8,3,17,0,8,0,4 splunk-kafka-connect,com.splunk.hecclient,RawEventBatch,22,169,1,9,8,45,3,17,2,13 splunk-kafka-connect,com.splunk.hecclient,JsonEvent,22,60,0,8,6,21,0,11,0,7 splunk-kafka-connect,com.splunk.hecclient,HecEmptyEventException,5,4,0,0,2,2,1,1,1,1 splunk-kafka-connect,com.splunk.hecclient,HecChannel,0,116,0,12,0,35,0,22,0,16 -splunk-kafka-connect,com.splunk.hecclient,EventBatch,0,238,0,12,0,60,0,28,0,22 +splunk-kafka-connect,com.splunk.hecclient,EventBatch,0,236,0,12,0,60,0,28,0,22 splunk-kafka-connect,com.splunk.hecclient,HecNullEventException,5,4,0,0,2,2,1,1,1,1 splunk-kafka-connect,com.splunk.hecclient,Event,3,204,0,6,1,67,1,29,1,26 splunk-kafka-connect,com.splunk.hecclient,RawEventBatch.Builder,0,45,0,0,0,13,0,7,0,7 splunk-kafka-connect,com.splunk.hecclient,Indexer,179,420,9,19,40,96,10,23,3,16 splunk-kafka-connect,com.splunk.hecclient,EventBatch.GzipDataContentProducer,0,21,0,0,0,6,0,2,0,2 splunk-kafka-connect,com.splunk.hecclient,HecAckPollResponse,0,43,0,4,0,9,0,5,0,3 -splunk-kafka-connect,com.splunk.hecclient,HecConfig,5,227,1,1,1,81,2,43,1,43 +splunk-kafka-connect,com.splunk.hecclient,HecConfig,5,246,1,1,1,88,2,47,1,47 splunk-kafka-connect,com.splunk.hecclient,Indexer.new Configuration() {...},21,0,0,0,4,0,2,0,2,0 splunk-kafka-connect,com.splunk.hecclient,HecURIBuilder,6,59,0,4,2,13,0,4,0,2 splunk-kafka-connect,com.splunk.hecclient,DoubleSerializer,0,15,0,0,0,4,0,2,0,2 @@ -36,7 +36,7 @@ splunk-kafka-connect,com.splunk.kafka.connect,JacksonStructModule.StructSerializ splunk-kafka-connect,com.splunk.kafka.connect,VersionUtils,11,86,0,10,4,26,1,11,1,6 splunk-kafka-connect,com.splunk.kafka.connect,JacksonStructModule,0,10,0,0,0,3,0,1,0,1 splunk-kafka-connect,com.splunk.kafka.connect,SplunkSinkRecord,74,188,14,14,22,47,18,9,5,8 -splunk-kafka-connect,com.splunk.kafka.connect,SplunkSinkConnectorConfig,5,1270,6,72,1,198,6,47,0,14 +splunk-kafka-connect,com.splunk.kafka.connect,SplunkSinkConnectorConfig,5,1310,6,72,1,204,6,47,0,14 splunk-kafka-connect,com.splunk.kafka.connect,SplunkSinkConnector,57,383,4,30,11,85,5,28,1,15 splunk-kafka-connect,com.splunk.kafka.connect,AbstractClientWrapper,0,3,0,0,0,1,0,1,0,1 splunk-kafka-connect,com.splunk.kafka.connect,SplunkSinkTask,416,1134,58,84,68,260,48,56,3,30 diff --git a/target/site/jacoco/jacoco.xml b/target/site/jacoco/jacoco.xml index 07e69bd5..aa1e915a 100644 --- a/target/site/jacoco/jacoco.xml +++ b/target/site/jacoco/jacoco.xml @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file