aboutsummaryrefslogtreecommitdiffstats
path: root/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/RemoteMetricsFetcher.java
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@verizonmedia.com>2022-06-16 16:20:13 +0200
committerBjørn Christian Seime <bjorncs@verizonmedia.com>2022-06-16 16:32:02 +0200
commitee7a234316d5fee80e24efef7b7f0708815aa772 (patch)
tree19f14057db1962d7d1a394ab5793ec195e6a38f7 /metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/RemoteMetricsFetcher.java
parent69a3890ae5292eaaa527976c43535373d489ab00 (diff)
Use synchronous http client
Diffstat (limited to 'metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/RemoteMetricsFetcher.java')
-rw-r--r--metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/RemoteMetricsFetcher.java29
1 files changed, 15 insertions, 14 deletions
diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/RemoteMetricsFetcher.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/RemoteMetricsFetcher.java
index 5ca9e6fd950..cd05945f4f1 100644
--- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/RemoteMetricsFetcher.java
+++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/RemoteMetricsFetcher.java
@@ -1,9 +1,12 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package ai.vespa.metricsproxy.service;
+import org.apache.hc.client5.http.impl.classic.CloseableHttpResponse;
+import org.apache.hc.core5.http.HttpEntity;
+import org.apache.hc.core5.http.io.entity.EntityUtils;
+
+import java.io.BufferedInputStream;
import java.io.IOException;
-import java.io.InputStream;
-import java.util.concurrent.ExecutionException;
/**
* Fetch metrics for a given vespa service
@@ -22,21 +25,19 @@ public class RemoteMetricsFetcher extends HttpMetricFetcher {
* Connect to remote service over http and fetch metrics
*/
public void getMetrics(MetricsParser.Consumer consumer, int fetchCount) {
- try (InputStream stream = getJson()) {
- createMetrics(stream, consumer, fetchCount);
- } catch (IOException | InterruptedException | ExecutionException e) {
- }
+ try (CloseableHttpResponse response = getResponse()) {
+ HttpEntity entity = response.getEntity();
+ try {
+ MetricsParser.parse(new BufferedInputStream(entity.getContent(), HttpMetricFetcher.BUFFER_SIZE), consumer);
+ } catch (Exception e) {
+ handleException(e, entity.getContentType(), fetchCount);
+ } finally {
+ EntityUtils.consumeQuietly(entity);
+ }
+ } catch (IOException ignored) {}
}
void createMetrics(String data, MetricsParser.Consumer consumer, int fetchCount) throws IOException {
MetricsParser.parse(data, consumer);
}
- private void createMetrics(InputStream data, MetricsParser.Consumer consumer, int fetchCount) throws IOException {
- try {
- MetricsParser.parse(data, consumer);
- } catch (Exception e) {
- handleException(e, data, fetchCount);
- while (data.read() != -1) {}
- }
- }
}