Change status codes from grpc status codes, remove setting status in instrumentations except on ERROR (#1282)

This commit is contained in:
Leighton Chen
2020-10-28 17:28:58 -04:00
committed by GitHub
parent 53bee8ddc9
commit 43b88daa81
2 changed files with 15 additions and 21 deletions

View File

@ -26,7 +26,7 @@ import grpc
from opentelemetry import metrics, propagators, trace from opentelemetry import metrics, propagators, trace
from opentelemetry.sdk.metrics.export.controller import PushController from opentelemetry.sdk.metrics.export.controller import PushController
from opentelemetry.trace.status import Status, StatusCanonicalCode from opentelemetry.trace.status import Status, StatusCode
from . import grpcext from . import grpcext
from ._utilities import RpcInfo, TimedMetricRecorder from ._utilities import RpcInfo, TimedMetricRecorder
@ -169,9 +169,9 @@ class OpenTelemetryClientInterceptor(
try: try:
result = invoker(request, metadata) result = invoker(request, metadata)
except grpc.RpcError as exc: except grpc.RpcError:
guarded_span.generated_span.set_status( guarded_span.generated_span.set_status(
Status(StatusCanonicalCode(exc.code().value[0])) Status(StatusCode.ERROR)
) )
raise raise
@ -224,10 +224,8 @@ class OpenTelemetryClientInterceptor(
response.ByteSize(), client_info.full_method response.ByteSize(), client_info.full_method
) )
yield response yield response
except grpc.RpcError as exc: except grpc.RpcError:
span.set_status( span.set_status(Status(StatusCode.ERROR))
Status(StatusCanonicalCode(exc.code().value[0]))
)
raise raise
def intercept_stream( def intercept_stream(
@ -264,9 +262,9 @@ class OpenTelemetryClientInterceptor(
try: try:
result = invoker(request_or_iterator, metadata) result = invoker(request_or_iterator, metadata)
except grpc.RpcError as exc: except grpc.RpcError:
guarded_span.generated_span.set_status( guarded_span.generated_span.set_status(
Status(StatusCanonicalCode(exc.code().value[0])) Status(StatusCode.ERROR)
) )
raise raise

View File

@ -220,9 +220,8 @@ class TestClientProto(TestBase):
spans = self.memory_exporter.get_finished_spans() spans = self.memory_exporter.get_finished_spans()
self.assertEqual(len(spans), 1) self.assertEqual(len(spans), 1)
span = spans[0] span = spans[0]
self.assertEqual( self.assertIs(
span.status.canonical_code.value, span.status.status_code, trace.status.StatusCode.ERROR,
grpc.StatusCode.INVALID_ARGUMENT.value[0],
) )
def test_error_stream_unary(self): def test_error_stream_unary(self):
@ -233,9 +232,8 @@ class TestClientProto(TestBase):
spans = self.memory_exporter.get_finished_spans() spans = self.memory_exporter.get_finished_spans()
self.assertEqual(len(spans), 1) self.assertEqual(len(spans), 1)
span = spans[0] span = spans[0]
self.assertEqual( self.assertIs(
span.status.canonical_code.value, span.status.status_code, trace.status.StatusCode.ERROR,
grpc.StatusCode.INVALID_ARGUMENT.value[0],
) )
def test_error_unary_stream(self): def test_error_unary_stream(self):
@ -247,9 +245,8 @@ class TestClientProto(TestBase):
spans = self.memory_exporter.get_finished_spans() spans = self.memory_exporter.get_finished_spans()
self.assertEqual(len(spans), 1) self.assertEqual(len(spans), 1)
span = spans[0] span = spans[0]
self.assertEqual( self.assertIs(
span.status.canonical_code.value, span.status.status_code, trace.status.StatusCode.ERROR,
grpc.StatusCode.INVALID_ARGUMENT.value[0],
) )
def test_error_stream_stream(self): def test_error_stream_stream(self):
@ -263,9 +260,8 @@ class TestClientProto(TestBase):
spans = self.memory_exporter.get_finished_spans() spans = self.memory_exporter.get_finished_spans()
self.assertEqual(len(spans), 1) self.assertEqual(len(spans), 1)
span = spans[0] span = spans[0]
self.assertEqual( self.assertIs(
span.status.canonical_code.value, span.status.status_code, trace.status.StatusCode.ERROR,
grpc.StatusCode.INVALID_ARGUMENT.value[0],
) )