summaryrefslogtreecommitdiffstats
path: root/configserver/src
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2023-01-05 10:34:07 +0100
committerHenning Baldersheim <balder@yahoo-inc.com>2023-01-25 10:48:48 +0100
commitd8a3a7bf6d9685db965833064876d8ed02ed0699 (patch)
tree40a5491e1187a075d1a9c0b000bb9de2f215560e /configserver/src
parentf8338e1ea64c58a7986f929a4c3c229b92a8cfde (diff)
VespaHttpClientBuilder follow builder pattern and add connect and socket timeout to builder.
Diffstat (limited to 'configserver/src')
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java2
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/application/ConfigConvergenceChecker.java9
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/application/HttpProxy.java7
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/http/LogRetriever.java2
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/http/SecretStoreValidator.java2
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/http/SimpleHttpFetcher.java17
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/http/TesterClient.java2
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/metrics/ClusterDeploymentMetricsRetriever.java11
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/metrics/ClusterProtonMetricsRetriever.java19
9 files changed, 32 insertions, 39 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java b/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java
index b11355df689..ca06fe202d9 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java
@@ -214,7 +214,7 @@ public class ApplicationRepository implements com.yahoo.config.provision.Deploye
public static class Builder {
private TenantRepository tenantRepository;
private Optional<Provisioner> hostProvisioner;
- private HttpProxy httpProxy = new HttpProxy(new SimpleHttpFetcher());
+ private HttpProxy httpProxy = new HttpProxy(new SimpleHttpFetcher(Duration.ofSeconds(30)));
private Clock clock = Clock.systemUTC();
private ConfigserverConfig configserverConfig = new ConfigserverConfig.Builder().build();
private Orchestrator orchestrator;
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/application/ConfigConvergenceChecker.java b/configserver/src/main/java/com/yahoo/vespa/config/server/application/ConfigConvergenceChecker.java
index 4e02964fa58..132d3d913e7 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/application/ConfigConvergenceChecker.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/application/ConfigConvergenceChecker.java
@@ -14,6 +14,7 @@ import com.yahoo.config.model.api.ServiceInfo;
import org.apache.hc.client5.http.async.methods.SimpleHttpRequest;
import org.apache.hc.client5.http.async.methods.SimpleHttpResponse;
import org.apache.hc.client5.http.async.methods.SimpleRequestBuilder;
+import org.apache.hc.client5.http.config.ConnectionConfig;
import org.apache.hc.client5.http.config.RequestConfig;
import org.apache.hc.client5.http.impl.async.CloseableHttpAsyncClient;
import org.apache.hc.client5.http.impl.nio.PoolingAsyncClientConnectionManagerBuilder;
@@ -280,23 +281,23 @@ public class ConfigConvergenceChecker extends AbstractComponent {
}
}
- @SuppressWarnings("deprecation")
private static RequestConfig createRequestConfig(Duration timeout) {
return RequestConfig.custom()
.setConnectionRequestTimeout(Timeout.ofSeconds(1))
.setResponseTimeout(Timeout.ofMilliseconds(timeout.toMillis()))
- .setConnectTimeout(Timeout.ofSeconds(1))
.build();
}
- @SuppressWarnings("deprecation")
private static CloseableHttpAsyncClient createHttpClient() {
return VespaAsyncHttpClientBuilder
.create(tlsStrategy ->
PoolingAsyncClientConnectionManagerBuilder.create()
.setMaxConnTotal(100)
.setMaxConnPerRoute(10)
- .setConnectionTimeToLive(TimeValue.ofMilliseconds(1))
+ .setDefaultConnectionConfig(ConnectionConfig.custom()
+ .setTimeToLive(TimeValue.ofMilliseconds(1))
+ .setConnectTimeout(Timeout.ofSeconds(1))
+ .build())
.setTlsStrategy(tlsStrategy)
.build())
.setIOReactorConfig(IOReactorConfig.custom()
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/application/HttpProxy.java b/configserver/src/main/java/com/yahoo/vespa/config/server/application/HttpProxy.java
index 1168898d126..0aa86ab211a 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/application/HttpProxy.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/application/HttpProxy.java
@@ -21,18 +21,15 @@ import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.nio.charset.Charset;
+import java.time.Duration;
import java.util.List;
-import java.util.logging.Logger;
import static java.nio.charset.StandardCharsets.UTF_8;
public class HttpProxy {
-
- private static final Logger logger = Logger.getLogger(HttpProxy.class.getName());
-
private final HttpFetcher fetcher;
- @Inject public HttpProxy(NodeHostnameVerifier verifier) { this(new SimpleHttpFetcher(verifier)); }
+ @Inject public HttpProxy(NodeHostnameVerifier verifier) { this(new SimpleHttpFetcher(Duration.ofSeconds(30), verifier)); }
public HttpProxy(HttpFetcher fetcher) { this.fetcher = fetcher; }
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/http/LogRetriever.java b/configserver/src/main/java/com/yahoo/vespa/config/server/http/LogRetriever.java
index 17a3b186beb..bd36ff88aeb 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/http/LogRetriever.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/http/LogRetriever.java
@@ -18,7 +18,7 @@ import java.util.Optional;
*/
public class LogRetriever {
- private final CloseableHttpClient httpClient = VespaHttpClientBuilder.create().build();
+ private final CloseableHttpClient httpClient = VespaHttpClientBuilder.custom().build().build();
@SuppressWarnings("deprecation")
public HttpResponse getLogs(String logServerUri, Optional<Instant> deployTime) {
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/http/SecretStoreValidator.java b/configserver/src/main/java/com/yahoo/vespa/config/server/http/SecretStoreValidator.java
index 78fdf0a4a02..c4d849c3be0 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/http/SecretStoreValidator.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/http/SecretStoreValidator.java
@@ -33,7 +33,7 @@ public class SecretStoreValidator {
private static final String PROTOCOL = "http://";
private static final String AWS_PARAMETER_VALIDATION_HANDLER_POSTFIX = ":4080/validate-secret-store";
private final SecretStore secretStore;
- private final CloseableHttpClient httpClient = VespaHttpClientBuilder.create().build();
+ private final CloseableHttpClient httpClient = VespaHttpClientBuilder.custom().build().build();
public SecretStoreValidator(SecretStore secretStore) {
this.secretStore = secretStore;
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/http/SimpleHttpFetcher.java b/configserver/src/main/java/com/yahoo/vespa/config/server/http/SimpleHttpFetcher.java
index da4e5d24c48..7bab17b2814 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/http/SimpleHttpFetcher.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/http/SimpleHttpFetcher.java
@@ -8,14 +8,13 @@ import org.apache.hc.client5.http.classic.methods.HttpGet;
import org.apache.hc.client5.http.config.RequestConfig;
import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
import org.apache.hc.client5.http.impl.classic.CloseableHttpResponse;
-import org.apache.hc.client5.http.impl.classic.HttpClientBuilder;
-import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager;
import org.apache.hc.core5.http.HttpEntity;
import org.apache.hc.core5.util.Timeout;
import java.io.IOException;
import java.net.SocketTimeoutException;
import java.net.URI;
+import java.time.Duration;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -24,13 +23,14 @@ public class SimpleHttpFetcher implements HttpFetcher {
private final CloseableHttpClient client;
- public SimpleHttpFetcher() { this(null); }
+ public SimpleHttpFetcher(Duration connectTimeout) { this(connectTimeout, null); }
- public SimpleHttpFetcher(NodeHostnameVerifier verifier) {
- HttpClientBuilder b = verifier != null
- ? VespaHttpClientBuilder.create(PoolingHttpClientConnectionManager::new, verifier::verify)
- : VespaHttpClientBuilder.create();
- this.client = b.build();
+ public SimpleHttpFetcher(Duration connectTimeout, NodeHostnameVerifier verifier) {
+ VespaHttpClientBuilder builder = VespaHttpClientBuilder.custom().setConnectTimeout(Timeout.of(connectTimeout));
+ if (verifier != null) {
+ builder.set(verifier::verify);
+ }
+ this.client = builder.build().build();
}
@Override
@@ -41,7 +41,6 @@ public class SimpleHttpFetcher implements HttpFetcher {
request.addHeader("Connection", "Close");
request.setConfig(
RequestConfig.custom()
- .setConnectTimeout(Timeout.ofMilliseconds(params.readTimeoutMs))
.setResponseTimeout(Timeout.ofMilliseconds(params.readTimeoutMs))
.build());
try (CloseableHttpResponse response = client.execute(request)) {
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/http/TesterClient.java b/configserver/src/main/java/com/yahoo/vespa/config/server/http/TesterClient.java
index 4b339f72fa6..74dbe05ba62 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/http/TesterClient.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/http/TesterClient.java
@@ -23,7 +23,7 @@ import java.util.logging.Logger;
*/
public class TesterClient {
- private final CloseableHttpClient httpClient = VespaHttpClientBuilder.create().build();
+ private final CloseableHttpClient httpClient = VespaHttpClientBuilder.custom().build().build();
private static final Logger logger = Logger.getLogger(TesterClient.class.getName());
public HttpResponse getStatus(String testerHostname, int port) {
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/metrics/ClusterDeploymentMetricsRetriever.java b/configserver/src/main/java/com/yahoo/vespa/config/server/metrics/ClusterDeploymentMetricsRetriever.java
index 548ea8046d4..f52f0783f62 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/metrics/ClusterDeploymentMetricsRetriever.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/metrics/ClusterDeploymentMetricsRetriever.java
@@ -55,17 +55,14 @@ public class ClusterDeploymentMetricsRetriever {
private static final ExecutorService executor = Executors.newFixedThreadPool(10, new DaemonThreadFactory("cluster-deployment-metrics-retriever-"));
- @SuppressWarnings("deprecation")
private static final CloseableHttpClient httpClient =
- VespaHttpClientBuilder
- .create(registry -> new PoolingHttpClientConnectionManager(registry,
- null,
- null,
- TimeValue.ofMinutes(1)))
+ VespaHttpClientBuilder.custom()
+ .setConnectTimeout(Timeout.ofSeconds(10))
+ .set(registry -> new PoolingHttpClientConnectionManager(registry, null, null, TimeValue.ofMinutes(1)))
+ .build()
.setDefaultRequestConfig(
RequestConfig.custom()
.setConnectionRequestTimeout(Timeout.ofSeconds(60))
- .setConnectTimeout(Timeout.ofSeconds(10))
.setResponseTimeout(Timeout.ofSeconds(10))
.build())
.build();
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/metrics/ClusterProtonMetricsRetriever.java b/configserver/src/main/java/com/yahoo/vespa/config/server/metrics/ClusterProtonMetricsRetriever.java
index 0dbe0131e9b..edc0e18edc7 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/metrics/ClusterProtonMetricsRetriever.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/metrics/ClusterProtonMetricsRetriever.java
@@ -12,7 +12,6 @@ import org.apache.hc.client5.http.classic.methods.HttpGet;
import org.apache.hc.client5.http.config.RequestConfig;
import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
import org.apache.hc.client5.http.impl.classic.CloseableHttpResponse;
-import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager;
import org.apache.hc.core5.http.io.entity.EntityUtils;
import org.apache.hc.core5.util.Timeout;
@@ -27,15 +26,15 @@ public class ClusterProtonMetricsRetriever {
private static final Logger log = Logger.getLogger(ClusterProtonMetricsRetriever.class.getName());
- @SuppressWarnings("deprecation")
- private static final CloseableHttpClient httpClient = VespaHttpClientBuilder
- .create(PoolingHttpClientConnectionManager::new)
- .setDefaultRequestConfig(
- RequestConfig.custom()
- .setConnectTimeout(Timeout.ofSeconds(10))
- .setResponseTimeout(Timeout.ofSeconds(10))
- .build())
- .build();
+ private static final CloseableHttpClient httpClient =
+ VespaHttpClientBuilder
+ .custom()
+ .setConnectTimeout(Timeout.ofSeconds(10))
+ .build()
+ .setDefaultRequestConfig(RequestConfig.custom()
+ .setResponseTimeout(Timeout.ofSeconds(10))
+ .build())
+ .build();
public Map<String, ProtonMetricsAggregator> requestMetricsGroupedByCluster(Collection<URI> hosts) {