Skip to content

Commit 1215b02

Browse files
Merge branch 'main' into duncan-harvey/azure-eventhubs-integration
2 parents 0cf4fa8 + 35c3c11 commit 1215b02

15 files changed

+80
-21
lines changed

.gitlab/benchmarks/bp-runner.microbenchmarks.fail-on-breach.yml

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -799,11 +799,11 @@ experiments:
799799
- name: otelspan-add-metrics
800800
thresholds:
801801
- execution_time < 344.80 ms
802-
- max_rss_usage < 562.00 MB
802+
- max_rss_usage < 600.00 MB
803803
- name: otelspan-add-tags
804804
thresholds:
805805
- execution_time < 314.00 ms
806-
- max_rss_usage < 563.50 MB
806+
- max_rss_usage < 600.00 MB
807807
- name: otelspan-get-context
808808
thresholds:
809809
- execution_time < 92.35 ms
@@ -1027,55 +1027,55 @@ experiments:
10271027
# span
10281028
- name: span-add-event
10291029
thresholds:
1030-
- execution_time < 26.20 ms
1030+
- execution_time < 22.50 ms
10311031
- max_rss_usage < 53.00 MB
10321032
- name: span-add-metrics
10331033
thresholds:
1034-
- execution_time < 98.35 ms
1034+
- execution_time < 93.50 ms
10351035
- max_rss_usage < 961.00 MB
10361036
- name: span-add-tags
10371037
thresholds:
1038-
- execution_time < 168.55 ms
1038+
- execution_time < 155.00 ms
10391039
- max_rss_usage < 962.50 MB
10401040
- name: span-get-context
10411041
thresholds:
1042-
- execution_time < 23.70 ms
1042+
- execution_time < 20.50 ms
10431043
- max_rss_usage < 53.00 MB
10441044
- name: span-is-recording
10451045
thresholds:
1046-
- execution_time < 23.90 ms
1046+
- execution_time < 20.50 ms
10471047
- max_rss_usage < 53.00 MB
10481048
- name: span-record-exception
10491049
thresholds:
1050-
- execution_time < 44.50 ms
1050+
- execution_time < 40.00 ms
10511051
- max_rss_usage < 53.00 MB
10521052
- name: span-set-status
10531053
thresholds:
1054-
- execution_time < 26.00 ms
1054+
- execution_time < 22.00 ms
10551055
- max_rss_usage < 53.00 MB
10561056
- name: span-start
10571057
thresholds:
1058-
- execution_time < 23.50 ms
1058+
- execution_time < 20.50 ms
10591059
- max_rss_usage < 53.00 MB
10601060
- name: span-start-finish
10611061
thresholds:
1062-
- execution_time < 55.50 ms
1062+
- execution_time < 52.50 ms
10631063
- max_rss_usage < 34.00 MB
10641064
- name: span-start-finish-telemetry
10651065
thresholds:
1066-
- execution_time < 58.30 ms
1066+
- execution_time < 54.50 ms
10671067
- max_rss_usage < 34.00 MB
10681068
- name: span-start-finish-traceid128
10691069
thresholds:
1070-
- execution_time < 60.05 ms
1070+
- execution_time < 55.00 ms
10711071
- max_rss_usage < 34.00 MB
10721072
- name: span-start-traceid128
10731073
thresholds:
1074-
- execution_time < 24.60 ms
1074+
- execution_time < 22.50 ms
10751075
- max_rss_usage < 53.00 MB
10761076
- name: span-update-name
10771077
thresholds:
1078-
- execution_time < 24.10 ms
1078+
- execution_time < 22.00 ms
10791079
- max_rss_usage < 53.00 MB
10801080

10811081
# telemetryaddmetric

