Traces

TIBCO BusinessWorks Container Edition supports all OpenTelemetry-compliant telemetry backends to display a span for each activity and process instance during job execution. Span corresponds to a process instance as well as an activity instance that has information such as ActivityName, JobID, process instance ID. For every process instance, a root span is created and all the activity instances are child spans of it.

Traces represent multiple related process instance spans.

Note: In the case of HTTP palette, JMS palette, REST binding, SOAP binding, client, and server process the instances are shown in one trace. For all other palettes, every process instance is a trace.
Note: Traces can be enabled by enabling the bw.engine.opentelemetry.enable property. By default, it is false.

You can configure the following properties specific to OpenTelemetry:

Property Value Description
bw.engine.opentelemetry.span.processor Possible values are SPAN or BATCH.

The default value is BATCH.

Configure Span Processor type.
bw.engine.opentelemetry.span.processor.delay Value in milliseconds Sets the delay interval between two consecutive exports.
bw.engine.opentelemetry.span.processor.timeout Value in milliseconds Sets the maximum time an export is allowed to run before being canceled.
bw.engine.opentelemetry.span.processor.batch.size Integer value in kb. Sets the maximum batch size for every export. This must be smaller or equal to maxQueuedSpans.
bw.engine.opentelemetry.span.processor.queue.size Queue size in kb Sets the maximum number of spans that are kept in the queue before start dropping. More memory than this value may be allocated to optimize queue access.
bw.engine.opentelemetry.span.sampler ON, OFF, 0.0 to 1.0.

The default value is ON.

Configure Span Sampler type.
bw.engine.opentelemetry.span.exporter OTLP-GRPC This property helps you to set a custom exporter injected as a service. The value of this property should be the component name of the service.

For the Jaeger exporter, the value for this property should be set to com.tibco.bw.opentelemetry.exporter.jaeger.

bw.engine.opentelemetry.span.exporter.endpoint http://<host>:<port> Sets the OTLP or Jaeger endpoint to connect to.
Note: In the case of TIBCO BusinessWorks Container Edition, it is mandatory to set this property.
bw.engine.opentelemetry.span.exporter.timeout Value in milliseconds Sets the maximum time to wait for the collector to process an exported batch of spans.

Supported tags for querying on OpenTelemetry

Currently, the following tags are supported for querying on OpenTelemetry:

Tag Description
SpanInitiator Name of the process starter activity.
DeploymentUnitName Name of the application.
DeploymentUnitVersion Version of the application.
AppnodeName Name of an AppNode on which an application is running.
Hostname Name of the machine on which a TIBCO ActiveMatrix BusinessWorks™ application is running. This tag is applicable for Jaeger exporter UI.
IP IP address. This tag is applicable for Jaeger exporter UI.
ActivityName Name of an activity in a process.
ActivityID Id of an activity.
ProcessInstanceId Process instance ID.
JobId Job ID of the process.
ProcessName Name of the process displayed for starter activities.

OpenTelemetry via Jaeger Span Exporter

  1. Set up a Jaeger service.
  2. To configure OpenTelemetry with Jaeger span exporter by using the following properties:

    bw.engine.opentelemetry.enable=true 
    bw.engine.opentelemetry.span.exporter=com.tibco.bw.opentelemetry.exporter.jaeger
    bw.engine.opentelemetry.span.exporter.endpoint=http://localhost:14250	

Caution: With OpenTelemetry Span Exporter, the tags under process detail such as hostname, IP, Jaeger version are not displayed on the Jaeger UI. If you use the Jaeger exporter service instead of the default OpenTelemetry exporter service, the tags are visible on the Jaeger UI.

By default, the OpenTelemetry traces by using Jaeger Span Exporter and OpenTelemetry Collector are available on Jaeger UI at http://localhost:16686/.