IBM Support

IBM App Connect Enterprise Tracing Support (IBM-ACE-TRACING-USER-EXIT)

Fix Readme


Abstract

The document describes how to install and enable IBM App Connect Enterprise tracing on your IBM App Connect Enterprise hosts. The tracing data can be sent to Instana or Jaeger depending on the configurations. Current version of IBM App Connect Enterprise Tracing user exit is 2021.4.0.
Update Name/Fix ID: IBM-ACE-TRACING-USER-EXIT

Content


Download location

IMPORTANT NOTE: To download this update, you must first log in to IBM Fix Central by using the following link. After you log in, you can select from the individual download packages. When selecting fixes, ensure that your download options are set to "Include requisites: Yes". 
http://www.ibm.com/support/fixcentral/

Fix Download for Linux

The following is a list of components, platforms, and file names that apply to this readme file.
Product / Component Name Platform Fix
IBM App Connect Enterprise Tracing User Exit Linux x86_64 IBM-ACE-TRACING-USER-EXIT


Prerequisites and co-requisites

General description

This fix provides IBM App Connect Enterprise tracing capability. You can download user exit implementation and configure your IBM App Connect Enterprise integration server to enable tracing. The tracing data is sent to Instana or Jaeger depending on your configuration.

Platforms and prerequisites 

This component supports Linux x86_64 only, and will support more platforms in the future. 

This component supports IBM App Connect Enterprise v11.0.0.8 or later.

Instana and Jaeger are supported tracing systems.  The user exit works with Instana SaaS 214 and later releases.

IBM App Connect Enterprise must be installed and configured before installing and configuring this component. 

Known limitations

IBM App Connect Enterprise tracing user exit supports HTTP request and IBM MQ request only.
IBM App Connect Enterprise tracing user exit supports message flows with input node as the entrypoint only.

Known issues

None.

Installing

1. Download the package from Fix Central to your IBM App Connect Enterprise host. The package includes the following three files.
  • ACEOpenTracingUserExit.lel, the IBM App Connect Enterprise user exit, intercepting the HTTP request and IBM MQ request and invoking the wrapped go Jaeger client library to create spans.
  • tracelibrary.so, the wrapped go Jaeger client, provides functions to manage the lifecycle of spans and sends spans to the target tracing system.
  • acetracingexit.conf, the configuration file to specify the target tracing system (Jaeger or Instana) and the parameters for span generation.
2. Extract tar file into /var/mqsi/shared-classes directory on your IBM App Connect Enterprise host.
Note: If the ACE server is not installed with global installation, the /var/mqsi/shared-classes directory doesn't exist on your IBM ACE host. Create the directory /opt/acetracingexit manually and extract tar file into /opt/acetracingexit directory on your IBM ACE host.


3. Make sure the system account that runs integration node has read and execute accesses to the files in /var/mqsi/shared-classes directory. 

Configuring

This section describes how to configure your IBM App Connect Enterprise to enable tracing, including two parts - Configuring user exit and Configuring IBM App Connect Enterprise tracing.

Configuring user exit

Follow steps to enable tracing for IBM App Connect Enterprise.

1. Stop the integration node.
mqsistop <integrationNodeName>
2. Install the user exit code on an integration node by setting the UserExitPath property using the mqsichangeflowuserexits command.
mqsichangeflowuserexits <integrationNodeName> -o -x /var/mqsi/shared-classes
Note: Replace /var/mqsi/shared-classes with /opt/acetracingexit if you extract ace tracing tar file into /opt/acetracingexit directory.

3. Activate the user exit.
User exits can be active or inactive, and are inactive by default. You can activate user exit for an integration node, an integration server or a specific message flow.

A. Activate the user exit for an integration node. 
mqsichangeflowuserexits <integrationNodeName> -o -a ACEOpenTracingUserExit
Verify the user exit. 
mqsireportflowuserexits <integrationNodeName> -o
Example output:
# mqsireportflowuserexits BK3 -o
BIP8854I: User Exits active for integration server 'BK3': ACEOpenTracingUserExit.
BIP8855I: User Exits inactive for integration server 'BK3': .
BIP8741I: User Exit path for integration server 'BK3': /var/mqsi/shared-classes.
BIP8071I: Successful command completion.
Start the integration node.
mqsistart <integrationNodeName>
B. Activate the user exit for an integration server.
Start the integration node.
mqsistart <integrationNodeName>
Activate the user exit for an integration server.
mqsichangeflowuserexits <integrationNodeName> -e <integrationServerName> -a ACEOpenTracingUserExit
C. Activate the user exit for a message flow.
Start the integration node.
mqsistart <integrationNodeName>
Activate the user exit for a message flow.
mqsichangeflowuserexits <integrationNodeName> -e <integrationServerName> -k <applicationName> -f <messageFlow> -a ACEOpenTracingUserExit
Repeat the steps for other integration nodes, integration servers or message flows that you want to activate the user exit.

See more information at following links.

IBM App Connect Enterprise - Deploying a user exit

Configuring IBM App Connect Enterprise tracing

1. Go to /var/mqsi/shared-classes directory.

2. Edit acetracingexit.conf file.

