@@ -10,7 +10,6 @@ import android.app.Application
10
10
import android.util.Log
11
11
import io.opentelemetry.android.OpenTelemetryRum
12
12
import io.opentelemetry.android.OpenTelemetryRumBuilder
13
- import io.opentelemetry.android.agent.setSlowRenderingDetectionPollInterval
14
13
import io.opentelemetry.android.config.OtelRumConfig
15
14
import io.opentelemetry.android.features.diskbuffering.DiskBufferingConfiguration
16
15
import io.opentelemetry.api.common.AttributeKey.stringKey
@@ -19,9 +18,9 @@ import io.opentelemetry.api.incubator.events.EventBuilder
19
18
import io.opentelemetry.api.trace.Tracer
20
19
import io.opentelemetry.exporter.otlp.http.logs.OtlpHttpLogRecordExporter
21
20
import io.opentelemetry.exporter.otlp.http.trace.OtlpHttpSpanExporter
21
+ import io.opentelemetry.exporter.otlp.logs.OtlpGrpcLogRecordExporter
22
+ import io.opentelemetry.exporter.otlp.trace.OtlpGrpcSpanExporter
22
23
import io.opentelemetry.sdk.logs.internal.SdkEventLoggerProvider
23
- import java.time.Duration
24
- import kotlin.math.log
25
24
26
25
const val TAG = " otel.demo"
27
26
@@ -62,6 +61,26 @@ class OtelDemoApplication : Application() {
62
61
} catch (e: Exception ) {
63
62
Log .e(TAG , " Oh no!" , e)
64
63
}
64
+
65
+ // This is needed to get R8 missing rules warnings.
66
+ initializeOtelWithGrpc()
67
+ }
68
+
69
+ // This is not used but it's needed to verify that our consumer proguard rules cover this use case.
70
+ private fun initializeOtelWithGrpc () {
71
+ val builder = OpenTelemetryRum .builder(this )
72
+ .addSpanExporterCustomizer {
73
+ OtlpGrpcSpanExporter .builder().build()
74
+ }
75
+ .addLogRecordExporterCustomizer {
76
+ OtlpGrpcLogRecordExporter .builder().build()
77
+ }
78
+
79
+ // This is an overly-cautious measure to prevent R8 from discarding away the whole method
80
+ // in case it identifies that it's actually not doing anything meaningful.
81
+ if (System .currentTimeMillis() < 0 ) {
82
+ print (builder)
83
+ }
65
84
}
66
85
67
86
companion object {
0 commit comments