OpenTelemetry

OpenTelemetry is an open, vendor neutral standard for distributed systems that can be used to keep track of the current state of the job. OpenTelemetry is a set of APIs, SDKs, tooling, and integrations designed to create and manage telemetry data such as traces.

TIBCO Cloud Integration supports Jaeger libraries to display 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 etc. For every process instance, root span is created and all the activity instances are child spans of it.

Note: OpenTelemetry does not support checkpointing. If a system fails after checkpoint activity, then traces of the activities that are prior to the Checkpoint activity are not seen on Jaeger UI after restarting the system.

Trace represents multiple related process instance spans.

Note: In case of HTTP palette, JMS palette, REST binding, and SOAP binding, client and server process instances are shown in one trace, whereas for all other palettes, every process instance is a trace.

For more information about OpenTelemetry, see OpenTelemetry documentation.

You can enable OpenTelemetry for your TIBCO Business Studio for BusinessWorks app in following two ways:

OpenTelemetry via OpenTelemetry-collector

  1. Set up OpenTelemetry-collector service. You can further integrate OpenTelemetry with a tracing service provider, which is compliant with OpenTelemetry.

  2. To configure OpenTelemetry with OpenTelemetry-collector, set the following engine properties.

OpenTelemetry via Jaeger Span Exporter

  1. Execute the following command to set up a Jaeger service:

    • For Windows: jaeger-all-in-one

    • For Linux: ./jaeger-all-in-one –collector.zipkin.http-port=<port>

  2. To configure OpenTelemetry with Jaeger span exporter, set the following engine properties.

    bw.engine.opentelemetry.enable=true

    bw.engine.opentelemetry.span.exporter=com.tibco.bw.opentelemetry.exporter.jaeger

    bw.engine.opentelemetry.span.exporter.endpoint=http://<host>:<jaeger-service-port>

To set the engine variables for your application in TIBCO Cloud Integration, see Adding Custom Properties section in the Configuring App Properties topic.

By default, the traces are available on Jaeger UI at http://<host>:16686/.

Additionally 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 will be 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 custom exporter injected as a service. The value of this property should be the component name of the service.

For 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 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