Skip to content

Commit 955f349

Browse files
committed
Expand testing for datastore spans
1 parent 6acb6ce commit 955f349

File tree

1 file changed

+59
-9
lines changed

1 file changed

+59
-9
lines changed

tests/agent_features/test_span_events.py

+59-9
Original file line numberDiff line numberDiff line change
@@ -181,22 +181,48 @@ def test_database_db_statement_exclude():
181181

182182

183183
@pytest.mark.parametrize(
184-
"trace_type,args,attrs",
184+
"trace_type,args,i_attrs,a_attrs",
185185
(
186186
(
187187
DatastoreTrace,
188-
("db_product", "db_target", "db_operation"),
189-
{"db.collection": "db_target", "db.operation": "db_operation"},
188+
("db_product", "db_target", "db_operation", "db_host", "1234", "db_name"),
189+
{"component": "db_product", "span.kind": "client"},
190+
{
191+
"db.system": "db_product",
192+
"db.operation": "db_operation",
193+
"db.collection": "db_target",
194+
"db.instance": "db_name",
195+
"peer.address": "db_host:1234",
196+
"peer.hostname": "db_host",
197+
"server.address": "db_host",
198+
"server.port": 1234,
199+
},
190200
),
191201
(
192202
DatabaseTrace,
193203
("select 1 from db_table",),
194-
{"db.collection": "db_table", "db.statement": "select ? from db_table"},
204+
{"span.kind": "client"},
205+
{"db.collection": "db_table", "db.statement": "select ? from db_table", "db.operation": "select"},
206+
),
207+
(
208+
DatabaseTrace,
209+
("select 1 from db_table", None, None, None, None, None, "db_host", "1234", "db_name"),
210+
{"span.kind": "client"},
211+
{
212+
"db.statement": "select ? from db_table",
213+
"db.operation": "select",
214+
"db.collection": "db_table",
215+
"db.instance": "db_name",
216+
"peer.address": "db_host:1234",
217+
"peer.hostname": "db_host",
218+
"server.address": "db_host",
219+
"server.port": 1234,
220+
},
195221
),
196222
),
197223
)
198-
def test_datastore_database_trace_attrs(trace_type, args, attrs):
199-
@validate_span_events(count=1, exact_agents=attrs)
224+
def test_datastore_database_trace_attrs(trace_type, args, i_attrs, a_attrs):
225+
@validate_span_events(count=1, exact_intrinsics=i_attrs, exact_agents=a_attrs)
200226
@override_application_settings({"distributed_tracing.enabled": True, "span_events.enabled": True})
201227
@background_task(name="test_database_db_statement_exclude")
202228
def test():
@@ -293,8 +319,23 @@ def _test():
293319
@pytest.mark.parametrize(
294320
"kwarg_override,attribute_override",
295321
(
296-
({"host": "a" * 256}, {"peer.hostname": "a" * 255, "peer.address": "a" * 255}),
297-
({"port_path_or_id": "a" * 256, "host": "a"}, {"peer.hostname": "a", "peer.address": f"a:{'a' * 253}"}),
322+
({"product": "a" * 256}, {"component": "a" * 255, "db.system": "a" * 255}),
323+
({"target": "a" * 256}, {"db.collection": "a" * 255}),
324+
({"operation": "a" * 256}, {"db.operation": "a" * 255}),
325+
({"host": "a" * 256}, {"peer.hostname": "a" * 255, "peer.address": "a" * 255, "server.address": "a" * 255}),
326+
(
327+
{"port_path_or_id": "a" * 256, "host": "a"},
328+
{"peer.hostname": "a", "peer.address": f"a:{'a' * 253}", "server.address": "a", "server.port": None},
329+
),
330+
(
331+
{"port_path_or_id": "1" * 256, "host": "a"},
332+
{
333+
"peer.hostname": "a",
334+
"peer.address": f"a:{'1' * 253}",
335+
"server.address": "a",
336+
"server.port": int("1" * 256),
337+
},
338+
),
298339
({"database_name": "a" * 256}, {"db.instance": "a" * 255}),
299340
),
300341
)
@@ -308,7 +349,16 @@ def test_datastore_span_limits(kwarg_override, attribute_override):
308349
"component": "library",
309350
}
310351

311-
exact_agents = {"db.instance": "db", "peer.hostname": "foo", "peer.address": "foo:1234"}
352+
exact_agents = {
353+
"db.collection": "table",
354+
"db.instance": "db",
355+
"db.operation": "operation",
356+
"db.system": "library",
357+
"peer.address": "foo:1234",
358+
"peer.hostname": "foo",
359+
"server.address": "foo",
360+
"server.port": 1234,
361+
}
312362

313363
for k, v in attribute_override.items():
314364
if k in exact_agents:

0 commit comments

Comments
 (0)