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.
Trace represents multiple related process instance spans.
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
-
OpenTelemetry via Jaeger Span Exporter
OpenTelemetry via OpenTelemetry-collector
-
Set up OpenTelemetry-collector service. You can further integrate OpenTelemetry with a tracing service provider, which is compliant with OpenTelemetry.
-
To configure OpenTelemetry with OpenTelemetry-collector, set the following engine properties.
-
bw.engine.opentelemetry.enable=true
-
bw.engine.opentelemetry.span.exporter.endpoint=http://<host>:<otel-collector-port>
OpenTelemetry via Jaeger Span Exporter
-
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>
-
-
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 |
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 |