Skip to content

Add tracing spans for non-gRPC actions #409

Description

@silvi-t

Currently, TracingDecoratorTask only wraps gRPC actions, creating a child span under kuadrant_filter with the sources tag (policy name). Non-gRPC actions (headers, deny, store, fail) don't get any tracing spans, so when an extension policy only uses these action types, there is no way to identify the originating policy in the trace.

In Jaeger, you only see the parent kuadrant_filter span with no child spans and no sources tag visible.

Proposed solution

Extend TracingDecoratorTask wrapping to non-gRPC actions in Blueprint::to_tasks():

  1. Parameterize the span name in TracingDecoratorTask — currently hardcoded to "grpc". Use the action kind instead (e.g., "headers", "deny", "store", "fail").
  2. Wrap non-gRPC tasks with TracingDecoratorTask when tracing_enabled is true, the same way gRPC tasks are wrapped today.
  3. No data-flow changes needed — every action already carries the sources field from the operator config, it's just not being used for non-gRPC actions.
  4. No operator-side changes needed.

Relevant code

  • src/kuadrant/pipeline/tasks/tracing_decorator.rsTracingDecoratorTask, span name hardcoded to "grpc"
  • src/kuadrant/pipeline/blueprint.rsBlueprint::to_tasks(), where TracingDecoratorTask wrapping is applied only to gRPC actions

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    • Status
      No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions