Skip to content

Commit 1b3a15c

Browse files
committed
bugfix: tracing, include streaming procedure errors
1 parent fcea3b5 commit 1b3a15c

File tree

1 file changed

+14
-3
lines changed

1 file changed

+14
-3
lines changed

replit_river/client.py

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from opentelemetry import trace
77

88
from replit_river.client_transport import ClientTransport
9-
from replit_river.error_schema import RiverException
9+
from replit_river.error_schema import RiverError, RiverException
1010
from replit_river.transport_options import (
1111
HandshakeMetadataType,
1212
TransportOptions,
@@ -114,7 +114,9 @@ async def send_subscription(
114114
response_deserializer,
115115
error_deserializer,
116116
):
117-
yield msg
117+
if isinstance(msg, RiverError):
118+
_record_river_error(msg)
119+
yield msg # type: ignore # https://github.com/python/mypy/issues/10817
118120

119121
async def send_stream(
120122
self,
@@ -139,7 +141,16 @@ async def send_stream(
139141
response_deserializer,
140142
error_deserializer,
141143
):
142-
yield msg
144+
if isinstance(msg, RiverError):
145+
_record_river_error(msg)
146+
yield msg # type: ignore # https://github.com/python/mypy/issues/10817
147+
148+
149+
def _record_river_error(error: RiverError) -> None:
150+
span = trace.get_current_span()
151+
span.record_exception(RiverException(error.code, error.message))
152+
span.set_attribute("river.error_code", error.code)
153+
span.set_attribute("river.error_message", error.message)
143154

144155

145156
@contextmanager

0 commit comments

Comments
 (0)