Skip to content

Commit ee9a58e

Browse files
authored
Disable upstream default exporter (for now) (#894)
* prevent upstream default exporter from being configured (for now). * spotless
1 parent fe858e0 commit ee9a58e

File tree

2 files changed

+47
-0
lines changed

2 files changed

+47
-0
lines changed

splunk-otel-android/src/main/java/com/splunk/rum/RumInitializer.java

+4
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import androidx.annotation.NonNull;
3333
import androidx.annotation.Nullable;
3434
import com.splunk.rum.internal.GlobalAttributesSupplier;
35+
import com.splunk.rum.internal.NoOpSpanExporter;
3536
import com.splunk.rum.internal.UInt32QuadXorTraceIdRatioSampler;
3637
import io.opentelemetry.android.OpenTelemetryRum;
3738
import io.opentelemetry.android.OpenTelemetryRumBuilder;
@@ -125,6 +126,9 @@ SplunkRum initialize(Looper mainLooper) {
125126
return tracerProviderBuilder.addSpanProcessor(batchSpanProcessor);
126127
});
127128

129+
// Inhibit the upstream exporter because we add our own BatchSpanProcessor
130+
otelRumBuilder.addSpanExporterCustomizer(x -> new NoOpSpanExporter());
131+
128132
// Set span limits
129133
otelRumBuilder.addTracerProviderCustomizer(
130134
(tracerProviderBuilder, app) ->
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
/*
2+
* Copyright Splunk Inc.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
package com.splunk.rum.internal;
18+
19+
import io.opentelemetry.sdk.common.CompletableResultCode;
20+
import io.opentelemetry.sdk.trace.data.SpanData;
21+
import io.opentelemetry.sdk.trace.export.SpanExporter;
22+
import java.util.Collection;
23+
24+
/*
25+
* <p>This class is internal and is hence not for public use. Its APIs are unstable and can change
26+
* at any time.
27+
*/
28+
public final class NoOpSpanExporter implements SpanExporter {
29+
@Override
30+
public CompletableResultCode export(Collection<SpanData> spans) {
31+
return CompletableResultCode.ofSuccess();
32+
}
33+
34+
@Override
35+
public CompletableResultCode flush() {
36+
return CompletableResultCode.ofSuccess();
37+
}
38+
39+
@Override
40+
public CompletableResultCode shutdown() {
41+
return CompletableResultCode.ofSuccess();
42+
}
43+
}

0 commit comments

Comments
 (0)