diff --git a/CHANGELOG.md b/CHANGELOG.md index 5f763bdd..3e88aef0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,7 @@ This struct is consistent between different CRDs, so that you can easily copy/paste it between stacklets. More information can be found in the [Superset database documentation](https://docs.stackable.tech/home/nightly/superset/usage-guide/database-connections) for details ([#722]). - Internal operator refactoring: introduce dereference() and validate() steps in the reconciler ([#731]). +- test: Bump vector-aggregator to 0.55.0, replace /graphql call with gRPC call ([#735]). [#717]: https://github.com/stackabletech/superset-operator/pull/717 [#719]: https://github.com/stackabletech/superset-operator/pull/719 @@ -31,6 +32,7 @@ [#724]: https://github.com/stackabletech/superset-operator/pull/724 [#726]: https://github.com/stackabletech/superset-operator/pull/726 [#731]: https://github.com/stackabletech/superset-operator/pull/731 +[#735]: https://github.com/stackabletech/superset-operator/pull/735 ## [26.3.0] - 2026-03-16 diff --git a/tests/templates/kuttl/logging/10-install-superset-vector-aggregator.yaml b/tests/templates/kuttl/logging/10-install-superset-vector-aggregator.yaml index 9e92b90f..d105f556 100644 --- a/tests/templates/kuttl/logging/10-install-superset-vector-aggregator.yaml +++ b/tests/templates/kuttl/logging/10-install-superset-vector-aggregator.yaml @@ -5,7 +5,7 @@ commands: - script: >- helm install superset-vector-aggregator vector --namespace $NAMESPACE - --version 0.49.0 + --version 0.52.0 `# app version 0.55.0` --repo https://helm.vector.dev --values superset-vector-aggregator-values.yaml --- diff --git a/tests/templates/kuttl/logging/test_log_aggregation.py b/tests/templates/kuttl/logging/test_log_aggregation.py index f6b7e7a3..0ab54dd9 100755 --- a/tests/templates/kuttl/logging/test_log_aggregation.py +++ b/tests/templates/kuttl/logging/test_log_aggregation.py @@ -1,46 +1,40 @@ -#!/usr/bin/env python3 -import requests +import json +import subprocess def check_sent_events(): - response = requests.post( - "http://superset-vector-aggregator:8686/graphql", - json={ - "query": """ - { - transforms(first:100) { - nodes { - componentId - metrics { - sentEventsTotal { - sentEventsTotal - } - } - } - } - } - """ - }, + response = subprocess.run( + [ + "grpcurl", + "-plaintext", + "-d", + '{"limit": 100}', + "superset-vector-aggregator:8686", + "vector.observability.v1.ObservabilityService/GetComponents", + ], + capture_output=True, + text=True, + check=True, # Raise a CalledProcessError if non-zero return + timeout=20, # seconds ) + result = json.loads(response.stdout) + components = result.get("components", []) + transforms = [ + c for c in components if c.get("componentType") == "COMPONENT_TYPE_TRANSFORM" + ] - assert response.status_code == 200, ( - "Cannot access the API of the vector aggregator." - ) - - result = response.json() + assert len(transforms) > 0, "No transform components found" - transforms = result["data"]["transforms"]["nodes"] for transform in transforms: sentEvents = transform["metrics"]["sentEventsTotal"] componentId = transform["componentId"] if componentId == "filteredInvalidEvents": - assert sentEvents is None or sentEvents["sentEventsTotal"] == 0, ( + assert sentEvents is None or int(sentEvents) == 0, ( "Invalid log events were sent." ) - else: - assert sentEvents is not None and sentEvents["sentEventsTotal"] > 0, ( + assert sentEvents is not None and int(sentEvents) > 0, ( f'No events were sent in "{componentId}".' )