Record the frequency of stream frame coalescing at QuicSession.CoalesceStreamFrameStatus.
gfe-relnote: protected by gfe2_reloadable_flag_quic_log_coalesce_stream_frame_frequency
PiperOrigin-RevId: 287199998
Change-Id: I1c4cf9177d0764c77704ebc20e2615dc5a31260e
diff --git a/quic/core/quic_packet_creator.cc b/quic/core/quic_packet_creator.cc
index 2f9d46e..d272068 100644
--- a/quic/core/quic_packet_creator.cc
+++ b/quic/core/quic_packet_creator.cc
@@ -22,6 +22,7 @@
#include "net/third_party/quiche/src/quic/core/quic_versions.h"
#include "net/third_party/quiche/src/quic/platform/api/quic_aligned.h"
#include "net/third_party/quiche/src/quic/platform/api/quic_bug_tracker.h"
+#include "net/third_party/quiche/src/quic/platform/api/quic_exported_stats.h"
#include "net/third_party/quiche/src/quic/platform/api/quic_flag_utils.h"
#include "net/third_party/quiche/src/quic/platform/api/quic_flags.h"
#include "net/third_party/quiche/src/quic/platform/api/quic_logging.h"
@@ -53,6 +54,14 @@
}
}
+void LogCoalesceStreamFrameStatus(bool success) {
+ if (GetQuicReloadableFlag(quic_log_coalesce_stream_frame_frequency)) {
+ QUIC_RELOADABLE_FLAG_COUNT(quic_log_coalesce_stream_frame_frequency);
+ QUIC_HISTOGRAM_BOOL("QuicSession.CoalesceStreamFrameStatus", success,
+ "Success rate of coalesing stream frames attempt.");
+ }
+}
+
// ScopedPacketContextSwitcher saves |packet|'s states and change states
// during its construction. When the switcher goes out of scope, it restores
// saved states.
@@ -1445,10 +1454,14 @@
}
if (GetQuicRestartFlag(quic_coalesce_stream_frames_2) &&
- frame.type == STREAM_FRAME &&
- MaybeCoalesceStreamFrame(frame.stream_frame)) {
- QUIC_RESTART_FLAG_COUNT_N(quic_coalesce_stream_frames_2, 1, 3);
- return true;
+ frame.type == STREAM_FRAME) {
+ if (MaybeCoalesceStreamFrame(frame.stream_frame)) {
+ LogCoalesceStreamFrameStatus(true);
+ QUIC_RESTART_FLAG_COUNT_N(quic_coalesce_stream_frames_2, 1, 3);
+ return true;
+ } else {
+ LogCoalesceStreamFrameStatus(false);
+ }
}
size_t frame_len = framer_->GetSerializedFrameLength(