Add custom resource attributes test.

This commit is contained in:
Eugene Grebenschikov 2024-12-19 12:10:22 -08:00
parent d505286205
commit 348c6ae4dc

View file

@ -28,8 +28,8 @@ http {
} }
otel_trace on; otel_trace on;
otel_service_name test_service; {{ service_name }}
otel_resource_attr my.name "my service"; {{ res_attrs }}
server { server {
listen 127.0.0.1:18443 ssl; listen 127.0.0.1:18443 ssl;
@ -241,7 +241,7 @@ def test_context(client, trace_service, parent, path):
@pytest.mark.parametrize( @pytest.mark.parametrize(
"nginx_config", "nginx_config",
[({"interval": "200ms", "scheme": "http://"})], [{"interval": "200ms", "scheme": "http://"}],
indirect=True, indirect=True,
) )
@pytest.mark.parametrize("batch_count", [1, 3]) @pytest.mark.parametrize("batch_count", [1, 3])
@ -258,9 +258,40 @@ def test_batches(client, trace_service, batch_count):
assert len(trace_service.batches) == batch_count assert len(trace_service.batches) == batch_count
for batch in trace_service.batches: for batch in trace_service.batches:
assert get_attr(batch[0].resource, "service.name") == "test_service" assert (
assert get_attr(batch[0].resource, "my.name") == "my service" get_attr(batch[0].resource, "service.name")
== "unknown_service:nginx"
)
assert len(batch[0].scope_spans[0].spans) == batch_size assert len(batch[0].scope_spans[0].spans) == batch_size
time.sleep(0.3) # wait for +1 request to be flushed time.sleep(0.3) # wait for +1 request to be flushed
trace_service.batches.clear() trace_service.batches.clear()
@pytest.mark.parametrize(
"nginx_config",
[
{
"service_name": 'otel_service_name "test_service";',
"res_attrs": 'otel_resource_attr my.name "my name";\n'
+ 'otel_resource_attr my.service "my service";',
}
],
indirect=True,
)
def test_custom_resource_attributes(client, trace_service):
assert client.get("http://127.0.0.1:18080/ok").status_code == 200
for _ in range(10):
if len(trace_service.batches):
break
time.sleep(0.001)
assert len(trace_service.batches) == 1
for batch in trace_service.batches:
assert get_attr(batch[0].resource, "service.name") == "test_service"
assert get_attr(batch[0].resource, "my.name") == "my name"
assert get_attr(batch[0].resource, "my.service") == "my service"
trace_service.batches.clear()