Skip to content

Commit

Permalink
Respect screen attrs config for logs (#785)
Browse files Browse the repository at this point in the history
* respect screen attrs config for logs

* spotless
  • Loading branch information
breedx-splk authored Jan 31, 2025
1 parent c4178ba commit 5b3d4ea
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 40 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -107,8 +107,6 @@ public final class OpenTelemetryRumBuilder {

private Resource resource;

private boolean isBuilt = false;

@Nullable private ExportScheduleHandler exportScheduleHandler;
@Nullable private SessionManager sessionManager;

Expand Down Expand Up @@ -137,7 +135,6 @@ public static OpenTelemetryRumBuilder create(Application application, OtelRumCon
* @return {@code this}
*/
public OpenTelemetryRumBuilder setResource(Resource resource) {
checkNotBuilt();
this.resource = resource;
return this;
}
Expand All @@ -150,7 +147,6 @@ public OpenTelemetryRumBuilder setResource(Resource resource) {
* @return {@code this}
*/
public OpenTelemetryRumBuilder mergeResource(Resource resource) {
checkNotBuilt();
this.resource = this.resource.merge(resource);
return this;
}
Expand Down Expand Up @@ -190,7 +186,6 @@ public OpenTelemetryRumBuilder addTracerProviderCustomizer(
*/
public OpenTelemetryRumBuilder addMeterProviderCustomizer(
BiFunction<SdkMeterProviderBuilder, Application, SdkMeterProviderBuilder> customizer) {
checkNotBuilt();
meterProviderCustomizers.add(customizer);
return this;
}
Expand All @@ -211,7 +206,6 @@ public OpenTelemetryRumBuilder addMeterProviderCustomizer(
public OpenTelemetryRumBuilder addLoggerProviderCustomizer(
BiFunction<SdkLoggerProviderBuilder, Application, SdkLoggerProviderBuilder>
customizer) {
checkNotBuilt();
loggerProviderCustomizers.add(customizer);
return this;
}
Expand All @@ -223,7 +217,6 @@ public OpenTelemetryRumBuilder addLoggerProviderCustomizer(
*/
public OpenTelemetryRumBuilder addInstrumentation(AndroidInstrumentation instrumentation) {
instrumentations.add(instrumentation);
checkNotBuilt();
return this;
}

Expand All @@ -238,7 +231,6 @@ public OpenTelemetryRumBuilder addInstrumentation(AndroidInstrumentation instrum
public OpenTelemetryRumBuilder addPropagatorCustomizer(
Function<? super TextMapPropagator, ? extends TextMapPropagator> propagatorCustomizer) {
requireNonNull(propagatorCustomizer, "propagatorCustomizer");
checkNotBuilt();
Function<? super TextMapPropagator, ? extends TextMapPropagator> existing =
this.propagatorCustomizer;
this.propagatorCustomizer =
Expand All @@ -258,7 +250,6 @@ public OpenTelemetryRumBuilder addPropagatorCustomizer(
public OpenTelemetryRumBuilder addSpanExporterCustomizer(
Function<? super SpanExporter, ? extends SpanExporter> spanExporterCustomizer) {
requireNonNull(spanExporterCustomizer, "spanExporterCustomizer");
checkNotBuilt();
Function<? super SpanExporter, ? extends SpanExporter> existing =
this.spanExporterCustomizer;
this.spanExporterCustomizer =
Expand All @@ -278,7 +269,6 @@ public OpenTelemetryRumBuilder addSpanExporterCustomizer(
public OpenTelemetryRumBuilder addMetricExporterCustomizer(
Function<? super MetricExporter, ? extends MetricExporter> metricExporterCustomizer) {
requireNonNull(metricExporterCustomizer, "metricExporterCustomizer");
checkNotBuilt();
Function<? super MetricExporter, ? extends MetricExporter> existing =
this.metricExporterCustomizer;
this.metricExporterCustomizer =
Expand All @@ -298,7 +288,6 @@ public OpenTelemetryRumBuilder addMetricExporterCustomizer(
public OpenTelemetryRumBuilder addLogRecordExporterCustomizer(
Function<? super LogRecordExporter, ? extends LogRecordExporter>
logRecordExporterCustomizer) {
checkNotBuilt();
Function<? super LogRecordExporter, ? extends LogRecordExporter> existing =
this.logRecordExporterCustomizer;
this.logRecordExporterCustomizer =
Expand All @@ -319,10 +308,6 @@ public OpenTelemetryRumBuilder addLogRecordExporterCustomizer(
* @return A new {@link OpenTelemetryRum} instance.
*/
public OpenTelemetryRum build() {
if (isBuilt) {
throw new IllegalStateException("You cannot call build multiple times");
}
isBuilt = true;
Services services = Services.get(application);
InitializationEvents initializationEvents = InitializationEvents.get();
applyConfiguration(services, initializationEvents);
Expand All @@ -345,10 +330,7 @@ public OpenTelemetryRum build() {
sessionManager, application, bufferDelegatingSpanExporter))
.setLoggerProvider(
buildLoggerProvider(
services,
sessionManager,
application,
bufferDelegatingLogExporter))
sessionManager, application, bufferDelegatingLogExporter))
.setMeterProvider(
buildMeterProvider(application, bufferDelegatingMetricExporter))
.setPropagators(buildFinalPropagators())
Expand Down Expand Up @@ -440,7 +422,6 @@ OpenTelemetryRumBuilder setSessionManager(SessionManager sessionManager) {
public OpenTelemetryRumBuilder setExportScheduleHandler(
@NonNull ExportScheduleHandler exportScheduleHandler) {
requireNonNull(exportScheduleHandler, "exportScheduleHandler cannot be null");
checkNotBuilt();
this.exportScheduleHandler = exportScheduleHandler;
return this;
}
Expand Down Expand Up @@ -498,7 +479,6 @@ private void scheduleDiskTelemetryReader(
* @return this
*/
public OpenTelemetryRumBuilder addOtelSdkReadyListener(Consumer<OpenTelemetrySdk> callback) {
checkNotBuilt();
otelSdkReadyListeners.add(callback);
return this;
}
Expand Down Expand Up @@ -534,15 +514,20 @@ private void applyConfiguration(Services services, InitializationEvents initiali
initializationEvents.currentNetworkProviderInitialized();
}

// Add span processor that appends screen attribute(s)
// Add processors that append screen attribute(s)
if (config.shouldIncludeScreenAttributes()) {
addTracerProviderCustomizer(
(tracerProviderBuilder, app) -> {
SpanProcessor screenAttributesAppender =
new ScreenAttributesSpanProcessor(
services.getVisibleScreenTracker());
return tracerProviderBuilder.addSpanProcessor(screenAttributesAppender);
});
tracerProviderCustomizers.add(
0,
(builder, app) ->
builder.addSpanProcessor(
new ScreenAttributesSpanProcessor(
services.getVisibleScreenTracker())));
loggerProviderCustomizers.add(
0,
(builder, app) ->
builder.addLogRecordProcessor(
new ScreenAttributesLogRecordProcessor(
services.getVisibleScreenTracker())));
}
}

Expand All @@ -564,17 +549,13 @@ private SdkTracerProvider buildTracerProvider(
}

private SdkLoggerProvider buildLoggerProvider(
Services services,
SessionProvider sessionProvider,
Application application,
LogRecordExporter logsExporter) {
SdkLoggerProviderBuilder loggerProviderBuilder =
SdkLoggerProvider.builder()
.setResource(resource)
.addLogRecordProcessor(new SessionIdLogRecordAppender(sessionProvider))
.addLogRecordProcessor(
new ScreenAttributesLogRecordProcessor(
services.getVisibleScreenTracker()))
.addLogRecordProcessor(
new GlobalAttributesLogRecordAppender(
config.getGlobalAttributesSupplier()));
Expand Down Expand Up @@ -622,10 +603,4 @@ private ContextPropagators buildFinalPropagators() {
TextMapPropagator defaultPropagator = buildDefaultPropagator();
return ContextPropagators.create(propagatorCustomizer.apply(defaultPropagator));
}

private void checkNotBuilt() {
if (isBuilt) {
throw new IllegalStateException("This method cannot be called after calling build");
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,7 @@ public void shouldRegisterApplicationStateWatcher() {

@Test
public void shouldBuildTracerProvider() {
createAndSetServiceManager();
OpenTelemetryRum openTelemetryRum =
makeBuilder()
.setResource(resource)
Expand Down Expand Up @@ -169,7 +170,7 @@ public void shouldBuildTracerProvider() {
.hasResource(resource)
.hasAttributesSatisfyingExactly(
equalTo(SESSION_ID, sessionId),
equalTo(SCREEN_NAME_KEY, "unknown"));
equalTo(SCREEN_NAME_KEY, CUR_SCREEN_NAME));
});
}

Expand Down

0 comments on commit 5b3d4ea

Please sign in to comment.