diff --git a/manifests/cpp.yml b/manifests/cpp.yml index d5fc06351a8..0e45e01a8aa 100644 --- a/manifests/cpp.yml +++ b/manifests/cpp.yml @@ -139,6 +139,7 @@ manifest: tests/parametric/test_otel_logs.py::Test_FR13_Scope_Fields: missing_feature # Created by easy win activation script tests/parametric/test_otel_metrics.py: missing_feature tests/parametric/test_otel_span_methods.py: irrelevant (library does not implement OpenTelemetry) + tests/parametric/test_otel_span_methods.py::Test_Otel_Span_Methods::test_otel_record_exception_sets_handling_stack_in_go: irrelevant tests/parametric/test_otel_span_with_baggage.py::Test_Otel_Span_With_Baggage: missing_feature tests/parametric/test_otel_tracer.py::Test_Otel_Tracer::test_otel_force_flush: irrelevant (library does not implement OpenTelemetry) tests/parametric/test_otel_tracer.py::Test_Otel_Tracer::test_otel_simple_trace: irrelevant (library does not implement OpenTelemetry) diff --git a/manifests/cpp_httpd.yml b/manifests/cpp_httpd.yml index a713f529823..cf020d2069e 100644 --- a/manifests/cpp_httpd.yml +++ b/manifests/cpp_httpd.yml @@ -29,6 +29,7 @@ manifest: tests/integrations/test_otel_drop_in.py: irrelevant (library does not implement OpenTelemetry) tests/otel/: irrelevant (library does not implement OpenTelemetry) tests/parametric/: irrelevant (Parametric scenario is not applied on C++ httpd) + tests/parametric/test_otel_span_methods.py::Test_Otel_Span_Methods::test_otel_record_exception_sets_handling_stack_in_go: irrelevant tests/remote_config/test_remote_configuration.py::Test_RemoteConfigurationExtraServices: missing_feature tests/remote_config/test_remote_configuration.py::Test_RemoteConfigurationUpdateSequenceASMDD: missing_feature tests/remote_config/test_remote_configuration.py::Test_RemoteConfigurationUpdateSequenceASMDDNoCache: missing_feature diff --git a/manifests/cpp_nginx.yml b/manifests/cpp_nginx.yml index 710ddfc1380..5ff5be0f3fb 100644 --- a/manifests/cpp_nginx.yml +++ b/manifests/cpp_nginx.yml @@ -248,6 +248,7 @@ manifest: tests/integrations/test_inferred_proxy.py: missing_feature tests/integrations/test_otel_drop_in.py::Test_Otel_Drop_In: irrelevant (library does not implement OpenTelemetry) tests/otel/test_context_propagation.py::Test_Otel_Context_Propagation_Default_Propagator_Api: irrelevant (library does not implement OpenTelemetry) + tests/parametric/test_otel_span_methods.py::Test_Otel_Span_Methods::test_otel_record_exception_sets_handling_stack_in_go: irrelevant tests/remote_config/test_remote_configuration.py::Test_RemoteConfigurationExtraServices: missing_feature tests/remote_config/test_remote_configuration.py::Test_RemoteConfigurationUpdateSequenceASMDD: v1.3.0 tests/remote_config/test_remote_configuration.py::Test_RemoteConfigurationUpdateSequenceASMDDNoCache: irrelevant (we opt into cache) diff --git a/manifests/dotnet.yml b/manifests/dotnet.yml index 58e72b9f79d..47ab1189d61 100644 --- a/manifests/dotnet.yml +++ b/manifests/dotnet.yml @@ -865,6 +865,7 @@ manifest: tests/parametric/test_otel_metrics.py::Test_Otel_Metrics_Telemetry::test_telemetry_metrics_grpc: missing_feature (OTel metrics telemetry metrics (otel.metrics_export_attempts) not yet fully flushed in time) tests/parametric/test_otel_metrics.py::Test_Otel_Metrics_Telemetry::test_telemetry_metrics_http_protobuf: missing_feature tests/parametric/test_otel_span_methods.py::Test_Otel_Span_Methods::test_otel_record_exception_sets_all_error_tracking_tags: missing_feature + tests/parametric/test_otel_span_methods.py::Test_Otel_Span_Methods::test_otel_record_exception_sets_handling_stack_in_go: irrelevant tests/parametric/test_otel_span_methods.py::Test_Otel_Span_Methods::test_otel_set_attribute_remapping_httpresponsestatuscode: - declaration: missing_feature (Implemented in 2.53.0) component_version: <2.53.0 diff --git a/manifests/envoy.yml b/manifests/envoy.yml index 59cc8bc2503..3ea663e86c6 100644 --- a/manifests/envoy.yml +++ b/manifests/envoy.yml @@ -27,6 +27,7 @@ manifest: tests/appsec/test_traces.py: v1.72.0 tests/appsec/test_traces.py::Test_CollectRespondHeaders::test_header_collection: missing_feature (The endpoint /headers is not implemented in the weblog) tests/appsec/test_versions.py::Test_Events: v1.72.0 + tests/parametric/test_otel_span_methods.py::Test_Otel_Span_Methods::test_otel_record_exception_sets_handling_stack_in_go: irrelevant tests/test_config_consistency.py::Test_Config_UnifiedServiceTagging_CustomService: v1.72.0 tests/test_scrubbing.py: v1.72.0 tests/test_semantic_conventions.py: v1.72.0 diff --git a/manifests/golang.yml b/manifests/golang.yml index b4dad787ae1..f3b83b64ae3 100644 --- a/manifests/golang.yml +++ b/manifests/golang.yml @@ -1035,6 +1035,9 @@ manifest: tests/parametric/test_otel_span_methods.py::Test_Otel_Span_Methods::test_otel_record_exception_sets_all_error_tracking_tags: # Modified by easy win activation script - declaration: missing_feature (Not implemented) component_version: <2.5.0 + tests/parametric/test_otel_span_methods.py::Test_Otel_Span_Methods::test_otel_record_exception_sets_handling_stack_in_go: + - declaration: missing_feature (Not implemented) + component_version: <2.7.0 tests/parametric/test_otel_span_methods.py::Test_Otel_Span_Methods::test_otel_set_attribute_remapping_httpresponsestatuscode: - declaration: missing_feature (Implemented in 1.65.0) component_version: <1.65.0 diff --git a/manifests/haproxy.yml b/manifests/haproxy.yml index 7ff78699a79..b65361ca3f9 100644 --- a/manifests/haproxy.yml +++ b/manifests/haproxy.yml @@ -25,6 +25,7 @@ manifest: tests/appsec/test_traces.py: v2.4.0 tests/appsec/test_traces.py::Test_CollectRespondHeaders::test_header_collection: missing_feature (The endpoint /headers is not implemented in the weblog) tests/appsec/test_versions.py::Test_Events: v2.4.0 + tests/parametric/test_otel_span_methods.py::Test_Otel_Span_Methods::test_otel_record_exception_sets_handling_stack_in_go: irrelevant tests/test_config_consistency.py::Test_Config_UnifiedServiceTagging_CustomService: v2.4.0 tests/test_scrubbing.py: v2.4.0 tests/test_semantic_conventions.py: v2.4.0 diff --git a/manifests/java.yml b/manifests/java.yml index e56b7917251..722606c5f38 100644 --- a/manifests/java.yml +++ b/manifests/java.yml @@ -3384,6 +3384,7 @@ manifest: tests/parametric/test_otel_span_methods.py::Test_Otel_Span_Methods::test_otel_record_exception_sets_all_error_tracking_tags: - declaration: missing_feature (Not implemented) component_version: <1.40.0 + tests/parametric/test_otel_span_methods.py::Test_Otel_Span_Methods::test_otel_record_exception_sets_handling_stack_in_go: irrelevant tests/parametric/test_otel_span_methods.py::Test_Otel_Span_Methods::test_otel_set_attribute_remapping_httpresponsestatuscode: - declaration: missing_feature (Implemented in 1.35.0) component_version: <1.35.0 diff --git a/manifests/java_otel.yml b/manifests/java_otel.yml index ee4aa5e087e..7b9c3bcec76 100644 --- a/manifests/java_otel.yml +++ b/manifests/java_otel.yml @@ -6,3 +6,4 @@ manifest: tests/integrations/test_open_telemetry.py::Test_MySql::test_properties: bug (OTEL-2778) tests/integrations/test_open_telemetry.py::Test_Postgres::test_obfuscate_query: bug (OTEL-2778) tests/integrations/test_open_telemetry.py::_BaseOtelDbIntegrationTestClass::test_obfuscate_query: bug (OTEL-2778) + tests/parametric/test_otel_span_methods.py::Test_Otel_Span_Methods::test_otel_record_exception_sets_handling_stack_in_go: irrelevant diff --git a/manifests/k8s_cluster_agent.yml b/manifests/k8s_cluster_agent.yml index 9346c95f4cb..4c9d60e3ab8 100644 --- a/manifests/k8s_cluster_agent.yml +++ b/manifests/k8s_cluster_agent.yml @@ -4,3 +4,4 @@ manifest: tests/k8s_lib_injection/test_k8s_lib_injection_profiling.py::TestK8sLibInjectioProfilingClusterEnabled: v7.57.0 tests/k8s_lib_injection/test_k8s_lib_injection_profiling.py::TestK8sLibInjectioProfilingClusterOverride: v7.57.0 tests/k8s_lib_injection/test_k8s_lib_injection_profiling.py::TestK8sLibInjectioProfilingDisabledByDefault: v7.57.0 + tests/parametric/test_otel_span_methods.py::Test_Otel_Span_Methods::test_otel_record_exception_sets_handling_stack_in_go: irrelevant diff --git a/manifests/nodejs.yml b/manifests/nodejs.yml index a43e75b517f..9915271383b 100644 --- a/manifests/nodejs.yml +++ b/manifests/nodejs.yml @@ -1862,6 +1862,7 @@ manifest: tests/parametric/test_otel_span_methods.py::Test_Otel_Span_Methods::test_otel_record_exception_sets_all_error_tracking_tags: - declaration: missing_feature (Implemented in v5.17.0 & v4.41.0) component_version: <5.17.0 + tests/parametric/test_otel_span_methods.py::Test_Otel_Span_Methods::test_otel_record_exception_sets_handling_stack_in_go: irrelevant tests/parametric/test_otel_span_methods.py::Test_Otel_Span_Methods::test_otel_set_attribute_remapping_httpresponsestatuscode: - declaration: missing_feature (Implemented in 5.16.0) component_version: <5.16.0 diff --git a/manifests/nodejs_otel.yml b/manifests/nodejs_otel.yml index fcc0406e3ff..cde58ecde33 100644 --- a/manifests/nodejs_otel.yml +++ b/manifests/nodejs_otel.yml @@ -17,3 +17,4 @@ manifest: tests/integrations/test_open_telemetry.py::_BaseOtelDbIntegrationTestClass::test_error_exception_event: missing_feature (Open telemetry with nodejs is not generating this information.) tests/integrations/test_open_telemetry.py::_BaseOtelDbIntegrationTestClass::test_error_type_and_stack: missing_feature (Open telemetry with nodejs is not generating this information.) tests/integrations/test_open_telemetry.py::_BaseOtelDbIntegrationTestClass::test_obfuscate_query: bug (OTEL-940) + tests/parametric/test_otel_span_methods.py::Test_Otel_Span_Methods::test_otel_record_exception_sets_handling_stack_in_go: irrelevant diff --git a/manifests/php.yml b/manifests/php.yml index d5794bb0498..f797baf17e0 100644 --- a/manifests/php.yml +++ b/manifests/php.yml @@ -669,6 +669,7 @@ manifest: - declaration: missing_feature (Not implemented) component_version: <1.3.0 tests/parametric/test_otel_span_methods.py::Test_Otel_Span_Methods::test_otel_record_exception_sets_all_error_tracking_tags: "missing_feature (\"Not supported: DD only sets error.stack to not break tracer semantics\")" + tests/parametric/test_otel_span_methods.py::Test_Otel_Span_Methods::test_otel_record_exception_sets_handling_stack_in_go: irrelevant tests/parametric/test_otel_span_methods.py::Test_Otel_Span_Methods::test_otel_set_attribute_remapping_httpresponsestatuscode: - declaration: missing_feature (Implemented in 1.1.0) component_version: <1.1.0 diff --git a/manifests/python.yml b/manifests/python.yml index ddcdff86a70..2af84188dca 100644 --- a/manifests/python.yml +++ b/manifests/python.yml @@ -1562,6 +1562,7 @@ manifest: tests/parametric/test_otel_span_methods.py::Test_Otel_Span_Methods::test_otel_record_exception_sets_all_error_tracking_tags: - declaration: missing_feature (Not implemented) component_version: <2.9.0 + tests/parametric/test_otel_span_methods.py::Test_Otel_Span_Methods::test_otel_record_exception_sets_handling_stack_in_go: irrelevant tests/parametric/test_otel_span_methods.py::Test_Otel_Span_Methods::test_otel_set_attribute_remapping_httpresponsestatuscode: - declaration: missing_feature (Implemented in 2.9.0) component_version: <2.9.0 diff --git a/manifests/python_lambda.yml b/manifests/python_lambda.yml index 3fbd533c6ae..f2e42a6ec16 100644 --- a/manifests/python_lambda.yml +++ b/manifests/python_lambda.yml @@ -246,6 +246,7 @@ manifest: - weblog_declaration: "*": v8.113.0 alb-multi: v8.114.0.dev + tests/parametric/test_otel_span_methods.py::Test_Otel_Span_Methods::test_otel_record_exception_sets_handling_stack_in_go: irrelevant tests/test_resource_renaming.py: missing_feature tests/test_rum_injection.py: irrelevant (RUM injection only supported for Java) tests/test_v1_payloads.py: missing_feature diff --git a/manifests/python_otel.yml b/manifests/python_otel.yml index 3b1f3ac95ee..dfd83067a53 100644 --- a/manifests/python_otel.yml +++ b/manifests/python_otel.yml @@ -11,3 +11,4 @@ manifest: tests/integrations/test_open_telemetry.py::_BaseOtelDbIntegrationTestClass::test_db_connection_string: "missing_feature (Open telemetry doesn't send this span for python)" tests/integrations/test_open_telemetry.py::_BaseOtelDbIntegrationTestClass::test_db_operation: "missing_feature (Open Telemetry doesn't send this span for python but it should do)" tests/integrations/test_open_telemetry.py::_BaseOtelDbIntegrationTestClass::test_obfuscate_query: bug (OTEL-940) + tests/parametric/test_otel_span_methods.py::Test_Otel_Span_Methods::test_otel_record_exception_sets_handling_stack_in_go: irrelevant diff --git a/manifests/ruby.yml b/manifests/ruby.yml index 81ae7be2154..c17a9cef81f 100644 --- a/manifests/ruby.yml +++ b/manifests/ruby.yml @@ -1333,6 +1333,7 @@ manifest: tests/parametric/test_otel_span_methods.py::Test_Otel_Span_Methods::test_otel_record_exception_sets_all_error_tracking_tags: - declaration: missing_feature (Not implemented) component_version: <2.3.0 + tests/parametric/test_otel_span_methods.py::Test_Otel_Span_Methods::test_otel_record_exception_sets_handling_stack_in_go: irrelevant tests/parametric/test_otel_span_methods.py::Test_Otel_Span_Methods::test_otel_set_attribute_remapping_httpresponsestatuscode: - declaration: missing_feature (Implemented in 2.0.0) component_version: <2.0.0 diff --git a/manifests/rust.yml b/manifests/rust.yml index 9908665b134..6ddd31d93db 100644 --- a/manifests/rust.yml +++ b/manifests/rust.yml @@ -148,6 +148,7 @@ manifest: tests/parametric/test_otel_metrics.py::Test_Otel_Metrics_Telemetry::test_telemetry_metrics_http_protobuf: '>=0.2.1' # Modified by easy win activation script tests/parametric/test_otel_span_methods.py::Test_Otel_Span_Methods: v0.0.1 tests/parametric/test_otel_span_methods.py::Test_Otel_Span_Methods::test_otel_get_span_context: missing_feature (APMSP-2059) + tests/parametric/test_otel_span_methods.py::Test_Otel_Span_Methods::test_otel_record_exception_sets_handling_stack_in_go: irrelevant tests/parametric/test_otel_span_methods.py::Test_Otel_Span_Methods::test_otel_set_attributes_different_types_legacy: missing_feature (Old array encoding not supported) ? tests/parametric/test_otel_span_methods.py::Test_Otel_Span_Methods::test_otel_span_extended_reserved_attributes_overrides_analytics_event : missing_feature (Not implemented) diff --git a/tests/parametric/test_otel_span_methods.py b/tests/parametric/test_otel_span_methods.py index c78424ebbe8..7ef8b4e66dc 100644 --- a/tests/parametric/test_otel_span_methods.py +++ b/tests/parametric/test_otel_span_methods.py @@ -793,6 +793,26 @@ def test_otel_record_exception_sets_all_error_tracking_tags( assert "error.message" in root_span["meta"] assert "error.type" in root_span["meta"] + def test_otel_record_exception_sets_handling_stack_in_go(self, test_agent: TestAgentAPI, test_library: APMLibrary): + """For dd-trace-go > v2.5.0, we set the throw stack (if available) in error.details and the handling stack in error.stack (always) + For dd-trace-go >= v2.7.0, we set the throw stack (if available) in error.stack and the handling stack in error.handling_stack (always) + https://github.com/DataDog/dd-trace-go/pull/4322 + """ + with test_library, test_library.otel_start_span("operation") as span: + span.set_status(StatusCode.ERROR, "error_desc") + span.record_exception( + message="woof1", attributes={"string_val": "value", "exception.stacktrace": "stacktrace1"} + ) + + traces = test_agent.wait_for_num_traces(1) + trace = find_trace(traces, span.trace_id) + root_span = find_span(trace, span.span_id) + + assert root_span["error"] == 1 + assert "error.handling_stack" in root_span["meta"] + assert "error.message" in root_span["meta"] + assert "error.type" in root_span["meta"] + def run_operation_name_test( expected_operation_name: str, span_kind: int, attributes: dict, test_library: APMLibrary, test_agent: TestAgentAPI