Skip to content
This repository was archived by the owner on Mar 9, 2026. It is now read-only.

Commit a695c99

Browse files
Add ack result, ack end event to subscribe span and end it
1 parent b5ab6bb commit a695c99

2 files changed

Lines changed: 24 additions & 0 deletions

File tree

google/cloud/pubsub_v1/open_telemetry/subscribe_opentelemetry.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,3 +77,14 @@ def add_subscribe_span_event(self, event: str) -> None:
7777
"timestamp": str(datetime.now()),
7878
},
7979
)
80+
81+
def end_subscribe_span(self) -> None:
82+
assert self._subscribe_span is not None
83+
self._subscribe_span.end()
84+
85+
def set_subscribe_span_result(self, result: str) -> None:
86+
assert self._subscribe_span is not None
87+
self._subscribe_span.set_attribute(
88+
key="messaging.gcp_pubsub.result",
89+
value=result,
90+
)

google/cloud/pubsub_v1/subscriber/_protocol/dispatcher.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -243,6 +243,12 @@ def ack(self, items: Sequence[requests.AckRequest]) -> None:
243243
ack_reqs_dict=ack_reqs_dict,
244244
)
245245

246+
for completed_ack in requests_completed:
247+
if completed_ack.opentelemetry_data:
248+
completed_ack.opentelemetry_data.set_subscribe_span_result("acked")
249+
completed_ack.opentelemetry_data.add_subscribe_span_event("ack end")
250+
completed_ack.opentelemetry_data.end_subscribe_span()
251+
246252
# Remove the completed messages from lease management.
247253
self.drop(requests_completed)
248254

@@ -286,6 +292,13 @@ def _retry_acks(self, requests_to_retry):
286292
ack_ids=[req.ack_id for req in requests_to_retry],
287293
ack_reqs_dict=ack_reqs_dict,
288294
)
295+
296+
for completed_ack in requests_completed:
297+
if completed_ack.opentelemetry_data:
298+
completed_ack.opentelemetry_data.set_subscribe_span_result("acked")
299+
completed_ack.opentelemetry_data.add_subscribe_span_event("ack end")
300+
completed_ack.opentelemetry_data.end_subscribe_span()
301+
289302
assert (
290303
len(requests_to_retry) <= _ACK_IDS_BATCH_SIZE
291304
), "Too many requests to be retried."

0 commit comments

Comments
 (0)