ddtrace/_trace/tracer.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -466,17 +466,19 @@ def _start_span(
466466
child_of = new_ctx
467467

468468
parent: Optional[Span] = None
469+
context: Optional[Context] = None
470+
trace_id: Optional[int] = None
471+
parent_id: Optional[int] = None
472+
469473
if child_of is not None:
470474
if isinstance(child_of, Context):
471475
context = child_of
472476
else:
473477
context = child_of.context
474478
parent = child_of
475-
else:
476-
context = Context(is_remote=False)
477479

478-
trace_id = context.trace_id
479-
parent_id = context.span_id
480+
trace_id = context.trace_id
481+
parent_id = context.span_id
480482

481483
# The following precedence is used for a new span's service:
482484
# 1. Explicitly provided service name
@@ -493,8 +495,8 @@ def _start_span(
493495
# Update the service name based on any mapping
494496
service = config.service_mapping.get(service, service)
495497

496-
links = context._span_links if not parent else []
497-
if trace_id or links or context._baggage:
498+
links = context._span_links if not parent and context else []
499+
if trace_id or links or (context and context._baggage):
498500
# child_of a non-empty context, so either a local child span or from a remote context
499501
span = Span(
500502
name=name,

ddtrace/constants.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
44
Constants that should NOT be referenced by ddtrace users are marked with a leading underscore.
55
"""
6+
67
_SAMPLING_PRIORITY_KEY = "_sampling_priority_v1"
78
_SAMPLING_AGENT_DECISION = "_dd.agent_psr"
89
_SAMPLING_RULE_DECISION = "_dd.rule_psr"
@@ -28,6 +29,7 @@
2829
_MULTIPLE_IP_HEADERS = "_dd.multiple-ip-headers"
2930
_DJM_ENABLED_KEY = "_dd.djm.enabled"
3031
_FILTER_KEPT_KEY = "_dd.filter.kept"
32+
_AI_OBS_ENABLED_KEY = "_dd.ai_obs.enabled"
3133

3234
APPSEC_ENV = "DD_APPSEC_ENABLED"
3335
_CONFIG_ENDPOINT_ENV = "_DD_CONFIG_ENDPOINT"

ddtrace/contrib/internal/ray/utils.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
from ddtrace._trace._limits import MAX_SPAN_META_VALUE_LEN
1919
from ddtrace._trace.context import Context
2020
from ddtrace._trace.span import Span
21+
from ddtrace.constants import _AI_OBS_ENABLED_KEY
2122
from ddtrace.constants import _DJM_ENABLED_KEY
2223
from ddtrace.constants import _FILTER_KEPT_KEY
2324
from ddtrace.constants import _SAMPLING_PRIORITY_KEY
@@ -88,6 +89,7 @@ def _extract_tracing_context_from_env() -> Optional[Context]:
8889
def _inject_ray_span_tags_and_metrics(span: Span) -> None:
8990
span.set_tag_str("component", RAY_COMPONENT)
9091
span.set_tag_str(RAY_HOSTNAME, socket.gethostname())
92+
span.set_metric(_AI_OBS_ENABLED_KEY, 1)
9193
span.set_metric(_DJM_ENABLED_KEY, 1)
9294
span.set_metric(_FILTER_KEPT_KEY, 1)
9395
span.set_metric(_SPAN_MEASURED_KEY, 1)

tests/appsec/integrations/flask_tests/test_iast_flask_testagent.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import concurrent.futures
22
import json
3+
import sys
34

45
import pytest
56

@@ -519,6 +520,7 @@ def test_gevent_sensitive_socketpair(server, config, iast_enabled, iast_test_tok
519520
assert response.text == "OK:True"
520521

521522

523+
@pytest.mark.skipif(sys.version_info < (3, 9, 0), reason="Test not compatible with Python 3.8")
522524
@pytest.mark.parametrize("server, config", _GEVENT_SERVERS_SCENARIOS)
523525
@pytest.mark.parametrize("iast_enabled", ("true", "false"))
524526
def test_gevent_sensitive_greenlet(server, config, iast_enabled, iast_test_token):

tests/snapshots/tests.contrib.ray.test_ray.test_actor_and_task.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
"span.kind": "producer"
2424
},
2525
"metrics": {
26+
"_dd.ai_obs.enabled": 1,
2627
"_dd.djm.enabled": 1,
2728
"_dd.filter.kept": 1,
2829
"_dd.measured": 1,
@@ -54,6 +55,7 @@
5455
"span.kind": "consumer"
5556
},
5657
"metrics": {
58+
"_dd.ai_obs.enabled": 1,
5759
"_dd.djm.enabled": 1,
5860
"_dd.filter.kept": 1,
5961
"_dd.measured": 1,
@@ -89,6 +91,7 @@
8991
"span.kind": "producer"
9092
},
9193
"metrics": {
94+
"_dd.ai_obs.enabled": 1,
9295
"_dd.djm.enabled": 1,
9396
"_dd.filter.kept": 1,
9497
"_dd.measured": 1,
@@ -120,6 +123,7 @@
120123
"span.kind": "consumer"
121124
},
122125
"metrics": {
126+
"_dd.ai_obs.enabled": 1,
123127
"_dd.djm.enabled": 1,
124128
"_dd.filter.kept": 1,
125129
"_dd.measured": 1,
@@ -154,6 +158,7 @@
154158
"span.kind": "producer"
155159
},
156160
"metrics": {
161+
"_dd.ai_obs.enabled": 1,
157162
"_dd.djm.enabled": 1,
158163
"_dd.filter.kept": 1,
159164
"_dd.measured": 1,
@@ -183,6 +188,7 @@
183188
"span.kind": "consumer"
184189
},
185190
"metrics": {
191+
"_dd.ai_obs.enabled": 1,
186192
"_dd.djm.enabled": 1,
187193
"_dd.filter.kept": 1,
188194
"_dd.measured": 1,
@@ -209,6 +215,7 @@
209215
"span.kind": "consumer"
210216
},
211217
"metrics": {
218+
"_dd.ai_obs.enabled": 1,
212219
"_dd.djm.enabled": 1,
213220
"_dd.filter.kept": 1,
214221
"_dd.measured": 1,
@@ -236,6 +243,7 @@
236243
"span.kind": "producer"
237244
},
238245
"metrics": {
246+
"_dd.ai_obs.enabled": 1,
239247
"_dd.djm.enabled": 1,
240248
"_dd.filter.kept": 1,
241249
"_dd.measured": 1,
@@ -264,6 +272,7 @@
264272
"span.kind": "consumer"
265273
},
266274
"metrics": {
275+
"_dd.ai_obs.enabled": 1,
267276
"_dd.djm.enabled": 1,
268277
"_dd.filter.kept": 1,
269278
"_dd.measured": 1,
@@ -293,6 +302,7 @@
293302
"span.kind": "producer"
294303
},
295304
"metrics": {
305+
"_dd.ai_obs.enabled": 1,
296306
"_dd.djm.enabled": 1,
297307
"_dd.filter.kept": 1,
298308
"_dd.measured": 1,
@@ -321,6 +331,7 @@
321331
"span.kind": "consumer"
322332
},
323333
"metrics": {
334+
"_dd.ai_obs.enabled": 1,
324335
"_dd.djm.enabled": 1,
325336
"_dd.filter.kept": 1,
326337
"_dd.measured": 1,

tests/snapshots/tests.contrib.ray.test_ray.test_actor_interactions.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
"span.kind": "producer"
2424
},
2525
"metrics": {
26+
"_dd.ai_obs.enabled": 1,
2627
"_dd.djm.enabled": 1,
2728
"_dd.filter.kept": 1,
2829
"_dd.measured": 1,
@@ -54,6 +55,7 @@
5455
"span.kind": "consumer"
5556
},
5657
"metrics": {
58+
"_dd.ai_obs.enabled": 1,
5759
"_dd.djm.enabled": 1,
5860
"_dd.filter.kept": 1,
5961
"_dd.measured": 1,
@@ -82,6 +84,7 @@
8284
"span.kind": "consumer"
8385
},
8486
"metrics": {
87+
"_dd.ai_obs.enabled": 1,
8588
"_dd.djm.enabled": 1,
8689
"_dd.filter.kept": 1,
8790
"_dd.measured": 1,
@@ -108,6 +111,7 @@
108111
"span.kind": "consumer"
109112
},
110113
"metrics": {
114+
"_dd.ai_obs.enabled": 1,
111115
"_dd.djm.enabled": 1,
112116
"_dd.filter.kept": 1,
113117
"_dd.measured": 1,
@@ -134,6 +138,7 @@
134138
"span.kind": "producer"
135139
},
136140
"metrics": {
141+
"_dd.ai_obs.enabled": 1,
137142
"_dd.djm.enabled": 1,
138143
"_dd.filter.kept": 1,
139144
"_dd.measured": 1,
@@ -160,6 +165,7 @@
160165
"span.kind": "consumer"
161166
},
162167
"metrics": {
168+
"_dd.ai_obs.enabled": 1,
163169
"_dd.djm.enabled": 1,
164170
"_dd.filter.kept": 1,
165171
"_dd.measured": 1,
@@ -186,6 +192,7 @@
186192
"span.kind": "producer"
187193
},
188194
"metrics": {
195+
"_dd.ai_obs.enabled": 1,
189196
"_dd.djm.enabled": 1,
190197
"_dd.filter.kept": 1,
191198
"_dd.measured": 1,
@@ -212,6 +219,7 @@
212219
"span.kind": "consumer"
213220
},
214221
"metrics": {
222+
"_dd.ai_obs.enabled": 1,
215223
"_dd.djm.enabled": 1,
216224
"_dd.filter.kept": 1,
217225
"_dd.measured": 1,
@@ -238,6 +246,7 @@
238246
"span.kind": "producer"
239247
},
240248
"metrics": {
249+
"_dd.ai_obs.enabled": 1,
241250
"_dd.djm.enabled": 1,
242251
"_dd.filter.kept": 1,
243252
"_dd.measured": 1,
@@ -264,6 +273,7 @@
264273
"span.kind": "consumer"
265274
},
266275
"metrics": {
276+
"_dd.ai_obs.enabled": 1,
267277
"_dd.djm.enabled": 1,
268278
"_dd.filter.kept": 1,
269279
"_dd.measured": 1,
@@ -290,6 +300,7 @@
290300
"span.kind": "producer"
291301
},
292302
"metrics": {
303+
"_dd.ai_obs.enabled": 1,
293304
"_dd.djm.enabled": 1,
294305
"_dd.filter.kept": 1,
295306
"_dd.measured": 1,
@@ -316,6 +327,7 @@
316327
"span.kind": "consumer"
317328
},
318329
"metrics": {
330+
"_dd.ai_obs.enabled": 1,
319331
"_dd.djm.enabled": 1,
320332
"_dd.filter.kept": 1,
321333
"_dd.measured": 1,

tests/snapshots/tests.contrib.ray.test_ray.test_args_kwargs.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
"span.kind": "producer"
2626
},
2727
"metrics": {
28+
"_dd.ai_obs.enabled": 1,
2829
"_dd.djm.enabled": 1,
2930
"_dd.filter.kept": 1,
3031
"_dd.measured": 1,
@@ -58,6 +59,7 @@
5859
"span.kind": "consumer"
5960
},
6061
"metrics": {
62+
"_dd.ai_obs.enabled": 1,
6163
"_dd.djm.enabled": 1,
6264
"_dd.filter.kept": 1,
6365
"_dd.measured": 1,
@@ -94,6 +96,7 @@
9496
"span.kind": "producer"
9597
},
9698
"metrics": {
99+
"_dd.ai_obs.enabled": 1,
97100
"_dd.djm.enabled": 1,
98101
"_dd.filter.kept": 1,
99102
"_dd.measured": 1,
@@ -125,6 +128,7 @@
125128
"span.kind": "consumer"
126129
},
127130
"metrics": {
131+
"_dd.ai_obs.enabled": 1,
128132
"_dd.djm.enabled": 1,
129133
"_dd.filter.kept": 1,
130134
"_dd.measured": 1,

tests/snapshots/tests.contrib.ray.test_ray.test_core_api_deactivated.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
"span.kind": "producer"
2323
},
2424
"metrics": {
25+
"_dd.ai_obs.enabled": 1,
2526
"_dd.djm.enabled": 1,
2627
"_dd.filter.kept": 1,
2728
"_dd.measured": 1,
@@ -53,6 +54,7 @@
5354
"span.kind": "consumer"
5455
},
5556
"metrics": {
57+
"_dd.ai_obs.enabled": 1,
5658
"_dd.djm.enabled": 1,
5759
"_dd.filter.kept": 1,
5860
"_dd.measured": 1,

0 commit comments

Comments
 (0)