Skip to content

Commit a96e6f3

Browse files
committed
add application signals attributes to unsampled spans
1 parent 31eb106 commit a96e6f3

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

awsagentprovider/src/main/java/software/amazon/opentelemetry/javaagent/providers/AwsApplicationSignalsCustomizerProvider.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,8 +207,25 @@ private SdkTracerProviderBuilder customizeTracerProviderBuilder(
207207
// If running on Lambda, we just need to export 100% spans and skip generating any Application
208208
// Signals metrics.
209209
if (isLambdaEnvironment()) {
210+
String tracesEndpoint =
211+
Optional.ofNullable(System.getenv(AWS_XRAY_DAEMON_ADDRESS_CONFIG))
212+
.orElse(DEFAULT_UDP_ENDPOINT);
213+
SpanExporter spanExporter =
214+
new OtlpUdpSpanExporterBuilder()
215+
.setPayloadSampleDecision(TracePayloadSampleDecision.UNSAMPLED)
216+
.setEndpoint(tracesEndpoint)
217+
.build();
218+
219+
// Wrap the udp exporter with the AwsMetricsAttributesSpanExporter to add Application
220+
// Signals attributes to unsampled spans too
221+
SpanExporter appSignalsSpanExporter =
222+
AwsMetricAttributesSpanExporterBuilder.create(
223+
spanExporter, ResourceHolder.getResource())
224+
.build();
225+
210226
tracerProviderBuilder.addSpanProcessor(
211227
AwsUnsampledOnlySpanProcessorBuilder.create()
228+
.setSpanExporter(appSignalsSpanExporter)
212229
.setMaxExportBatchSize(LAMBDA_SPAN_EXPORT_BATCH_SIZE)
213230
.build());
214231
return tracerProviderBuilder;

0 commit comments

Comments
 (0)