Setting up what to trace in Integration Server and Microservices Runtime

For on-premises services to be traced in End-to-End Monitoring, audit settings must be enabled. There are two ways of doing this. You can choose to trace both higher-level services or private sublevel services based on how much information you want to trace. However, take caution not to trace too much as this uses your cloud storage and reduces the number of historical transactions that you can view. It can also potentially impact the performance of your integrations and increase network traffic. You do not need to trace every subservice to make sure that the transaction is monitored. Errors are propagated up the chain until they are captured by an audited service.

Using WATT properties in Integration Server

This feature complements the auditing options that can be set for each service individually. The advantage is that you can have different logging levels between different environments without having to modify the service settings. This significantly simplifies your service auditing.

  1. In Integration Server settings, select Extended and click Edit-Extended Settings.configuration screenshot
  2. The following new keys are now available for auditing purposes. Use these keys to set the audit levels.
    Include service names Exclude service names
    watt.server.audit.service.include watt.server.audit.service.exclude
Note: Any change in these values is refreshed within ten minutes.

Including service names

  1. To include service names with exact match, use the following syntax. After you set this extended property in Integration Server, these services are included for tracing. This list is captured during the first invocation of the service.
    Syntax Description
    watt.server.audit.service.include=svc1,svc2 svc1 and svc2 are service names in this example where svc1 and svc2 are the fully qualified service names that include the folder namespace.
  2. To include service names that start with a certain text, use the following syntax. These service names can either be complete service names or partial namespaces. This list is captured during the first invocation of the service. You can also include partial names to specify services sharing the same namespace.
    Syntax Description
    watt.server.audit.service.include=svc1*,svc2* All service names starting with svc1 and svc2 are traced, where svc1 and svc2 might be jc.helloworld:* and acme.ordermgmt:pub:* respectively.
  3. When you are tracing many services, using a file makes it easy. You can also choose to specify a file if you have a long list of services to specify. To include service names through a file, use the following syntax. Save your file with a .txt extension. List your service names in include.txt. Place each service name on a separate line in the file. Use # to comment out. Save the file in the relative or absolute path according to the following table. These service names can either be complete service names or partial namespaces. This list is captured during the first invocation of the service.
    Syntax File location
    watt.server.audit.service.include=$file{./include.txt} <install-dir>/IntegrationServer/instances/default
    watt.server.audit.service.include=$file{c:/home/include.txt} c:/home/include.txt
  4. Certain keywords are provided to simplify auditing. The keyword $toplevel is provided to trace all services that are called from an external client. Child services are only started in this case if they are flagged individually for audit. This property can also be used in a comma-separated list with all the previously mentioned features. To include all high-level services, use the following syntax. When you include top-level services, it is preferred to use $wmservices in the exclude list. This configuration reduces the transaction logs usage of all background webMethods.io services in the e2etrace.log file.
    Syntax Description
    watt.server.audit.service.include=$toplevel All top-level services are traced.
Note: It is preferred to use the keyword $wmservices with your exclude list if you are using this property in order to avoid too much tracing.

Excluding service names

  1. To exclude service names, use the following syntax. After you set this extended property in Integration Server, these services are excluded from tracing. These service names can either be complete service names or partial namespaces. This list is captured during the first invocation of the service.
    Syntax Description
    watt.server.audit.service.exclude=svc3,svc4 svc3 and svc4 are service names in this example.
  2. When you are tracing many services, using a file makes it easier. To exclude service names by using a file, use the following syntax in the provided location. Save your file with a .txt extension. List your service names in exclude.txt. Place each service name on a separate line in the file. Use # to comment out. Save the file in the relative or absolute path according to the following table. These service names can either be complete service names or partial namespaces. This list is captured during the first invocation of the service.
    Syntax File location
    watt.server.audit.service.exclude=$file{./exclude.txt} <install-dir>/IntegrationServer/instances/default
    watt.server.audit.service.exclude=$file{c:/home/exclude.txt} c:/home/exclude.txt
  3. To exclude service names through the agent.config file, use the following syntax. When you set this property, all service names in the agent.config file and agent.exclude_serv_list property are excluded from tracing.
    Syntax Description
    watt.server.audit.service.exclude=$wmservices Excludes services by using agent.config.

    Example

    agent.exclude_serv_list=${SW_AGENT_EXCLUDE_SERV_LIST:wm.,com.,pub.} wmservices represents any webMethods services. These service names start with wm. or pub. or com.. However, you can update this list with namespaces of your choice.
    configuration screenshot

Key Combinations

These key properties can be combined. The following are some simple combination examples.

Combination example Description
watt.server.audit.service.include=$toplevel,svc1,svc2,$file{./include.txt} All top-level services are traced, along with svc1 and svc2, and services listed in the file include.txt.
watt.server.audit.service.exclude=svc1,svc2,$wmservices,${file{./exclude.txt} svc1 and svc2 are excluded from tracing. Services that are listed in exclude.txt are also excluded from tracing. Services that are listed in agent.config file and agent.exclude_serv_list property are also excluded from tracing.
Note:
  • * Excludes asynchronous services that are started by using messaging or subthreads, in which case you need to have these services audited. They are considered top-level services in their own right.
  • This setup uses the on-premises auditing of service feature.
Important:
  • What is eventually traced is always an effective difference of all services that are listed in the following two keys: watt.server.audit.service.include and watt.server.audit.service.exclude.
  • However, the include property precludes the exclude property. The values in the include list take precedence even if a match is found in the exclude list. These properties are complementary to the service audit properties and do not replace them, unless you have changed the agent property agent.global_incl_serv_flag.

Enabling audit in the IBM Designer (Deprecated)

You now need to choose the on-premises services that you want to trace in End-to-End Monitoring. This setup is done by changing the auditing setting of each service.

  1. In IBM® Designer, for the on-premises Integration Server services that are associated with hybrid transaction including nested services, enable auditing with the following values:
     Enable auditing: Always
     Log on: Error, Success and start

    configuration screenshot

  2. The following is an example of a hybrid transaction in the End-to-End Monitoring user interface:

    configuration screenshot

    configuration screenshot