OpenTelemetry
Quarkus Flow provides built-in OpenTelemetry instrumentation, enabling observational insight into your workflow executions.
|
This functionality is tech preview and is currently best suited for straight-through workflow executions. |
Configuring OpenTelemetry
To enable OpenTelemetry, you must add the following dependency to your project:
<dependency>
<groupId>io.quarkiverse.flow</groupId>
<artifactId>quarkus-flow-opentelemetry</artifactId>
</dependency>
Once the dependency is added, workflow executions will start producing OpenTelemetry information automatically.
|
To disable Quarkus Flow OpenTelemetry specifically, set quarkus.flow.otel.enabled=false (in application.properties or as a system/environment property at startup), or simply remove the dependency.
Produced Spans
Quarkus Flow generates two main types of spans to trace workflow execution:
Workflow Spans: Represent the end-to-end lifecycle of a workflow instance, from its initial trigger to completion or failure.
Task Spans: Represent the execution of a workflow task within the context of a parent workflow.
Task spans automatically reflect the workflow hierarchy, attaching as children to either the parent workflow span or another task span.
Workflow Spans
Workflow spans represent the overall execution of a workflow instance and includes the following information:
-
Span Name Format:
workflow.execute <workflow-name> -
Example,
workflow.execute order-processing
| Attribute Name | Type | Description |
|---|---|---|
|
String |
Identifier of the Quarkus Flow application. |
|
String |
Name of the executed workflow. |
|
String |
Unique execution id generated for this specific workflow run. |
|
String |
Namespace of the executed workflow. |
|
String |
Version of the executed workflow. |
Task Spans
Task spans represent the execution of a workflow task and includes the following information:
-
Span Name Format:
task.execute <task-name> -
Example,
task.execute Submit Order
| Attribute Name | Type | Description |
|---|---|---|
|
String |
Identifier of the Quarkus Flow application. |
|
String |
Name of the executed parent workflow. |
|
String |
Unique execution id of the parent workflow execution. |
|
String |
Namespace of the executed parent workflow. |
|
String |
Version of the executed parent workflow. |
|
String |
Name of the executed task. |
|
String |
Type of executed task. Can be any of the following values: |
|
String |
Identifier of the executed task. |
|
Integer |
Number of the current task iteration. |
|
Boolean |
True if the task execution is a retry of a previous failing attempt, false in any other case. |
|
Integer |
Number of retry if the task execution is a retry of a previous failing attempt, 0 in any other case. |
|
Use meaningful names for your workflows and tasks. Because span names and attributes directly reflect your workflow definitions, well-named tasks result in much cleaner and readable traces in your telemetry UI. |
Task-Specific Attributes
In addition to the standard task attributes, certain task types produce specialized attributes relevant to their execution.
Call Http Task Attributes
Tasks of type call_http produce these additional attributes:
| Attribute Name | Type | Description |
|---|---|---|
|
String |
HTTP request method configured in the workflow definition. |
|
String |
URL configured in the workflow definition. |
Call gRPC Task Attributes
Tasks of type call_grpc produce these additional attributes:
| Attribute Name | Type | Description |
|---|---|---|
|
String |
GRPC method configured in the workflow definition. |
|
String |
GRPC service configured in the workflow definition. |
|
String |
GRPC host configured in the workflow definition. |
|
Integer |
GRPC port configured in the workflow definition. |
Call OpenAPI Task Attributes
Tasks of type call_openapi produce these additional attributes:
| Attribute Name | Type | Description |
|---|---|---|
|
String |
The id of the OpenAPI operation to call configured in the workflow definition. |
|
String |
Name of the referred external resource with the OpenAPI document. Only present if configured in the workflow definition. |
|
String |
URL of the OpenAPI document. Only present if configured in the workflow definition. |
Call Function Task Attributes
Tasks of type call_function produce these additional attributes:
| Attribute Name | Type | Description |
|---|---|---|
|
String |
Name of the function to call configured in the workflow definition. |
Call A2A Task Attributes
Tasks of type call_a2a produce these additional attributes:
| Attribute Name | Type | Description |
|---|---|---|
|
String |
Name of the A2A JSON-RPC method to execute configured in the workflow definition. |
|
String |
URI of the A2A server to call. Only present if configured in the workflow definition. |
|
String |
Name of the referred external resource with the AgentCard that describes the agent to call. Only present if configured in the workflow definition. |
|
String |
URL of the resource with the AgentCard that describes the agent to call. Only present if configured in the workflow definition. |
Run Task Attributes
Tasks of type run produce these additional attributes based on the executed kind: workflow, container, script or shell.
| Attribute Name | Type | Applies When | Description |
|---|---|---|---|
|
String |
Always |
Reflects the configured execution variant in the workflow definition: |
|
String |
|
Namespace of the workflow to run configured in the workflow definition. |
|
String |
|
Name of the workflow to run configured in the workflow definition. |
|
String |
|
Version of the workflow to run configured in the workflow definition. |
|
String |
|
Name of the container to run configured in the workflow definition. |
|
String |
|
Full container image name and tag configured in the workflow definition. |
|
String |
|
Container command to execute configured in the workflow definition. |
|
String |
|
Language of the script to execute configured in the workflow definition. |
|
String |
|
Inline script code to execute. Only present if configured in the workflow definition. |
|
String |
|
Name of the referred external resource with the source of the script to execute. Only present if configured in the workflow definition. |
|
String |
|
Full URL of the document with the source of the script to execute. Only present if configured in the workflow definition. |
|
String |
|
Command to execute configured in the workflow definition. |
Wait Task Attributes
Tasks of type wait produce these additional attributes:
| Attribute Name | Type | Description |
|---|---|---|
|
String |
Literal ISO 8601 duration. Only present if configured in the workflow definition. |
|
String |
Duration expression. Only present if configured in the workflow definition. |
|
Integer |
Days of the configured duration. Only present if configured in the workflow definition. |
|
Integer |
Hours of the configured duration. Only present if configured in the workflow definition. |
|
Integer |
Minutes of the configured duration. Only present if configured in the workflow definition. |
|
Integer |
Seconds of the configured duration. Only present if configured in the workflow definition. |
|
Integer |
Milliseconds of the configured duration. Only present if configured in the workflow definition. |
Emit Task Attributes
Tasks of type emit produce these additional attributes:
| Attribute Name | Type | Description |
|---|---|---|
|
String |
Identifier of the emitted event. Only present if configured in the workflow definition. |
|
String |
Type of the emitted event. Only present if configured in the workflow definition. |
|
String |
Source of the emitted event. Only present if configured in the workflow definition. |
|
String |
Subject of the emitted event. Only present if configured in the workflow definition. |
Raise Task Attributes
Tasks of type raise produce these additional attributes:
| Attribute Name | Type | Description |
|---|---|---|
|
String |
Name of the referred error. Only present if configured in the workflow definition. |
|
String |
Expression defining the error type. Only present if configured in the workflow definition. |
|
String |
URI defining the error type. Only present if configured in the workflow definition. |
|
Integer |
Error status code. Only present if configured in the workflow definition. |
|
String |
Error instance. Only present if configured in the workflow definition. |
|
String |
Error title. Only present if configured in the workflow definition. |
|
String |
Error details. Only present if configured in the workflow definition. |