Skip to content
This repository was archived by the owner on Jul 26, 2023. It is now read-only.

Commit 3558f12

Browse files
Update statsD client creation process and filtering (#23)
* Update statsD client creation process and filtering * Update snapshot
1 parent 99992b4 commit 3558f12

File tree

9 files changed

+44
-55
lines changed

9 files changed

+44
-55
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -395,7 +395,7 @@ When you build the latest code from source, you'll have access to the latest sna
395395
<dependency>
396396
<groupId>net.lightbody.bmp</groupId>
397397
<artifactId>browsermob-core</artifactId>
398-
<version>2.1.31-SNAPSHOT</version>
398+
<version>2.1.32-SNAPSHOT</version>
399399
<scope>test</scope>
400400
</dependency>
401401
```

browsermob-core/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<parent>
77
<artifactId>browsermob-proxy</artifactId>
88
<groupId>net.lightbody.bmp</groupId>
9-
<version>2.1.31-SNAPSHOT</version>
9+
<version>2.1.32-SNAPSHOT</version>
1010
</parent>
1111
<modelVersion>4.0.0</modelVersion>
1212

browsermob-core/src/main/java/net/lightbody/bmp/filters/HarCaptureFilter.java

Lines changed: 23 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -165,13 +165,13 @@ public HarCaptureFilter(HttpRequest originalRequest, ChannelHandlerContext ctx,
165165

166166
@Override
167167
public HttpObject proxyToClientResponse(HttpObject httpObject) {
168-
if (httpObject instanceof LastHttpContent) {
168+
if (httpObject instanceof HttpResponse) {
169169
if (harEntry.getResponse().getStatus() == 0) {
170170
HarCaptureFilter.logFailedRequestIfRequired(harEntry.getRequest(), harEntry.getResponse());
171-
createStatsDClient();
172-
statsDClient.get().increment(getProxyPrefix().concat(prepareMetric(harEntry.getRequest().getUrl()))
171+
StatsDClient client = createStatsDClient();
172+
client.increment(getProxyPrefix().concat(prepareMetric(harEntry.getRequest().getUrl()))
173173
.concat("." + harEntry.getResponse().getStatus()).concat(".request_timeout"));
174-
stopStatsDClient();
174+
client.stop();
175175

176176
}
177177
}
@@ -284,10 +284,6 @@ public void serverToProxyResponseTimedOut() {
284284
// replace any existing HarResponse that was created if the server sent a partial response
285285
HarResponse response = HarCaptureUtil.createHarResponseForFailure();
286286
harEntry.setResponse(response);
287-
createStatsDClient();
288-
statsDClient.get().increment(getProxyPrefix().concat(prepareMetric(harEntry.getRequest().getUrl()))
289-
.concat("." + harEntry.getResponse().getStatus()).concat(".response_timeout"));
290-
stopStatsDClient();
291287

292288
response.setError(HarCaptureUtil.getResponseTimedOutErrorMessage());
293289

@@ -307,6 +303,12 @@ else if (sendFinishedNanos > 0L && responseReceiveStartedNanos == 0L) {
307303
else if (responseReceiveStartedNanos > 0L) {
308304
harEntry.getTimings().setReceive(timeoutTimestampNanos - responseReceiveStartedNanos, TimeUnit.NANOSECONDS);
309305
}
306+
307+
StatsDClient client = createStatsDClient();
308+
client.increment(getProxyPrefix().concat(prepareMetric(harEntry.getRequest().getUrl()))
309+
.concat("." + harEntry.getResponse().getStatus()).concat(".response_timeout"));
310+
client.stop();
311+
310312
logFailedRequestIfRequired(harEntry.getRequest(), harEntry.getResponse());
311313
}
312314

@@ -658,17 +660,18 @@ public InetSocketAddress proxyToServerResolutionStarted(String resolvingServerHo
658660
public void proxyToServerResolutionFailed(String hostAndPort) {
659661
HarResponse response = HarCaptureUtil.createHarResponseForFailure();
660662
harEntry.setResponse(response);
661-
createStatsDClient();
662-
statsDClient.get().increment(getProxyPrefix().concat(prepareMetric(harEntry.getRequest().getUrl()))
663-
.concat("." + harEntry.getResponse().getStatus()).concat(".server_resolution_fail"));
664-
stopStatsDClient();
665663

666664
response.setError(HarCaptureUtil.getResolutionFailedErrorMessage(hostAndPort));
667665

668666
// record the amount of time we attempted to resolve the hostname in the HarTimings object
669667
if (dnsResolutionStartedNanos > 0L) {
670668
harEntry.getTimings().setDns(System.nanoTime() - dnsResolutionStartedNanos, TimeUnit.NANOSECONDS);
671669
}
670+
671+
StatsDClient client = createStatsDClient();
672+
client.increment(getProxyPrefix().concat(prepareMetric(harEntry.getRequest().getUrl()))
673+
.concat("." + harEntry.getResponse().getStatus()).concat(".server_resolution_fail"));
674+
client.stop();
672675
logFailedRequestIfRequired(harEntry.getRequest(), harEntry.getResponse());
673676
}
674677

@@ -704,10 +707,7 @@ public void proxyToServerConnectionStarted() {
704707
@Override
705708
public void proxyToServerConnectionFailed() {
706709
HarResponse response = HarCaptureUtil.createHarResponseForFailure();
707-
createStatsDClient();
708-
statsDClient.get().increment(getProxyPrefix().concat(prepareMetric(harEntry.getRequest().getUrl()))
709-
.concat("." + harEntry.getResponse().getStatus()).concat(".server_connection_fail"));
710-
stopStatsDClient();
710+
711711
harEntry.setResponse(response);
712712

713713
response.setError(HarCaptureUtil.getConnectionFailedErrorMessage());
@@ -716,6 +716,11 @@ public void proxyToServerConnectionFailed() {
716716
if (connectionStartedNanos > 0L) {
717717
harEntry.getTimings().setConnect(System.nanoTime() - connectionStartedNanos, TimeUnit.NANOSECONDS);
718718
}
719+
720+
StatsDClient client = createStatsDClient();
721+
client.increment(getProxyPrefix().concat(prepareMetric(harEntry.getRequest().getUrl()))
722+
.concat("." + harEntry.getResponse().getStatus()).concat(".server_connection_fail"));
723+
client.stop();
719724
}
720725

721726
@Override
@@ -794,16 +799,7 @@ protected static void logFailedRequestIfRequired(HarRequest request, HarResponse
794799
}
795800
}
796801

797-
private void createStatsDClient() {
798-
if (statsDClient.get() == null) {
799-
statsDClient.set(new NonBlockingStatsDClient("automated_tests", getStatsDHost(), getStatsDPort()));
800-
}
801-
}
802-
803-
private void stopStatsDClient() {
804-
if (Objects.nonNull(statsDClient.get())) {
805-
statsDClient.get().stop();
806-
statsDClient.remove();
807-
}
802+
private StatsDClient createStatsDClient() {
803+
return new NonBlockingStatsDClient("automated_tests", getStatsDHost(), getStatsDPort());
808804
}
809805
}

browsermob-core/src/test/java/net/lightbody/bmp/proxy/QuiescenceTest.java

Lines changed: 14 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,7 @@
1919
import java.util.concurrent.atomic.AtomicInteger;
2020
import java.util.concurrent.atomic.AtomicLong;
2121

22-
import static org.junit.Assert.assertEquals;
23-
import static org.junit.Assert.assertFalse;
24-
import static org.junit.Assert.assertTrue;
25-
import static org.junit.Assert.fail;
22+
import static org.junit.Assert.*;
2623
import static org.mockserver.model.HttpRequest.request;
2724
import static org.mockserver.model.HttpResponse.response;
2825

@@ -218,7 +215,6 @@ public void testWaitForQuiescenceTimeoutLessThanQuietPeriodUnuccessful() throws
218215
}
219216

220217
@Test
221-
@Ignore //TODO: ignoring this test because it seems to fail on Java 8 under travis-ci. determine if there is an actual code defect, or just a test/environment defect.
222218
public void testWaitForQuiescenceInterruptedBySecondRequestSuccessful() throws InterruptedException {
223219
mockServer.when(
224220
request().withMethod("GET")
@@ -235,27 +231,24 @@ public void testWaitForQuiescenceInterruptedBySecondRequestSuccessful() throws I
235231

236232
final AtomicBoolean exceptionOccurred = new AtomicBoolean();
237233

238-
new Thread(new Runnable() {
239-
@Override
240-
public void run() {
241-
try (CloseableHttpClient client = NewProxyServerTestUtil.getNewHttpClient(proxy.getPort())) {
242-
HttpResponse response = client.execute(new HttpGet("http://127.0.0.1:" + mockServerPort + "/successquiesence2s"));
243-
EntityUtils.consumeQuietly(response.getEntity());
244-
firstRequestStatusCode.set(response.getStatusLine().getStatusCode());
234+
new Thread(() -> {
235+
try (CloseableHttpClient client = NewProxyServerTestUtil.getNewHttpClient(proxy.getPort())) {
236+
HttpResponse response = client.execute(new HttpGet("http://127.0.0.1:" + mockServerPort + "/successquiesence2s"));
237+
EntityUtils.consumeQuietly(response.getEntity());
238+
firstRequestStatusCode.set(response.getStatusLine().getStatusCode());
245239

246-
Thread.sleep(1000);
240+
Thread.sleep(1000);
247241

248-
response = client.execute(new HttpGet("http://127.0.0.1:" + mockServerPort + "/successquiesence2s"));
249-
EntityUtils.consumeQuietly(response.getEntity());
242+
response = client.execute(new HttpGet("http://127.0.0.1:" + mockServerPort + "/successquiesence2s"));
243+
EntityUtils.consumeQuietly(response.getEntity());
250244

251-
secondRequestFinished.set(System.nanoTime());
245+
secondRequestFinished.set(System.nanoTime());
252246

253-
secondRequestStatusCode.set(response.getStatusLine().getStatusCode());
254-
} catch (IOException | InterruptedException e) {
255-
exceptionOccurred.set(true);
247+
secondRequestStatusCode.set(response.getStatusLine().getStatusCode());
248+
} catch (IOException | InterruptedException e) {
249+
exceptionOccurred.set(true);
256250

257-
log.error("Exception occurred while making HTTP request", e);
258-
}
251+
log.error("Exception occurred while making HTTP request", e);
259252
}
260253
}).start();
261254

browsermob-dist/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<artifactId>browsermob-proxy</artifactId>
66
<groupId>net.lightbody.bmp</groupId>
7-
<version>2.1.31-SNAPSHOT</version>
7+
<version>2.1.32-SNAPSHOT</version>
88
</parent>
99
<modelVersion>4.0.0</modelVersion>
1010

browsermob-legacy/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<parent>
77
<artifactId>browsermob-proxy</artifactId>
88
<groupId>net.lightbody.bmp</groupId>
9-
<version>2.1.31-SNAPSHOT</version>
9+
<version>2.1.32-SNAPSHOT</version>
1010
</parent>
1111
<modelVersion>4.0.0</modelVersion>
1212

browsermob-rest/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<artifactId>browsermob-proxy</artifactId>
77
<groupId>net.lightbody.bmp</groupId>
8-
<version>2.1.31-SNAPSHOT</version>
8+
<version>2.1.32-SNAPSHOT</version>
99
</parent>
1010
<modelVersion>4.0.0</modelVersion>
1111

mitm/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<artifactId>browsermob-proxy</artifactId>
66
<groupId>net.lightbody.bmp</groupId>
7-
<version>2.1.31-SNAPSHOT</version>
7+
<version>2.1.32-SNAPSHOT</version>
88
</parent>
99
<modelVersion>4.0.0</modelVersion>
1010

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<modelVersion>4.0.0</modelVersion>
44
<groupId>net.lightbody.bmp</groupId>
55
<artifactId>browsermob-proxy</artifactId>
6-
<version>2.1.31-SNAPSHOT</version>
6+
<version>2.1.32-SNAPSHOT</version>
77
<modules>
88
<module>browsermob-core</module>
99
<module>browsermob-legacy</module>

0 commit comments

Comments
 (0)