redis: fix default port KeyError, wrong attr name (#265)

* redis: fix default port KeyError, wrong attr name
* fix docker tests and another ip/port issue in asyncpg

Co-authored-by: Alex Boten <aboten@lightstep.com>
This commit is contained in:
Vint Sanghyeok Lee
2021-04-15 00:45:36 +09:00
committed by GitHub
parent 96b0f592b7
commit 08682f6f1d
5 changed files with 12 additions and 8 deletions

View File

@ -20,6 +20,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
([#424](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/424)) ([#424](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/424))
- Update gRPC instrumentation to better wrap server context - Update gRPC instrumentation to better wrap server context
([#420](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/420)) ([#420](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/420))
- `opentelemetry-instrumentation-redis` Fix default port KeyError and Wrong Attribute name (net.peer.ip -> net.peer.port)
([#265](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/265))
- `opentelemetry-instrumentation-asyncpg` Fix default port KeyError and Wrong Attribute name (net.peer.ip -> net.peer.port)
([#265](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/265))
### Added ### Added
- `opentelemetry-instrumentation-urllib3` Add urllib3 instrumentation - `opentelemetry-instrumentation-urllib3` Add urllib3 instrumentation

View File

@ -68,7 +68,7 @@ def _hydrate_span_from_args(connection, query, parameters) -> dict:
addr = getattr(connection, "_addr", None) addr = getattr(connection, "_addr", None)
if isinstance(addr, tuple): if isinstance(addr, tuple):
span_attributes["net.peer.name"] = addr[0] span_attributes["net.peer.name"] = addr[0]
span_attributes["net.peer.ip"] = addr[1] span_attributes["net.peer.port"] = addr[1]
span_attributes["net.transport"] = "IP.TCP" span_attributes["net.transport"] = "IP.TCP"
elif isinstance(addr, str): elif isinstance(addr, str):
span_attributes["net.peer.name"] = addr span_attributes["net.peer.name"] = addr

View File

@ -26,11 +26,11 @@ def _extract_conn_attributes(conn_kwargs):
attributes["db.name"] = db attributes["db.name"] = db
attributes["db.redis.database_index"] = db attributes["db.redis.database_index"] = db
try: try:
attributes["net.peer.name"] = conn_kwargs["host"] attributes["net.peer.name"] = conn_kwargs.get("host", "localhost")
attributes["net.peer.ip"] = conn_kwargs["port"] attributes["net.peer.port"] = conn_kwargs.get("port", 6379)
attributes["net.transport"] = "IP.TCP" attributes["net.transport"] = "IP.TCP"
except KeyError: except KeyError:
attributes["net.peer.name"] = conn_kwargs["path"] attributes["net.peer.name"] = conn_kwargs.get("path", "")
attributes["net.transport"] = "Unix" attributes["net.transport"] = "Unix"
return attributes return attributes

View File

@ -46,7 +46,7 @@ class TestFunctionalAsyncPG(TestBase):
self.assertEqual(span.attributes["db.name"], POSTGRES_DB_NAME) self.assertEqual(span.attributes["db.name"], POSTGRES_DB_NAME)
self.assertEqual(span.attributes["db.user"], POSTGRES_USER) self.assertEqual(span.attributes["db.user"], POSTGRES_USER)
self.assertEqual(span.attributes["net.peer.name"], POSTGRES_HOST) self.assertEqual(span.attributes["net.peer.name"], POSTGRES_HOST)
self.assertEqual(span.attributes["net.peer.ip"], POSTGRES_PORT) self.assertEqual(span.attributes["net.peer.port"], POSTGRES_PORT)
def test_instrumented_execute_method_without_arguments(self, *_, **__): def test_instrumented_execute_method_without_arguments(self, *_, **__):
async_call(self._connection.execute("SELECT 42;")) async_call(self._connection.execute("SELECT 42;"))
@ -148,7 +148,7 @@ class TestFunctionalAsyncPG_CaptureParameters(TestBase):
self.assertEqual(span.attributes["db.name"], POSTGRES_DB_NAME) self.assertEqual(span.attributes["db.name"], POSTGRES_DB_NAME)
self.assertEqual(span.attributes["db.user"], POSTGRES_USER) self.assertEqual(span.attributes["db.user"], POSTGRES_USER)
self.assertEqual(span.attributes["net.peer.name"], POSTGRES_HOST) self.assertEqual(span.attributes["net.peer.name"], POSTGRES_HOST)
self.assertEqual(span.attributes["net.peer.ip"], POSTGRES_PORT) self.assertEqual(span.attributes["net.peer.port"], POSTGRES_PORT)
def test_instrumented_execute_method_with_arguments(self, *_, **__): def test_instrumented_execute_method_with_arguments(self, *_, **__):
async_call(self._connection.execute("SELECT $1;", "1")) async_call(self._connection.execute("SELECT $1;", "1"))

View File

@ -35,7 +35,7 @@ class TestRedisInstrument(TestBase):
self.assertIs(span.status.status_code, trace.StatusCode.UNSET) self.assertIs(span.status.status_code, trace.StatusCode.UNSET)
self.assertEqual(span.attributes.get("db.name"), 0) self.assertEqual(span.attributes.get("db.name"), 0)
self.assertEqual(span.attributes["net.peer.name"], "localhost") self.assertEqual(span.attributes["net.peer.name"], "localhost")
self.assertEqual(span.attributes["net.peer.ip"], 6379) self.assertEqual(span.attributes["net.peer.port"], 6379)
def test_long_command(self): def test_long_command(self):
self.redis_client.mget(*range(1000)) self.redis_client.mget(*range(1000))
@ -125,7 +125,7 @@ class TestRedisDBIndexInstrument(TestBase):
self.assertEqual(span.name, name) self.assertEqual(span.name, name)
self.assertIs(span.status.status_code, trace.StatusCode.UNSET) self.assertIs(span.status.status_code, trace.StatusCode.UNSET)
self.assertEqual(span.attributes["net.peer.name"], "localhost") self.assertEqual(span.attributes["net.peer.name"], "localhost")
self.assertEqual(span.attributes["net.peer.ip"], 6379) self.assertEqual(span.attributes["net.peer.port"], 6379)
self.assertEqual(span.attributes["db.redis.database_index"], 10) self.assertEqual(span.attributes["db.redis.database_index"], 10)
def test_get(self): def test_get(self):