Skip to content

Commit fe892b3

Browse files
committed
Handle span and metrics failures
Unfortunately we are getting just one signal at time
1 parent d6f7016 commit fe892b3

1 file changed

Lines changed: 22 additions & 10 deletions

File tree

tests/weaver-tests/tests/flask/test_flask.py

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ def flask_fixture(): # weaver_container_v1_36):
7373
wrapper = shutil.which("opentelemetry-instrument")
7474
opentelemetry_instrumentation = [
7575
wrapper,
76+
# FIXME: looks like there's a race condition somewhere where metrics override the span key in the result :(
7677
"--metric_export_interval",
7778
"4000",
7879
# "--exporter_otlp_endpoint",
@@ -86,7 +87,7 @@ def flask_fixture(): # weaver_container_v1_36):
8687
cwd=application_path,
8788
env={
8889
**os.environ,
89-
"OTEL_SEMCONV_STABILITY_OPT_IN": "http",
90+
"OTEL_SEMCONV_STABILITY_OPT_IN": "http", # comment to make tests fail
9091
}, # use stable http semconv
9192
)
9293

@@ -121,13 +122,24 @@ def test_flask_request(weaver_binary, flask_fixture):
121122
report = json.loads(report_content)
122123

123124
assert report
124-
assert report["span"]
125125

126-
span_attributes_violations = [
127-
advice["message"]
128-
for attribute in report["span"]["attributes"]
129-
for advice in attribute["live_check_result"]["all_advice"]
130-
if advice["level"] == "violation"
131-
]
132-
133-
assert span_attributes_violations == []
126+
if "span" in report:
127+
span_attributes_violations = [
128+
(advice["signal_name"], advice["message"])
129+
for attribute in report["span"]["attributes"]
130+
for advice in attribute["live_check_result"]["all_advice"]
131+
if advice["level"] == "violation"
132+
]
133+
134+
assert span_attributes_violations == []
135+
136+
if "metric" in report:
137+
span_attributes_violations = [
138+
(advice["signal_name"], advice["message"])
139+
for data_point in report["metric"]["data_points"]
140+
for attribute in data_point["attributes"]
141+
for advice in attribute["live_check_result"]["all_advice"]
142+
if advice["level"] == "violation"
143+
]
144+
145+
assert span_attributes_violations == []

0 commit comments

Comments
 (0)