From 263b6facead35c3eb65eec286a26a96707087c6a Mon Sep 17 00:00:00 2001 From: "kyrylo.bilchenko" Date: Wed, 3 Apr 2019 12:13:58 +0200 Subject: [PATCH 1/4] Memory consumption fix --- README.md | 2 +- browsermob-core/pom.xml | 2 +- .../bmp/filters/HarCaptureFilter.java | 1 - .../bmp/filters/StatsDMetricsFilter.java | 26 +++++-------------- browsermob-dist/pom.xml | 2 +- browsermob-legacy/pom.xml | 2 +- browsermob-rest/pom.xml | 2 +- mitm/pom.xml | 2 +- pom.xml | 2 +- 9 files changed, 13 insertions(+), 28 deletions(-) diff --git a/README.md b/README.md index 73ab65cdc..1c0504792 100644 --- a/README.md +++ b/README.md @@ -395,7 +395,7 @@ When you build the latest code from source, you'll have access to the latest sna net.lightbody.bmp browsermob-core - 2.1.23-SNAPSHOT + 2.1.23 test ``` diff --git a/browsermob-core/pom.xml b/browsermob-core/pom.xml index f014e04f8..c026d53f9 100644 --- a/browsermob-core/pom.xml +++ b/browsermob-core/pom.xml @@ -6,7 +6,7 @@ browsermob-proxy net.lightbody.bmp - 2.1.23-SNAPSHOT + 2.1.23 4.0.0 diff --git a/browsermob-core/src/main/java/net/lightbody/bmp/filters/HarCaptureFilter.java b/browsermob-core/src/main/java/net/lightbody/bmp/filters/HarCaptureFilter.java index e349cf93c..26b386b53 100644 --- a/browsermob-core/src/main/java/net/lightbody/bmp/filters/HarCaptureFilter.java +++ b/browsermob-core/src/main/java/net/lightbody/bmp/filters/HarCaptureFilter.java @@ -763,7 +763,6 @@ public void serverToProxyResponseReceived() { } protected static void logFailedRequestIfRequired(HarRequest request, HarResponse response) { - System.out.println("TEST"); if (!isAlreadyLoggedIn.get() && (response.getStatus() >= 500 || response.getStatus() == 0)) { MDC.put("caller", "mobproxy"); MDC.put("http_response_code", String.valueOf(response.getStatus())); diff --git a/browsermob-core/src/main/java/net/lightbody/bmp/filters/StatsDMetricsFilter.java b/browsermob-core/src/main/java/net/lightbody/bmp/filters/StatsDMetricsFilter.java index 6127a22e4..9fdb3ead2 100644 --- a/browsermob-core/src/main/java/net/lightbody/bmp/filters/StatsDMetricsFilter.java +++ b/browsermob-core/src/main/java/net/lightbody/bmp/filters/StatsDMetricsFilter.java @@ -8,29 +8,16 @@ import io.netty.handler.codec.http.HttpResponse; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; +import org.littleshoot.proxy.HttpFiltersAdapter; import java.net.URI; import java.net.URISyntaxException; public class StatsDMetricsFilter extends HttpsAwareFiltersAdapter { - private StatsDClient client; - private static InheritableThreadLocal HTTP_REQUEST_STORAGE = new InheritableThreadLocal<>(); - public StatsDMetricsFilter(HttpRequest originalRequest, ChannelHandlerContext ctx) { super(originalRequest, ctx); - this.client = new NonBlockingStatsDClient("automated_tests", getStatsDHost(), getStatsDPort()); - } - - @Override - public HttpResponse clientToProxyRequest(HttpObject httpObject) { - if (httpObject instanceof HttpRequest) { - HttpRequest httpRequest = (HttpRequest) httpObject; - HTTP_REQUEST_STORAGE.set(httpRequest); - } - return null; } - @Override public HttpObject serverToProxyResponse(HttpObject httpObject) { if (HttpResponse.class.isAssignableFrom(httpObject.getClass())) { @@ -42,14 +29,13 @@ public HttpObject serverToProxyResponse(HttpObject httpObject) { } private void prepareStatsDMetrics(int status) { - if (status > 399 || status == 0) { - String metric; - HttpRequest request = HTTP_REQUEST_STORAGE.get(); - String url = getFullUrl(request); - metric = getProxyPrefix().concat( + if (status > 0 || status == 0) { + String url = getFullUrl(originalRequest); + String metric = getProxyPrefix().concat( prepareMetric(url)).concat(String.format(".%s", status)); + StatsDClient client = new NonBlockingStatsDClient("automated_tests", getStatsDHost(), getStatsDPort()); client.increment(metric); - HTTP_REQUEST_STORAGE.remove(); + client.stop(); } } diff --git a/browsermob-dist/pom.xml b/browsermob-dist/pom.xml index 89ae83d5b..91c726953 100644 --- a/browsermob-dist/pom.xml +++ b/browsermob-dist/pom.xml @@ -4,7 +4,7 @@ browsermob-proxy net.lightbody.bmp - 2.1.23-SNAPSHOT + 2.1.23 4.0.0 diff --git a/browsermob-legacy/pom.xml b/browsermob-legacy/pom.xml index 7d79f2866..feb839159 100644 --- a/browsermob-legacy/pom.xml +++ b/browsermob-legacy/pom.xml @@ -6,7 +6,7 @@ browsermob-proxy net.lightbody.bmp - 2.1.23-SNAPSHOT + 2.1.23 4.0.0 diff --git a/browsermob-rest/pom.xml b/browsermob-rest/pom.xml index bc5cf6ff5..85308da70 100644 --- a/browsermob-rest/pom.xml +++ b/browsermob-rest/pom.xml @@ -5,7 +5,7 @@ browsermob-proxy net.lightbody.bmp - 2.1.23-SNAPSHOT + 2.1.23 4.0.0 diff --git a/mitm/pom.xml b/mitm/pom.xml index ba27b42cc..8ef0105c1 100644 --- a/mitm/pom.xml +++ b/mitm/pom.xml @@ -4,7 +4,7 @@ browsermob-proxy net.lightbody.bmp - 2.1.23-SNAPSHOT + 2.1.23 4.0.0 diff --git a/pom.xml b/pom.xml index 68d36a5cb..23c54a021 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 net.lightbody.bmp browsermob-proxy - 2.1.23-SNAPSHOT + 2.1.23 browsermob-core browsermob-legacy From b82290235750d69b5369cfd4e3a3e35a5b1a6b0b Mon Sep 17 00:00:00 2001 From: "kyrylo.bilchenko" Date: Wed, 3 Apr 2019 13:30:13 +0200 Subject: [PATCH 2/4] Fix stats d metric filter --- .../java/net/lightbody/bmp/filters/StatsDMetricsFilter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/browsermob-core/src/main/java/net/lightbody/bmp/filters/StatsDMetricsFilter.java b/browsermob-core/src/main/java/net/lightbody/bmp/filters/StatsDMetricsFilter.java index 9fdb3ead2..b6836677b 100644 --- a/browsermob-core/src/main/java/net/lightbody/bmp/filters/StatsDMetricsFilter.java +++ b/browsermob-core/src/main/java/net/lightbody/bmp/filters/StatsDMetricsFilter.java @@ -29,7 +29,7 @@ public HttpObject serverToProxyResponse(HttpObject httpObject) { } private void prepareStatsDMetrics(int status) { - if (status > 0 || status == 0) { + if (status > 399 || status == 0) { String url = getFullUrl(originalRequest); String metric = getProxyPrefix().concat( prepareMetric(url)).concat(String.format(".%s", status)); From 67722ecb590054fe866eccee784a1b9932e22f8b Mon Sep 17 00:00:00 2001 From: "kyrylo.bilchenko" Date: Wed, 3 Apr 2019 15:35:00 +0200 Subject: [PATCH 3/4] small fix --- .../net/lightbody/bmp/filters/StatsDMetricsFilter.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/browsermob-core/src/main/java/net/lightbody/bmp/filters/StatsDMetricsFilter.java b/browsermob-core/src/main/java/net/lightbody/bmp/filters/StatsDMetricsFilter.java index b6836677b..7f5575bb2 100644 --- a/browsermob-core/src/main/java/net/lightbody/bmp/filters/StatsDMetricsFilter.java +++ b/browsermob-core/src/main/java/net/lightbody/bmp/filters/StatsDMetricsFilter.java @@ -40,19 +40,19 @@ private void prepareStatsDMetrics(int status) { } - static String getStatsDHost() { + protected static String getStatsDHost() { return StringUtils.isEmpty(System.getenv("STATSD_HOST")) ? "localhost" : System.getenv("STATSD_HOST"); } - static int getStatsDPort() { + protected static int getStatsDPort() { return StringUtils.isEmpty(System.getenv("STATSD_PORT")) ? 8125 : NumberUtils.toInt(System.getenv("STATSD_PORT")); } - public static String getProxyPrefix() { + protected static String getProxyPrefix() { return "proxy."; } - public static String prepareMetric(String initialUrl) { + protected static String prepareMetric(String initialUrl) { URI uri = null; try { uri = new URI(initialUrl); From 9c7df84c41f5bf8a0573b77d687aa370b7f4abd8 Mon Sep 17 00:00:00 2001 From: "kyrylo.bilchenko" Date: Wed, 3 Apr 2019 15:49:29 +0200 Subject: [PATCH 4/4] SNAPSHOT version --- README.md | 2 +- browsermob-core/pom.xml | 2 +- browsermob-dist/pom.xml | 2 +- browsermob-legacy/pom.xml | 2 +- browsermob-rest/pom.xml | 2 +- mitm/pom.xml | 2 +- pom.xml | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 1c0504792..c83761823 100644 --- a/README.md +++ b/README.md @@ -395,7 +395,7 @@ When you build the latest code from source, you'll have access to the latest sna net.lightbody.bmp browsermob-core - 2.1.23 + 2.1.24-SNAPSHOT test ``` diff --git a/browsermob-core/pom.xml b/browsermob-core/pom.xml index c026d53f9..b6f77501b 100644 --- a/browsermob-core/pom.xml +++ b/browsermob-core/pom.xml @@ -6,7 +6,7 @@ browsermob-proxy net.lightbody.bmp - 2.1.23 + 2.1.24-SNAPSHOT 4.0.0 diff --git a/browsermob-dist/pom.xml b/browsermob-dist/pom.xml index 91c726953..93abb9b47 100644 --- a/browsermob-dist/pom.xml +++ b/browsermob-dist/pom.xml @@ -4,7 +4,7 @@ browsermob-proxy net.lightbody.bmp - 2.1.23 + 2.1.24-SNAPSHOT 4.0.0 diff --git a/browsermob-legacy/pom.xml b/browsermob-legacy/pom.xml index feb839159..a154b0d0c 100644 --- a/browsermob-legacy/pom.xml +++ b/browsermob-legacy/pom.xml @@ -6,7 +6,7 @@ browsermob-proxy net.lightbody.bmp - 2.1.23 + 2.1.24-SNAPSHOT 4.0.0 diff --git a/browsermob-rest/pom.xml b/browsermob-rest/pom.xml index 85308da70..144405a84 100644 --- a/browsermob-rest/pom.xml +++ b/browsermob-rest/pom.xml @@ -5,7 +5,7 @@ browsermob-proxy net.lightbody.bmp - 2.1.23 + 2.1.24-SNAPSHOT 4.0.0 diff --git a/mitm/pom.xml b/mitm/pom.xml index 8ef0105c1..7aa96b2af 100644 --- a/mitm/pom.xml +++ b/mitm/pom.xml @@ -4,7 +4,7 @@ browsermob-proxy net.lightbody.bmp - 2.1.23 + 2.1.24-SNAPSHOT 4.0.0 diff --git a/pom.xml b/pom.xml index 23c54a021..7fc8df66d 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 net.lightbody.bmp browsermob-proxy - 2.1.23 + 2.1.24-SNAPSHOT browsermob-core browsermob-legacy