diff --git a/logfire/_internal/main.py b/logfire/_internal/main.py index 7ee015522..23779a875 100644 --- a/logfire/_internal/main.py +++ b/logfire/_internal/main.py @@ -57,7 +57,7 @@ from django.http import HttpRequest, HttpResponse from fastapi import FastAPI from flask.app import Flask - from opentelemetry.metrics import _Gauge as Gauge # type: ignore + from opentelemetry.metrics import _Gauge as Gauge from starlette.applications import Starlette from starlette.requests import Request from starlette.websockets import WebSocket diff --git a/logfire/_internal/metrics.py b/logfire/_internal/metrics.py index 27a873cb7..0d84251df 100644 --- a/logfire/_internal/metrics.py +++ b/logfire/_internal/metrics.py @@ -23,7 +23,7 @@ try: # This only exists in opentelemetry-sdk>=1.23.0 - from opentelemetry.metrics import _Gauge # type: ignore + from opentelemetry.metrics import _Gauge Gauge = _Gauge except ImportError: # pragma: no cover diff --git a/requirements-dev.lock b/requirements-dev.lock index e190d9765..430637436 100644 --- a/requirements-dev.lock +++ b/requirements-dev.lock @@ -121,7 +121,7 @@ idna==3.8 # via httpx # via requests # via yarl -importlib-metadata==8.0.0 +importlib-metadata==8.4.0 # via opentelemetry-api # via opentelemetry-instrumentation-flask iniconfig==2.0.0 @@ -188,7 +188,7 @@ nodeenv==1.9.1 numpy==2.1.0 # via pandas openai==1.42.0 -opentelemetry-api==1.26.0 +opentelemetry-api==1.27.0 # via opentelemetry-exporter-otlp-proto-http # via opentelemetry-instrumentation # via opentelemetry-instrumentation-aiohttp-client @@ -212,11 +212,11 @@ opentelemetry-api==1.26.0 # via opentelemetry-instrumentation-wsgi # via opentelemetry-sdk # via opentelemetry-semantic-conventions -opentelemetry-exporter-otlp-proto-common==1.26.0 +opentelemetry-exporter-otlp-proto-common==1.27.0 # via opentelemetry-exporter-otlp-proto-http -opentelemetry-exporter-otlp-proto-http==1.26.0 +opentelemetry-exporter-otlp-proto-http==1.27.0 # via logfire -opentelemetry-instrumentation==0.47b0 +opentelemetry-instrumentation==0.48b0 # via logfire # via opentelemetry-instrumentation-aiohttp-client # via opentelemetry-instrumentation-asgi @@ -237,39 +237,39 @@ opentelemetry-instrumentation==0.47b0 # via opentelemetry-instrumentation-starlette # via opentelemetry-instrumentation-system-metrics # via opentelemetry-instrumentation-wsgi -opentelemetry-instrumentation-aiohttp-client==0.47b0 -opentelemetry-instrumentation-asgi==0.47b0 +opentelemetry-instrumentation-aiohttp-client==0.48b0 +opentelemetry-instrumentation-asgi==0.48b0 # via opentelemetry-instrumentation-fastapi # via opentelemetry-instrumentation-starlette -opentelemetry-instrumentation-asyncpg==0.47b0 -opentelemetry-instrumentation-celery==0.47b0 -opentelemetry-instrumentation-dbapi==0.47b0 +opentelemetry-instrumentation-asyncpg==0.48b0 +opentelemetry-instrumentation-celery==0.48b0 +opentelemetry-instrumentation-dbapi==0.48b0 # via opentelemetry-instrumentation-mysql # via opentelemetry-instrumentation-psycopg # via opentelemetry-instrumentation-psycopg2 -opentelemetry-instrumentation-django==0.47b0 -opentelemetry-instrumentation-fastapi==0.47b0 -opentelemetry-instrumentation-flask==0.47b0 -opentelemetry-instrumentation-httpx==0.47b0 -opentelemetry-instrumentation-mysql==0.47b0 -opentelemetry-instrumentation-psycopg==0.47b0 -opentelemetry-instrumentation-psycopg2==0.47b0 -opentelemetry-instrumentation-pymongo==0.47b0 -opentelemetry-instrumentation-redis==0.47b0 -opentelemetry-instrumentation-requests==0.47b0 -opentelemetry-instrumentation-sqlalchemy==0.47b0 -opentelemetry-instrumentation-starlette==0.47b0 -opentelemetry-instrumentation-system-metrics==0.47b0 -opentelemetry-instrumentation-wsgi==0.47b0 +opentelemetry-instrumentation-django==0.48b0 +opentelemetry-instrumentation-fastapi==0.48b0 +opentelemetry-instrumentation-flask==0.48b0 +opentelemetry-instrumentation-httpx==0.48b0 +opentelemetry-instrumentation-mysql==0.48b0 +opentelemetry-instrumentation-psycopg==0.48b0 +opentelemetry-instrumentation-psycopg2==0.48b0 +opentelemetry-instrumentation-pymongo==0.48b0 +opentelemetry-instrumentation-redis==0.48b0 +opentelemetry-instrumentation-requests==0.48b0 +opentelemetry-instrumentation-sqlalchemy==0.48b0 +opentelemetry-instrumentation-starlette==0.48b0 +opentelemetry-instrumentation-system-metrics==0.48b0 +opentelemetry-instrumentation-wsgi==0.48b0 # via opentelemetry-instrumentation-django # via opentelemetry-instrumentation-flask -opentelemetry-proto==1.26.0 +opentelemetry-proto==1.27.0 # via opentelemetry-exporter-otlp-proto-common # via opentelemetry-exporter-otlp-proto-http -opentelemetry-sdk==1.26.0 +opentelemetry-sdk==1.27.0 # via logfire # via opentelemetry-exporter-otlp-proto-http -opentelemetry-semantic-conventions==0.47b0 +opentelemetry-semantic-conventions==0.48b0 # via opentelemetry-instrumentation-aiohttp-client # via opentelemetry-instrumentation-asgi # via opentelemetry-instrumentation-asyncpg @@ -286,7 +286,7 @@ opentelemetry-semantic-conventions==0.47b0 # via opentelemetry-instrumentation-starlette # via opentelemetry-instrumentation-wsgi # via opentelemetry-sdk -opentelemetry-util-http==0.47b0 +opentelemetry-util-http==0.48b0 # via opentelemetry-instrumentation-aiohttp-client # via opentelemetry-instrumentation-asgi # via opentelemetry-instrumentation-django @@ -329,7 +329,7 @@ psycopg==3.2.1 psycopg-binary==3.2.1 # via psycopg psycopg2-binary==2.9.9 -pydantic @ git+https://github.com/pydantic/pydantic@9f03db8f7fe2448c1b9d573a2066a0754949786e +pydantic @ git+https://github.com/pydantic/pydantic@27411c4d10e6132ce05160818d265ed22898b0fd # via anthropic # via fastapi # via openai @@ -343,7 +343,7 @@ pymdown-extensions==10.9 # via mkdocs-material # via mkdocstrings pymongo==4.8.0 -pyright==1.1.377 +pyright==1.1.378 pytest==8.3.2 # via pytest-django # via pytest-pretty diff --git a/requirements.lock b/requirements.lock index 1feda60f4..1025b3f90 100644 --- a/requirements.lock +++ b/requirements.lock @@ -23,30 +23,30 @@ googleapis-common-protos==1.65.0 # via opentelemetry-exporter-otlp-proto-http idna==3.8 # via requests -importlib-metadata==8.0.0 +importlib-metadata==8.4.0 # via opentelemetry-api markdown-it-py==3.0.0 # via rich mdurl==0.1.2 # via markdown-it-py -opentelemetry-api==1.26.0 +opentelemetry-api==1.27.0 # via opentelemetry-exporter-otlp-proto-http # via opentelemetry-instrumentation # via opentelemetry-sdk # via opentelemetry-semantic-conventions -opentelemetry-exporter-otlp-proto-common==1.26.0 +opentelemetry-exporter-otlp-proto-common==1.27.0 # via opentelemetry-exporter-otlp-proto-http -opentelemetry-exporter-otlp-proto-http==1.26.0 +opentelemetry-exporter-otlp-proto-http==1.27.0 # via logfire -opentelemetry-instrumentation==0.47b0 +opentelemetry-instrumentation==0.48b0 # via logfire -opentelemetry-proto==1.26.0 +opentelemetry-proto==1.27.0 # via opentelemetry-exporter-otlp-proto-common # via opentelemetry-exporter-otlp-proto-http -opentelemetry-sdk==1.26.0 +opentelemetry-sdk==1.27.0 # via logfire # via opentelemetry-exporter-otlp-proto-http -opentelemetry-semantic-conventions==0.47b0 +opentelemetry-semantic-conventions==0.48b0 # via opentelemetry-sdk protobuf==4.25.4 # via googleapis-common-protos diff --git a/tests/otel_integrations/test_asgi.py b/tests/otel_integrations/test_asgi.py index a36203ae3..e355eef2b 100644 --- a/tests/otel_integrations/test_asgi.py +++ b/tests/otel_integrations/test_asgi.py @@ -93,7 +93,6 @@ def homepage(_: Request): 'http.scheme': 'http', 'url.scheme': 'http', 'http.host': 'testserver', - 'server.address': 'testserver', 'net.host.port': 80, 'server.port': 80, 'http.flavor': '1.1', @@ -101,14 +100,13 @@ def homepage(_: Request): 'http.target': '/', 'url.path': '/', 'http.url': 'http://testserver/', - 'url.full': 'http://testserver/', 'http.method': 'GET', 'http.request.method': 'GET', 'http.server_name': 'testserver', 'http.user_agent': 'testclient', 'user_agent.original': 'testclient', 'net.peer.ip': 'testclient', - 'client.address': 'testclient', + 'client.address': 'testserver', 'net.peer.port': 50000, 'client.port': 50000, 'http.status_code': 200, diff --git a/tests/otel_integrations/test_django.py b/tests/otel_integrations/test_django.py index c784c4b7a..31fc9e0bc 100644 --- a/tests/otel_integrations/test_django.py +++ b/tests/otel_integrations/test_django.py @@ -64,6 +64,7 @@ def test_good_route(client: Client, exporter: TestExporter, metrics_reader: InMe 'net.host.port': 80, 'http.flavor': '1.1', 'http.status_code': 200, + 'http.target': 'django_test_app//', }, 'start_time_unix_nano': IsInt(), 'time_unix_nano': IsInt(), diff --git a/tests/otel_integrations/test_fastapi.py b/tests/otel_integrations/test_fastapi.py index a9f8b563c..feb560db3 100644 --- a/tests/otel_integrations/test_fastapi.py +++ b/tests/otel_integrations/test_fastapi.py @@ -158,7 +158,6 @@ def test_404(client: TestClient, exporter: TestExporter) -> None: 'http.scheme': 'http', 'url.scheme': 'http', 'http.host': 'testserver', - 'server.address': 'testserver', 'net.host.port': 80, 'server.port': 80, 'http.flavor': '1.1', @@ -166,14 +165,13 @@ def test_404(client: TestClient, exporter: TestExporter) -> None: 'http.target': '/missing', 'url.path': '/missing', 'http.url': 'http://testserver/missing', - 'url.full': 'http://testserver/missing', 'http.method': 'GET', 'http.request.method': 'GET', 'http.server_name': 'testserver', 'http.user_agent': 'testclient', 'user_agent.original': 'testclient', 'net.peer.ip': 'testclient', - 'client.address': 'testclient', + 'client.address': 'testserver', 'net.peer.port': 50000, 'client.port': 50000, 'http.status_code': 404, @@ -211,7 +209,6 @@ def test_path_param(client: TestClient, exporter: TestExporter) -> None: 'http.scheme': 'http', 'url.scheme': 'http', 'http.host': 'testserver', - 'server.address': 'testserver', 'net.host.port': 80, 'server.port': 80, 'http.flavor': '1.1', @@ -219,14 +216,13 @@ def test_path_param(client: TestClient, exporter: TestExporter) -> None: 'http.target': '/with_path_param/param_val', 'url.path': '/with_path_param/param_val', 'http.url': 'http://testserver/with_path_param/param_val', - 'url.full': 'http://testserver/with_path_param/param_val', 'http.method': 'GET', 'http.request.method': 'GET', 'http.server_name': 'testserver', 'http.user_agent': 'testclient', 'user_agent.original': 'testclient', 'net.peer.ip': 'testclient', - 'client.address': 'testclient', + 'client.address': 'testserver', 'net.peer.port': 50000, 'client.port': 50000, 'http.route': '/with_path_param/{param}', @@ -370,7 +366,6 @@ def test_path_param(client: TestClient, exporter: TestExporter) -> None: 'http.scheme': 'http', 'url.scheme': 'http', 'http.host': 'testserver', - 'server.address': 'testserver', 'net.host.port': 80, 'server.port': 80, 'http.flavor': '1.1', @@ -378,14 +373,13 @@ def test_path_param(client: TestClient, exporter: TestExporter) -> None: 'http.target': '/with_path_param/param_val', 'url.path': '/with_path_param/param_val', 'http.url': 'http://testserver/with_path_param/param_val', - 'url.full': 'http://testserver/with_path_param/param_val', 'http.method': 'GET', 'http.request.method': 'GET', 'http.server_name': 'testserver', 'http.user_agent': 'testclient', 'user_agent.original': 'testclient', 'net.peer.ip': 'testclient', - 'client.address': 'testclient', + 'client.address': 'testserver', 'net.peer.port': 50000, 'client.port': 50000, 'http.route': '/with_path_param/{param}', @@ -434,7 +428,6 @@ def test_fastapi_instrumentation(client: TestClient, exporter: TestExporter) -> 'http.scheme': 'http', 'url.scheme': 'http', 'http.host': 'testserver', - 'server.address': 'testserver', 'net.host.port': 80, 'server.port': 80, 'http.flavor': '1.1', @@ -442,14 +435,13 @@ def test_fastapi_instrumentation(client: TestClient, exporter: TestExporter) -> 'http.target': '/', 'url.path': '/', 'http.url': 'http://testserver/', - 'url.full': 'http://testserver/', 'http.method': 'GET', 'http.request.method': 'GET', 'http.server_name': 'testserver', 'http.user_agent': 'testclient', 'user_agent.original': 'testclient', 'net.peer.ip': 'testclient', - 'client.address': 'testclient', + 'client.address': 'testserver', 'net.peer.port': 50000, 'client.port': 50000, 'http.route': '/', @@ -609,7 +601,6 @@ def test_fastapi_instrumentation(client: TestClient, exporter: TestExporter) -> 'http.scheme': 'http', 'url.scheme': 'http', 'http.host': 'testserver', - 'server.address': 'testserver', 'net.host.port': 80, 'server.port': 80, 'http.flavor': '1.1', @@ -617,14 +608,13 @@ def test_fastapi_instrumentation(client: TestClient, exporter: TestExporter) -> 'http.target': '/', 'url.path': '/', 'http.url': 'http://testserver/', - 'url.full': 'http://testserver/', 'http.method': 'GET', 'http.request.method': 'GET', 'http.server_name': 'testserver', 'http.user_agent': 'testclient', 'user_agent.original': 'testclient', 'net.peer.ip': 'testclient', - 'client.address': 'testclient', + 'client.address': 'testserver', 'net.peer.port': 50000, 'client.port': 50000, 'http.route': '/', @@ -737,7 +727,6 @@ def test_fastapi_arguments(client: TestClient, exporter: TestExporter) -> None: 'http.scheme': 'http', 'url.scheme': 'http', 'http.host': 'testserver', - 'server.address': 'testserver', 'net.host.port': 80, 'server.port': 80, 'http.flavor': '1.1', @@ -746,14 +735,13 @@ def test_fastapi_arguments(client: TestClient, exporter: TestExporter) -> None: 'url.path': '/other', 'url.query': 'foo=foo_val&bar=bar_val', 'http.url': 'http://testserver/other?foo=foo_val&bar=bar_val', - 'url.full': 'http://testserver/other?foo=foo_val&bar=bar_val', 'http.method': 'GET', 'http.request.method': 'GET', 'http.server_name': 'testserver', 'http.user_agent': 'testclient', 'user_agent.original': 'testclient', 'net.peer.ip': 'testclient', - 'client.address': 'testclient', + 'client.address': 'testserver', 'net.peer.port': 50000, 'client.port': 50000, 'http.route': '/other', @@ -866,7 +854,6 @@ def test_get_fastapi_arguments(client: TestClient, exporter: TestExporter) -> No 'http.scheme': 'http', 'url.scheme': 'http', 'http.host': 'testserver', - 'server.address': 'testserver', 'net.host.port': 80, 'server.port': 80, 'http.flavor': '1.1', @@ -875,14 +862,13 @@ def test_get_fastapi_arguments(client: TestClient, exporter: TestExporter) -> No 'url.path': '/other', 'url.query': 'foo=foo_val&bar=1', 'http.url': 'http://testserver/other?foo=foo_val&bar=1', - 'url.full': 'http://testserver/other?foo=foo_val&bar=1', 'http.method': 'GET', 'http.request.method': 'GET', 'http.server_name': 'testserver', 'http.user_agent': 'testclient', 'user_agent.original': 'testclient', 'net.peer.ip': 'testclient', - 'client.address': 'testclient', + 'client.address': 'testserver', 'net.peer.port': 50000, 'client.port': 50000, 'http.route': '/other', @@ -995,7 +981,6 @@ def test_first_lvl_subapp_fastapi_arguments(client: TestClient, exporter: TestEx 'http.scheme': 'http', 'url.scheme': 'http', 'http.host': 'testserver', - 'server.address': 'testserver', 'net.host.port': 80, 'server.port': 80, 'http.flavor': '1.1', @@ -1004,14 +989,13 @@ def test_first_lvl_subapp_fastapi_arguments(client: TestClient, exporter: TestEx 'url.path': '/first_lvl/other', 'url.query': 'foo=foo_val&bar=1', 'http.url': 'http://testserver/first_lvl/other?foo=foo_val&bar=1', - 'url.full': 'http://testserver/first_lvl/other?foo=foo_val&bar=1', 'http.method': 'GET', 'http.request.method': 'GET', 'http.server_name': 'testserver', 'http.user_agent': 'testclient', 'user_agent.original': 'testclient', 'net.peer.ip': 'testclient', - 'client.address': 'testclient', + 'client.address': 'testserver', 'net.peer.port': 50000, 'client.port': 50000, 'http.route': '/first_lvl', @@ -1124,7 +1108,6 @@ def test_second_lvl_subapp_fastapi_arguments(client: TestClient, exporter: TestE 'http.scheme': 'http', 'url.scheme': 'http', 'http.host': 'testserver', - 'server.address': 'testserver', 'net.host.port': 80, 'server.port': 80, 'http.flavor': '1.1', @@ -1133,14 +1116,13 @@ def test_second_lvl_subapp_fastapi_arguments(client: TestClient, exporter: TestE 'url.path': '/first_lvl/second_lvl/other', 'url.query': 'foo=foo_val&bar=1', 'http.url': 'http://testserver/first_lvl/second_lvl/other?foo=foo_val&bar=1', - 'url.full': 'http://testserver/first_lvl/second_lvl/other?foo=foo_val&bar=1', 'http.method': 'GET', 'http.request.method': 'GET', 'http.server_name': 'testserver', 'http.user_agent': 'testclient', 'user_agent.original': 'testclient', 'net.peer.ip': 'testclient', - 'client.address': 'testclient', + 'client.address': 'testserver', 'net.peer.port': 50000, 'client.port': 50000, 'http.route': '/first_lvl', @@ -1216,7 +1198,6 @@ def test_fastapi_unhandled_exception(client: TestClient, exporter: TestExporter) 'http.scheme': 'http', 'url.scheme': 'http', 'http.host': 'testserver', - 'server.address': 'testserver', 'net.host.port': 80, 'server.port': 80, 'http.flavor': '1.1', @@ -1224,14 +1205,13 @@ def test_fastapi_unhandled_exception(client: TestClient, exporter: TestExporter) 'http.target': '/exception', 'url.path': '/exception', 'http.url': 'http://testserver/exception', - 'url.full': 'http://testserver/exception', 'http.method': 'GET', 'http.request.method': 'GET', 'http.server_name': 'testserver', 'http.user_agent': 'testclient', 'user_agent.original': 'testclient', 'net.peer.ip': 'testclient', - 'client.address': 'testclient', + 'client.address': 'testserver', 'net.peer.port': 50000, 'client.port': 50000, 'http.route': '/exception', @@ -1348,7 +1328,6 @@ def test_fastapi_handled_exception(client: TestClient, exporter: TestExporter) - 'http.scheme': 'http', 'url.scheme': 'http', 'http.host': 'testserver', - 'server.address': 'testserver', 'net.host.port': 80, 'server.port': 80, 'http.flavor': '1.1', @@ -1356,14 +1335,13 @@ def test_fastapi_handled_exception(client: TestClient, exporter: TestExporter) - 'http.target': '/validation_error', 'url.path': '/validation_error', 'http.url': 'http://testserver/validation_error', - 'url.full': 'http://testserver/validation_error', 'http.method': 'GET', 'http.request.method': 'GET', 'http.server_name': 'testserver', 'http.user_agent': 'testclient', 'user_agent.original': 'testclient', 'net.peer.ip': 'testclient', - 'client.address': 'testclient', + 'client.address': 'testserver', 'net.peer.port': 50000, 'client.port': 50000, 'http.route': '/validation_error', @@ -1482,7 +1460,6 @@ def test_scrubbing(client: TestClient, exporter: TestExporter) -> None: 'http.scheme': 'http', 'url.scheme': 'http', 'http.host': 'testserver', - 'server.address': 'testserver', 'net.host.port': 80, 'server.port': 80, 'http.flavor': '1.1', @@ -1491,14 +1468,13 @@ def test_scrubbing(client: TestClient, exporter: TestExporter) -> None: 'url.path': '/secret/test_auth', 'url.query': 'foo=foo_val&password=hunter2', 'http.url': 'http://testserver/secret/test_auth?foo=foo_val&password=hunter2', - 'url.full': 'http://testserver/secret/test_auth?foo=foo_val&password=hunter2', 'http.method': 'GET', 'http.request.method': 'GET', 'http.server_name': 'testserver', 'http.user_agent': 'testclient', 'user_agent.original': 'testclient', 'net.peer.ip': 'testclient', - 'client.address': 'testclient', + 'client.address': 'testserver', 'net.peer.port': 50000, 'client.port': 50000, 'http.route': '/secret/{path_param}', @@ -1656,7 +1632,6 @@ def test_request_hooks_without_send_receiev_spans(exporter: TestExporter): 'http.scheme': 'http', 'url.scheme': 'http', 'http.host': 'testserver', - 'server.address': 'testserver', 'net.host.port': 80, 'server.port': 80, 'http.flavor': '1.1', @@ -1664,14 +1639,13 @@ def test_request_hooks_without_send_receiev_spans(exporter: TestExporter): 'http.target': '/echo_body', 'url.path': '/echo_body', 'http.url': 'http://testserver/echo_body', - 'url.full': 'http://testserver/echo_body', 'http.method': 'POST', 'http.request.method': 'POST', 'http.server_name': 'testserver', 'http.user_agent': 'testclient', 'user_agent.original': 'testclient', 'net.peer.ip': 'testclient', - 'client.address': 'testclient', + 'client.address': 'testserver', 'net.peer.port': 50000, 'client.port': 50000, 'http.route': '/echo_body', @@ -1844,7 +1818,6 @@ def test_request_hooks_with_send_receive_spans(exporter: TestExporter): 'http.scheme': 'http', 'url.scheme': 'http', 'http.host': 'testserver', - 'server.address': 'testserver', 'net.host.port': 80, 'server.port': 80, 'http.flavor': '1.1', @@ -1852,14 +1825,13 @@ def test_request_hooks_with_send_receive_spans(exporter: TestExporter): 'http.target': '/echo_body', 'url.path': '/echo_body', 'http.url': 'http://testserver/echo_body', - 'url.full': 'http://testserver/echo_body', 'http.method': 'POST', 'http.request.method': 'POST', 'http.server_name': 'testserver', 'http.user_agent': 'testclient', 'user_agent.original': 'testclient', 'net.peer.ip': 'testclient', - 'client.address': 'testclient', + 'client.address': 'testserver', 'net.peer.port': 50000, 'client.port': 50000, 'http.route': '/echo_body', diff --git a/tests/otel_integrations/test_starlette.py b/tests/otel_integrations/test_starlette.py index 22c9d417c..a69ed3ca8 100644 --- a/tests/otel_integrations/test_starlette.py +++ b/tests/otel_integrations/test_starlette.py @@ -135,18 +135,16 @@ def test_websocket(client: TestClient, exporter: TestExporter) -> None: 'http.scheme': 'ws', 'url.scheme': 'ws', 'http.host': 'testserver', - 'server.address': 'testserver', 'net.host.port': 80, 'server.port': 80, 'http.target': '/ws', 'url.path': '/ws', 'http.url': 'ws://testserver/ws', - 'url.full': 'ws://testserver/ws', 'http.server_name': 'testserver', 'http.user_agent': 'testclient', 'user_agent.original': 'testclient', 'net.peer.ip': 'testclient', - 'client.address': 'testclient', + 'client.address': 'testserver', 'net.peer.port': 50000, 'client.port': 50000, 'http.route': '/ws', @@ -188,7 +186,6 @@ def test_scrubbing(client: TestClient, exporter: TestExporter) -> None: 'http.scheme': 'http', 'url.scheme': 'http', 'http.host': 'testserver', - 'server.address': 'testserver', 'net.host.port': 80, 'server.port': 80, 'http.flavor': '1.1', @@ -197,14 +194,13 @@ def test_scrubbing(client: TestClient, exporter: TestExporter) -> None: 'url.path': '/secret/my_token', 'url.query': 'foo=foo_val&password=hunter2', 'http.url': 'http://testserver/secret/my_token?foo=foo_val&password=hunter2', - 'url.full': 'http://testserver/secret/my_token?foo=foo_val&password=hunter2', 'http.method': 'GET', 'http.request.method': 'GET', 'http.server_name': 'testserver', 'http.user_agent': 'testclient', 'user_agent.original': 'testclient', 'net.peer.ip': 'testclient', - 'client.address': 'testclient', + 'client.address': 'testserver', 'net.peer.port': 50000, 'client.port': 50000, 'http.route': '/secret/{path_param}',