# configuration for ace tracing exit
LOG_LEVEL="info" #Log level: info, warn, error, debug
SPAN_FORMAT="instana" #specify opentracing span format as instana or jaeger
JAEGER_ENDPOINT = "http://127.0.0.1:14268/api/traces"
#JAEGER_AGENT_HOST="127.0.0.1"      #only effect for Jaeger
#JAEGER_AGENT_PORT=6831          #only effect for Jaeger
JAEGER_SAMPLER_TYPE = "const"   #only effect for Jaeger
JAEGER_SAMPLER_PARAM = 1.0      #only effect for Jaeger
#INSTANA_AGENT_HOST = "localhost" # instana agent host, localhost will be used by default
#INSTANA_AGENT_PROTO = "http" # connection type between ace tracing exit and instana agent, http and https are supported, http will be used by default
#HOST_ALIAS="<YOUR-HOST-NAME>" # host name to match with instana agent configuration.yaml

Where:

  • LOG_LEVEL specifies the log level, which can be one of infowarnerror and debug, the log file is located at /var/mqsi/trace directory on Linux platform.
  • SPAN_FORMAT specifies where the span data is sent to. The SPAN format can be set to instana or jaeger. If SPAN_FORMAT is set to instana, IBM App Connect Enterprise Tracing user exit send span data to the Instana host agent endpoint http://localhost:42699 by default, in such a case you can ignore JAEGER_* parameters in acetracingexit.conf file. Update the configuration items INSTANA_AGENT_HOST and INSTANA_AGENT_PROTO if you want to send the span data to a remote host agent using https protocol.  If SPAN_FORMAT is set to Jaeger, you need to configure JAEGER_* parameters, in such a case you can ignore INSTANA_* parameters. You should have the same SPAN_FORMAT setting for all IBM App Connect Enterprise instances.
  • JAEGER_ENDPOINT specifies Jaeger collector endpoint.  You can choose to send tracing data to Jaeger collector or to the Jaeger agent.  If you want to send tracing data to Jaeger agent, comment this line and specify values for configuration items JAEGER_AGENT_HOST and JAEGER_AGENT_PORT.
  • JAEGER_AGENT_HOST specifies the hostname or IP address of the Jaeger agent.
  • JAEGER_AGENT_PORT specifies the Jaeger agent port.
  • JAEGER_SAMPLER_TYPE specifies the sample type. The value can be one of constprobabilisticratelimiting and remote.
  • JAEGER_SAMPLER_PARAM is interpreted based on the value of JAEGER_SAMPLER_TYPE. See more details at https://www.jaegertracing.io/docs/1.22/sampling/#client-sampling-configuration.
  • INSTANA_AGENT_HOST specifies the Instana agent host where the Instana format span data is sent to, localhost is used by default. If you specify a remote Instana agent host, you also need to add a line http.listen=* in <instana-agent-dir>/etc/instana/com.instana.agent.main.config.Agent.cfg for the remote host agent first as the host agent is not reachable from other hosts by default.
  • INSTANA_AGENT_PROTO specifies the connection type between IBM App Connect Enterprise tracing user exit and the Instana agent, http and https are supported, http is used by default. If you want to change it to https, you need to follow Setup TLS Encryption for Agent Endpoint to secure the Instana agent endpoint first.
  • HOST_ALIAS specifies a host alias for the span data collected by IBM App Connect Enterprise Tracing user exit, so we can link calls to IBM App Connect Enterprise to the infrastructure entity if the integration node or integration server is also monitored by the IBM App Connect Enterprise sensor. The FQDN of IBM App Connect Enterprise host is used by default. The host alias value should match with the IBM App Connect Enterprise host specified in host agent configuration yaml. You only need to specify a host alias if the FQDN of IBM App Connect Enterprise host is not used in IBM App Connect Enterprise sensor configuration when the host agent is not on the local IBM App Connect Enterprise host. The IBM App Connect Enterprise sensor can discover the FQDN for the local integration nodes or integration servers.
3. Save the file and restart integration node or integration server.

Repeat these installation and configuration steps on other IBM App Connect Enterprise hosts that you want to enable tracing for.

You can view IBM App Connect Enterprise tracing data on Instana UI or Jaeger UI depending on the SPAN_FORMAT settings in acetracingexit.conf file.

Unconfiguring

1. Unconfigure user exit.

A. Unconfigure user exit for an integration node.
Stop the integration node.
mqsistop <integrationNodeName>
Deactivate the user exit.
mqsichangeflowuserexits <integrationNodeName> -o -a ""
Restart the integration nodes.

B. Deactivate user exit for an integration server.
mqsichangeflowuserexits <integrationNodeName> -e <integrationServerName> -a ""
C. Deactivate user exit for a message flow.
mqsichangeflowuserexits <integrationNodeName> -e <integrationServerName> -k <applicationName> -f <messageFlow> -a ""
2. Repeat steps on other integration nodes.

Troubleshooting
The log files are at /var/mqsi/trace on Linux platform. The file name is aceExit*.log. 
You can set log level in acetracingexit.conf as described in Configuring IBM App Connect Enterprise tracing section.

Additional information

The Secure Hash Algorithm 1 (SHA256) checksum of the tar file is dd7e52c5c644ea66b266d5676484792338b3840fd1344ea58fb2803a6018cf66


Document change history

Version Date Description of change
1.0 17 Nov 2021 Initial Version

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSVJUL","label":"IBM Application Performance Management"},"Component":"","Platform":[{"code":"PF016","label":"Linux"}],"Version":"8.1.4","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

More support for:
IBM Application Performance Management

Software version:
8.1.4

Operating system(s):
Linux

Document number:
6517010

Modified date:
22 November 2021

UID

ibm16517010

Manage My Notification Subscriptions