@@ -318,7 +318,7 @@ public void testRateLimit() {
318
318
// clock is 0, token count is 2.
319
319
320
320
RateLimiter limiter =
321
- new RateLimiter (TWO_TOKENS_PER_MINUTE , 2 , mClock , 0.99f , mockConfigResolver );
321
+ new RateLimiter (TWO_TOKENS_PER_MINUTE , 2 , mClock , 0.99f , 0 , mockConfigResolver );
322
322
PerfMetric metric = PerfMetric .getDefaultInstance ();
323
323
// if PerfMetric object has neither TraceMetric or NetworkRequestMetric field set, always return
324
324
// true.
@@ -379,7 +379,7 @@ public void testDeviceSampling_tracesEnabledButNetworkDisabled() {
379
379
when (mockConfigResolver .getNetworkRequestSamplingRate ()).thenReturn (0.02f );
380
380
381
381
RateLimiter limiter =
382
- new RateLimiter (TWO_TOKENS_PER_MINUTE , 2 , mClock , 0.49f , mockConfigResolver );
382
+ new RateLimiter (TWO_TOKENS_PER_MINUTE , 2 , mClock , 0.49f , 0 , mockConfigResolver );
383
383
384
384
assertThat (limiter .getIsDeviceAllowedToSendTraces ()).isTrue ();
385
385
assertThat (limiter .getIsDeviceAllowedToSendNetworkEvents ()).isFalse ();
@@ -392,7 +392,7 @@ public void testDeviceSampling_tracesDisabledButNetworkEnabled() {
392
392
when (mockConfigResolver .getNetworkRequestSamplingRate ()).thenReturn (0.5f );
393
393
394
394
RateLimiter limiter =
395
- new RateLimiter (TWO_TOKENS_PER_MINUTE , 2 , mClock , 0.49f , mockConfigResolver );
395
+ new RateLimiter (TWO_TOKENS_PER_MINUTE , 2 , mClock , 0.49f , 0 , mockConfigResolver );
396
396
397
397
assertThat (limiter .getIsDeviceAllowedToSendNetworkEvents ()).isTrue ();
398
398
assertThat (limiter .getIsDeviceAllowedToSendTraces ()).isFalse ();
@@ -405,7 +405,7 @@ public void testDeviceSampling_tracesEnabledButFragmentDisabled_dropsFragmentTra
405
405
when (mockConfigResolver .getFragmentSamplingRate ()).thenReturn (0.02f );
406
406
407
407
RateLimiter limiter =
408
- new RateLimiter (TWO_TOKENS_PER_MINUTE , 2 , mClock , 0.49f , mockConfigResolver );
408
+ new RateLimiter (TWO_TOKENS_PER_MINUTE , 2 , mClock , 0.49f , 0.49f , mockConfigResolver );
409
409
410
410
assertThat (limiter .getIsDeviceAllowedToSendFragmentScreenTraces ()).isFalse ();
411
411
assertThat (limiter .getIsDeviceAllowedToSendTraces ()).isTrue ();
@@ -441,7 +441,7 @@ public void testDeviceSampling_tracesDisabledButFragmentEnabled_dropsFragmentTra
441
441
when (mockConfigResolver .getFragmentSamplingRate ()).thenReturn (0.5f );
442
442
443
443
RateLimiter limiter =
444
- new RateLimiter (TWO_TOKENS_PER_MINUTE , 2 , mClock , 0.49f , mockConfigResolver );
444
+ new RateLimiter (TWO_TOKENS_PER_MINUTE , 2 , mClock , 0.49f , 0.49f , mockConfigResolver );
445
445
446
446
assertThat (limiter .getIsDeviceAllowedToSendFragmentScreenTraces ()).isTrue ();
447
447
assertThat (limiter .getIsDeviceAllowedToSendTraces ()).isFalse ();
@@ -465,7 +465,7 @@ public void getIsDeviceAllowedToSendTraces_8digitSamplingRate_traceIsEnabled() {
465
465
when (mockConfigResolver .getTraceSamplingRate ()).thenReturn (0.00000001f );
466
466
467
467
RateLimiter limiter =
468
- new RateLimiter (TWO_TOKENS_PER_MINUTE , 2 , mClock , 0.000000005f , mockConfigResolver );
468
+ new RateLimiter (TWO_TOKENS_PER_MINUTE , 2 , mClock , 0.000000005f , 0 , mockConfigResolver );
469
469
470
470
assertThat (limiter .getIsDeviceAllowedToSendTraces ()).isTrue ();
471
471
}
@@ -476,7 +476,7 @@ public void getIsDeviceAllowedToSendTraces_8digitSamplingRate_traceIsDisabled()
476
476
when (mockConfigResolver .getTraceSamplingRate ()).thenReturn (0.00000001f );
477
477
478
478
RateLimiter limiter =
479
- new RateLimiter (TWO_TOKENS_PER_MINUTE , 2 , mClock , 0.000000011f , mockConfigResolver );
479
+ new RateLimiter (TWO_TOKENS_PER_MINUTE , 2 , mClock , 0.000000011f , 0 , mockConfigResolver );
480
480
481
481
assertThat (limiter .getIsDeviceAllowedToSendTraces ()).isFalse ();
482
482
}
@@ -487,7 +487,7 @@ public void getIsDeviceAllowedToSendNetwork_8digitSamplingRate_networkIsEnabled(
487
487
when (mockConfigResolver .getNetworkRequestSamplingRate ()).thenReturn (0.00000001f );
488
488
489
489
RateLimiter limiter =
490
- new RateLimiter (TWO_TOKENS_PER_MINUTE , 2 , mClock , 0.000000005f , mockConfigResolver );
490
+ new RateLimiter (TWO_TOKENS_PER_MINUTE , 2 , mClock , 0.000000005f , 0 , mockConfigResolver );
491
491
492
492
assertThat (limiter .getIsDeviceAllowedToSendNetworkEvents ()).isTrue ();
493
493
}
@@ -498,7 +498,7 @@ public void getIsDeviceAllowedToSendNetwork_8digitSamplingRate_networkIsDisabled
498
498
when (mockConfigResolver .getNetworkRequestSamplingRate ()).thenReturn (0.00000001f );
499
499
500
500
RateLimiter limiter =
501
- new RateLimiter (TWO_TOKENS_PER_MINUTE , 2 , mClock , 0.000000011f , mockConfigResolver );
501
+ new RateLimiter (TWO_TOKENS_PER_MINUTE , 2 , mClock , 0.000000011f , 0 , mockConfigResolver );
502
502
503
503
assertThat (limiter .getIsDeviceAllowedToSendNetworkEvents ()).isFalse ();
504
504
}
@@ -509,7 +509,7 @@ public void getIsDeviceAllowedToSendFragmentScreenTraces_8digitSamplingRate_frag
509
509
when (mockConfigResolver .getFragmentSamplingRate ()).thenReturn (0.00000001f );
510
510
511
511
RateLimiter limiter =
512
- new RateLimiter (TWO_TOKENS_PER_MINUTE , 2 , mClock , 0.000000005f , mockConfigResolver );
512
+ new RateLimiter (TWO_TOKENS_PER_MINUTE , 2 , mClock , 1 , 0.000000005f , mockConfigResolver );
513
513
514
514
assertThat (limiter .getIsDeviceAllowedToSendFragmentScreenTraces ()).isTrue ();
515
515
}
@@ -520,7 +520,7 @@ public void getIsDeviceAllowedToSendFragmentScreenTraces_8digitSamplingRate_frag
520
520
when (mockConfigResolver .getFragmentSamplingRate ()).thenReturn (0.00000001f );
521
521
522
522
RateLimiter limiter =
523
- new RateLimiter (TWO_TOKENS_PER_MINUTE , 2 , mClock , 0.000000011f , mockConfigResolver );
523
+ new RateLimiter (TWO_TOKENS_PER_MINUTE , 2 , mClock , 0 , 0 .000000011f , mockConfigResolver );
524
524
525
525
assertThat (limiter .getIsDeviceAllowedToSendFragmentScreenTraces ()).isFalse ();
526
526
}
@@ -532,7 +532,7 @@ public void testDeviceSampling_bothTracesAndNetworkEnabled() {
532
532
when (mockConfigResolver .getNetworkRequestSamplingRate ()).thenReturn (0.5f );
533
533
534
534
RateLimiter limiter =
535
- new RateLimiter (TWO_TOKENS_PER_MINUTE , 2 , mClock , 0.49f , mockConfigResolver );
535
+ new RateLimiter (TWO_TOKENS_PER_MINUTE , 2 , mClock , 0.49f , 0 , mockConfigResolver );
536
536
537
537
assertThat (limiter .getIsDeviceAllowedToSendTraces ()).isTrue ();
538
538
assertThat (limiter .getIsDeviceAllowedToSendNetworkEvents ()).isTrue ();
@@ -545,7 +545,7 @@ public void testDeviceSampling_bothTracesAndNetworkDisabled() {
545
545
when (mockConfigResolver .getNetworkRequestSamplingRate ()).thenReturn (0.5f );
546
546
547
547
RateLimiter limiter =
548
- new RateLimiter (TWO_TOKENS_PER_MINUTE , 2 , mClock , 0.51f , mockConfigResolver );
548
+ new RateLimiter (TWO_TOKENS_PER_MINUTE , 2 , mClock , 0.51f , 0 , mockConfigResolver );
549
549
550
550
assertThat (limiter .getIsDeviceAllowedToSendTraces ()).isFalse ();
551
551
assertThat (limiter .getIsDeviceAllowedToSendNetworkEvents ()).isFalse ();
@@ -558,7 +558,7 @@ public void testDeviceSampling_bothTracesAndFragmentEnabled_acceptsFragmentTrace
558
558
when (mockConfigResolver .getFragmentSamplingRate ()).thenReturn (0.5f );
559
559
560
560
RateLimiter limiter =
561
- new RateLimiter (TWO_TOKENS_PER_MINUTE , 2 , mClock , 0.49f , mockConfigResolver );
561
+ new RateLimiter (TWO_TOKENS_PER_MINUTE , 2 , mClock , 0.49f , 0.49f , mockConfigResolver );
562
562
563
563
assertThat (limiter .getIsDeviceAllowedToSendTraces ()).isTrue ();
564
564
assertThat (limiter .getIsDeviceAllowedToSendFragmentScreenTraces ()).isTrue ();
@@ -581,7 +581,7 @@ public void testDeviceSampling_changeInTraceSamplingRateIsImmediatelyEffective()
581
581
when (mockConfigResolver .getTraceSamplingRate ()).thenReturn (0.5f );
582
582
583
583
RateLimiter limiter =
584
- new RateLimiter (TWO_TOKENS_PER_MINUTE , 2 , mClock , 0.51f , mockConfigResolver );
584
+ new RateLimiter (TWO_TOKENS_PER_MINUTE , 2 , mClock , 0.51f , 0 , mockConfigResolver );
585
585
586
586
assertThat (limiter .getIsDeviceAllowedToSendTraces ()).isFalse ();
587
587
@@ -596,7 +596,7 @@ public void testDeviceSampling_changeInNetworkSamplingRateIsImmediatelyEffective
596
596
when (mockConfigResolver .getNetworkRequestSamplingRate ()).thenReturn (0.5f );
597
597
598
598
RateLimiter limiter =
599
- new RateLimiter (TWO_TOKENS_PER_MINUTE , 2 , mClock , 0.51f , mockConfigResolver );
599
+ new RateLimiter (TWO_TOKENS_PER_MINUTE , 2 , mClock , 0.51f , 0 , mockConfigResolver );
600
600
601
601
assertThat (limiter .getIsDeviceAllowedToSendNetworkEvents ()).isFalse ();
602
602
@@ -611,7 +611,7 @@ public void testDeviceSampling_changeInFragmentSamplingRateIsImmediatelyEffectiv
611
611
when (mockConfigResolver .getFragmentSamplingRate ()).thenReturn (0.5f );
612
612
613
613
RateLimiter limiter =
614
- new RateLimiter (TWO_TOKENS_PER_MINUTE , 2 , mClock , 0.51f , mockConfigResolver );
614
+ new RateLimiter (TWO_TOKENS_PER_MINUTE , 2 , mClock , 0 , 0 .51f , mockConfigResolver );
615
615
616
616
assertThat (limiter .getIsDeviceAllowedToSendFragmentScreenTraces ()).isFalse ();
617
617
@@ -793,7 +793,7 @@ public void samplingBucketIdRandomness() {
793
793
public void testBackgroundTraceWithCountersIsNotRateLimitApplicable () {
794
794
makeConfigResolverReturnDefaultValues ();
795
795
RateLimiter limiter =
796
- new RateLimiter (TWO_TOKENS_PER_MINUTE , 2 , mClock , 0.99f , mockConfigResolver );
796
+ new RateLimiter (TWO_TOKENS_PER_MINUTE , 2 , mClock , 0.99f , 0.99f , mockConfigResolver );
797
797
798
798
PerfMetric metric =
799
799
PerfMetric .newBuilder ()
@@ -810,7 +810,7 @@ public void testBackgroundTraceWithCountersIsNotRateLimitApplicable() {
810
810
public void testBackgroundTraceWithoutCountersIsRateLimitApplicable () {
811
811
makeConfigResolverReturnDefaultValues ();
812
812
RateLimiter limiter =
813
- new RateLimiter (TWO_TOKENS_PER_MINUTE , 2 , mClock , 0.99f , mockConfigResolver );
813
+ new RateLimiter (TWO_TOKENS_PER_MINUTE , 2 , mClock , 0.99f , 0.99f , mockConfigResolver );
814
814
815
815
PerfMetric metric =
816
816
PerfMetric .newBuilder ()
@@ -826,7 +826,7 @@ public void testBackgroundTraceWithoutCountersIsRateLimitApplicable() {
826
826
public void testForegroundTraceWithCountersIsNotRateLimitApplicable () {
827
827
makeConfigResolverReturnDefaultValues ();
828
828
RateLimiter limiter =
829
- new RateLimiter (TWO_TOKENS_PER_MINUTE , 2 , mClock , 0.99f , mockConfigResolver );
829
+ new RateLimiter (TWO_TOKENS_PER_MINUTE , 2 , mClock , 0.99f , 0.99f , mockConfigResolver );
830
830
831
831
PerfMetric metric =
832
832
PerfMetric .newBuilder ()
@@ -843,7 +843,7 @@ public void testForegroundTraceWithCountersIsNotRateLimitApplicable() {
843
843
public void testForegroundTraceWithoutCountersIsRateLimitApplicable () {
844
844
makeConfigResolverReturnDefaultValues ();
845
845
RateLimiter limiter =
846
- new RateLimiter (TWO_TOKENS_PER_MINUTE , 2 , mClock , 0.99f , mockConfigResolver );
846
+ new RateLimiter (TWO_TOKENS_PER_MINUTE , 2 , mClock , 0.99f , 0.99f , mockConfigResolver );
847
847
848
848
PerfMetric metric =
849
849
PerfMetric .newBuilder ()
@@ -858,7 +858,7 @@ public void testForegroundTraceWithoutCountersIsRateLimitApplicable() {
858
858
public void testGaugeMetricIsNotRateLimitApplicable () {
859
859
makeConfigResolverReturnDefaultValues ();
860
860
RateLimiter limiter =
861
- new RateLimiter (TWO_TOKENS_PER_MINUTE , 2 , mClock , 0.99f , mockConfigResolver );
861
+ new RateLimiter (TWO_TOKENS_PER_MINUTE , 2 , mClock , 0.99f , 0.99f , mockConfigResolver );
862
862
863
863
PerfMetric metric =
864
864
PerfMetric .newBuilder ().setGaugeMetric (GaugeMetric .getDefaultInstance ()).build ();
@@ -870,7 +870,7 @@ public void testGaugeMetricIsNotRateLimitApplicable() {
870
870
public void testTraceMetricNoSpecialNameIsRateLimitApplicable () {
871
871
makeConfigResolverReturnDefaultValues ();
872
872
RateLimiter limiter =
873
- new RateLimiter (TWO_TOKENS_PER_MINUTE , 2 , mClock , 0.99f , mockConfigResolver );
873
+ new RateLimiter (TWO_TOKENS_PER_MINUTE , 2 , mClock , 0.99f , 0.99f , mockConfigResolver );
874
874
875
875
PerfMetric metric =
876
876
PerfMetric .newBuilder ()
@@ -884,7 +884,7 @@ public void testTraceMetricNoSpecialNameIsRateLimitApplicable() {
884
884
public void testNetworkRequestMetricIsRateLimitApplicable () {
885
885
makeConfigResolverReturnDefaultValues ();
886
886
RateLimiter limiter =
887
- new RateLimiter (TWO_TOKENS_PER_MINUTE , 2 , mClock , 0.99f , mockConfigResolver );
887
+ new RateLimiter (TWO_TOKENS_PER_MINUTE , 2 , mClock , 0.99f , 0.99f , mockConfigResolver );
888
888
889
889
PerfMetric metric =
890
890
PerfMetric .newBuilder ()
@@ -907,6 +907,7 @@ public void testTracesAreNotSampledWhenSessionIsVerboseAndSamplingEnabled() {
907
907
/* capacity= */ 2 ,
908
908
mClock ,
909
909
/* samplingBucketId= */ 0.71f ,
910
+ /* fragmentBucketId= */ 0 ,
910
911
mockConfigResolver );
911
912
assertThat (limiter .getIsDeviceAllowedToSendTraces ()).isFalse ();
912
913
@@ -933,6 +934,7 @@ public void testNetworkRequestsAreNotSampledWhenSessionIsVerboseAndSamplingEnabl
933
934
/* capacity= */ 2 ,
934
935
mClock ,
935
936
/* samplingBucketId= */ 0.71f ,
937
+ /* fragmentBucketId= */ 0 ,
936
938
mockConfigResolver );
937
939
assertThat (limiter .getIsDeviceAllowedToSendNetworkEvents ()).isFalse ();
938
940
@@ -958,8 +960,10 @@ public void isEventSampled_verboseSessionEnabledAndDiceRollFailed_returnsTrue()
958
960
/* rate= */ TWO_TOKENS_PER_SECOND ,
959
961
/* capacity= */ 2 ,
960
962
mClock ,
961
- /* samplingBucketId= */ 0.71f ,
963
+ /* samplingBucketId= */ 0 ,
964
+ /* fragmentBucketId= */ 0.71f ,
962
965
mockConfigResolver );
966
+ assertThat (limiter .getIsDeviceAllowedToSendTraces ()).isTrue ();
963
967
assertThat (limiter .getIsDeviceAllowedToSendFragmentScreenTraces ()).isFalse ();
964
968
965
969
PerfMetric trace =
@@ -985,6 +989,7 @@ public void testTracesAreSampledWhenSessionIsNonVerboseAndSamplingEnabled() {
985
989
/* capacity= */ 2 ,
986
990
mClock ,
987
991
/* samplingBucketId= */ 0.71f ,
992
+ /* fragmentBucketId= */ 0 ,
988
993
mockConfigResolver );
989
994
assertThat (limiter .getIsDeviceAllowedToSendTraces ()).isFalse ();
990
995
@@ -1011,6 +1016,7 @@ public void testNetworkRequestsAreSampledWhenSessionIsNonVerboseAndSamplingEnabl
1011
1016
/* capacity= */ 2 ,
1012
1017
mClock ,
1013
1018
/* samplingBucketId= */ 0.71f ,
1019
+ /* fragmentBucketId= */ 0 ,
1014
1020
mockConfigResolver );
1015
1021
assertThat (limiter .getIsDeviceAllowedToSendNetworkEvents ()).isFalse ();
1016
1022
@@ -1036,8 +1042,10 @@ public void isEventSampled_verboseSessionDisabledAndDiceRollFailed_returnsFalse(
1036
1042
/* rate= */ TWO_TOKENS_PER_SECOND ,
1037
1043
/* capacity= */ 2 ,
1038
1044
mClock ,
1039
- /* samplingBucketId= */ 0.71f ,
1045
+ /* samplingBucketId= */ 0 ,
1046
+ /* fragmentBucketId= */ 0.71f ,
1040
1047
mockConfigResolver );
1048
+ assertThat (limiter .getIsDeviceAllowedToSendTraces ()).isTrue ();
1041
1049
assertThat (limiter .getIsDeviceAllowedToSendFragmentScreenTraces ()).isFalse ();
1042
1050
1043
1051
PerfMetric trace =
@@ -1064,6 +1072,7 @@ public void testGaugesAreNeverSampled() {
1064
1072
/* capacity= */ 2 ,
1065
1073
mClock ,
1066
1074
/* samplingBucketId= */ 0.71f ,
1075
+ /* fragmentBucketId= */ 1 ,
1067
1076
mockConfigResolver );
1068
1077
assertThat (limiter .getIsDeviceAllowedToSendTraces ()).isFalse ();
1069
1078
assertThat (limiter .getIsDeviceAllowedToSendNetworkEvents ()).isFalse ();
0 commit comments