17
17
18
18
import akka .actor .AbstractActor ;
19
19
import akka .actor .Props ;
20
- import akka .http .javadsl .model .StatusCodes ;
21
20
import akka .pattern .PatternsCS ;
22
21
import com .arpnetworking .logback .annotations .LogValue ;
23
22
import com .arpnetworking .metrics .Metrics ;
31
30
import com .google .common .base .Charsets ;
32
31
import com .google .common .collect .EvictingQueue ;
33
32
import com .google .common .collect .ImmutableList ;
34
- import com .google .common .collect .Sets ;
33
+ import com .google .common .collect .ImmutableSet ;
35
34
import org .asynchttpclient .AsyncCompletionHandler ;
36
35
import org .asynchttpclient .AsyncHttpClient ;
37
36
import org .asynchttpclient .Request ;
44
43
import java .util .Objects ;
45
44
import java .util .Optional ;
46
45
import java .util .Random ;
47
- import java .util .Set ;
48
46
import java .util .concurrent .CompletableFuture ;
49
47
import java .util .concurrent .CompletionStage ;
50
48
import java .util .concurrent .TimeUnit ;
@@ -95,6 +93,7 @@ public HttpPostSinkActor(
95
93
final MetricsFactory metricsFactory ) {
96
94
_client = client ;
97
95
_sink = sink ;
96
+ _acceptedStatusCodes = sink .getAcceptedStatusCodes ();
98
97
_maximumConcurrency = maximumConcurrency ;
99
98
_pendingRequests = EvictingQueue .create (maximumQueueSize );
100
99
if (Objects .equals (Duration .ZERO , spreadPeriod )) {
@@ -121,6 +120,7 @@ public HttpPostSinkActor(
121
120
public Object toLogValue () {
122
121
return LogValueMapFactory .builder (this )
123
122
.put ("sink" , _sink )
123
+ .put ("acceptedStatusCodes" , _acceptedStatusCodes )
124
124
.put ("maximumConcurrency" , _maximumConcurrency )
125
125
.put ("spreadingDelayMillis" , _spreadingDelayMillis )
126
126
.put ("waiting" , _waiting )
@@ -293,7 +293,7 @@ private void fireNextRequest() {
293
293
String .format ("%s/%dxx" , _responseStatusName , i ),
294
294
responseStatusClass == i ? 1 : 0 );
295
295
}
296
- if (ACCEPTED_STATUS_CODES .contains (responseStatusCode )) {
296
+ if (_acceptedStatusCodes .contains (responseStatusCode )) {
297
297
returnValue = new PostSuccess (result );
298
298
metrics .incrementCounter (_samplesSentName , requestEntry .getPopulationSize ());
299
299
} else {
@@ -330,6 +330,7 @@ public void postStop() throws Exception {
330
330
private final HttpPostSink _sink ;
331
331
private final int _spreadingDelayMillis ;
332
332
private final MetricsFactory _metricsFactory ;
333
+ private final ImmutableSet <Integer > _acceptedStatusCodes ;
333
334
334
335
private final String _evictedRequestsName ;
335
336
private final String _requestLatencyName ;
@@ -339,22 +340,11 @@ public void postStop() throws Exception {
339
340
private final String _samplesDroppedName ;
340
341
private final String _samplesSentName ;
341
342
342
-
343
343
private static final Logger LOGGER = LoggerFactory .getLogger (HttpPostSink .class );
344
344
private static final Logger POST_ERROR_LOGGER = LoggerFactory .getRateLimitLogger (HttpPostSink .class , Duration .ofSeconds (30 ));
345
345
private static final Logger EVICTED_LOGGER = LoggerFactory .getRateLimitLogger (HttpPostSink .class , Duration .ofSeconds (30 ));
346
- private static final Set <Integer > ACCEPTED_STATUS_CODES = Sets .newHashSet ();
347
346
private static final com .google .common .collect .ImmutableList <Integer > STATUS_CLASSES = ImmutableList .of (2 , 3 , 4 , 5 );
348
347
349
-
350
- static {
351
- // TODO(vkoskela): Make accepted status codes configurable [AINT-682]
352
- ACCEPTED_STATUS_CODES .add (StatusCodes .OK .intValue ());
353
- ACCEPTED_STATUS_CODES .add (StatusCodes .CREATED .intValue ());
354
- ACCEPTED_STATUS_CODES .add (StatusCodes .ACCEPTED .intValue ());
355
- ACCEPTED_STATUS_CODES .add (StatusCodes .NO_CONTENT .intValue ());
356
- }
357
-
358
348
/**
359
349
* Message class to wrap a list of {@link AggregatedData}.
360
350
*/
0 commit comments