-
Notifications
You must be signed in to change notification settings - Fork 121
Open
Description
Describe the bug
When using a custom HttpAttributesVisitor with the Elastic APM Android SDK, it never gets invoked for auto-instrumented HTTP requests. The default spans (HTTP GET, HTTP POST) appear in APM, but the custom visitor code (including any log statements) is never executed.
To Reproduce
-
Use this configuration (simplified example):
class ApmAttributesVisitor : HttpAttributesVisitor { override fun visit(builder: AttributesBuilder, request: HttpRequest) { Log.d("ApmAgentLogs", "Enter Visitor fun") val uri = Uri.parse(request.url.toString()) val rawPath = uri.path ?: "/" builder.put("http.route", rawPath) } } val httpTraceConfig = HttpTraceConfiguration.builder() .addHttpAttributesVisitor(ApmAttributesVisitor()) .build() val instrumentationsConfig = InstrumentationConfiguration.builder() .enableHttpTracing(true) .build() val elasticConfig = ElasticApmConfiguration.builder() .setHttpTraceConfiguration(httpTraceConfig) .setInstrumentationConfiguration(instrumentationsConfig) .setServiceName("MyServiceName") .build() ElasticApmAgent.initialize(application, elasticConfig)
-
Make an OkHttp-based network call.
-
Observe that the APM UI captures spans named
HTTP GETorHTTP POST, but your custom visitor’s logic is never called (no logs, no custom attributes).
Expected behavior
- The
HttpAttributesVisitorshould be invoked for each auto-instrumented HTTP request. - Logs in
visit(...)should appear in Logcat. - Any custom attributes (e.g.,
http.route) should appear in the APM UI.
Debug logs
I enabled debug logging for the agent but found no references to the custom visitor being invoked.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Type
Fields
Give feedbackNo fields configured for issues without a type.