newrelic / newrelic-android-agent

SDK to enable instrumentation of Android mobile apps in New Relic
Apache License 2.0
13 stars 11 forks source link

addHTTPHeadersTrackingFor not working when using retrofit #210

Open svn-nguyen-van-thanh-d opened 4 months ago

svn-nguyen-van-thanh-d commented 4 months ago

Summary

I'm using guide for collect header api. I used addHeader to Interceptor request -> not working

I used addHeader by interface @Header of retrofit -> working

Details

I have implemented them as follows:

    @Provides
    @Singleton
    @BaseSourceApi("Main")
    @Inject
    fun provideOkHttpClient(
        @ApplicationContext context: Context,
        @BaseSourceApi("Main") headersInterceptor: Interceptor,
    ): OkHttpClient {
        val cache = Cache(File(context.cacheDir, "http-cache"), CACHE_SIZE)
        val headers = mutableListOf<String>()
        headers.add("header1-test-app")
        headers.add("header2-test-app")
        NewRelic.addHTTPHeadersTrackingFor(headers)
        return OkHttpClient.Builder()
            .addInterceptor(headersInterceptor)
            .cache(cache)
            .connectTimeout(TIME_OUT, TimeUnit.SECONDS)
            .readTimeout(TIME_OUT, TimeUnit.SECONDS)
            .build()
    }
    @Provides
    @Singleton
    @BaseSourceApi("Main")
    fun provideHeadersInterceptor(): Interceptor {
        return Interceptor { chain ->
            val initialRequest = chain.request()
            val builder = initialRequest.newBuilder()
                .addHeader("header1-test-app", "Android developer")
                .addHeader("header2-test-app", "IOS developer")
            val response = chain.proceed(builder.build())
            return@Interceptor response
        }
    }

Expect

expect collect as attached photo

Someone please explain to me why case addHeader to Interceptor request doesn't working. Thanks a lot

Screenshot 2024-05-03 at 13 43 21