mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-13 03:24:26 +00:00
Bug 1877000 - Add perfstats for transaction wait time r=necko-reviewers,kershaw
To track possible regressions/improvements in this metric. Differential Revision: https://phabricator.services.mozilla.com/D199815
This commit is contained in:
parent
84582c3f1b
commit
39b9634425
@ -20,6 +20,7 @@
|
||||
#include "NullHttpTransaction.h"
|
||||
#include "SpeculativeTransaction.h"
|
||||
#include "mozilla/Components.h"
|
||||
#include "mozilla/PerfStats.h"
|
||||
#include "mozilla/ProfilerMarkers.h"
|
||||
#include "mozilla/SpinEventLoopUntil.h"
|
||||
#include "mozilla/StaticPrefs_network.h"
|
||||
@ -1622,9 +1623,10 @@ nsresult nsHttpConnectionMgr::DispatchTransaction(ConnectionEntry* ent,
|
||||
// when a muxed connection (e.g. h2) becomes available.
|
||||
trans->CancelPacing(NS_OK);
|
||||
|
||||
TimeStamp now = TimeStamp::Now();
|
||||
auto recordPendingTimeForHTTPSRR = [&](nsCString& aKey) {
|
||||
uint32_t stage = trans->HTTPSSVCReceivedStage();
|
||||
TimeDuration elapsed = TimeStamp::Now() - trans->GetPendingTime();
|
||||
TimeDuration elapsed = now - trans->GetPendingTime();
|
||||
if (HTTPS_RR_IS_USED(stage)) {
|
||||
glean::networking::transaction_wait_time_https_rr.AccumulateRawDuration(
|
||||
elapsed);
|
||||
@ -1632,6 +1634,8 @@ nsresult nsHttpConnectionMgr::DispatchTransaction(ConnectionEntry* ent,
|
||||
} else {
|
||||
glean::networking::transaction_wait_time.AccumulateRawDuration(elapsed);
|
||||
}
|
||||
PerfStats::RecordMeasurement(PerfStats::Metric::HttpTransactionWaitTime,
|
||||
elapsed);
|
||||
};
|
||||
|
||||
nsAutoCString httpVersionkey("h1"_ns);
|
||||
@ -1645,11 +1649,11 @@ nsresult nsHttpConnectionMgr::DispatchTransaction(ConnectionEntry* ent,
|
||||
if (conn->UsingSpdy()) {
|
||||
httpVersionkey = "h2"_ns;
|
||||
AccumulateTimeDelta(Telemetry::TRANSACTION_WAIT_TIME_SPDY,
|
||||
trans->GetPendingTime(), TimeStamp::Now());
|
||||
trans->GetPendingTime(), now);
|
||||
} else {
|
||||
httpVersionkey = "h3"_ns;
|
||||
AccumulateTimeDelta(Telemetry::TRANSACTION_WAIT_TIME_HTTP3,
|
||||
trans->GetPendingTime(), TimeStamp::Now());
|
||||
trans->GetPendingTime(), now);
|
||||
}
|
||||
recordPendingTimeForHTTPSRR(httpVersionkey);
|
||||
trans->SetPendingTime(false);
|
||||
@ -1664,7 +1668,7 @@ nsresult nsHttpConnectionMgr::DispatchTransaction(ConnectionEntry* ent,
|
||||
|
||||
if (NS_SUCCEEDED(rv) && !trans->GetPendingTime().IsNull()) {
|
||||
AccumulateTimeDelta(Telemetry::TRANSACTION_WAIT_TIME_HTTP,
|
||||
trans->GetPendingTime(), TimeStamp::Now());
|
||||
trans->GetPendingTime(), now);
|
||||
recordPendingTimeForHTTPSRR(httpVersionkey);
|
||||
trans->SetPendingTime(false);
|
||||
}
|
||||
|
@ -47,6 +47,7 @@
|
||||
MACRO(HttpChannelAsyncOpenToTransactionPending) \
|
||||
MACRO(HttpChannelResponseStartParentToContent) \
|
||||
MACRO(HttpChannelResponseEndParentToContent) \
|
||||
MACRO(HttpTransactionWaitTime) \
|
||||
MACRO(ResponseEndSocketToParent) \
|
||||
MACRO(OnStartRequestSocketToParent) \
|
||||
MACRO(OnDataAvailableSocketToParent) \
|
||||
|
Loading…
x
Reference in New Issue
Block a user