Skip to content

[OTel C++, Posix EE] Plumb TCP write timestamps and metrics to OTel tracers#39946

Closed
yashykt wants to merge 22 commits intogrpc:masterfrom
yashykt:EEPosixWritSink
Closed

[OTel C++, Posix EE] Plumb TCP write timestamps and metrics to OTel tracers#39946
yashykt wants to merge 22 commits intogrpc:masterfrom
yashykt:EEPosixWritSink

Conversation

@yashykt
Copy link
Copy Markdown
Member

@yashykt yashykt commented Jun 22, 2025

Changes -

  • Amends Posix EventEngine to support EventEngine::Endpoint::WriteEventSink, removing support for the old and currently unused void* method of propagating timestamps.
  • Modernize TracedBufferList to use C++ style
  • Add tests to make sure OTel tracers receive TCP events.

The following kinds of annotations are seen -

E0622 20:55:48.864268  169397 otel_client_call_tracer.cc:366] 2025-06-22T20:55:48.864224659+00:00 TCP: SENDMSG byte_offset=311 delivery_rate=1170285714, is_delivery_rate_app_limited=1, packet_retx=0, packet_spurious_retx=0, packet_sent=2, data_retx=0, data_sent=91, data_notsent=0, pacing_rate=15697245508, min_rtt=21, congestion_window=10, reordering=3, recurring_retrans=0, busy_usec=0, rwnd_limited_usec=0, sndbuf_limited_usec=0
E0622 20:55:48.864639  169405 otel_client_call_tracer.cc:366] 2025-06-22T20:55:48.864397339+00:00 TCP: SCHEDULED byte_offset=311 delivery_rate=1170285714, is_delivery_rate_app_limited=1, packet_retx=0, packet_spurious_retx=0, packet_sent=3, packet_delivered=3, packet_delivered_ce=0, data_retx=0, data_sent=415, data_notsent=324, pacing_rate=15697245508, min_rtt=21, srtt=41, congestion_window=10, snd_ssthresh=2147483647, reordering=3, recurring_retrans=0, busy_usec=0, rwnd_limited_usec=0, sndbuf_limited_usec=0
E0622 20:55:48.864828  169405 otel_client_call_tracer.cc:366] 2025-06-22T20:55:48.86440637+00:00 TCP: SENT byte_offset=311 delivery_rate=1170285714, is_delivery_rate_app_limited=1, packet_retx=0, packet_spurious_retx=0, packet_sent=3, packet_delivered=3, packet_delivered_ce=0, data_retx=0, data_sent=415, data_notsent=324, pacing_rate=15697245508, min_rtt=21, srtt=41, congestion_window=10, snd_ssthresh=2147483647, reordering=3, recurring_retrans=0, busy_usec=0, rwnd_limited_usec=0, sndbuf_limited_usec=0
E0622 20:55:48.865587  169397 otel_client_call_tracer.cc:366] 2025-06-22T20:55:48.86543777+00:00 TCP: ACKED byte_offset=311 delivery_rate=1170285714, is_delivery_rate_app_limited=1, packet_retx=0, packet_spurious_retx=0, packet_sent=3, packet_delivered=4, packet_delivered_ce=0, data_retx=0, data_sent=415, data_notsent=0, pacing_rate=15697245508, min_rtt=21, srtt=41, congestion_window=10, snd_ssthresh=2147483647, reordering=3, recurring_retrans=0, busy_usec=0, rwnd_limited_usec=0, sndbuf_limited_usec=0

