bug 1472659 - add Telemetry::DNS_TRR_FIRST and Telemetry::DNS_TRR_DISABLED r?mcmanus draft
authorDaniel Stenberg <daniel@haxx.se>
Mon, 02 Jul 2018 13:50:21 +0200
changeset 813516 98afd020f2d5779474a522e07c045dea480a23b6
parent 812962 3cfc350101967376909ad3c729f9779ae0ab7a94
push id114924
push userbmo:daniel@haxx.se
push dateTue, 03 Jul 2018 10:21:19 +0000
reviewersmcmanus
bugs1472659
milestone63.0a1
bug 1472659 - add Telemetry::DNS_TRR_FIRST and Telemetry::DNS_TRR_DISABLED r?mcmanus To help evaluate TRRfirst sucess/error rates. MozReview-Commit-ID: Ljrbed6UDG2
netwerk/dns/nsHostResolver.cpp
toolkit/components/telemetry/Histograms.json
--- a/netwerk/dns/nsHostResolver.cpp
+++ b/netwerk/dns/nsHostResolver.cpp
@@ -296,16 +296,26 @@ nsHostRecord::ResolveComplete()
 
     if (mTRRUsed && mNativeUsed) {
         // both were used, accumulate comparative success
         AccumulateCategorical(mNativeSuccess && mTRRSuccess?
                               Telemetry::LABELS_DNS_TRR_COMPARE::BothWorked :
                               ((mNativeSuccess ? Telemetry::LABELS_DNS_TRR_COMPARE::NativeWorked :
                                 (mTRRSuccess ? Telemetry::LABELS_DNS_TRR_COMPARE::TRRWorked:
                                  Telemetry::LABELS_DNS_TRR_COMPARE::BothFailed))));
+    } else if (mResolverMode == MODE_TRRFIRST) {
+        if(flags & nsIDNSService::RESOLVE_DISABLE_TRR) {
+            // TRR is disabled on request, which is a next-level back-off method.
+            Telemetry::Accumulate(Telemetry::DNS_TRR_DISABLED, mNativeSuccess);
+        } else {
+            AccumulateCategorical(mTRRSuccess?
+                                  Telemetry::LABELS_DNS_TRR_FIRST::TRRWorked :
+                                  ((mNativeSuccess ? Telemetry::LABELS_DNS_TRR_FIRST::NativeFallback :
+                                    Telemetry::LABELS_DNS_TRR_FIRST::BothFailed)));
+        }
     }
 
     switch(mResolverMode) {
     case MODE_NATIVEONLY:
     case MODE_TRROFF:
         AccumulateCategorical(Telemetry::LABELS_DNS_LOOKUP_ALGORITHM::nativeOnly);
         break;
     case MODE_PARALLEL:
--- a/toolkit/components/telemetry/Histograms.json
+++ b/toolkit/components/telemetry/Histograms.json
@@ -3260,16 +3260,33 @@
     "record_in_processes": ["main"],
     "alert_emails": ["necko@mozilla.com", "dstenberg@mozilla.com"],
     "expires_in_version": "never",
     "kind": "categorical",
     "labels": ["BothWorked", "NativeWorked", "TRRWorked", "BothFailed"],
     "bug_numbers": [1460589],
     "description": "DNS: success distribution when both native and TRR were used"
   },
+  "DNS_TRR_FIRST": {
+    "record_in_processes": ["main"],
+    "alert_emails": ["necko@mozilla.com", "dstenberg@mozilla.com"],
+    "expires_in_version": "never",
+    "kind": "categorical",
+    "labels": ["TRRWorked", "NativeFallback", "BothFailed"],
+    "bug_numbers": [1472659],
+    "description": "TRR-first mode distribution. 0=Worked, 1=fell back to native, 2=both failed"
+  },
+  "DNS_TRR_DISABLED": {
+    "record_in_processes": ["main"],
+    "expires_in_version": "never",
+    "kind": "boolean",
+    "description": "Resolve success rate when in TRR-first and called TRR-disabled (fall-back mode)",
+    "bug_numbers": [1472659],
+    "alert_emails": ["necko@mozilla.com", "dstenberg@mozilla.com"]
+  },
   "DNS_TRR_BLACKLISTED": {
     "record_in_processes": ["main"],
     "expires_in_version": "never",
     "kind": "boolean",
     "description": "DNS check for TRR was blocked by blacklist",
     "bug_numbers": [1434852],
     "alert_emails": ["necko@mozilla.com", "dstenberg@mozilla.com"]
   },