From f5c3825e33e48c544c91a06a48572e63ea27d46e Mon Sep 17 00:00:00 2001 From: Leighton Chen Date: Wed, 28 Oct 2020 17:28:58 -0400 Subject: [PATCH] Change status codes from grpc status codes, remove setting status in instrumentations except on ERROR (#1282) --- .../instrumentation/elasticsearch/__init__.py | 8 ++------ .../tests/test_elasticsearch.py | 8 ++++---- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/instrumentation/opentelemetry-instrumentation-elasticsearch/src/opentelemetry/instrumentation/elasticsearch/__init__.py b/instrumentation/opentelemetry-instrumentation-elasticsearch/src/opentelemetry/instrumentation/elasticsearch/__init__.py index 6e9f411f8..541cdbfa6 100644 --- a/instrumentation/opentelemetry-instrumentation-elasticsearch/src/opentelemetry/instrumentation/elasticsearch/__init__.py +++ b/instrumentation/opentelemetry-instrumentation-elasticsearch/src/opentelemetry/instrumentation/elasticsearch/__init__.py @@ -64,7 +64,7 @@ from opentelemetry.instrumentation.elasticsearch.version import __version__ from opentelemetry.instrumentation.instrumentor import BaseInstrumentor from opentelemetry.instrumentation.utils import unwrap from opentelemetry.trace import SpanKind, get_tracer -from opentelemetry.trace.status import Status, StatusCanonicalCode +from opentelemetry.trace.status import Status, StatusCode logger = getLogger(__name__) @@ -156,11 +156,7 @@ def _wrap_perform_request(tracer, span_name_prefix): return rv except Exception as ex: # pylint: disable=broad-except if span.is_recording(): - if isinstance(ex, elasticsearch.exceptions.NotFoundError): - status = StatusCanonicalCode.NOT_FOUND - else: - status = StatusCanonicalCode.UNKNOWN - span.set_status(Status(status, str(ex))) + span.set_status(Status(StatusCode.ERROR, str(ex))) raise ex return wrapper diff --git a/instrumentation/opentelemetry-instrumentation-elasticsearch/tests/test_elasticsearch.py b/instrumentation/opentelemetry-instrumentation-elasticsearch/tests/test_elasticsearch.py index 3d93838fe..ea0e6ce2f 100644 --- a/instrumentation/opentelemetry-instrumentation-elasticsearch/tests/test_elasticsearch.py +++ b/instrumentation/opentelemetry-instrumentation-elasticsearch/tests/test_elasticsearch.py @@ -27,7 +27,7 @@ from opentelemetry.instrumentation.elasticsearch import ( ElasticsearchInstrumentor, ) from opentelemetry.test.test_base import TestBase -from opentelemetry.trace.status import StatusCanonicalCode +from opentelemetry.trace.status import StatusCode major_version = elasticsearch.VERSION[0] @@ -153,14 +153,14 @@ class TestElasticsearchIntegration(TestBase): def test_trace_error_unknown(self, request_mock): exc = RuntimeError("custom error") request_mock.side_effect = exc - self._test_trace_error(StatusCanonicalCode.UNKNOWN, exc) + self._test_trace_error(StatusCode.ERROR, exc) def test_trace_error_not_found(self, request_mock): msg = "record not found" exc = elasticsearch.exceptions.NotFoundError(404, msg) request_mock.return_value = (1, {}, {}) request_mock.side_effect = exc - self._test_trace_error(StatusCanonicalCode.NOT_FOUND, exc) + self._test_trace_error(StatusCode.ERROR, exc) def _test_trace_error(self, code, exc): es = Elasticsearch() @@ -173,7 +173,7 @@ class TestElasticsearchIntegration(TestBase): self.assertEqual(1, len(spans)) span = spans[0] self.assertFalse(span.status.is_ok) - self.assertEqual(span.status.canonical_code, code) + self.assertEqual(span.status.status_code, code) self.assertEqual(span.status.description, str(exc)) def test_parent(self, request_mock):