Need to know how APM Identifies the transaction traces and http header requests send between different microservices for latest version of APM(23.x) agents .
APM 23.x
SOAP header insertion is enabled by default, however, some applications can be impacted by this change. In this case you can disable header insertion as below:
com.wily.introscope.agent.soapheaderread.enabled=false
com.wily.introscope.agent.soapheaderinsertion.enabled=false
com.wily.introscope.agent.httpheaderread.enabled=false
com.wily.introscope.agent.httpheaderinsertion.enabled=false
- If the application works as expected, you can try to enable http header insertion instead:
com.wily.introscope.agent.httpheaderread.enabled=true
com.wily.introscope.agent.httpheaderinsertion.enabled=true
- If the above doesn't disable the header insertion, then it means that correlation ID was likely inserted by a correlation tracer not supporting the agent properties for disabling SOAP/HTTP header insertion, you can try the below additional manual changes:
NOTE: make sure to backup the mentioned pbd files first.
Option 1) Open the <agent-home>/core/config/httpcorrelation.pbd
Comment out "TurnOn: HTTPCorrelation"
Option 2) Open he <agent-home>/core/config/apm-common.pbd
Comment out the below lines:
#TraceComplexMethodsIfFlagged: SessionBeanTracing CorPreTracer "CorId"
#TraceComplexMethodsIfFlagged: SessionBean3Tracing CorPreTracer "CorId"
#TraceComplexMethodsIfFlagged: EntityBeanTracing CorPreTracer "CorId"
#TraceComplexMethodsIfFlagged: EntityBean3Tracing CorPreTracer "CorId"
#TraceComplexMethodsIfFlagged: MessageDrivenBeanTracing CorPreTracer "CorId"
#TraceComplexMethodsIfFlagged: MessageDrivenBean3Tracing CorPreTracer "CorId"
#TraceOneMethodIfFlagged: HttpServletTypeSpecificServiceTracing service(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V CorPreTracer "CorId"
#TraceOneMethodIfFlagged: HTTPServletTracing service(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V CorPreTracer "CorId"
Option 3) If the correlation ID is still being inserted in the header, then open <agent-home>/core/config/j2ee.pbd
Comment out the below lines:
#TraceComplexMethodsIfFlagged: EJB2StubTracing CorTracer "CorId"
#TraceComplexMethodsIfFlagged: EJB3StubTracing CorTracer "CorId"
#TraceComplexMethodsIfFlagged: SessionBeanTracing CorTracer "CorId"
#TraceComplexMethodsIfFlagged: SessionBean3Tracing CorTracer "CorId"
#TraceComplexMethodsIfFlagged: EntityBeanTracing CorTracer "CorId"
#TraceComplexMethodsIfFlagged: EntityBean3Tracing CorTracer "CorId"
#TraceComplexMethodsIfFlagged: MessageDrivenBeanTracing CorTracer "CorId"
#TraceComplexMethodsIfFlagged: MessageDrivenBean3Tracing CorTracer "CorId"
Please Refer KB article :
APM agent is adding the CorID header to the requests
Please Refer the below document:
1:About SOA-Specific Agent Properties:
https://techdocs.broadcom.com/us/en/ca-enterprise-software/it-operations-management/dx-apm-agents/SaaS/java-agent/java-agent-extensions/service-oriented-architecture-platform/soa-specific-agent-configuration-properties.html#concept.dita_2781f60cc47e2c56518856b07e40430f39684b76_AboutSOASpecificAgentProperties
Additional Information
************************
Please note : we do use libraries which conforms to W3C standards to create/insert correlation data in the HTTP request headers.