Skip to content

Commit 6f022b2

Browse files
Aman Sharmameta-codesync[bot]
authored andcommitted
Record QUIC connect and MoQ handshake time in MoQClientBase
Summary: See title Reviewed By: sandarsh Differential Revision: D95980873 fbshipit-source-id: f770db5d6ce2f4a51daac8f5d0a459b5a669775a
1 parent 81dd768 commit 6f022b2

2 files changed

Lines changed: 21 additions & 0 deletions

File tree

moxygen/MoQClientBase.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@ folly::coro::Task<void> MoQClientBase::setupMoQSession(
3636
std::vector<std::string> alpn =
3737
alpns.empty() ? getDefaultMoqtProtocols(false) : alpns;
3838
XLOG(DBG1) << "MoQClientBase: QUIC ALPNs: " << folly::join(", ", alpn);
39+
40+
auto quicConnectStart = std::chrono::steady_clock::now();
41+
3942
// Establish QUIC connection with multiple ALPN options
4043
auto quicClient = co_await connectQuic(
4144
folly::SocketAddress(
@@ -45,6 +48,9 @@ folly::coro::Task<void> MoQClientBase::setupMoQSession(
4548
alpn,
4649
transportSettings);
4750

51+
quicConnectTime_ = std::chrono::duration_cast<std::chrono::milliseconds>(
52+
std::chrono::steady_clock::now() - quicConnectStart);
53+
4854
if (logger_) {
4955
if (auto scid = quicClient->getClientConnectionId()) {
5056
logger_->setSrcCid(*scid);
@@ -69,12 +75,17 @@ folly::coro::Task<void> MoQClientBase::setupMoQSession(
6975
quicWebTransport_->setHandler(this);
7076
wt = quicWebTransport_.get();
7177

78+
auto moqHandshakeStart = std::chrono::steady_clock::now();
79+
7280
auto result = co_await folly::coro::co_awaitTry(completeSetupMoQSession(
7381
wt,
7482
url_.getPath(),
7583
std::move(publishHandler),
7684
std::move(subscribeHandler)));
7785

86+
moqHandshakeTime_ = std::chrono::duration_cast<std::chrono::milliseconds>(
87+
std::chrono::steady_clock::now() - moqHandshakeStart);
88+
7889
if (result.hasException()) {
7990
co_yield folly::coro::co_error(result.exception());
8091
}

moxygen/MoQClientBase.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,14 @@ class MoQClientBase : public proxygen::WebTransportHandler {
6363
return exec_;
6464
}
6565

66+
std::chrono::milliseconds getQuicConnectTime() {
67+
return quicConnectTime_;
68+
}
69+
70+
std::chrono::milliseconds getMoQHandshakeTime() {
71+
return moqHandshakeTime_;
72+
}
73+
6674
std::shared_ptr<MoQSession> moqSession_;
6775
virtual folly::coro::Task<void> setupMoQSession(
6876
std::chrono::milliseconds connect_timeout,
@@ -114,6 +122,8 @@ class MoQClientBase : public proxygen::WebTransportHandler {
114122
std::shared_ptr<proxygen::QuicWebTransport> quicWebTransport_;
115123
std::optional<std::string> negotiatedProtocol_;
116124
std::shared_ptr<fizz::CertificateVerifier> verifier_;
125+
std::chrono::milliseconds quicConnectTime_{0};
126+
std::chrono::milliseconds moqHandshakeTime_{0};
117127
};
118128

119129
} // namespace moxygen

0 commit comments

Comments
 (0)