feat: add distributed tracing support for Kuadrant components #835
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
New Features
testsuite/istio/__init__.py): New module withIstioCRandTelemetryclasses to configure Istio mesh-level tracing via Sail OperatorAuthorinoCR.set_tracing()andreset_tracing()methods intestsuite/kuadrant/authorino.pyLimitadorCR.set_tracing()andreset_tracing()methods intestsuite/kuadrant/limitador.pytestsuite/kuadrant/__init__.py): New dataclassesObservabilityTracingOptions,DataPlaneOptions, andDataPlaneDefaultLevelsfor granular observability configurationset_observability()to accept both simple bool and fullObservabilityOptionsconfigurationTests
testsuite/tests/singlecluster/tracing/test_kuadrant_tracing.py):test_trace_includes_all_kuadrant_services(): Validates traces include wasm-shim, authorino, limitador, and gateway servicestest_spans_have_correct_policy_source_references(): Verifies auth and ratelimit spans reference correct AuthPolicy/RateLimitPolicy sourcestest_send_reply_span_on_request_rejection(): Tests send_reply spans capture correct status codes for 401/429 rejectionstestsuite/tests/singlecluster/tracing/conftest.py): Module-scoped fixtures for configuring Authorino, Limitador, Istio, and Kuadrant observability with automatic cleanupRefactoring
testsuite/tracing/jaeger.py,testsuite/tracing/tempo.py):search()toget_trace()with configurabletag_nameparameter for better flexibilityget_spans(),get_spans_by_operation(), andget_tags_dict()helper methods toJaegerClientget_trace()signaturetest_tracing.pyandtest_tracing_tags.pyto use newget_trace()methodVerification steps