diff options
author | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2022-06-16 16:20:13 +0200 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2022-06-16 16:32:02 +0200 |
commit | ee7a234316d5fee80e24efef7b7f0708815aa772 (patch) | |
tree | 19f14057db1962d7d1a394ab5793ec195e6a38f7 /metrics-proxy/src/main/java/ai/vespa/metricsproxy/service/RemoteMetricsFetcher.java | |
parent | 69a3890ae5292eaaa527976c43535373d489ab00 (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.java | 29 |
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) {} - } - } } |