@yashykt yashykt added the release notes: yes Indicates if PR needs to be in release notes label Jun 22, 2025
@yashykt yashykt marked this pull request as ready for review June 22, 2025 20:56
@yashykt yashykt changed the title Ee posix writ sink [OTel C++, Posix EE] Plumb TCP write timestamps and metrics to OTel tracers Jun 22, 2025
@yashykt yashykt requested a review from yousukseung June 22, 2025 20:57
anniefrchz pushed a commit to anniefrchz/grpc that referenced this pull request Jun 25, 2025
…racers (grpc#39946)

Changes -
* Amends Posix EventEngine to support `EventEngine::Endpoint::WriteEventSink`, removing support for the old and currently unused void* method of propagating timestamps.
* Modernize TracedBufferList to use C++ style
* Add tests to make sure OTel tracers receive TCP events.

The following kinds of annotations are seen -
```
E0622 20:55:48.864268  169397 otel_client_call_tracer.cc:366] 2025-06-22T20:55:48.864224659+00:00 TCP: SENDMSG byte_offset=311 delivery_rate=1170285714, is_delivery_rate_app_limited=1, packet_retx=0, packet_spurious_retx=0, packet_sent=2, data_retx=0, data_sent=91, data_notsent=0, pacing_rate=15697245508, min_rtt=21, congestion_window=10, reordering=3, recurring_retrans=0, busy_usec=0, rwnd_limited_usec=0, sndbuf_limited_usec=0
E0622 20:55:48.864639  169405 otel_client_call_tracer.cc:366] 2025-06-22T20:55:48.864397339+00:00 TCP: SCHEDULED byte_offset=311 delivery_rate=1170285714, is_delivery_rate_app_limited=1, packet_retx=0, packet_spurious_retx=0, packet_sent=3, packet_delivered=3, packet_delivered_ce=0, data_retx=0, data_sent=415, data_notsent=324, pacing_rate=15697245508, min_rtt=21, srtt=41, congestion_window=10, snd_ssthresh=2147483647, reordering=3, recurring_retrans=0, busy_usec=0, rwnd_limited_usec=0, sndbuf_limited_usec=0
E0622 20:55:48.864828  169405 otel_client_call_tracer.cc:366] 2025-06-22T20:55:48.86440637+00:00 TCP: SENT byte_offset=311 delivery_rate=1170285714, is_delivery_rate_app_limited=1, packet_retx=0, packet_spurious_retx=0, packet_sent=3, packet_delivered=3, packet_delivered_ce=0, data_retx=0, data_sent=415, data_notsent=324, pacing_rate=15697245508, min_rtt=21, srtt=41, congestion_window=10, snd_ssthresh=2147483647, reordering=3, recurring_retrans=0, busy_usec=0, rwnd_limited_usec=0, sndbuf_limited_usec=0
E0622 20:55:48.865587  169397 otel_client_call_tracer.cc:366] 2025-06-22T20:55:48.86543777+00:00 TCP: ACKED byte_offset=311 delivery_rate=1170285714, is_delivery_rate_app_limited=1, packet_retx=0, packet_spurious_retx=0, packet_sent=3, packet_delivered=4, packet_delivered_ce=0, data_retx=0, data_sent=415, data_notsent=0, pacing_rate=15697245508, min_rtt=21, srtt=41, congestion_window=10, snd_ssthresh=2147483647, reordering=3, recurring_retrans=0, busy_usec=0, rwnd_limited_usec=0, sndbuf_limited_usec=0
```

Closes grpc#39946

COPYBARA_INTEGRATE_REVIEW=grpc#39946 from yashykt:EEPosixWritSink 96ea734
PiperOrigin-RevId: 775515293
paulosjca pushed a commit to paulosjca/grpc that referenced this pull request Aug 23, 2025
…racers (grpc#39946)

Changes -
* Amends Posix EventEngine to support `EventEngine::Endpoint::WriteEventSink`, removing support for the old and currently unused void* method of propagating timestamps.
* Modernize TracedBufferList to use C++ style
* Add tests to make sure OTel tracers receive TCP events.

The following kinds of annotations are seen -
```
E0622 20:55:48.864268  169397 otel_client_call_tracer.cc:366] 2025-06-22T20:55:48.864224659+00:00 TCP: SENDMSG byte_offset=311 delivery_rate=1170285714, is_delivery_rate_app_limited=1, packet_retx=0, packet_spurious_retx=0, packet_sent=2, data_retx=0, data_sent=91, data_notsent=0, pacing_rate=15697245508, min_rtt=21, congestion_window=10, reordering=3, recurring_retrans=0, busy_usec=0, rwnd_limited_usec=0, sndbuf_limited_usec=0
E0622 20:55:48.864639  169405 otel_client_call_tracer.cc:366] 2025-06-22T20:55:48.864397339+00:00 TCP: SCHEDULED byte_offset=311 delivery_rate=1170285714, is_delivery_rate_app_limited=1, packet_retx=0, packet_spurious_retx=0, packet_sent=3, packet_delivered=3, packet_delivered_ce=0, data_retx=0, data_sent=415, data_notsent=324, pacing_rate=15697245508, min_rtt=21, srtt=41, congestion_window=10, snd_ssthresh=2147483647, reordering=3, recurring_retrans=0, busy_usec=0, rwnd_limited_usec=0, sndbuf_limited_usec=0
E0622 20:55:48.864828  169405 otel_client_call_tracer.cc:366] 2025-06-22T20:55:48.86440637+00:00 TCP: SENT byte_offset=311 delivery_rate=1170285714, is_delivery_rate_app_limited=1, packet_retx=0, packet_spurious_retx=0, packet_sent=3, packet_delivered=3, packet_delivered_ce=0, data_retx=0, data_sent=415, data_notsent=324, pacing_rate=15697245508, min_rtt=21, srtt=41, congestion_window=10, snd_ssthresh=2147483647, reordering=3, recurring_retrans=0, busy_usec=0, rwnd_limited_usec=0, sndbuf_limited_usec=0
E0622 20:55:48.865587  169397 otel_client_call_tracer.cc:366] 2025-06-22T20:55:48.86543777+00:00 TCP: ACKED byte_offset=311 delivery_rate=1170285714, is_delivery_rate_app_limited=1, packet_retx=0, packet_spurious_retx=0, packet_sent=3, packet_delivered=4, packet_delivered_ce=0, data_retx=0, data_sent=415, data_notsent=0, pacing_rate=15697245508, min_rtt=21, srtt=41, congestion_window=10, snd_ssthresh=2147483647, reordering=3, recurring_retrans=0, busy_usec=0, rwnd_limited_usec=0, sndbuf_limited_usec=0
```

Closes grpc#39946

COPYBARA_INTEGRATE_REVIEW=grpc#39946 from yashykt:EEPosixWritSink 96ea734
PiperOrigin-RevId: 775515293
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants