@@ -80,7 +80,7 @@ index 00000000..41f22f90
8080+ }
8181diff --git a/aws-xray/src/main/java/io/opentelemetry/contrib/awsxray/AwsXrayAdaptiveSamplingConfig.java b/aws-xray/src/main/java/io/opentelemetry/contrib/awsxray/AwsXrayAdaptiveSamplingConfig.java
8282new file mode 100644
83- index 00000000..b2146f13
83+ index 00000000..8c2e8fe2
8484--- /dev/null
8585+++ b/aws-xray/src/main/java/io/opentelemetry/contrib/awsxray/AwsXrayAdaptiveSamplingConfig.java
8686@@ -0,0 +1,139 @@
@@ -112,9 +112,9 @@ index 00000000..b2146f13
112112+ @Nullable
113113+ public abstract List<AnomalyConditions> getAnomalyConditions();
114114+
115- + @JsonProperty("errorCaptureLimit ")
115+ + @JsonProperty("anomalyCaptureLimit ")
116116+ @Nullable
117- + public abstract ErrorCaptureLimit getErrorCaptureLimit ();
117+ + public abstract AnomalyCaptureLimit getAnomalyCaptureLimit ();
118118+
119119+ public static Builder builder() {
120120+ return new AutoValue_AwsXrayAdaptiveSamplingConfig.Builder();
@@ -128,8 +128,8 @@ index 00000000..b2146f13
128128+ @JsonProperty("anomalyConditions")
129129+ public abstract Builder setAnomalyConditions(List<AnomalyConditions> value);
130130+
131- + @JsonProperty("errorCaptureLimit ")
132- + public abstract Builder setErrorCaptureLimit(ErrorCaptureLimit value);
131+ + @JsonProperty("anomalyCaptureLimit ")
132+ + public abstract Builder setAnomalyCaptureLimit(AnomalyCaptureLimit value);
133133+
134134+ public abstract AwsXrayAdaptiveSamplingConfig build();
135135+ }
@@ -179,7 +179,7 @@ index 00000000..b2146f13
179179+ public enum UsageType {
180180+ BOTH("both"),
181181+ SAMPLING_BOOST("sampling-boost"),
182- + ERROR_SPAN_CAPTURE("error -span-capture");
182+ + ANOMALY_SPAN_CAPTURE("anomaly -span-capture");
183183+
184184+ private final String value;
185185+
@@ -205,21 +205,21 @@ index 00000000..b2146f13
205205+
206206+ @AutoValue
207207+ @JsonDeserialize(
208- + builder = AutoValue_AwsXrayAdaptiveSamplingConfig_ErrorCaptureLimit .Builder.class)
209- + public abstract static class ErrorCaptureLimit {
210- + @JsonProperty("errorTracesPerSecond ")
211- + public abstract int getErrorTracesPerSecond ();
208+ + builder = AutoValue_AwsXrayAdaptiveSamplingConfig_AnomalyCaptureLimit .Builder.class)
209+ + public abstract static class AnomalyCaptureLimit {
210+ + @JsonProperty("anomalyTracesPerSecond ")
211+ + public abstract int getAnomalyTracesPerSecond ();
212212+
213213+ public static Builder builder() {
214- + return new AutoValue_AwsXrayAdaptiveSamplingConfig_ErrorCaptureLimit .Builder();
214+ + return new AutoValue_AwsXrayAdaptiveSamplingConfig_AnomalyCaptureLimit .Builder();
215215+ }
216216+
217217+ @AutoValue.Builder
218218+ public abstract static class Builder {
219- + @JsonProperty("errorTracesPerSecond ")
220- + public abstract Builder setErrorTracesPerSecond (int value);
219+ + @JsonProperty("anomalyTracesPerSecond ")
220+ + public abstract Builder setAnomalyTracesPerSecond (int value);
221221+
222- + public abstract ErrorCaptureLimit build();
222+ + public abstract AnomalyCaptureLimit build();
223223+ }
224224+ }
225225+ }
@@ -902,7 +902,7 @@ index 1ef8abf5..328e63dd 100644
902902 }
903903 }
904904diff --git a/aws-xray/src/main/java/io/opentelemetry/contrib/awsxray/XrayRulesSampler.java b/aws-xray/src/main/java/io/opentelemetry/contrib/awsxray/XrayRulesSampler.java
905- index 75977dc0..1edf4c10 100644
905+ index 75977dc0..b86426dc 100644
906906--- a/aws-xray/src/main/java/io/opentelemetry/contrib/awsxray/XrayRulesSampler.java
907907+++ b/aws-xray/src/main/java/io/opentelemetry/contrib/awsxray/XrayRulesSampler.java
908908@@ -5,42 +5,81 @@
@@ -1044,14 +1044,14 @@ index 75977dc0..1edf4c10 100644
10441044+
10451045+ // Initialize anomaly capture rate limiter
10461046+ if (this.adaptiveSamplingConfig != null
1047- + && this.adaptiveSamplingConfig.getErrorCaptureLimit () == null) {
1047+ + && this.adaptiveSamplingConfig.getAnomalyCaptureLimit () == null) {
10481048+ this.anomalyCaptureRateLimiter = new RateLimiter(1, 1, clock);
10491049+ } else if (adaptiveSamplingConfig != null
1050- + && adaptiveSamplingConfig.getErrorCaptureLimit () != null) {
1051- + int errorTracesPerSecond =
1052- + adaptiveSamplingConfig.getErrorCaptureLimit ().getErrorTracesPerSecond ();
1050+ + && adaptiveSamplingConfig.getAnomalyCaptureLimit () != null) {
1051+ + int anomalyTracesPerSecond =
1052+ + adaptiveSamplingConfig.getAnomalyCaptureLimit ().getAnomalyTracesPerSecond ();
10531053+ this.anomalyCaptureRateLimiter =
1054- + new RateLimiter(errorTracesPerSecond, errorTracesPerSecond , clock);
1054+ + new RateLimiter(anomalyTracesPerSecond, anomalyTracesPerSecond , clock);
10551055+ }
10561056 }
10571057
@@ -1082,7 +1082,7 @@ index 75977dc0..1edf4c10 100644
10821082+ }
10831083+ String hashedRule = ruleToHashMap.getOrDefault(ruleToPropagate, ruleToPropagate);
10841084+ if (this.adaptiveSamplingConfig != null
1085- + && this.adaptiveSamplingConfig.getErrorCaptureLimit () != null) {
1085+ + && this.adaptiveSamplingConfig.getAnomalyCaptureLimit () != null) {
10861086+ // If the span is capturable based on local SDK config, add sampling rule attribute
10871087+ return AwsSamplingResult.create(
10881088+ result.getDecision(),
@@ -1107,10 +1107,10 @@ index 75977dc0..1edf4c10 100644
11071107+ this.adaptiveSamplingConfig = config;
11081108+
11091109+ // Initialize anomaly capture rate limiter if error capture limit is configured
1110- + if (config.getErrorCaptureLimit () != null) {
1111- + int errorTracesPerSecond = config.getErrorCaptureLimit ().getErrorTracesPerSecond ();
1110+ + if (config.getAnomalyCaptureLimit () != null) {
1111+ + int anomalyTracesPerSecond = config.getAnomalyCaptureLimit ().getAnomalyTracesPerSecond ();
11121112+ this.anomalyCaptureRateLimiter =
1113- + new RateLimiter(errorTracesPerSecond, errorTracesPerSecond , clock);
1113+ + new RateLimiter(anomalyTracesPerSecond, anomalyTracesPerSecond , clock);
11141114+ }
11151115+ }
11161116+ }
@@ -1138,7 +1138,7 @@ index 75977dc0..1edf4c10 100644
11381138+ && AwsXrayAdaptiveSamplingConfig.UsageType.SAMPLING_BOOST.equals(
11391139+ condition.getUsage()))
11401140+ || (shouldCaptureAnomalySpan
1141- + && AwsXrayAdaptiveSamplingConfig.UsageType.ERROR_SPAN_CAPTURE .equals(
1141+ + && AwsXrayAdaptiveSamplingConfig.UsageType.ANOMALY_SPAN_CAPTURE .equals(
11421142+ condition.getUsage()))) {
11431143+ continue;
11441144+ }
@@ -1173,7 +1173,7 @@ index 75977dc0..1edf4c10 100644
11731173+ case SAMPLING_BOOST:
11741174+ shouldBoostSampling = true;
11751175+ break;
1176- + case ERROR_SPAN_CAPTURE :
1176+ + case ANOMALY_SPAN_CAPTURE :
11771177+ shouldCaptureAnomalySpan = true;
11781178+ break;
11791179+ }
@@ -2009,7 +2009,7 @@ index 6bb6e82a..6d71711b 100644
20092009 return applier.shouldSample(
20102010 Context.current(),
20112011diff --git a/aws-xray/src/test/java/io/opentelemetry/contrib/awsxray/XrayRulesSamplerTest.java b/aws-xray/src/test/java/io/opentelemetry/contrib/awsxray/XrayRulesSamplerTest.java
2012- index 1ca8df34..5830a083 100644
2012+ index 1ca8df34..0464a304 100644
20132013--- a/aws-xray/src/test/java/io/opentelemetry/contrib/awsxray/XrayRulesSamplerTest.java
20142014+++ b/aws-xray/src/test/java/io/opentelemetry/contrib/awsxray/XrayRulesSamplerTest.java
20152015@@ -5,17 +5,28 @@
@@ -2302,9 +2302,9 @@ index 1ca8df34..5830a083 100644
23022302+ AwsXrayAdaptiveSamplingConfig config =
23032303+ AwsXrayAdaptiveSamplingConfig.builder()
23042304+ .setVersion(1.0)
2305- + .setErrorCaptureLimit (
2306- + AwsXrayAdaptiveSamplingConfig.ErrorCaptureLimit .builder()
2307- + .setErrorTracesPerSecond (2)
2305+ + .setAnomalyCaptureLimit (
2306+ + AwsXrayAdaptiveSamplingConfig.AnomalyCaptureLimit .builder()
2307+ + .setAnomalyTracesPerSecond (2)
23082308+ .build())
23092309+ .build();
23102310+
@@ -2542,9 +2542,9 @@ index 1ca8df34..5830a083 100644
25422542+ AwsXrayAdaptiveSamplingConfig config =
25432543+ AwsXrayAdaptiveSamplingConfig.builder()
25442544+ .setVersion(1.0)
2545- + .setErrorCaptureLimit (
2546- + AwsXrayAdaptiveSamplingConfig.ErrorCaptureLimit .builder()
2547- + .setErrorTracesPerSecond (2)
2545+ + .setAnomalyCaptureLimit (
2546+ + AwsXrayAdaptiveSamplingConfig.AnomalyCaptureLimit .builder()
2547+ + .setAnomalyTracesPerSecond (2)
25482548+ .build())
25492549+ .setAnomalyConditions(
25502550+ Arrays.asList(
@@ -2686,9 +2686,9 @@ index 1ca8df34..5830a083 100644
26862686+ AwsXrayAdaptiveSamplingConfig config =
26872687+ AwsXrayAdaptiveSamplingConfig.builder()
26882688+ .setVersion(1.0)
2689- + .setErrorCaptureLimit (
2690- + AwsXrayAdaptiveSamplingConfig.ErrorCaptureLimit .builder()
2691- + .setErrorTracesPerSecond (2)
2689+ + .setAnomalyCaptureLimit (
2690+ + AwsXrayAdaptiveSamplingConfig.AnomalyCaptureLimit .builder()
2691+ + .setAnomalyTracesPerSecond (2)
26922692+ .build())
26932693+ .setAnomalyConditions(
26942694+ Arrays.asList(
@@ -2754,15 +2754,15 @@ index 1ca8df34..5830a083 100644
27542754+ AwsXrayAdaptiveSamplingConfig config =
27552755+ AwsXrayAdaptiveSamplingConfig.builder()
27562756+ .setVersion(1.0)
2757- + .setErrorCaptureLimit (
2758- + AwsXrayAdaptiveSamplingConfig.ErrorCaptureLimit .builder()
2759- + .setErrorTracesPerSecond (2)
2757+ + .setAnomalyCaptureLimit (
2758+ + AwsXrayAdaptiveSamplingConfig.AnomalyCaptureLimit .builder()
2759+ + .setAnomalyTracesPerSecond (2)
27602760+ .build())
27612761+ .setAnomalyConditions(
27622762+ Arrays.asList(
27632763+ AwsXrayAdaptiveSamplingConfig.AnomalyConditions.builder()
27642764+ .setHighLatencyMs(100L)
2765- + .setUsage(AwsXrayAdaptiveSamplingConfig.UsageType.ERROR_SPAN_CAPTURE )
2765+ + .setUsage(AwsXrayAdaptiveSamplingConfig.UsageType.ANOMALY_SPAN_CAPTURE )
27662766+ .build()))
27672767+ .build();
27682768+ XrayRulesSampler sampler =
@@ -2822,16 +2822,16 @@ index 1ca8df34..5830a083 100644
28222822+ AwsXrayAdaptiveSamplingConfig config =
28232823+ AwsXrayAdaptiveSamplingConfig.builder()
28242824+ .setVersion(1.0)
2825- + .setErrorCaptureLimit (
2826- + AwsXrayAdaptiveSamplingConfig.ErrorCaptureLimit .builder()
2827- + .setErrorTracesPerSecond (2)
2825+ + .setAnomalyCaptureLimit (
2826+ + AwsXrayAdaptiveSamplingConfig.AnomalyCaptureLimit .builder()
2827+ + .setAnomalyTracesPerSecond (2)
28282828+ .build())
28292829+ .setAnomalyConditions(
28302830+ Arrays.asList(
28312831+ AwsXrayAdaptiveSamplingConfig.AnomalyConditions.builder()
28322832+ .setErrorCodeRegex("^456$")
28332833+ .setHighLatencyMs(100L)
2834- + .setUsage(AwsXrayAdaptiveSamplingConfig.UsageType.ERROR_SPAN_CAPTURE )
2834+ + .setUsage(AwsXrayAdaptiveSamplingConfig.UsageType.ANOMALY_SPAN_CAPTURE )
28352835+ .build()))
28362836+ .build();
28372837+ XrayRulesSampler sampler =
@@ -2910,7 +2910,7 @@ index 1ca8df34..5830a083 100644
29102910+ AwsXrayAdaptiveSamplingConfig.AnomalyConditions.builder()
29112911+ .setOperations(Arrays.asList("GET /api1", "GET /api2"))
29122912+ .setErrorCodeRegex("^500$")
2913- + .setUsage(AwsXrayAdaptiveSamplingConfig.UsageType.ERROR_SPAN_CAPTURE )
2913+ + .setUsage(AwsXrayAdaptiveSamplingConfig.UsageType.ANOMALY_SPAN_CAPTURE )
29142914+ .build()))
29152915+ .build();
29162916+ XrayRulesSampler sampler =
0 commit comments