Skip to content

Commit c6c8138

Browse files
committed
Ensure cache is kept between GST calls
1 parent 4337fe4 commit c6c8138

File tree

1 file changed

+18
-16
lines changed

1 file changed

+18
-16
lines changed

.github/patches/opentelemetry-java-contrib.patch

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -911,7 +911,7 @@ index 1ef8abf5..328e63dd 100644
911911
}
912912
}
913913
diff --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
914-
index 75977dc0..cb4a09b9 100644
914+
index 75977dc0..406941ba 100644
915915
--- a/aws-xray/src/main/java/io/opentelemetry/contrib/awsxray/XrayRulesSampler.java
916916
+++ b/aws-xray/src/main/java/io/opentelemetry/contrib/awsxray/XrayRulesSampler.java
917917
@@ -5,42 +5,79 @@
@@ -995,7 +995,7 @@ index 75977dc0..cb4a09b9 100644
995995
this(
996996
clientId,
997997
resource,
998-
@@ -49,8 +86,17 @@ final class XrayRulesSampler implements Sampler {
998+
@@ -49,8 +86,22 @@ final class XrayRulesSampler implements Sampler {
999999
rules.stream()
10001000
// Lower priority value takes precedence so normal ascending sort.
10011001
.sorted(Comparator.comparingInt(GetSamplingRulesResponse.SamplingRule::getPriority))
@@ -1011,19 +1011,25 @@ index 75977dc0..cb4a09b9 100644
10111011
+ .toArray(SamplingRuleApplier[]::new),
10121012
+ createRuleHashMaps(rules),
10131013
+ rules.stream().anyMatch(r -> r.getSamplingRateBoost() != null),
1014-
+ adaptiveSamplingConfig);
1014+
+ adaptiveSamplingConfig,
1015+
+ Caffeine.newBuilder()
1016+
+ .maximumSize(100_000)
1017+
+ .ticker(clock::nanoTime)
1018+
+ .expireAfterWrite(Duration.ofMinutes(10))
1019+
+ .build());
10151020
}
10161021

10171022
private XrayRulesSampler(
1018-
@@ -58,12 +104,40 @@ final class XrayRulesSampler implements Sampler {
1023+
@@ -58,12 +109,36 @@ final class XrayRulesSampler implements Sampler {
10191024
Resource resource,
10201025
Clock clock,
10211026
Sampler fallbackSampler,
10221027
- SamplingRuleApplier[] ruleAppliers) {
10231028
+ SamplingRuleApplier[] ruleAppliers,
10241029
+ Map<String, String> ruleToHashMap,
10251030
+ boolean adaptiveSamplingRuleExists,
1026-
+ @Nullable AwsXrayAdaptiveSamplingConfig adaptiveSamplingConfig) {
1031+
+ @Nullable AwsXrayAdaptiveSamplingConfig adaptiveSamplingConfig,
1032+
+ Cache<String, AwsXrayAdaptiveSamplingConfig.UsageType> traceUsageCache) {
10271033
this.clientId = clientId;
10281034
this.resource = resource;
10291035
this.clock = clock;
@@ -1036,12 +1042,7 @@ index 75977dc0..cb4a09b9 100644
10361042
+ }
10371043
+ this.adaptiveSamplingRuleExists = adaptiveSamplingRuleExists;
10381044
+ this.adaptiveSamplingConfig = adaptiveSamplingConfig;
1039-
+ this.traceUsageCache =
1040-
+ Caffeine.newBuilder()
1041-
+ .maximumSize(100_000)
1042-
+ .ticker(clock::nanoTime)
1043-
+ .expireAfterWrite(Duration.ofMinutes(10))
1044-
+ .build();
1045+
+ this.traceUsageCache = traceUsageCache;
10451046
+
10461047
+ // Initialize anomaly capture rate limiter
10471048
+ if (this.adaptiveSamplingConfig != null
@@ -1057,7 +1058,7 @@ index 75977dc0..cb4a09b9 100644
10571058
}
10581059

10591060
@Override
1060-
@@ -74,10 +148,36 @@ final class XrayRulesSampler implements Sampler {
1061+
@@ -74,10 +149,36 @@ final class XrayRulesSampler implements Sampler {
10611062
SpanKind spanKind,
10621063
Attributes attributes,
10631064
List<LinkData> parentLinks) {
@@ -1096,7 +1097,7 @@ index 75977dc0..cb4a09b9 100644
10961097
}
10971098
}
10981099

1099-
@@ -96,7 +196,185 @@ final class XrayRulesSampler implements Sampler {
1100+
@@ -96,7 +197,185 @@ final class XrayRulesSampler implements Sampler {
11001101
return "XrayRulesSampler{" + Arrays.toString(ruleAppliers) + "}";
11011102
}
11021103

@@ -1283,7 +1284,7 @@ index 75977dc0..cb4a09b9 100644
12831284
return Arrays.stream(ruleAppliers)
12841285
.map(rule -> rule.snapshot(now))
12851286
.filter(Objects::nonNull)
1286-
@@ -115,15 +393,16 @@ final class XrayRulesSampler implements Sampler {
1287+
@@ -115,15 +394,16 @@ final class XrayRulesSampler implements Sampler {
12871288
Map<String, SamplingTargetDocument> ruleTargets,
12881289
Set<String> requestedTargetRuleNames,
12891290
Date now) {
@@ -1302,7 +1303,7 @@ index 75977dc0..cb4a09b9 100644
13021303
}
13031304
if (requestedTargetRuleNames.contains(rule.getRuleName())) {
13041305
// In practice X-Ray should return a target for any rule we requested but
1305-
@@ -135,6 +414,91 @@ final class XrayRulesSampler implements Sampler {
1306+
@@ -135,6 +415,92 @@ final class XrayRulesSampler implements Sampler {
13061307
return rule;
13071308
})
13081309
.toArray(SamplingRuleApplier[]::new);
@@ -1315,7 +1316,8 @@ index 75977dc0..cb4a09b9 100644
13151316
+ newAppliers,
13161317
+ ruleToHashMap,
13171318
+ adaptiveSamplingRuleExists,
1318-
+ adaptiveSamplingConfig);
1319+
+ adaptiveSamplingConfig,
1320+
+ traceUsageCache);
13191321
+ }
13201322
+
13211323
+ static boolean isKeyPresent(SpanData span, AttributeKey<?> key) {

0 commit comments

Comments
 (0)