Skip to content

Commit 8b60879

Browse files
authored
Rework gRPC status based on new rules (#1308)
As of #1214, the status codes changed and no longer line up with gRPC status codes, so now we'll just set `StatusCode.ERROR` and store the actual gRPC status code in the trace as `grpc.status_code`. Specifically this: open-telemetry/opentelemetry-specification#1156
1 parent 7d9b0e5 commit 8b60879

File tree

1 file changed

+6
-6
lines changed
  • instrumentation/opentelemetry-instrumentation-grpc/src/opentelemetry/instrumentation/grpc

1 file changed

+6
-6
lines changed

instrumentation/opentelemetry-instrumentation-grpc/src/opentelemetry/instrumentation/grpc/_server.py

+6-6
Original file line numberDiff line numberDiff line change
@@ -113,8 +113,9 @@ def set_trailing_metadata(self, *args, **kwargs):
113113
def abort(self, code, details):
114114
self.code = code
115115
self.details = details
116+
self._active_span.set_attribute("rpc.grpc.status_code", code.name)
116117
self._active_span.set_status(
117-
Status(status_code=StatusCode(code.value[0]), description=details)
118+
Status(status_code=StatusCode.ERROR, description=details)
118119
)
119120
return self._servicer_context.abort(code, details)
120121

@@ -125,18 +126,16 @@ def set_code(self, code):
125126
self.code = code
126127
# use details if we already have it, otherwise the status description
127128
details = self.details or code.value[1]
129+
self._active_span.set_attribute("rpc.grpc.status_code", code.name)
128130
self._active_span.set_status(
129-
Status(status_code=StatusCode(code.value[0]), description=details)
131+
Status(status_code=StatusCode.ERROR, description=details)
130132
)
131133
return self._servicer_context.set_code(code)
132134

133135
def set_details(self, details):
134136
self.details = details
135137
self._active_span.set_status(
136-
Status(
137-
status_code=StatusCode(self.code.value[0]),
138-
description=details,
139-
)
138+
Status(status_code=StatusCode.ERROR, description=details)
140139
)
141140
return self._servicer_context.set_details(details)
142141

@@ -189,6 +188,7 @@ def _start_span(self, handler_call_details, context):
189188
attributes = {
190189
"rpc.method": handler_call_details.method,
191190
"rpc.system": "grpc",
191+
"rpc.grpc.status_code": grpc.StatusCode.OK,
192192
}
193193

194194
metadata = dict(context.invocation_metadata())

0 commit comments

Comments
 (0)