forked from mirrors/gecko-dev
Bug 1898171 - Add profiler markers for when DNS resolutions start and are completed r=acreskey,necko-reviewers,julienw,kershaw
Differential Revision: https://phabricator.services.mozilla.com/D211172
This commit is contained in:
parent
7ebb860b81
commit
e85939ad56
1 changed files with 45 additions and 0 deletions
|
|
@ -90,6 +90,40 @@ static const unsigned int NEGATIVE_RECORD_LIFETIME = 60;
|
|||
// for threads MaxResolverThreadsAnyPriority() + 1 -> MaxResolverThreads()
|
||||
#define ShortIdleTimeoutSeconds 60
|
||||
|
||||
using namespace mozilla;
|
||||
|
||||
namespace geckoprofiler::markers {
|
||||
|
||||
struct HostResolverMarker {
|
||||
static constexpr Span<const char> MarkerTypeName() {
|
||||
return MakeStringSpan("HostResolver");
|
||||
}
|
||||
static void StreamJSONMarkerData(
|
||||
mozilla::baseprofiler::SpliceableJSONWriter& aWriter,
|
||||
const mozilla::ProfilerString8View& aHost,
|
||||
const mozilla::ProfilerString8View& aOriginSuffix, uint16_t aType,
|
||||
uint32_t aFlags) {
|
||||
aWriter.StringProperty("host", aHost);
|
||||
aWriter.StringProperty("originSuffix", aOriginSuffix);
|
||||
aWriter.IntProperty("qtype", aType);
|
||||
aWriter.StringProperty("flags", nsPrintfCString("0x%x", aFlags));
|
||||
}
|
||||
static MarkerSchema MarkerTypeDisplay() {
|
||||
using MS = MarkerSchema;
|
||||
MS schema(MS::Location::MarkerChart, MS::Location::MarkerTable);
|
||||
schema.SetTableLabel("{marker.name} - {marker.data.host}");
|
||||
schema.AddKeyFormatSearchable("host", MS::Format::SanitizedString,
|
||||
MS::Searchable::Searchable);
|
||||
schema.AddKeyFormatSearchable("originSuffix", MS::Format::SanitizedString,
|
||||
MS::Searchable::Searchable);
|
||||
schema.AddKeyFormat("qtype", MS::Format::Integer);
|
||||
schema.AddKeyFormat("flags", MS::Format::String);
|
||||
return schema;
|
||||
}
|
||||
};
|
||||
|
||||
} // namespace geckoprofiler::markers
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
namespace mozilla::net {
|
||||
|
|
@ -487,6 +521,9 @@ nsresult nsHostResolver::ResolveHost(const nsACString& aHost,
|
|||
originSuffix.get(), flags & RES_BYPASS_CACHE ? " - bypassing cache" : "",
|
||||
flags & RES_REFRESH_CACHE ? " - refresh cache" : "", type, this));
|
||||
|
||||
PROFILER_MARKER("nsHostResolver::ResolveHost", NETWORK, {},
|
||||
HostResolverMarker, host, originSuffix, type, flags);
|
||||
|
||||
// ensure that we are working with a valid hostname before proceeding. see
|
||||
// bug 304904 for details.
|
||||
if (!net_IsValidHostName(host)) {
|
||||
|
|
@ -1656,6 +1693,10 @@ nsHostResolver::LookupStatus nsHostResolver::CompleteLookupLocked(
|
|||
}
|
||||
}
|
||||
|
||||
PROFILER_MARKER("nsHostResolver::CompleteLookupLocked", NETWORK, {},
|
||||
HostResolverMarker, addrRec->host, addrRec->originSuffix,
|
||||
addrRec->type, addrRec->flags);
|
||||
|
||||
// get the list of pending callbacks for this lookup, and notify
|
||||
// them that the lookup is complete.
|
||||
mozilla::LinkedList<RefPtr<nsResolveHostCallback>> cbs =
|
||||
|
|
@ -1763,6 +1804,10 @@ nsHostResolver::LookupStatus nsHostResolver::CompleteLookupByTypeLocked(
|
|||
typeRec->RecordReason(aReason);
|
||||
}
|
||||
|
||||
PROFILER_MARKER("nsHostResolver::CompleteLookupByTypeLocked", NETWORK, {},
|
||||
HostResolverMarker, typeRec->host, typeRec->originSuffix,
|
||||
typeRec->type, typeRec->flags);
|
||||
|
||||
mozilla::LinkedList<RefPtr<nsResolveHostCallback>> cbs =
|
||||
std::move(typeRec->mCallbacks);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue