GuideWire support
The GuideWire application is an Apache Tomcat application. Tomcat implements the Java Servlet API. As a result, an instrumentation that targets the Java Servlet API classes will instrument the GuideWire software. Traces are automatically captured by our agent when attached to the application.
Capture servlet request parameters
To enrich the trace spans with the request parameters like eventSource
you can configure one the following:
-
The environment variable
OTEL_INSTRUMENTATION_SERVLET_EXPERIMENTAL_CAPTURE_REQUEST_PARAMETERS
-
The system property
otel.instrumentation.servlet.experimental.capture-request-parameters
The following example uses an environment variable configuration to extract request parameters named eventSource
and eventParam
.
OTEL_INSTRUMENTATION_SERVLET_EXPERIMENTAL_CAPTURE_REQUEST_PARAMETERS=eventSource,eventParam
The setting above captures the specified parameters if they are available in the request. The captured value is added to the entry span of the service, and the attribute name is prefixed with servlet.request.parameter.
and converted to lowercase. The example would produce attribute names of servlet.request.parameter.eventsource
and servlet.request.parameter.eventparam
.
For more information about these configuration variables, see Capturing servlet request parameters in the OTel documentation.
Capture HTTP request and response headers
You can also enrich the spans with request headers. For more information, see Capturing HTTP request and response headers in the OTel documentation. Use the server configuration properties, not the client configuration properties. Like the extracted request parameter attributes, the extracted header attribute name is prefixed with http.request.header.
and converted to lowercase.
Disable tracing of GuideWire background activities
To ensure the agent captures only real user traces, add the following configuration to the solarwinds-apm-config.json
file. This configuration disables tracing of GuideWire background activities to ensure they don’t drown out real user-generated traces and exhaust your transaction name namespace.
"agent.transactionSettings": [ { "regex": "CLIENT:.*", "tracing": "disabled"
Include captured data in a transaction name
To use any of the captured request parameter or header values as a transaction name, set up a configurable transaction naming scheme.
Example configuration
The following base configuration example captures the eventSource
and eventParam
request parameters, which are used to set meaningful transaction names. It also disables tracing of background activities. You can modify this example to fit your needs.
Environment variable
OTEL_INSTRUMENTATION_SERVLET_EXPERIMENTAL_CAPTURE_REQUEST_PARAMETERS=eventSource,eventParam
Configuration in solarwinds-apm-config.json
{
"agent.transactionSettings": [
{
"regex": "CLIENT:.*",
"tracing": "disabled"
}
],
"agent.transactionNameSchemes": [
{
"scheme": "spanAttribute",
"delimiter": "",
"attributes": [
"servlet.request.parameter.eventsource"
]
},
{
"scheme": "spanAttribute",
"delimiter": "",
"attributes": [
"servlet.request.parameter.eventparam"
]
}
]
...
}