Documentation forSolarWinds Observability

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"
      ]
    }
  ]
  ...
}