Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion manifests/dotnet.yml
Original file line number Diff line number Diff line change
Expand Up @@ -572,7 +572,7 @@ manifest:
tests/docker_ssi/test_docker_ssi.py::TestDockerSSIFeatures::test_instrumentation_source_ssi:
- declaration: missing_feature (Not implemented yet)
component_version: <3.22.0
tests/docker_ssi/test_docker_ssi_appsec.py::TestDockerSSIAppsecFeatures::test_telemetry_source_ssi: missing_feature
tests/docker_ssi/test_docker_ssi_appsec.py::TestDockerSSIAppsecFeatures::test_telemetry_source_ssi: v3.36.0
tests/ffe/test_dynamic_evaluation.py: v3.36.0
tests/ffe/test_exposures.py: v3.36.0
tests/integrations/crossed_integrations/test_kafka.py::Test_Kafka: v2.0.0-prerelease
Expand Down
2 changes: 1 addition & 1 deletion manifests/java.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2786,7 +2786,7 @@ manifest:
tests/docker_ssi/test_docker_ssi.py::TestDockerSSIFeatures::test_instrumentation_source_ssi:
- declaration: missing_feature (Not implemented yet)
component_version: <1.52.0
tests/docker_ssi/test_docker_ssi_appsec.py::TestDockerSSIAppsecFeatures::test_telemetry_source_ssi: missing_feature
tests/docker_ssi/test_docker_ssi_appsec.py::TestDockerSSIAppsecFeatures::test_telemetry_source_ssi: v1.59.0
tests/ffe/test_dynamic_evaluation.py:
- weblog_declaration:
"*": irrelevant
Expand Down
2 changes: 1 addition & 1 deletion manifests/nodejs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1445,7 +1445,7 @@ manifest:
tests/docker_ssi/test_docker_ssi.py::TestDockerSSIFeatures::test_instrumentation_source_ssi:
- declaration: missing_feature (Not implemented yet)
component_version: <5.66.0
tests/docker_ssi/test_docker_ssi_appsec.py::TestDockerSSIAppsecFeatures::test_telemetry_source_ssi: missing_feature
tests/docker_ssi/test_docker_ssi_appsec.py::TestDockerSSIAppsecFeatures::test_telemetry_source_ssi: *ref_5_83_0
tests/ffe/test_dynamic_evaluation.py:
- weblog_declaration:
"*": incomplete_test_app
Expand Down
2 changes: 1 addition & 1 deletion manifests/php.yml
Original file line number Diff line number Diff line change
Expand Up @@ -477,7 +477,7 @@ manifest:
tests/docker_ssi/test_docker_ssi.py::TestDockerSSIFeatures::test_instrumentation_source_ssi:
- declaration: missing_feature (Not implemented yet)
component_version: <1.12.0
tests/docker_ssi/test_docker_ssi_appsec.py::TestDockerSSIAppsecFeatures::test_telemetry_source_ssi: missing_feature
tests/docker_ssi/test_docker_ssi_appsec.py::TestDockerSSIAppsecFeatures::test_telemetry_source_ssi: v1.8.3
tests/ffe/test_dynamic_evaluation.py: missing_feature
tests/ffe/test_exposures.py: missing_feature
tests/integrations/crossed_integrations/test_kafka.py::Test_Kafka: missing_feature
Expand Down
2 changes: 0 additions & 2 deletions manifests/python.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1043,8 +1043,6 @@ manifest:
component_version: '>=3.0.0-dev'
tests/docker_ssi/test_docker_ssi.py::TestDockerSSIFeatures::test_telemetry_abort: irrelevant
tests/docker_ssi/test_docker_ssi_appsec.py::TestDockerSSIAppsecFeatures::test_telemetry_source_ssi:
- declaration: bug (APPSEC-61117)
component_version: '>=4.4.0-dev'
- declaration: missing_feature (No implemented)
component_version: <3.15.0
tests/docker_ssi/test_docker_ssi_crash.py::TestDockerSSICrash::test_crash:
Expand Down
4 changes: 3 additions & 1 deletion manifests/ruby.yml
Original file line number Diff line number Diff line change
Expand Up @@ -966,7 +966,9 @@ manifest:
tests/docker_ssi/test_docker_ssi.py::TestDockerSSIFeatures::test_instrumentation_source_ssi:
- declaration: missing_feature (Not implemented yet)
component_version: <2.19.0
tests/docker_ssi/test_docker_ssi_appsec.py::TestDockerSSIAppsecFeatures::test_telemetry_source_ssi: missing_feature
tests/docker_ssi/test_docker_ssi_appsec.py::TestDockerSSIAppsecFeatures::test_telemetry_source_ssi:
- declaration: missing_feature (Not implemented yet)
component_version: <2.19.0
tests/docker_ssi/test_docker_ssi_crash.py::TestDockerSSICrash::test_crash:
- declaration: bug (INPLAT-884)
- declaration: missing_feature (Not implemented)
Expand Down
30 changes: 23 additions & 7 deletions tests/docker_ssi/test_docker_ssi_appsec.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from urllib.parse import urlparse

from tests.parametric.test_telemetry import _mapped_telemetry_name
from utils import scenarios, interfaces, weblog, features, irrelevant, context


Expand All @@ -14,6 +15,9 @@ def setup_telemetry_source_ssi(self):
parsed_url = urlparse(scenarios.docker_ssi_appsec.weblog_url)
self.r = weblog.request("GET", parsed_url.path, domain=parsed_url.hostname, port=parsed_url.port)

@irrelevant(context.library == "java" and context.installed_language_runtime < "1.8.0_0")
@irrelevant(context.library == "php" and context.installed_language_runtime < "7.1")
@irrelevant(context.library == "nodejs" and context.installed_language_runtime < "17.0")
@irrelevant(context.library >= "python@4.0.0.dev" and context.installed_language_runtime < "3.9.0")
@irrelevant(context.library < "python@4.0.0.dev" and context.installed_language_runtime < "3.8.0")
@irrelevant(context.library == "ruby" and context.installed_language_runtime < "2.6.0", reason="Ruby 2.6+ required")
Expand All @@ -23,16 +27,28 @@ def test_telemetry_source_ssi(self):
assert "service" in root_span, f"No service name found in root_span: {root_span}"

# Get all captured telemetry configuration data
telemetry_names: list[str] = _mapped_telemetry_name("instrumentation_source")
configurations = interfaces.test_agent.get_telemetry_configurations(
root_span["service"], root_span["meta"]["runtime-id"]
)

found_instrumentation_source = False
for name in telemetry_names:
if name in configurations:
found_instrumentation_source = True
instrumentation_source: dict = configurations[name]
assert instrumentation_source.get("value") == "ssi", f"{name}=ssi not found in {configurations}"

assert found_instrumentation_source, (
f"No instrumentation_source config found in telemetry. "
f"Looked for {telemetry_names} in {list(configurations.keys())}"
)

# Check that instrumentation source is ssi
injection_source = configurations.get("DD_APPSEC_ENABLED")
injection_source = (
configurations.get("DD_APPSEC_ENABLED") # Python
or configurations.get("appsec.enabled") # Node.js & PHP
or configurations.get("appsec_enabled") # Java
)
assert injection_source, f"instrumentation_source not found in configuration {configurations}"
assert injection_source["value"] in [
"1",
1,
True,
], f"instrumentation_source value is not ssi {injection_source}"
assert injection_source["origin"] == "ssi", f"instrumentation_source value is not ssi {injection_source}"
assert injection_source["value"] in ["1", 1, True, "true"]
Loading