toolkit/components/telemetry/Histograms.json
author Anup Kumar <allamsetty.anup@gmail.com>
Mon, 21 Dec 2015 08:31:00 +0100
changeset 277322 7ff2f511b41bee04d9033e96d13b53a9683b482c
parent 277314 641269d204eb50397e0b788fd963a6a4c3ce640c
child 277623 034c6fa9ec864a46509f1a31615c79eb388bd3cd
permissions -rw-r--r--
Bug 1201492 - Remove extended_statistics_ok from Telemetry histograms. r=dexter

{
  "A11Y_INSTANTIATED_FLAG": {
    "expires_in_version": "never",
    "kind": "flag",
    "description": "has accessibility support been instantiated"
  },
  "A11Y_CONSUMERS": {
    "expires_in_version": "default",
    "kind": "enumerated",
    "n_values": 11,
    "description": "Accessibility client by enum id"
  },
  "A11Y_ISIMPLEDOM_USAGE_FLAG": {
    "expires_in_version": "default",
    "kind": "flag",
    "description": "have the ISimpleDOM* accessibility interfaces been used"
  },
  "A11Y_IATABLE_USAGE_FLAG": {
    "expires_in_version": "default",
    "kind": "flag",
    "description": "has the IAccessibleTable accessibility interface been used"
  },
  "A11Y_UPDATE_TIME": {
    "expires_in_version": "default",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": 50,
    "description": "time spent updating accessibility (ms)"
  },
  "ADDON_SHIM_USAGE": {
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 15,
    "keyed": "true",
    "description": "Reasons why add-on shims were used, keyed by add-on ID."
  },
  "APPLICATION_REPUTATION_SHOULD_BLOCK": {
    "expires_in_version": "never",
    "kind": "boolean",
    "description": "Application reputation verdict (shouldBlock=false is OK)"
  },
  "APPLICATION_REPUTATION_LOCAL": {
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 3,
    "description": "Application reputation local results (0=ALLOW, 1=BLOCK, 2=NONE)"
  },
  "APPLICATION_REPUTATION_SERVER": {
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 3,
    "description": "Application reputation remote status (0=OK, 1=FAIL, 2=INVALID)"
  },
  "APPLICATION_REPUTATION_SERVER_VERDICT": {
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 8,
    "description": "Application reputation remote response (0=SAFE, 1=DANGEROUS, 2=UNCOMMON, 3=POTENTIALLY_UNWANTED, 4=DANGEROUS_HOST)"
  },
  "APPLICATION_REPUTATION_COUNT": {
    "expires_in_version": "never",
    "kind": "boolean",
    "description": "Application reputation query count (both local and remote)"
  },
  "AUDIOSTREAM_FIRST_OPEN_MS": {
    "expires_in_version": "50",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "50",
    "description": "The length of time (in milliseconds) for the first open of AudioStream."
  },
  "AUDIOSTREAM_LATER_OPEN_MS": {
    "expires_in_version": "50",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "50",
    "description": "The length of time (in milliseconds) for the subsequent opens of AudioStream."
  },
  "BACKGROUNDFILESAVER_THREAD_COUNT": {
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 21,
    "description": "Maximum number of concurrent threads reached during a given download session"
  },
  "BLOCKLIST_SYNC_FILE_LOAD": {
    "alert_emails": ["rvitillo@mozilla.com"],
    "expires_in_version": "35",
    "kind": "boolean",
    "description": "blocklist.xml has been loaded synchronously *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
  },
  "CHECKERBOARDED_CSSPIXELS_MS": {
    "alert_emails": ["kgupta@mozilla.com"],
    "bug_numbers": [1221694],
    "expires_in_version": "55",
    "kind": "exponential",
    "high": "3840 * 2160 * 16",
    "n_buckets": 50,
    "description": "Magnitude of checkerboarding in CSSPixel-milliseconds per scrollable frame per composite"
  },
  "COMPOSITE_TIME" : {
    "expires_in_version": "never",
    "description": "Composite times in milliseconds",
    "kind": "exponential",
    "high": "1000",
    "n_buckets": 50
  },
  "COMPOSITE_FRAME_ROUNDTRIP_TIME" : {
    "expires_in_version": "never",
    "description": "Time from vsync to finishing a composite in milliseconds.",
    "kind": "exponential",
    "high": "1000",
    "n_buckets": 50
  },
  "CYCLE_COLLECTOR": {
    "alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": 50,
    "description": "Time spent on one cycle collection (ms)"
  },
  "CYCLE_COLLECTOR_WORKER": {
    "alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": 50,
    "description": "Time spent on one cycle collection in a worker (ms)"
  },
  "CYCLE_COLLECTOR_FULL": {
    "alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": 50,
    "description": "Full pause time for one cycle collection, including preparation (ms)"
  },
  "CYCLE_COLLECTOR_MAX_PAUSE": {
    "alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": 50,
    "description": "Longest pause for an individual slice of one cycle collection, including preparation (ms)"
  },
  "CYCLE_COLLECTOR_FINISH_IGC": {
    "alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
    "expires_in_version": "never",
    "kind": "boolean",
    "description": "Cycle collection finished an incremental GC"
  },
  "CYCLE_COLLECTOR_SYNC_SKIPPABLE": {
    "alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
    "expires_in_version": "never",
    "kind": "boolean",
    "description": "Cycle collection synchronously ran forget skippable"
  },
  "CYCLE_COLLECTOR_VISITED_REF_COUNTED": {
    "alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "300000",
    "n_buckets": 50,
    "description": "Number of ref counted objects visited by the cycle collector"
  },
  "CYCLE_COLLECTOR_WORKER_VISITED_REF_COUNTED": {
    "alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "300000",
    "n_buckets": 50,
    "description": "Number of ref counted objects visited by the cycle collector in a worker"
  },
  "CYCLE_COLLECTOR_VISITED_GCED": {
    "alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "300000",
    "n_buckets": 50,
    "description": "Number of JS objects visited by the cycle collector"
  },
  "CYCLE_COLLECTOR_WORKER_VISITED_GCED": {
    "alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "300000",
    "n_buckets": 50,
    "description": "Number of JS objects visited by the cycle collector in a worker"
  },
  "CYCLE_COLLECTOR_COLLECTED": {
    "alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "100000",
    "n_buckets": 50,
    "description": "Number of objects collected by the cycle collector"
  },
  "CYCLE_COLLECTOR_WORKER_COLLECTED": {
    "alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "100000",
    "n_buckets": 50,
    "description": "Number of objects collected by the cycle collector in a worker"
  },
  "CYCLE_COLLECTOR_NEED_GC": {
    "alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
    "expires_in_version": "never",
    "kind": "boolean",
    "description": "Needed garbage collection before cycle collection."
  },
  "CYCLE_COLLECTOR_WORKER_NEED_GC": {
    "alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
    "expires_in_version": "never",
    "kind": "boolean",
    "description": "Needed garbage collection before cycle collection in a worker."
  },
  "CYCLE_COLLECTOR_TIME_BETWEEN": {
    "alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "120",
    "n_buckets": 50,
    "description": "Time spent in between cycle collections (seconds)"
  },
  "CYCLE_COLLECTOR_OOM": {
    "alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
    "expires_in_version": "never",
    "kind": "flag",
    "description": "Set if the cycle collector ran out of memory at some point"
  },
  "CYCLE_COLLECTOR_WORKER_OOM": {
    "alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
    "expires_in_version": "never",
    "kind": "flag",
    "description": "Set if the cycle collector in a worker ran out of memory at some point"
  },
  "CYCLE_COLLECTOR_ASYNC_SNOW_WHITE_FREEING": {
    "alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": 50,
    "description": "Time spent on one asynchronous SnowWhite freeing (ms)"
  },
  "DEFERRED_FINALIZE_ASYNC": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": 50,
    "description": "Pause time for asynchronous deferred finalization (ms)"
  },
  "DEVICE_RESET_REASON": {
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 10,
    "description": "GPU Device Reset Reason (ok, hung, removed, reset, internal error, invalid call, out of memory)"
  },
  "FETCH_IS_MAINTHREAD": {
    "expires_in_version": "50",
    "kind": "boolean",
    "description": "Was Fetch request initiated from the main thread?"
  },
  "FORGET_SKIPPABLE_MAX": {
    "alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": 50,
    "description": "Max time spent on one forget skippable (ms)"
  },
  "GC_REASON_2": {
    "alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": "JS::gcreason::NUM_TELEMETRY_REASONS",
    "description": "Reason (enum value) for initiating a GC"
  },
  "GC_IS_COMPARTMENTAL": {
    "alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
    "expires_in_version": "never",
    "kind": "boolean",
    "description": "Is it a compartmental GC?"
  },
  "GC_MS": {
    "alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": 50,
    "description": "Time spent running JS GC (ms)"
  },
  "GC_BUDGET_MS": {
    "alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
    "expires_in_version": "never",
    "kind": "linear",
    "high": "100",
    "n_buckets": 10,
    "description": "Requested GC slice budget (ms)"
  },
  "GC_ANIMATION_MS": {
    "alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": 50,
    "description": "Time spent running JS GC when animating (ms)"
  },
  "GC_MAX_PAUSE_MS": {
    "alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
    "expires_in_version": "never",
    "kind": "linear",
    "high": "1000",
    "n_buckets": 50,
    "description": "Longest GC slice in a GC (ms)"
  },
  "GC_MARK_MS": {
    "alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": 50,
    "description": "Time spent running JS GC mark phase (ms)"
  },
  "GC_SWEEP_MS": {
    "alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": 50,
    "description": "Time spent running JS GC sweep phase (ms)"
  },
  "GC_MARK_ROOTS_MS": {
    "alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
    "expires_in_version": "never",
    "kind": "linear",
    "high": "200",
    "n_buckets": 50,
    "description": "Time spent marking GC roots (ms)"
  },
  "GC_MARK_GRAY_MS": {
    "alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
    "expires_in_version": "never",
    "kind": "linear",
    "high": "200",
    "n_buckets": 50,
    "description": "Time spent marking gray GC objects (ms)"
  },
  "GC_SLICE_MS": {
    "alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": 50,
    "description": "Time spent running a JS GC slice (ms)"
  },
  "GC_SLOW_PHASE": {
    "alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 75,
    "description": "The longest phase in any slice that goes over 2x the budget"
  },
  "GC_MMU_50": {
    "alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
    "expires_in_version": "never",
    "kind": "linear",
    "high": "100",
    "n_buckets": 20,
    "description": "Minimum percentage of time spent outside GC over any 50ms window"
  },
  "GC_RESET": {
    "alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
    "expires_in_version": "never",
    "kind": "boolean",
    "description": "Was an incremental GC canceled?"
  },
  "GC_INCREMENTAL_DISABLED": {
    "alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
    "expires_in_version": "never",
    "kind": "boolean",
    "description": "Is incremental GC permanently disabled?"
  },
  "GC_NON_INCREMENTAL": {
    "alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
    "expires_in_version": "never",
    "kind": "boolean",
    "description": "Was the GC non-incremental?"
  },
  "GC_SCC_SWEEP_TOTAL_MS": {
    "alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
    "expires_in_version": "never",
    "kind": "linear",
    "high": "500",
    "n_buckets": 50,
    "description": "Time spent sweeping compartment SCCs (ms)"
  },
  "GC_SCC_SWEEP_MAX_PAUSE_MS": {
    "alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
    "expires_in_version": "never",
    "kind": "linear",
    "high": "500",
    "n_buckets": 50,
    "description": "Time spent sweeping slowest compartment SCC (ms)"
  },
  "GC_MINOR_REASON": {
    "alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": "JS::gcreason::NUM_TELEMETRY_REASONS",
    "description": "Reason (enum value) for initiating a minor GC"
  },
  "GC_MINOR_REASON_LONG": {
    "alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": "JS::gcreason::NUM_TELEMETRY_REASONS",
    "description": "Reason (enum value) that caused a long (>1ms) minor GC"
  },
  "GC_MINOR_US": {
    "alert_emails": ["dev-telemetry-gc-alerts@mozilla.org"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "1000000",
    "n_buckets": 100,
    "description": "Time spent running JS minor GC (us)"
  },
  "GEOLOCATION_ACCURACY_EXPONENTIAL": {
    "expires_in_version": "default",
    "kind": "exponential",
    "high": "100000",
    "n_buckets": 50,
    "description": "Location accuracy"
  },
  "GEOLOCATION_ERROR": {
    "expires_in_version": "never",
    "kind": "flag",
    "description": "Has seen location error"
  },
  "GEOLOCATION_WIN8_SOURCE_IS_MLS": {
    "expires_in_version": "default",
    "kind": "boolean",
    "description": "Geolocation on Win8 is either MLS or native"
  },
  "GEOLOCATION_OSX_SOURCE_IS_MLS": {
    "expires_in_version": "default",
    "kind": "boolean",
    "description": "Geolocation on OS X is either MLS or CoreLocation"
  },
  "JS_DEPRECATED_LANGUAGE_EXTENSIONS_IN_CONTENT": {
    "alert_emails": ["jdemooij@mozilla.com"],
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 10,
    "description": "Use of SpiderMonkey's deprecated language extensions in web content: ForEach=0, DestructuringForIn=1 (obsolete), LegacyGenerator=2, ExpressionClosure=3, LetBlock=4 (obsolete), LetExpression=5 (obsolete), NoSuchMethod=6 (obsolete), FlagsArgument=7, RegExpSourceProp=8 (obsolete), RestoredRegExpStatics=9 (obsolete)"
  },
  "JS_DEPRECATED_LANGUAGE_EXTENSIONS_IN_ADDONS": {
    "alert_emails": ["jdemooij@mozilla.com"],
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 10,
    "description": "Use of SpiderMonkey's deprecated language extensions in add-ons: ForEach=0, DestructuringForIn=1 (obsolete), LegacyGenerator=2, ExpressionClosure=3, LetBlock=4 (obsolete), LetExpression=5 (obsolete), NoSuchMethod=6 (obsolete), FlagsArgument=7, RegExpSourceProp=8 (obsolete), RestoredRegExpStatics=9 (obsolete)"
  },
  "XUL_CACHE_DISABLED": {
    "expires_in_version": "default",
    "kind": "flag",
    "description": "XUL cache was disabled"
  },
  "MEMORY_RESIDENT_FAST": {
    "alert_emails": ["memshrink-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "exponential",
    "low": "32 * 1024",
    "high": "16 * 1024 * 1024",
    "n_buckets": 100,
    "bug_numbers": [1226196],
    "description": "Resident memory size (KB)"
  },
  "MEMORY_UNIQUE": {
    "alert_emails": ["memshrink-telemetry-alerts@mozilla.com"],
    "bug_numbers": [1198209],
    "expires_in_version": "never",
    "kind": "exponential",
    "low": "32 * 1024",
    "high": "16 * 1024 * 1024",
    "n_buckets": 100,
    "description": "Unique Set Size (KB)"
  },
  "MEMORY_VSIZE": {
    "alert_emails": ["memshrink-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "exponential",
    "low": "32 * 1024",
    "high": "16 * 1024 * 1024",
    "n_buckets": 100,
    "description": "Virtual memory size (KB)"
  },
  "MEMORY_VSIZE_MAX_CONTIGUOUS": {
    "alert_emails": ["memshrink-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "exponential",
    "low": "32 * 1024",
    "high": "16 * 1024 * 1024",
    "n_buckets": 100,
    "description": "Maximum-sized block of contiguous virtual memory (KB)"
  },
  "MEMORY_JS_COMPARTMENTS_SYSTEM": {
    "alert_emails": ["memshrink-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "1000",
    "n_buckets": 50,
    "description": "Total JavaScript compartments used for add-ons and internals."
  },
  "MEMORY_JS_COMPARTMENTS_USER": {
    "alert_emails": ["memshrink-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "1000",
    "n_buckets": 50,
    "description": "Total JavaScript compartments used for web pages"
  },
  "MEMORY_JS_MAIN_RUNTIME_TEMPORARY_PEAK": {
    "alert_emails": ["memshrink-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "exponential",
    "low": 1024,
    "high": "16 * 1024 * 1024",
    "n_buckets": 200,
    "description": "Peak memory used by the main JSRuntime to store transient data (KB)"
  },
  "MEMORY_JS_GC_HEAP": {
    "alert_emails": ["memshrink-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "exponential",
    "low": 1024,
    "high": "16 * 1024 * 1024",
    "n_buckets": 200,
    "description": "Memory used by the garbage-collected JavaScript heap (KB)"
  },
  "MEMORY_STORAGE_SQLITE": {
    "alert_emails": ["memshrink-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "exponential",
    "low": 1024,
    "high": "512 * 1024",
    "n_buckets": 50,
    "description": "Memory used by SQLite (KB)"
  },
  "MEMORY_IMAGES_CONTENT_USED_UNCOMPRESSED": {
    "alert_emails": ["memshrink-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "exponential",
    "low": 1024,
    "high": "1024 * 1024",
    "n_buckets": 50,
    "description": "Memory used for uncompressed, in-use content images (KB)"
  },
  "MEMORY_HEAP_ALLOCATED": {
    "alert_emails": ["memshrink-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "exponential",
    "low": 1024,
    "high": "16 * 1024 * 1024",
    "n_buckets": 200,
    "description": "Heap memory allocated (KB)"
  },
  "MEMORY_HEAP_COMMITTED_UNUSED": {
    "alert_emails": ["memshrink-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "exponential",
    "low": 1024,
    "high": "512 * 1024",
    "n_buckets": 50,
    "description": "Committed, unused heap memory (KB)"
  },
  "MEMORY_HEAP_COMMITTED_UNUSED_RATIO": {
    "alert_emails": ["memshrink-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "linear",
    "high": "100",
    "n_buckets": 25,
    "description": "Ratio of committed, unused memory to allocated memory in the heap (percentage)."
  },
  "GHOST_WINDOWS": {
    "alert_emails": ["memshrink-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "128",
    "n_buckets": 32,
    "description": "Number of ghost windows"
  },
  "MEMORY_FREE_PURGED_PAGES_MS": {
    "alert_emails": ["memshrink-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "1024",
    "n_buckets": 10,
    "description": "Time(ms) to purge dirty heap pages."
  },
  "LOW_MEMORY_EVENTS_VIRTUAL": {
    "alert_emails": ["memshrink-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "1024",
    "n_buckets": 21,
    "description": "Number of low-virtual-memory events fired since last ping",
    "cpp_guard": "XP_WIN"
  },
  "LOW_MEMORY_EVENTS_PHYSICAL": {
    "alert_emails": ["memshrink-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "1024",
    "n_buckets": 21,
    "description": "Number of low-physical-memory events fired since last ping",
    "cpp_guard": "XP_WIN"
  },
  "LOW_MEMORY_EVENTS_COMMIT_SPACE": {
    "alert_emails": ["memshrink-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "1024",
    "n_buckets": 21,
    "description": "Number of low-commit-space events fired since last ping",
    "cpp_guard": "XP_WIN"
  },
  "EARLY_GLUESTARTUP_READ_OPS": {
    "alert_emails": ["perf-telemetry-alerts@mozilla.com"],
    "expires_in_version": "40",
    "kind": "linear",
    "high": "100",
    "n_buckets": 12,
    "description": "ProcessIoCounters.ReadOperationCount before glue startup *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***",
    "cpp_guard": "XP_WIN"
  },
  "EARLY_GLUESTARTUP_READ_TRANSFER": {
    "alert_emails": ["perf-telemetry-alerts@mozilla.com"],
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "50 * 1024",
    "n_buckets": 12,
    "description": "ProcessIoCounters.ReadTransferCount before glue startup (KB) *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***",
    "cpp_guard": "XP_WIN"
  },
  "GLUESTARTUP_READ_OPS": {
    "alert_emails": ["perf-telemetry-alerts@mozilla.com"],
    "expires_in_version": "40",
    "kind": "linear",
    "high": "100",
    "n_buckets": 12,
    "description": "ProcessIoCounters.ReadOperationCount after glue startup *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***",
    "cpp_guard": "XP_WIN"
  },
  "GLUESTARTUP_READ_TRANSFER": {
    "alert_emails": ["perf-telemetry-alerts@mozilla.com"],
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "50 * 1024",
    "n_buckets": 12,
    "description": "ProcessIoCounters.ReadTransferCount after glue startup (KB) *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***",
    "cpp_guard": "XP_WIN"
  },
  "EARLY_GLUESTARTUP_HARD_FAULTS": {
    "alert_emails": ["perf-telemetry-alerts@mozilla.com"],
    "expires_in_version": "40",
    "kind": "linear",
    "high": "100",
    "n_buckets": 12,
    "description": "Hard faults count before glue startup *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***",
    "cpp_guard": "XP_UNIX"
  },
  "GLUESTARTUP_HARD_FAULTS": {
    "alert_emails": ["perf-telemetry-alerts@mozilla.com"],
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "500",
    "n_buckets": 12,
    "description": "Hard faults count after glue startup *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***",
    "cpp_guard": "XP_UNIX"
  },
  "PAGE_FAULTS_HARD": {
    "expires_in_version": "default",
    "kind": "exponential",
    "low": 8,
    "high": "64 * 1024",
    "n_buckets": 13,
    "description": "Hard page faults (since last telemetry ping)",
    "cpp_guard": "XP_UNIX"
  },
  "FONTLIST_INITOTHERFAMILYNAMES": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "30000",
    "n_buckets": 50,
    "description": "Time(ms) spent on reading other family names from all fonts"
  },
  "FONTLIST_INITFACENAMELISTS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "30000",
    "n_buckets": 50,
    "description": "Time(ms) spent on reading family names from all fonts"
  },
  "DWRITEFONT_DELAYEDINITFONTLIST_TOTAL": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "30000",
    "n_buckets": 10,
    "description": "gfxDWriteFontList::DelayedInitFontList Total (ms)",
    "cpp_guard": "XP_WIN"
  },
  "DWRITEFONT_DELAYEDINITFONTLIST_COUNT": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": 10,
    "description": "gfxDWriteFontList::DelayedInitFontList Font Family Count",
    "cpp_guard": "XP_WIN"
  },
  "DWRITEFONT_DELAYEDINITFONTLIST_COLLECT": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "30000",
    "n_buckets": 10,
    "description": "gfxDWriteFontList::DelayedInitFontList GetSystemFontCollection (ms)",
    "cpp_guard": "XP_WIN"
  },
  "DWRITEFONT_INIT_PROBLEM": {
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 8,
    "description": "DirectWrite system fontlist initialization problem (1=GDI interop, 2=system font collection, 3=no fonts)",
    "cpp_guard": "XP_WIN"
  },
  "GDI_INITFONTLIST_TOTAL": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "30000",
    "n_buckets": 10,
    "description": "gfxGDIFontList::InitFontList Total (ms)",
    "cpp_guard": "XP_WIN"
  },
  "MAC_INITFONTLIST_TOTAL": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "30000",
    "n_buckets": 10,
    "description": "gfxMacPlatformFontList::InitFontList Total (ms)",
    "cpp_guard": "XP_DARWIN"
  },
  "SYSTEM_FONT_FALLBACK": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "100000",
    "n_buckets": 50,
    "description": "System font fallback (us)"
  },
  "SYSTEM_FONT_FALLBACK_FIRST": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "40000",
    "n_buckets": 20,
    "description": "System font fallback, first call (ms)"
  },
  "SYSTEM_FONT_FALLBACK_SCRIPT": {
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 110,
    "description": "System font fallback script"
  },
  "GRADIENT_DURATION": {
    "expires_in_version": "default",
    "kind": "exponential",
    "high": "50000000",
    "n_buckets": 20,
    "description": "Gradient generation time (us)"
  },
  "GRADIENT_RETENTION_TIME": {
    "expires_in_version": "never",
    "kind": "linear",
    "high": "10000",
    "n_buckets": 20,
    "description": "Maximum retention time for the gradient cache. (ms)"
  },
  "STARTUP_CACHE_AGE_HOURS": {
    "expires_in_version": "default",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 20,
    "description": "Startup cache age (hours)"
  },
  "STARTUP_CACHE_INVALID": {
    "alert_emails": ["perf-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "flag",
    "description": "Was the disk startup cache file detected as invalid"
  },
  "WORD_CACHE_HITS_CONTENT": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "256",
    "n_buckets": 30,
    "description": "Word cache hits, content text (chars)"
  },
  "WORD_CACHE_HITS_CHROME": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "256",
    "n_buckets": 30,
    "description": "Word cache hits, chrome text (chars)"
  },
  "WORD_CACHE_MISSES_CONTENT": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "256",
    "n_buckets": 30,
    "description": "Word cache misses, content text (chars)"
  },
  "WORD_CACHE_MISSES_CHROME": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "256",
    "n_buckets": 30,
    "description": "Word cache misses, chrome text (chars)"
  },
  "FONT_CACHE_HIT": {
    "expires_in_version": "never",
    "kind": "boolean",
    "description": "font cache hit"
  },
  "BAD_FALLBACK_FONT": {
    "expires_in_version": "never",
    "kind": "boolean",
    "description": "system fallback font can't be used"
  },
  "SHUTDOWN_OK": {
    "expires_in_version": "default",
    "kind": "boolean",
    "description": "Did the browser start after a successful shutdown"
  },
  "IMAGE_DECODE_LATENCY_US": {
    "expires_in_version": "never",
    "kind": "exponential",
    "low": 50,
    "high": "5000000",
    "n_buckets": 100,
    "description": "Time spent decoding an image chunk (us)"
  },
  "IMAGE_DECODE_TIME": {
    "expires_in_version": "never",
    "kind": "exponential",
    "low": 50,
    "high": "50000000",
    "n_buckets": 100,
    "description": "Time spent decoding an image (us)"
  },
  "IMAGE_DECODE_ON_DRAW_LATENCY": {
    "expires_in_version": "never",
    "kind": "exponential",
    "low": 50,
    "high": "50000000",
    "n_buckets": 100,
    "description": "Time from starting a decode to it showing up on the screen (us)"
  },
  "IMAGE_DECODE_CHUNKS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "500",
    "n_buckets": 50,
    "description": "Number of chunks per decode attempt"
  },
  "IMAGE_DECODE_COUNT": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "500",
    "n_buckets": 50,
    "description": "Decode count"
  },
  "IMAGE_MAX_DECODE_COUNT": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": 100,
    "description": "Max decode count over all images"
  },
  "IMAGE_DECODE_SPEED_JPEG": {
    "expires_in_version": "never",
    "kind": "exponential",
    "low": 500,
    "high": "50000000",
    "n_buckets": 50,
    "description": "JPEG image decode speed (Kbytes/sec)"
  },
  "IMAGE_DECODE_SPEED_GIF": {
    "expires_in_version": "never",
    "kind": "exponential",
    "low": 500,
    "high": "50000000",
    "n_buckets": 50,
    "description": "GIF image decode speed (Kbytes/sec)"
  },
  "IMAGE_DECODE_SPEED_PNG": {
    "expires_in_version": "never",
    "kind": "exponential",
    "low": 500,
    "high": "50000000",
    "n_buckets": 50,
    "description": "PNG image decode speed (Kbytes/sec)"
  },
  "CANVAS_2D_USED": {
    "expires_in_version": "never",
    "kind": "boolean",
    "description": "2D canvas used"
  },
  "CANVAS_WEBGL_USED": {
    "expires_in_version": "never",
    "kind": "boolean",
    "description": "WebGL canvas used"
  },
  "TOTAL_CONTENT_PAGE_LOAD_TIME": {
    "alert_emails": ["perf-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "exponential",
    "low": 100,
    "high": "30000",
    "n_buckets": 100,
    "description": "HTTP: Total page load time (ms)"
  },
  "HTTP_SUBITEM_OPEN_LATENCY_TIME": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "30000",
    "n_buckets": 50,
    "description": "HTTP subitem: Page start -> subitem open() (ms)"
  },
  "HTTP_SUBITEM_FIRST_BYTE_LATENCY_TIME": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "30000",
    "n_buckets": 50,
    "description": "HTTP subitem: Page start -> first byte received for subitem reply (ms)"
  },
  "HTTP_REQUEST_PER_PAGE": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "1000",
    "n_buckets": 50,
    "description": "HTTP: Requests per page (count)"
  },
  "HTTP_REQUEST_PER_PAGE_FROM_CACHE": {
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 101,
    "description": "HTTP: Requests serviced from cache (%)"
  },
  "HTTP_REQUEST_PER_CONN": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "1000",
    "n_buckets": 50,
    "description": "HTTP: requests per connection"
  },
  "HTTP_KBREAD_PER_CONN": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 50,
    "description": "HTTP: KB read per connection"
  },
  "HTTP_PAGE_DNS_ISSUE_TIME": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "30000",
    "n_buckets": 50,
    "description": "HTTP page: open() -> DNS request issued (ms)"
  },
  "HTTP_PAGE_DNS_LOOKUP_TIME": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "30000",
    "n_buckets": 50,
    "description": "HTTP page: DNS lookup time (ms)"
  },
  "HTTP_PAGE_TCP_CONNECTION": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "30000",
    "n_buckets": 50,
    "description": "HTTP page: TCP connection setup (ms)"
  },
  "HTTP_PAGE_OPEN_TO_FIRST_SENT": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "30000",
    "n_buckets": 50,
    "description": "HTTP page: Open -> first byte of request sent (ms)"
  },
  "HTTP_PAGE_FIRST_SENT_TO_LAST_RECEIVED": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "30000",
    "n_buckets": 50,
    "description": "HTTP page: First byte of request sent -> last byte of response received (ms)"
  },
  "HTTP_PAGE_OPEN_TO_FIRST_RECEIVED": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "30000",
    "n_buckets": 50,
    "description": "HTTP page: Open -> first byte of reply received (ms)"
  },
  "HTTP_PAGE_OPEN_TO_FIRST_FROM_CACHE": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "30000",
    "n_buckets": 50,
    "description": "HTTP page: Open -> cache read start (ms)"
  },
  "HTTP_PAGE_OPEN_TO_FIRST_FROM_CACHE_V2": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "30000",
    "n_buckets": 50,
    "description": "HTTP page: Open -> cache read start (ms), [cache2]"
  },
  "HTTP_PAGE_CACHE_READ_TIME": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "30000",
    "n_buckets": 50,
    "description": "HTTP page: Cache read time (ms)"
  },
  "HTTP_PAGE_CACHE_READ_TIME_V2": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "30000",
    "n_buckets": 50,
    "description": "HTTP page: Cache read time (ms) [cache2]"
  },
  "HTTP_PAGE_REVALIDATION": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "30000",
    "n_buckets": 50,
    "description": "HTTP page: Positive cache validation time (ms)"
  },
  "HTTP_PAGE_COMPLETE_LOAD": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "30000",
    "n_buckets": 50,
    "description": "HTTP page: Overall load time - all (ms)"
  },
  "HTTP_PAGE_COMPLETE_LOAD_V2": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "30000",
    "n_buckets": 50,
    "description": "HTTP page: Overall load time - all (ms) [cache2]"
  },
  "HTTP_PAGE_COMPLETE_LOAD_CACHED": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "30000",
    "n_buckets": 50,
    "description": "HTTP page: Overall load time - cache hits (ms)"
  },
  "HTTP_PAGE_COMPLETE_LOAD_CACHED_V2": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "30000",
    "n_buckets": 50,
    "description": "HTTP page: Overall load time - cache hits (ms) [cache2]"
  },
  "HTTP_PAGE_COMPLETE_LOAD_NET": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "30000",
    "n_buckets": 50,
    "description": "HTTP page: Overall load time - network (ms)"
  },
  "HTTP_PAGE_COMPLETE_LOAD_NET_V2": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "30000",
    "n_buckets": 50,
    "description": "HTTP page: Overall load time - network (ms) [cache2]"
  },
  "HTTP_SUB_DNS_ISSUE_TIME": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "30000",
    "n_buckets": 50,
    "description": "HTTP subitem: open() -> DNS request issued (ms)"
  },
  "HTTP_SUB_DNS_LOOKUP_TIME": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "30000",
    "n_buckets": 50,
    "description": "HTTP subitem: DNS lookup time (ms)"
  },
  "HTTP_SUB_TCP_CONNECTION": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "30000",
    "n_buckets": 50,
    "description": "HTTP subitem: TCP connection setup (ms)"
  },
  "HTTP_SUB_OPEN_TO_FIRST_SENT": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "30000",
    "n_buckets": 50,
    "description": "HTTP subitem: Open -> first byte of request sent (ms)"
  },
  "HTTP_SUB_FIRST_SENT_TO_LAST_RECEIVED": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "30000",
    "n_buckets": 50,
    "description": "HTTP subitem: First byte of request sent -> last byte of response received (ms)"
  },
  "HTTP_SUB_OPEN_TO_FIRST_RECEIVED": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "30000",
    "n_buckets": 50,
    "description": "HTTP subitem: Open -> first byte of reply received (ms)"
  },
  "HTTP_SUB_OPEN_TO_FIRST_FROM_CACHE": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "30000",
    "n_buckets": 50,
    "description": "HTTP subitem: Open -> cache read start (ms)"
  },
  "HTTP_SUB_OPEN_TO_FIRST_FROM_CACHE_V2": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "30000",
    "n_buckets": 50,
    "description": "HTTP subitem: Open -> cache read start (ms) [cache2]"
  },
  "HTTP_SUB_CACHE_READ_TIME": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "30000",
    "n_buckets": 50,
    "description": "HTTP subitem: Cache read time (ms)"
  },
  "HTTP_SUB_CACHE_READ_TIME_V2": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "30000",
    "n_buckets": 50,
    "description": "HTTP subitem: Cache read time (ms) [cache2]"
  },
  "HTTP_SUB_REVALIDATION": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "30000",
    "n_buckets": 50,
    "description": "HTTP subitem: Positive cache validation time (ms)"
  },
  "HTTP_SUB_COMPLETE_LOAD": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "30000",
    "n_buckets": 50,
    "description": "HTTP subitem: Overall load time - all (ms)"
  },
  "HTTP_SUB_COMPLETE_LOAD_V2": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "30000",
    "n_buckets": 50,
    "description": "HTTP subitem: Overall load time - all (ms) [cache2]"
  },
  "HTTP_SUB_COMPLETE_LOAD_CACHED": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "30000",
    "n_buckets": 50,
    "description": "HTTP subitem: Overall load time - cache hits (ms)"
  },
  "HTTP_SUB_COMPLETE_LOAD_CACHED_V2": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "30000",
    "n_buckets": 50,
    "description": "HTTP subitem: Overall load time - cache hits (ms) [cache2]"
  },
  "HTTP_SUB_COMPLETE_LOAD_NET": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "30000",
    "n_buckets": 50,
    "description": "HTTP subitem: Overall load time - network (ms)"
  },
  "HTTP_SUB_COMPLETE_LOAD_NET_V2": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "30000",
    "n_buckets": 50,
    "description": "HTTP subitem: Overall load time - network (ms) [cache2]"
  },
  "HTTP_PROXY_TYPE": {
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 8,
    "description": "HTTP Proxy Type (none, http, socks)"
  },
  "HTTP_TRANSACTION_IS_SSL": {
    "expires_in_version": "never",
    "kind": "boolean",
    "description": "Whether a HTTP transaction was over SSL or not."
  },
  "HTTP_PAGELOAD_IS_SSL": {
    "expires_in_version": "never",
    "kind": "boolean",
    "description": "Whether a HTTP base page load was over SSL or not."
  },
  "HTTP_TRANSACTION_USE_ALTSVC": {
    "expires_in_version": "never",
    "kind": "boolean",
    "description": "Whether a HTTP transaction was routed via Alt-Svc or not."
  },
  "HTTP_TRANSACTION_USE_ALTSVC_OE": {
    "expires_in_version": "never",
    "kind": "boolean",
    "description": "Whether a HTTP transaction routed via Alt-Svc was scheme=http"
  },
  "HTTP_WAP_CONTENT_TYPE_RECEIVED": {
    "expires_in_version": "45",
    "kind": "boolean",
    "description": "Whether a WAP content type response is served to the browser."
  },
  "HTTP_SCHEME_UPGRADE": {
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 10,
    "description": "Was the URL upgraded to HTTPS?  (0=already HTTPS, 1=no reason to upgrade, 2=STS upgrade blocked by pref, 3=upgraded with STS, 4=upgraded with CSP)"
  },
  "HTTP_AUTH_DIALOG_STATS": {
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 3,
    "description": "Stats about what kind of resource requested http authentication. (0=top-level doc, 1=same origin subresources 2=cross-origin subresources)"
  },
  "SSL_HANDSHAKE_VERSION": {
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 16,
    "description": "SSL Version (1=tls1, 2=tls1.1, 3=tls1.2)"
  },
  "SSL_TIME_UNTIL_READY": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "60000",
    "n_buckets": 200,
    "description": "ms of SSL wait time including TCP and proxy tunneling"
  },
  "SSL_TIME_UNTIL_HANDSHAKE_FINISHED": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "60000",
    "n_buckets": 200,
    "description": "ms of SSL wait time for full handshake including TCP and proxy tunneling"
  },
  "SSL_BYTES_BEFORE_CERT_CALLBACK": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "32000",
    "n_buckets": 64,
    "description": "plaintext bytes read before a server certificate authenticated"
  },
  "SSL_NPN_TYPE": {
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 16,
    "description": "NPN Results (0=none, 1=negotiated, 2=no-overlap, 3=selected(alpn))"
  },
  "SSL_RESUMED_SESSION": {
    "expires_in_version": "never",
    "kind": "boolean",
    "description": "complete TLS connect that used TLS Sesison Resumption"
  },
  "CERT_VALIDATION_HTTP_REQUEST_RESULT": {
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 16,
    "description": "HTTP result of OCSP, etc.. (0=canceled, 1=OK, 2=FAILED, 3=internal-error)"
  },
  "CERT_VALIDATION_HTTP_REQUEST_CANCELED_TIME": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "60000",
    "n_buckets": 200,
    "description": "ms elapsed time of OCSP etc.. that was canceled"
  },
  "CERT_VALIDATION_HTTP_REQUEST_SUCCEEDED_TIME": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "60000",
    "n_buckets": 200,
    "description": "ms elapsed time of OCSP etc.. that succeeded"
  },
  "CERT_VALIDATION_HTTP_REQUEST_FAILED_TIME": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "60000",
    "n_buckets": 200,
    "description": "ms elapsed time of OCSP etc.. that failed"
  },
  "SSL_KEY_EXCHANGE_ALGORITHM_FULL": {
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 16,
    "description": "SSL Handshake Key Exchange Algorithm for full handshake (null=0, rsa=1, dh=2, fortezza=3, ecdh=4)"
  },
  "SSL_KEY_EXCHANGE_ALGORITHM_RESUMED": {
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 16,
    "description": "SSL Handshake Key Exchange Algorithm for resumed handshake (null=0, rsa=1, dh=2, fortezza=3, ecdh=4)"
  },
  "SSL_OBSERVED_END_ENTITY_CERTIFICATE_LIFETIME": {
    "expires_in_version": "55",
    "alert_emails": ["seceng-telemetry@mozilla.com"],
    "kind": "enumerated",
    "n_values": 125,
    "releaseChannelCollection": "opt-out",
    "description": "The lifetime of accepted HTTPS server certificates, in weeks, up to 2 years. Bucket 105 is all end-entity HTTPS server certificates with a lifetime > 2 years."
  },
  "KEYGEN_GENERATED_KEY_TYPE": {
    "expires_in_version": "50",
    "alert_emails": ["seceng-telemetry@mozilla.com"],
    "kind": "count",
    "keyed": "true",
    "releaseChannelCollection": "opt-out",
    "description": "The number of times we generate a key via keygen, keyed on algorithm and keysize. Keys include RSA with key size (512, 1024, 2048, possibly others), secp384r1, secp256r1, and 'other_ec'."
  },
  "WEBSOCKETS_HANDSHAKE_TYPE": {
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 16,
    "description": "Websockets Handshake Results (ws-ok-plain, ws-ok-proxy, ws-failed-plain, ws-failed-proxy, wss-ok-plain, wss-ok-proxy, wss-failed-plain, wss-failed-proxy)"
  },
  "SPDY_VERSION2": {
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 48,
    "description": "SPDY: Protocol Version Used"
  },
  "HTTP_RESPONSE_VERSION": {
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 48,
    "description": "HTTP: Protocol Version Used on Response from nsHttp.h"
  },
  "SPDY_PARALLEL_STREAMS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "1000",
    "n_buckets": 50,
    "description": "SPDY: Streams concurrent active per connection"
  },
  "SPDY_REQUEST_PER_CONN": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "1000",
    "n_buckets": 50,
    "description": "SPDY: Streams created per connection"
  },
  "SPDY_SERVER_INITIATED_STREAMS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "100000",
    "n_buckets": 250,
    "description": "SPDY: Streams recevied per connection"
  },
  "SPDY_CHUNK_RECVD": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "1000",
    "n_buckets": 100,
    "description": "SPDY: Recvd Chunk Size (rounded to KB)"
  },
  "SPDY_SYN_SIZE": {
    "expires_in_version": "never",
    "kind": "exponential",
    "low": 20,
    "high": "20000",
    "n_buckets": 50,
    "description": "SPDY: SYN Frame Header Size"
  },
  "SPDY_SYN_RATIO": {
    "expires_in_version": "never",
    "kind": "linear",
    "high": "99",
    "n_buckets": 20,
    "description": "SPDY: SYN Frame Header Ratio (lower better)"
  },
  "SPDY_SYN_REPLY_SIZE": {
    "expires_in_version": "never",
    "kind": "exponential",
    "low": 16,
    "high": "20000",
    "n_buckets": 50,
    "description": "SPDY: SYN Reply Header Size"
  },
  "SPDY_SYN_REPLY_RATIO": {
    "expires_in_version": "never",
    "kind": "linear",
    "high": "99",
    "n_buckets": 20,
    "description": "SPDY: SYN Reply Header Ratio (lower better)"
  },
  "SPDY_NPN_CONNECT": {
    "expires_in_version": "never",
    "kind": "boolean",
    "description": "SPDY: NPN Negotiated"
  },
  "SPDY_NPN_JOIN": {
    "expires_in_version": "never",
    "kind": "boolean",
    "description": "SPDY: Coalesce Succeeded"
  },
  "SPDY_KBREAD_PER_CONN": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 50,
    "description": "SPDY: KB read per connection"
  },
  "SPDY_SETTINGS_UL_BW": {
    "expires_in_version": "42",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": 100,
    "description": "SPDY: Settings Upload Bandwidth"
  },
  "SPDY_SETTINGS_DL_BW": {
    "expires_in_version": "42",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": 100,
    "description": "SPDY: Settings Download Bandwidth"
  },
  "SPDY_SETTINGS_RTT": {
    "expires_in_version": "42",
    "kind": "exponential",
    "high": "1000",
    "n_buckets": 100,
    "description": "SPDY: Settings RTT"
  },
  "SPDY_SETTINGS_MAX_STREAMS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "5000",
    "n_buckets": 100,
    "description": "H2: Settings Max Streams parameter"
  },
  "SPDY_SETTINGS_CWND": {
    "expires_in_version": "42",
    "kind": "exponential",
    "high": "500",
    "n_buckets": 50,
    "description": "SPDY: Settings CWND (packets)"
  },
  "SPDY_SETTINGS_RETRANS": {
    "expires_in_version": "42",
    "kind": "exponential",
    "high": "100",
    "n_buckets": 50,
    "description": "SPDY: Retransmission Rate"
  },
  "SPDY_SETTINGS_IW": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "1000",
    "n_buckets": 50,
    "description": "H2: Settings Initial Window (rounded to KB)"
  },
  "SPDY_GOAWAY_LOCAL": {
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 32,
    "description": "H2: goaway reason client sent from rfc 7540. 31 is none sent."
  },
  "SPDY_GOAWAY_PEER": {
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 32,
    "description": "H2: goaway reason from peer from rfc 7540. 31 is none received."
  },
  "HTTP_CONNECTION_ENTRY_CACHE_HIT_1" : {
    "expires_in_version": "never",
    "kind": "boolean",
    "description": "Fraction of sockets that used a nsConnectionEntry with history - size 300."
  },
  "DISK_CACHE_CORRUPT_DETAILS": {
    "expires_in_version": "40",
    "kind": "enumerated",
    "n_values": 50,
    "description": "Why the HTTP disk cache was corrupted at startup"
  },
  "DISK_CACHE_REDUCTION_TRIAL": {
    "expires_in_version": "40",
    "kind": "boolean",
    "description": "Stores 1 if the cache would be clean with the disk cache corruption plan of Bug 105843"
  },
  "DISK_CACHE_REVALIDATION_SAFE": {
    "expires_in_version": "40",
    "kind": "boolean",
    "description": "Stores 1 if the cache clean file was revalidated, or 0 if a non empty doom list prevented revalidation"
  },
  "DISK_CACHE_INVALIDATION_SUCCESS": {
    "expires_in_version": "40",
    "kind": "boolean",
    "description": "Stores 1 if writing '0' to the cache clean file succeeded, and 0 if it failed."
  },
  "DISK_CACHE_REVALIDATION_SUCCESS": {
    "expires_in_version": "40",
    "kind": "boolean",
    "description": "Stores 1 if writing '1' to the cache clean file succeeded, and 0 if it failed."
  },
  "HTTP_CACHE_DISPOSITION_2": {
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 5,
    "description": "HTTP Cache Hit, Reval, Failed-Reval, Miss"
  },
  "HTTP_CACHE_DISPOSITION_2_V2": {
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 5,
    "description": "HTTP Cache v2 Hit, Reval, Failed-Reval, Miss"
  },
  "HTTP_DISK_CACHE_DISPOSITION_2": {
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 5,
    "description": "HTTP Disk Cache Hit, Reval, Failed-Reval, Miss"
  },
  "HTTP_CACHE_MISS_HALFLIFE_EXPERIMENT_2": {
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 4,
    "description": "HTTP Cache v2 Miss by half-life value (5 min, 15 min, 1 hour, 6 hours)"
  },
  "HTTP_CACHE_ENTRY_RELOAD_TIME": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "900000",
    "n_buckets": 50,
    "description": "Time before we reload an HTTP cache entry again to memory"
  },
  "HTTP_CACHE_ENTRY_ALIVE_TIME": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "7200000",
    "n_buckets": 50,
    "description": "Time for which an HTTP cache entry is kept warmed in memory"
  },
  "HTTP_CACHE_ENTRY_REUSE_COUNT": {
    "expires_in_version": "never",
    "kind": "linear",
    "high": "20",
    "n_buckets": 19,
    "description": "Reuse count of an HTTP cache entry warmed in memory"
  },
  "HTTP_MEMORY_CACHE_DISPOSITION_2": {
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 5,
    "description": "HTTP Memory Cache Hit, Reval, Failed-Reval, Miss"
  },
  "HTTP_OFFLINE_CACHE_DISPOSITION_2": {
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 5,
    "description": "HTTP Offline Cache Hit, Reval, Failed-Reval, Miss"
  },
  "HTTP_OFFLINE_CACHE_DOCUMENT_LOAD": {
    "expires_in_version": "never",
    "kind": "boolean",
    "description": "Rate of page load from offline cache"
  },
  "CACHE_DEVICE_SEARCH_2": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": 50,
    "description": "Time to search cache (ms)"
  },
  "CACHE_MEMORY_SEARCH_2": {
    "expires_in_version": "default",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": 50,
    "description": "Time to search memory cache (ms)"
  },
  "CACHE_DISK_SEARCH_2": {
    "expires_in_version": "default",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": 50,
    "description": "Time to search disk cache (ms)"
  },
  "CACHE_OFFLINE_SEARCH_2": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": 50,
    "description": "Time to search offline cache (ms)"
  },
  "TRANSACTION_WAIT_TIME_HTTP": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "5000",
    "n_buckets": 100,
    "description": "Time from submission to dispatch of HTTP transaction (ms)"
  },
  "TRANSACTION_WAIT_TIME_HTTP_PIPELINES": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "5000",
    "n_buckets": 100,
    "description": "Time from submission to dispatch of HTTP with pipelines transaction (ms)"
  },
  "TRANSACTION_WAIT_TIME_SPDY": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "5000",
    "n_buckets": 100,
    "description": "Time from submission to dispatch of SPDY transaction (ms)"
  },
  "HTTP_SAW_QUIC_ALT_PROTOCOL": {
    "expires_in_version": "never",
    "kind": "boolean",
    "description": "Fraction of responses with a quic alt-protocol advertisement."
  },
  "HTTP_CONTENT_ENCODING": {
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 6,
    "description": "encoding removed: 0=unknown, 1=gzip, 2=deflate, 3=brotli"
  },
  "HTTP_DISK_CACHE_OVERHEAD": {
    "expires_in_version": "default",
    "kind": "exponential",
    "high": "32000000",
    "n_buckets": 100,
    "description": "HTTP Disk cache memory overhead (bytes)"
  },
  "CACHE_LM_INCONSISTENT": {
    "expires_in_version": "never",
    "kind": "boolean",
    "description": "Cache discovered inconsistent last-modified entry"
  },
  "CACHE_SERVICE_LOCK_WAIT_2": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms)"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_2": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock on the main thread (ms)"
  },
  "DISK_CACHE_SMART_SIZE_USING_OLD_MAX": {
    "expires_in_version": "40",
    "kind": "boolean",
    "description": "Whether we are using the old default cache smart size"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSSETDISKSMARTSIZECALLBACK_NOTIFY": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSSETDISKSMARTSIZECALLBACK_NOTIFY"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSPROCESSREQUESTEVENT_RUN": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSPROCESSREQUESTEVENT_RUN"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSOUTPUTSTREAMWRAPPER_LAZYINIT": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSOUTPUTSTREAMWRAPPER_LAZYINIT"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSOUTPUTSTREAMWRAPPER_CLOSEINTERNAL": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSOUTPUTSTREAMWRAPPER_CLOSEINTERNAL"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSOUTPUTSTREAMWRAPPER_RELEASE": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSOUTPUTSTREAMWRAPPER_RELEASE"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCOMPRESSOUTPUTSTREAMWRAPPER_RELEASE": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCOMPRESSOUTPUTSTREAMWRAPPER_RELEASE"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSINPUTSTREAMWRAPPER_LAZYINIT": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSINPUTSTREAMWRAPPER_LAZYINIT"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSINPUTSTREAMWRAPPER_CLOSEINTERNAL": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSINPUTSTREAMWRAPPER_CLOSEINTERNAL"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSINPUTSTREAMWRAPPER_RELEASE": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSINPUTSTREAMWRAPPER_RELEASE"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSDECOMPRESSINPUTSTREAMWRAPPER_RELEASE": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSDECOMPRESSINPUTSTREAMWRAPPER_RELEASE"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSEVICTDISKCACHEENTRIESEVENT_RUN": {
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSEVICTDISKCACHEENTRIESEVENT_RUN *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSDOOMEVENT_RUN": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSDOOMEVENT_RUN"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSDISKCACHESTREAMIO_WRITE": {
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSDISKCACHESTREAMIO_WRITE *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSDISKCACHESTREAMIO_CLOSEOUTPUTSTREAM": {
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSDISKCACHESTREAMIO_CLOSEOUTPUTSTREAM *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSDISKCACHEDEVICEDEACTIVATEENTRYEVENT_RUN": {
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSDISKCACHEDEVICEDEACTIVATEENTRYEVENT_RUN *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSDISKCACHEBINDING_DESTRUCTOR": {
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSDISKCACHEBINDING_DESTRUCTOR *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCACHESERVICE_SHUTDOWN": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCACHESERVICE_SHUTDOWN"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCACHESERVICE_SETOFFLINECACHEENABLED": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCACHESERVICE_SETOFFLINECACHEENABLED"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCACHESERVICE_SETOFFLINECACHECAPACITY": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCACHESERVICE_SETOFFLINECACHECAPACITY"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCACHESERVICE_SETMEMORYCACHE": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCACHESERVICE_SETMEMORYCACHE"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCACHESERVICE_SETDISKSMARTSIZE": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCACHESERVICE_SETDISKSMARTSIZE"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCACHESERVICE_SETDISKCACHEMAXENTRYSIZE": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCACHESERVICE_SETDISKCACHEMAXENTRYSIZE"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCACHESERVICE_SETMEMORYCACHEMAXENTRYSIZE": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCACHESERVICE_SETMEMORYCACHEMAXENTRYSIZE"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCACHESERVICE_SETDISKCACHEENABLED": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCACHESERVICE_SETDISKCACHEENABLED"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCACHESERVICE_SETDISKCACHECAPACITY": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCACHESERVICE_SETDISKCACHECAPACITY"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCACHESERVICE_OPENCACHEENTRY": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCACHESERVICE_OPENCACHEENTRY"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCACHESERVICE_ONPROFILESHUTDOWN": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCACHESERVICE_ONPROFILESHUTDOWN"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCACHESERVICE_ONPROFILECHANGED": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCACHESERVICE_ONPROFILECHANGED"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCACHESERVICE_ISSTORAGEENABLEDFORPOLICY": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCACHESERVICE_ISSTORAGEENABLEDFORPOLICY"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCACHESERVICE_GETCACHEIOTARGET": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCACHESERVICE_GETCACHEIOTARGET"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCACHESERVICE_EVICTENTRIESFORCLIENT": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCACHESERVICE_EVICTENTRIESFORCLIENT"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCACHESERVICE_DISKDEVICEHEAPSIZE": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCACHESERVICE_DISKDEVICEHEAPSIZE"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCACHESERVICE_CLOSEALLSTREAMS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCACHESERVICE_CLOSEALLSTREAMS"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCACHEENTRYDESCRIPTOR_DOOM": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCACHEENTRYDESCRIPTOR_DOOM"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCACHEENTRYDESCRIPTOR_SETPREDICTEDDATASIZE": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCACHEENTRYDESCRIPTOR_SETPREDICTEDDATASIZE"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCACHEENTRYDESCRIPTOR_GETDATASIZE": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCACHEENTRYDESCRIPTOR_GETDATASIZE"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCACHEENTRYDESCRIPTOR_GETSTORAGEDATASIZE": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCACHEENTRYDESCRIPTOR_GETSTORAGEDATASIZE"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCACHEENTRYDESCRIPTOR_REQUESTDATASIZECHANGE": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCACHEENTRYDESCRIPTOR_REQUESTDATASIZECHANGE"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCACHEENTRYDESCRIPTOR_SETDATASIZE": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCACHEENTRYDESCRIPTOR_SETDATASIZE"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCACHEENTRYDESCRIPTOR_OPENINPUTSTREAM": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCACHEENTRYDESCRIPTOR_OPENINPUTSTREAM"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCACHEENTRYDESCRIPTOR_OPENOUTPUTSTREAM": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCACHEENTRYDESCRIPTOR_OPENOUTPUTSTREAM"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCACHEENTRYDESCRIPTOR_GETCACHEELEMENT": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCACHEENTRYDESCRIPTOR_GETCACHEELEMENT"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCACHEENTRYDESCRIPTOR_SETCACHEELEMENT": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCACHEENTRYDESCRIPTOR_SETCACHEELEMENT"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCACHEENTRYDESCRIPTOR_GETSTORAGEPOLICY": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCACHEENTRYDESCRIPTOR_GETSTORAGEPOLICY"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCACHEENTRYDESCRIPTOR_SETSTORAGEPOLICY": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCACHEENTRYDESCRIPTOR_SETSTORAGEPOLICY"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCACHEENTRYDESCRIPTOR_GETFILE": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCACHEENTRYDESCRIPTOR_GETFILE"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCACHEENTRYDESCRIPTOR_GETSECURITYINFO": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCACHEENTRYDESCRIPTOR_GETSECURITYINFO"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCACHEENTRYDESCRIPTOR_SETSECURITYINFO": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCACHEENTRYDESCRIPTOR_SETSECURITYINFO"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCACHEENTRYDESCRIPTOR_DOOMANDFAILPENDINGREQUESTS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCACHEENTRYDESCRIPTOR_DOOMANDFAILPENDINGREQUESTS"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCACHEENTRYDESCRIPTOR_MARKVALID": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCACHEENTRYDESCRIPTOR_MARKVALID"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCACHEENTRYDESCRIPTOR_CLOSE": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCACHEENTRYDESCRIPTOR_CLOSE"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCACHEENTRYDESCRIPTOR_GETMETADATAELEMENT": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCACHEENTRYDESCRIPTOR_GETMETADATAELEMENT"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCACHEENTRYDESCRIPTOR_SETMETADATAELEMENT": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCACHEENTRYDESCRIPTOR_SETMETADATAELEMENT"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCACHEENTRYDESCRIPTOR_VISITMETADATA": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCACHEENTRYDESCRIPTOR_VISITMETADATA"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCACHEENTRYDESCRIPTOR_SETEXPIRATIONTIME": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCACHEENTRYDESCRIPTOR_SETEXPIRATIONTIME"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCACHEENTRYDESCRIPTOR_ISSTREAMBASED": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCACHEENTRYDESCRIPTOR_ISSTREAMBASED"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCACHEENTRYDESCRIPTOR_GETLASTMODIFIED": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCACHEENTRYDESCRIPTOR_GETLASTMODIFIED"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCACHEENTRYDESCRIPTOR_GETEXPIRATIONTIME": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCACHEENTRYDESCRIPTOR_GETEXPIRATIONTIME"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCACHEENTRYDESCRIPTOR_GETKEY": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCACHEENTRYDESCRIPTOR_GETKEY"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCACHEENTRYDESCRIPTOR_GETFETCHCOUNT": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCACHEENTRYDESCRIPTOR_GETFETCHCOUNT"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCACHEENTRYDESCRIPTOR_GETDEVICEID": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCACHEENTRYDESCRIPTOR_GETDEVICEID"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCACHESERVICE_PROCESSREQUEST": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCACHESERVICE_PROCESSREQUEST"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCACHESERVICE_VISITENTRIES": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCACHESERVICE_VISITENTRIES"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCACHEENTRYDESCRIPTOR_GETPREDICTEDDATASIZE": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCACHEENTRYDESCRIPTOR_GETPREDICTEDDATASIZE"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCACHEENTRYDESCRIPTOR_GETLASTFETCHED": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCACHEENTRYDESCRIPTOR_GETLASTFETCHED"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSCACHEENTRYDESCRIPTOR_GETCLIENTID": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSCACHEENTRYDESCRIPTOR_GETCLIENTID"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSBLOCKONCACHETHREADEVENT_RUN": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSBLOCKONCACHETHREADEVENT_RUN"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSDISKCACHEMAP_REVALIDATION": {
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSDISKCACHEMAP_REVALIDATION *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
  },
  "CACHE_SERVICE_LOCK_WAIT_MAINTHREAD_NSASYNCDOOMEVENT_RUN": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10 * 1000",
    "n_buckets": 50,
    "description": "Time spent waiting on the cache service lock (ms) on the main thread in NSASYNCDOOMEVENT_RUN"
  },
  "DNT_USAGE": {
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 3,
    "description": "I want to be tracked, I do NOT want to be tracked, DNT unset"
  },
  "DNS_LOOKUP_METHOD2": {
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 16,
    "description": "DNS Lookup Type (hit, renewal, negative-hit, literal, overflow, network-first, network-shared)"
  },
  "DNS_CLEANUP_AGE": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "1440",
    "n_buckets": 50,
    "description": "DNS Cache Entry Age at Removal Time (minutes)"
  },
  "DNS_LOOKUP_TIME": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "60000",
    "n_buckets": 50,
    "description": "Time for a successful DNS OS resolution (msec)"
  },
  "DNS_RENEWAL_TIME": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "60000",
    "n_buckets": 50,
    "description": "Time for a renewed DNS OS resolution (msec)"
  },
  "DNS_RENEWAL_TIME_FOR_TTL": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "60000",
    "n_buckets": 50,
    "description": "Time for a DNS OS resolution (msec) used to get TTL"
  },
  "DNS_FAILED_LOOKUP_TIME": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "60000",
    "n_buckets": 50,
    "description": "Time for an unsuccessful DNS OS resolution (msec)"
  },
  "DNS_BLACKLIST_COUNT": {
    "expires_in_version": "never",
    "kind": "linear",
    "high": 21,
    "n_buckets": 20,
    "description": "The number of unusable addresses reported for each record"
  },
  "REFRESH_DRIVER_TICK" : {
    "expires_in_version": "never",
    "description": "Total time spent ticking the refresh driver in milliseconds",
    "kind": "exponential",
    "high": "1000",
    "n_buckets": 50
  },
  "PAINT_BUILD_DISPLAYLIST_TIME" : {
    "expires_in_version": "never",
    "description": "Time spent in building displaylists in milliseconds",
    "kind": "exponential",
    "high": "1000",
    "n_buckets": 50
  },
  "PAINT_RASTERIZE_TIME" : {
    "expires_in_version": "never",
    "description": "Time spent rasterizing each frame in milliseconds",
    "kind": "exponential",
    "high": "1000",
    "n_buckets": 50
  },
  "PREDICTOR_PREDICT_ATTEMPTS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "1000 * 1000",
    "n_buckets": 50,
    "description": "Number of times nsINetworkPredictor::Predict is called and attempts to predict"
  },
  "PREDICTOR_LEARN_ATTEMPTS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "1000 * 1000",
    "n_buckets": 50,
    "description": "Number of times nsINetworkPredictor::Learn is called and attempts to learn"
  },
  "PREDICTOR_PREDICT_FULL_QUEUE": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "60000",
    "n_buckets": 50,
    "description": "Number of times nsINetworkPredictor::Predict doesn't continue because the queue is full"
  },
  "PREDICTOR_LEARN_FULL_QUEUE": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "60000",
    "n_buckets": 50,
    "description": "Number of times nsINetworkPredictor::Learn doesn't continue because the queue is full"
  },
  "PREDICTOR_WAIT_TIME": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Amount of time a predictor event waits in the queue (ms)"
  },
  "PREDICTOR_PREDICT_WORK_TIME": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Amount of time spent doing the work for predict (ms)"
  },
  "PREDICTOR_LEARN_WORK_TIME": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Amount of time spent doing the work for learn (ms)"
  },
  "PREDICTOR_TOTAL_PREDICTIONS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "1000 * 1000",
    "n_buckets": 50,
    "description": "How many actual predictions (preresolves, preconnects, ...) happen"
  },
  "PREDICTOR_TOTAL_PRECONNECTS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "1000 * 1000",
    "n_buckets": 50,
    "description": "How many actual preconnects happen"
  },
  "PREDICTOR_TOTAL_PRECONNECTS_CREATED": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "1000 * 1000",
    "n_buckets": 50,
    "description": "How many preconnects actually created a speculative socket"
  },
  "PREDICTOR_TOTAL_PRECONNECTS_USED": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "1000 * 1000",
    "n_buckets": 50,
    "description": "How many preconnects actually created a used speculative socket"
  },
  "PREDICTOR_TOTAL_PRECONNECTS_UNUSED": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "1000 * 1000",
    "n_buckets": 50,
    "description": "How many preconnects needlessly created a speculative socket"
  },
  "PREDICTOR_TOTAL_PRERESOLVES": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "1000 * 1000",
    "n_buckets": 50,
    "description": "How many actual preresolves happen"
  },
  "PREDICTOR_PREDICTIONS_CALCULATED": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "1000 * 1000",
    "n_buckets": 50,
    "description": "How many prediction calculations are performed"
  },
  "PREDICTOR_GLOBAL_DEGRADATION": {
    "expires_in_version": "never",
    "kind": "linear",
    "high": "100",
    "n_buckets": 50,
    "description": "The global degradation calculated"
  },
  "PREDICTOR_SUBRESOURCE_DEGRADATION": {
    "expires_in_version": "never",
    "kind": "linear",
    "high": "100",
    "n_buckets": 50,
    "description": "The degradation calculated for a subresource"
  },
  "PREDICTOR_BASE_CONFIDENCE": {
    "expires_in_version": "never",
    "kind": "linear",
    "high": "100",
    "n_buckets": 50,
    "description": "The base confidence calculated for a subresource"
  },
  "PREDICTOR_CONFIDENCE": {
    "expires_in_version": "never",
    "kind": "linear",
    "high": "100",
    "n_buckets": 50,
    "description": "The final confidence calculated for a subresource"
  },
  "PREDICTOR_PREDICT_TIME_TO_ACTION": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "How long it takes from the time Predict() is called to the time we take action"
  },
  "PREDICTOR_PREDICT_TIME_TO_INACTION": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "How long it takes from the time Predict() is called to the time we figure out there's nothing to do"
  },
  "HTTPCONNMGR_TOTAL_SPECULATIVE_CONN": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "1000 * 1000",
    "n_buckets": 50,
    "description": "How many speculative http connections are created"
  },
  "HTTPCONNMGR_USED_SPECULATIVE_CONN": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "1000 * 1000",
    "n_buckets": 50,
    "description": "How many speculative http connections are actually used"
  },
  "HTTPCONNMGR_UNUSED_SPECULATIVE_CONN": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "1000 * 1000",
    "n_buckets": 50,
    "description": "How many speculative connections are made needlessly"
  },
  "TAP_TO_LOAD_IMAGE_SIZE": {
    "expires_in_version": "50",
    "kind": "exponential",
    "high": "32 * 1024",
    "n_buckets": 50,
    "description": "The size of the image being shown, when using tap-to-load images. (kilobytes)",
    "bug_numbers": [1208167]
  },
  "STS_POLL_AND_EVENTS_CYCLE": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "60000",
    "n_buckets": 1000,
    "description": "The duraion of a socketThread cycle, including polls and pending events. (ms)"
  },
  "STS_NUMBER_OF_PENDING_EVENTS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "2000",
    "n_buckets": 100,
    "description": "Number of pending events per SocketThread cycle."
  },
  "STS_POLL_CYCLE": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "60000",
    "n_buckets": 1000,
    "description": "The duration of poll. (ms)"
  },
  "STS_POLL_AND_EVENT_THE_LAST_CYCLE": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "60000",
    "n_buckets": 1000,
    "description": "The duraion of the socketThread cycle during shutdown, including polls and pending events. (ms)"
  },
  "STS_NUMBER_OF_PENDING_EVENTS_IN_THE_LAST_CYCLE": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "2000",
    "n_buckets": 100,
    "description": "Number of pending events per SocketThread cycle during shutdown."
  },
  "STS_NUMBER_OF_ONSOCKETREADY_CALLS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "2000",
    "n_buckets": 100,
    "description": "Number of OnSocketReady calls during a single poll."
  },
  "STS_POLL_BLOCK_TIME": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "60000",
    "n_buckets": 1000,
    "description": "Time spent blocked on poll (ms)."
  },
  "PRCONNECT_BLOCKING_TIME_NORMAL": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "60000",
    "n_buckets": 1000,
    "description": "Time spent blocked in PR_Connect when we are not shutting down and there has been niether a network nor an offline state change in the last 60s (ms)."
  },
  "PRCONNECT_BLOCKING_TIME_SHUTDOWN": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "60000",
    "n_buckets": 1000,
    "description": "Time spent blocked in PR_Connect during a shutdown (ms)."
  },
  "PRCONNECT_BLOCKING_TIME_CONNECTIVITY_CHANGE": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "60000",
    "n_buckets": 1000,
    "description": "Time spent blocked in PR_Connect when there has been the connectiviy change in the last 60s (ms)."
  },
  "PRCONNECT_BLOCKING_TIME_LINK_CHANGE": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "60000",
    "n_buckets": 1000,
    "description": "Time spent blocked in PR_Connect when there has been a link change in the last 60s (ms)."
  },
  "PRCONNECT_BLOCKING_TIME_OFFLINE": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "60000",
    "n_buckets": 1000,
    "description": "Time spent blocked in PR_Connect when the offline state has changed in the last 60s (ms)."
  },
  "PRCONNECTCONTINUE_BLOCKING_TIME_NORMAL": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "60000",
    "n_buckets": 1000,
    "description": "Time spent blocked in PR_ConnectContinue when we are not shutting down and there has been niether a network nor an offline state change in the last 60s (ms)."
  },
  "PRCONNECTCONTINUE_BLOCKING_TIME_SHUTDOWN": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "60000",
    "n_buckets": 1000,
    "description": "Time spent blocked in PR_ConnectContinue during a shutdown (ms)."
  },
  "PRCONNECTCONTINUE_BLOCKING_TIME_CONNECTIVITY_CHANGE": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "60000",
    "n_buckets": 1000,
    "description": "Time spent blocked in PR_ConnectContinue when there has been the connectivity change in the last 60s (ms)."
  },
  "PRCONNECTCONTINUE_BLOCKING_TIME_LINK_CHANGE": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "60000",
    "n_buckets": 1000,
    "description": "Time spent blocked in PR_ConnectContinue when there has been a link change in the last 60s (ms)."
  },
  "PRCONNECTCONTINUE_BLOCKING_TIME_OFFLINE": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "60000",
    "n_buckets": 1000,
    "description": "Time spent blocked in PR_ConnectContinue when the offline state has changed in the last 60s (ms)."
  },
  "PRCLOSE_TCP_BLOCKING_TIME_NORMAL": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "60000",
    "n_buckets": 1000,
    "description": "Time spent blocked in PR_Close when we are not shutting down and there has been niether a network nor an offline state change in the last 60s (ms)."
  },
  "PRCLOSE_TCP_BLOCKING_TIME_SHUTDOWN": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "60000",
    "n_buckets": 1000,
    "description": "Time spent blocked in PR_Close during a shutdown (ms)."
  },
  "PRCLOSE_TCP_BLOCKING_TIME_CONNECTIVITY_CHANGE": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "60000",
    "n_buckets": 1000,
    "description": "Time spent blocked in PR_Close when there has been the connectivity change in the last 60s (ms)."
  },
  "PRCLOSE_TCP_BLOCKING_TIME_LINK_CHANGE": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "60000",
    "n_buckets": 1000,
    "description": "Time spent blocked in PR_Close when there has been a link change in the last 60s (ms)."
  },
  "PRCLOSE_TCP_BLOCKING_TIME_OFFLINE": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "60000",
    "n_buckets": 1000,
    "description": "Time spent blocked in PR_Close when the offline state has changed in the last 60s (ms)."
  },
  "PRCLOSE_UDP_BLOCKING_TIME_NORMAL": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "60000",
    "n_buckets": 1000,
    "description": "Time spent blocked in PR_Close when we are not shutting down and there has been niether a network nor an offline state change in the last 60s (ms)."
  },
  "PRCLOSE_UDP_BLOCKING_TIME_SHUTDOWN": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "60000",
    "n_buckets": 1000,
    "description": "Time spent blocked in PR_Close during a shutdown (ms)."
  },
  "PRCLOSE_UDP_BLOCKING_TIME_CONNECTIVITY_CHANGE": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "60000",
    "n_buckets": 1000,
    "description": "Time spent blocked in PR_Close when there has been the connectivity change in the last 60s (ms)."
  },
  "PRCLOSE_UDP_BLOCKING_TIME_LINK_CHANGE": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "60000",
    "n_buckets": 1000,
    "description": "Time spent blocked in PR_Close when there has been a link change in the last 60s (ms)."
  },
  "PRCLOSE_UDP_BLOCKING_TIME_OFFLINE": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "60000",
    "n_buckets": 1000,
    "description": "Time spent blocked in PR_Close when the offline state has changed in the last 60s (ms)."
  },
  "IPV4_AND_IPV6_ADDRESS_CONNECTIVITY": {
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 4,
    "description": "Count the number of 0) successful connections to an ipv4 address, 1) failed connection an ipv4 address, 2) successful connection to an ipv6 address and 3) failed connections to an ipv6 address."
  },
  "URL_PATH_ENDS_IN_EXCLAMATION": {
    "expires_in_version": "never",
    "kind": "boolean",
    "description": "The URL path ends in !"
  },
  "URL_PATH_CONTAINS_EXCLAMATION_SLASH": {
    "expires_in_version": "never",
    "kind": "boolean",
    "description": "The URL path contains !/"
  },
  "URL_PATH_CONTAINS_EXCLAMATION_DOUBLE_SLASH": {
    "expires_in_version": "never",
    "kind": "boolean",
    "description": "The URL path contains !//"
  },
  "FIND_PLUGINS": {
    "alert_emails": ["perf-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Time spent scanning filesystem for plugins (ms)"
  },
  "CHECK_JAVA_ENABLED": {
    "expires_in_version": "default",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Time spent checking if Java is enabled (ms)"
  },
  "PLUGIN_HANG_UI_USER_RESPONSE": {
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 3,
    "description": "User response to Plugin Hang UI"
  },
  "PLUGIN_HANG_UI_DONT_ASK": {
    "expires_in_version": "never",
    "kind": "boolean",
    "description": "Whether the user has requested not to see the Plugin Hang UI again"
  },
  "PLUGIN_HANG_UI_RESPONSE_TIME": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "60000",
    "n_buckets": 20,
    "description": "Time spent in Plugin Hang UI (ms)"
  },
  "PLUGIN_HANG_TIME": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "60000",
    "n_buckets": 20,
    "description": "Value of dom.ipc.plugins.hangUITimeoutSecs plus time spent in Plugin Hang UI (ms)"
  },
  "PLUGIN_LOAD_METADATA": {
    "alert_emails": ["perf-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "5000",
    "n_buckets": 20,
    "description": "Time spent loading plugin DLL and obtaining metadata (ms)"
  },
  "PLUGIN_STARTUP_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "5000",
    "n_buckets": 20,
    "description": "Time spent starting up plugins (ms)"
  },
  "PLUGIN_SHUTDOWN_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "5000",
    "n_buckets": 20,
    "description": "Time spent shutting down plugins (ms)"
  },
  "PLUGIN_CALLED_DIRECTLY": {
    "expires_in_version": "never",
    "kind": "flag",
    "description": "A plugin object was successfully invoked as a function"
  },
  "FLASH_PLUGIN_STATES": {
    "expires_in_version": "50",
    "kind": "enumerated",
    "n_values": 20,
    "description": "A flash object's initialization state"
  },
  "FLASH_PLUGIN_AREA": {
    "expires_in_version": "50",
    "kind": "exponential",
    "low": "256",
    "high": "16777216",
    "n_buckets": 50,
    "description": "Flash object area (width * height)"
  },
  "FLASH_PLUGIN_WIDTH": {
    "expires_in_version": "50",
    "kind": "linear",
    "low": "1",
    "high": "2000",
    "n_buckets": 50,
    "description": "Flash object width"
  },
  "FLASH_PLUGIN_HEIGHT": {
    "expires_in_version": "50",
    "kind": "linear",
    "low": "1",
    "high": "2000",
    "n_buckets": 50,
    "description": "Flash object height"
  },
  "FLASH_PLUGIN_INSTANCES_ON_PAGE": {
    "expires_in_version": "50",
    "kind": "enumerated",
    "n_values": 30,
    "description": "Flash object instances count on page"
  },
  "MOZ_SQLITE_OPEN_MS": {
    "expires_in_version": "default",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Time spent on SQLite open() (ms)"
  },
  "MOZ_SQLITE_OPEN_MAIN_THREAD_MS": {
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Time spent on SQLite open() (ms) *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
  },
  "MOZ_SQLITE_TRUNCATE_MS": {
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Time spent on SQLite truncate() (ms) *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
  },
  "MOZ_SQLITE_TRUNCATE_MAIN_THREAD_MS": {
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Time spent on SQLite truncate() (ms) *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
  },
  "MOZ_SQLITE_OTHER_READ_MS": {
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Time spent on SQLite read() (ms) *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
  },
  "MOZ_SQLITE_OTHER_READ_MAIN_THREAD_MS": {
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Time spent on SQLite read() (ms) *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
  },
  "MOZ_SQLITE_PLACES_READ_MS": {
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Time spent on SQLite read() (ms) *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
  },
  "MOZ_SQLITE_PLACES_READ_MAIN_THREAD_MS": {
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Time spent on SQLite read() (ms) *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
  },
  "MOZ_SQLITE_COOKIES_OPEN_READAHEAD_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Time spent on cookie DB open with readahead (ms)"
  },
  "MOZ_SQLITE_COOKIES_READ_MS": {
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Time spent on SQLite read() (ms) *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
  },
  "MOZ_SQLITE_COOKIES_READ_MAIN_THREAD_MS": {
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Time spent on SQLite read() (ms) *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
  },
  "MOZ_SQLITE_WEBAPPS_READ_MS": {
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Time spent on SQLite read() (ms) *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
  },
  "MOZ_SQLITE_WEBAPPS_READ_MAIN_THREAD_MS": {
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Time spent on SQLite read() (ms) *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
  },
  "MOZ_SQLITE_OTHER_WRITE_MS": {
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Time spent on SQLite write() (ms) *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
  },
  "MOZ_SQLITE_OTHER_WRITE_MAIN_THREAD_MS": {
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Time spent on SQLite write() (ms) *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
  },
  "MOZ_SQLITE_PLACES_WRITE_MS": {
    "expires_in_version": "default",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Time spent on SQLite write() (ms)"
  },
  "MOZ_SQLITE_PLACES_WRITE_MAIN_THREAD_MS": {
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Time spent on SQLite write() (ms) *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
  },
  "MOZ_SQLITE_COOKIES_WRITE_MS": {
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Time spent on SQLite write() (ms) *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
  },
  "MOZ_SQLITE_COOKIES_WRITE_MAIN_THREAD_MS": {
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Time spent on SQLite write() (ms) *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
  },
  "MOZ_SQLITE_WEBAPPS_WRITE_MS": {
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Time spent on SQLite write() (ms) *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
  },
  "MOZ_SQLITE_WEBAPPS_WRITE_MAIN_THREAD_MS": {
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Time spent on SQLite write() (ms) *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
  },
  "MOZ_SQLITE_OTHER_SYNC_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Time spent on SQLite fsync() (ms)"
  },
  "MOZ_SQLITE_OTHER_SYNC_MAIN_THREAD_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Time spent on SQLite fsync() (ms)"
  },
  "MOZ_SQLITE_PLACES_SYNC_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Time spent on SQLite fsync() (ms)"
  },
  "MOZ_SQLITE_PLACES_SYNC_MAIN_THREAD_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Time spent on SQLite fsync() (ms)"
  },
  "MOZ_SQLITE_COOKIES_SYNC_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Time spent on SQLite fsync() (ms)"
  },
  "MOZ_SQLITE_COOKIES_SYNC_MAIN_THREAD_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Time spent on SQLite fsync() (ms)"
  },
  "MOZ_SQLITE_WEBAPPS_SYNC_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Time spent on SQLite fsync() (ms)"
  },
  "MOZ_SQLITE_WEBAPPS_SYNC_MAIN_THREAD_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Time spent on SQLite fsync() (ms)"
  },
  "MOZ_SQLITE_OTHER_READ_B": {
    "expires_in_version": "default",
    "kind": "linear",
    "high": "32768",
    "n_buckets": 3,
    "description": "SQLite read() (bytes)"
  },
  "MOZ_SQLITE_PLACES_READ_B": {
    "expires_in_version": "40",
    "kind": "linear",
    "high": "32768",
    "n_buckets": 3,
    "description": "SQLite read() (bytes) *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
  },
  "MOZ_SQLITE_COOKIES_READ_B": {
    "expires_in_version": "40",
    "kind": "linear",
    "high": "32768",
    "n_buckets": 3,
    "description": "SQLite read() (bytes) *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
  },
  "MOZ_SQLITE_WEBAPPS_READ_B": {
    "expires_in_version": "40",
    "kind": "linear",
    "high": "32768",
    "n_buckets": 3,
    "description": "SQLite read() (bytes) *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
  },
  "MOZ_SQLITE_PLACES_WRITE_B": {
    "expires_in_version": "40",
    "kind": "linear",
    "high": "32768",
    "n_buckets": 3,
    "description": "SQLite write (bytes) *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
  },
  "MOZ_SQLITE_COOKIES_WRITE_B": {
    "expires_in_version": "40",
    "kind": "linear",
    "high": "32768",
    "n_buckets": 3,
    "description": "SQLite write (bytes) *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
  },
  "MOZ_SQLITE_WEBAPPS_WRITE_B": {
    "expires_in_version": "40",
    "kind": "linear",
    "high": "32768",
    "n_buckets": 3,
    "description": "SQLite write (bytes) *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
  },
  "MOZ_SQLITE_OTHER_WRITE_B": {
    "expires_in_version": "default",
    "kind": "linear",
    "high": "32768",
    "n_buckets": 3,
    "description": "SQLite write (bytes)"
  },
  "MOZ_STORAGE_ASYNC_REQUESTS_MS": {
    "alert_emails": ["perf-telemetry-alerts@mozilla.com"],
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "32768",
    "n_buckets": 20,
    "description": "mozStorage async requests completion (ms) *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
  },
  "MOZ_STORAGE_ASYNC_REQUESTS_SUCCESS": {
    "alert_emails": ["perf-telemetry-alerts@mozilla.com"],
    "expires_in_version": "40",
    "kind": "boolean",
    "description": "mozStorage async requests success *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
  },
  "STARTUP_MEASUREMENT_ERRORS": {
    "expires_in_version": "default",
    "kind": "enumerated",
    "n_values": "mozilla::StartupTimeline::MAX_EVENT_ID",
    "description": "Flags errors in startup calculation()"
  },
  "NETWORK_DISK_CACHE_OPEN": {
    "expires_in_version": "default",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": 10,
    "description": "Time spent opening disk cache (ms)"
  },
  "NETWORK_DISK_CACHE_TRASHRENAME": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": 10,
    "description": "Time spent renaming bad Cache to Cache.Trash (ms)"
  },
  "NETWORK_DISK_CACHE_DELETEDIR": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": 10,
    "description": "Time spent deleting disk cache (ms)"
  },
  "NETWORK_DISK_CACHE_DELETEDIR_SHUTDOWN": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": 10,
    "description": "Time spent during showdown stopping thread deleting old disk cache (ms)"
  },
  "NETWORK_DISK_CACHE_SHUTDOWN": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": 10,
    "description": "Total Time spent (ms) during disk cache showdown"
  },
  "NETWORK_DISK_CACHE_SHUTDOWN_V2": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": 10,
    "description": "Total Time spent (ms) during disk cache showdown [cache2]"
  },
  "NETWORK_DISK_CACHE_SHUTDOWN_CLEAR_PRIVATE": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": 10,
    "description": "Time spent (ms) during showdown deleting disk cache for 'clear private data' option"
  },
  "NETWORK_DISK_CACHE2_SHUTDOWN_CLEAR_PRIVATE": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": 10,
    "description": "Time spent (ms) during showdown deleting disk cache v2 for 'clear private data' option"
  },
  "NETWORK_DISK_CACHE_REVALIDATION": {
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": 10,
    "description": "Total Time spent (ms) during disk cache revalidation"
  },
  "NETWORK_DISK_CACHE_STREAMIO_CLOSE": {
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": 10,
    "description": "Time spent in nsDiskCacheStreamIO::Close() on non-main thread (ms)"
  },
  "NETWORK_DISK_CACHE_STREAMIO_CLOSE_MAIN_THREAD": {
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": 10,
    "description": "Time spent in nsDiskCacheStreamIO::Close() on the main thread (ms)"
  },
  "IDLE_NOTIFY_BACK_MS": {
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "5000",
    "n_buckets": 10,
    "description": "Time spent checking for and notifying listeners that the user is back (ms)"
  },
  "IDLE_NOTIFY_BACK_LISTENERS": {
    "expires_in_version": "40",
    "kind": "linear",
    "high": "100",
    "n_buckets": 20,
    "description": "Number of listeners notified that the user is back"
  },
  "IDLE_NOTIFY_IDLE_MS": {
    "expires_in_version": "default",
    "kind": "exponential",
    "high": "5000",
    "n_buckets": 10,
    "description": "Time spent checking for and notifying listeners that the user is idle (ms)"
  },
  "IDLE_NOTIFY_IDLE_LISTENERS": {
    "expires_in_version": "40",
    "kind": "linear",
    "high": "100",
    "n_buckets": 20,
    "description": "Number of listeners notified that the user is idle"
  },
  "URLCLASSIFIER_LOOKUP_TIME": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "500",
    "n_buckets": 10,
    "description": "Time spent per dbservice lookup (ms)"
  },
  "URLCLASSIFIER_CL_CHECK_TIME": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "500",
    "n_buckets": 10,
    "description": "Time spent per classifier lookup (ms)"
  },
  "URLCLASSIFIER_CL_UPDATE_TIME": {
    "expires_in_version": "never",
    "kind": "exponential",
    "low": 20,
    "high": "15000",
    "n_buckets": 15,
    "description": "Time spent per classifier update (ms)"
  },
  "URLCLASSIFIER_PS_FILELOAD_TIME": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "1000",
    "n_buckets": 10,
    "description": "Time spent loading PrefixSet from file (ms)"
  },
  "URLCLASSIFIER_PS_FALLOCATE_TIME": {
    "expires_in_version": "default",
    "kind": "exponential",
    "high": "1000",
    "n_buckets": 10,
    "description": "Time spent fallocating PrefixSet (ms)"
  },
  "URLCLASSIFIER_PS_CONSTRUCT_TIME": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "5000",
    "n_buckets": 15,
    "description": "Time spent constructing PrefixSet from DB (ms)"
  },
  "URLCLASSIFIER_LC_PREFIXES": {
    "expires_in_version": "never",
    "kind": "linear",
    "high": "1500000",
    "n_buckets": 15,
    "description": "Size of the prefix cache in entries"
  },
  "URLCLASSIFIER_LC_COMPLETIONS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "200",
    "n_buckets": 10,
    "description": "Size of the completion cache in entries"
  },
  "URLCLASSIFIER_PS_FAILURE": {
    "expires_in_version": "default",
    "kind": "boolean",
    "description": "Did UrlClassifier fail to construct the PrefixSet?"
  },
  "PLACES_PAGES_COUNT": {
    "expires_in_version": "never",
    "kind": "exponential",
    "low": 1000,
    "high": "150000",
    "n_buckets": 20,
    "releaseChannelCollection": "opt-out",
    "description": "PLACES: Number of unique pages"
  },
  "PLACES_BOOKMARKS_COUNT": {
    "expires_in_version": "never",
    "kind": "exponential",
    "low": 100,
    "high": "8000",
    "n_buckets": 15,
    "releaseChannelCollection": "opt-out",
    "description": "PLACES: Number of bookmarks"
  },
  "PLACES_TAGS_COUNT": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "200",
    "n_buckets": 10,
    "description": "PLACES: Number of tags"
  },
  "PLACES_KEYWORDS_COUNT": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "200",
    "n_buckets": 10,
    "description": "PLACES: Number of keywords"
  },
  "PLACES_BACKUPS_DAYSFROMLAST": {
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 15,
    "description": "PLACES: Days from last backup"
  },
  "PLACES_BACKUPS_BOOKMARKSTREE_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "low": 50,
    "high": 2000,
    "n_buckets": 10,
    "description": "PLACES: Time to build the bookmarks tree"
  },
  "PLACES_BACKUPS_TOJSON_MS": {
    "expires_in_version": "default",
    "kind": "exponential",
    "low": 50,
    "high": 2000,
    "n_buckets": 10,
    "description": "PLACES: Time to convert and write the backup"
  },
  "PLACES_EXPORT_TOHTML_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "low": 50,
    "high": 2000,
    "n_buckets": 10,
    "description": "PLACES: Time to convert and write bookmarks.html"
  },
  "PLACES_FAVICON_ICO_SIZES": {
    "expires_in_version" : "never",
    "kind": "exponential",
    "high": 524288,
    "n_buckets" : 100,
    "description": "PLACES: Size of the ICO favicon files loaded from the web (Bytes)"
  },
  "PLACES_FAVICON_PNG_SIZES": {
    "expires_in_version" : "never",
    "kind": "exponential",
    "high": 524288,
    "n_buckets" : 100,
    "description": "PLACES: Size of the PNG favicon files loaded from the web (Bytes)"
  },
  "PLACES_FAVICON_GIF_SIZES": {
    "expires_in_version" : "never",
    "kind": "exponential",
    "high": 524288,
    "n_buckets" : 100,
    "description": "PLACES: Size of the GIF favicon files loaded from the web (Bytes)"
  },
  "PLACES_FAVICON_JPEG_SIZES": {
    "expires_in_version" : "never",
    "kind": "exponential",
    "high": 524288,
    "n_buckets" : 100,
    "description": "PLACES: Size of the JPEG favicon files loaded from the web (Bytes)"
  },
  "PLACES_FAVICON_BMP_SIZES": {
    "expires_in_version" : "never",
    "kind": "exponential",
    "high": 524288,
    "n_buckets" : 100,
    "description": "PLACES: Size of the BMP favicon files loaded from the web (Bytes)"
  },
  "PLACES_FAVICON_SVG_SIZES": {
    "expires_in_version" : "never",
    "kind": "exponential",
    "high": 524288,
    "n_buckets" : 100,
    "description": "PLACES: Size of the SVG favicon files loaded from the web (Bytes)"
  },
  "PLACES_FAVICON_OTHER_SIZES": {
    "expires_in_version" : "never",
    "kind": "exponential",
    "high": 524288,
    "n_buckets" : 100,
    "description": "PLACES: Size of favicon files without a specific file type probe, loaded from the web (Bytes)"
  },
  "LINK_ICON_SIZES_ATTR_USAGE": {
    "expires_in_version" : "never",
    "kind": "enumerated",
    "n_values": 4,
    "description": "The possible types of the 'sizes' attribute for <link rel=icon>. 0: Attribute not specified, 1: 'any', 2: Integer dimensions, 3: Invalid value."
  },
  "LINK_ICON_SIZES_ATTR_DIMENSION": {
    "expires_in_version" : "never",
    "kind": "linear",
    "high": 513,
    "n_buckets" : 64,
    "description": "The width dimension of the 'sizes' attribute for <link rel=icon>."
  },
  "FENNEC_DISTRIBUTION_REFERRER_INVALID": {
    "expires_in_version": "never",
    "kind": "flag",
    "description": "Whether the referrer intent specified an invalid distribution name",
    "cpp_guard": "ANDROID"
  },
  "FENNEC_DISTRIBUTION_CODE_CATEGORY": {
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 20,
    "description": "First digit of HTTP result code, or error category, during distribution download",
    "cpp_guard": "ANDROID"
  },
  "FENNEC_DISTRIBUTION_DOWNLOAD_TIME_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "low": 100,
    "high": "40000",
    "n_buckets": 30,
    "description": "Time taken to download a specified distribution file (msec)",
    "cpp_guard": "ANDROID"
  },
  "FENNEC_FAVICONS_COUNT": {
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "2000",
    "n_buckets": 10,
    "cpp_guard": "ANDROID",
    "description": "Number of favicons stored in the browser DB *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
  },
  "FENNEC_THUMBNAILS_COUNT": {
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "2000",
    "n_buckets": 10,
    "cpp_guard": "ANDROID",
    "description": "Number of thumbnails stored in the browser DB *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
  },
  "FENNEC_READING_LIST_COUNT": {
    "expires_in_version": "50",
    "kind": "exponential",
    "high": "1000",
    "n_buckets": 10,
    "cpp_guard": "ANDROID",
    "description": "Number of reading list items stored in the browser DB *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
  },
  "PLACES_SORTED_BOOKMARKS_PERC": {
    "expires_in_version": "never",
    "kind": "linear",
    "high": "100",
    "n_buckets": 10,
    "description": "PLACES: Percentage of bookmarks organized in folders"
  },
  "PLACES_TAGGED_BOOKMARKS_PERC": {
    "expires_in_version": "never",
    "kind": "linear",
    "high": "100",
    "n_buckets": 10,
    "description": "PLACES: Percentage of tagged bookmarks"
  },
  "PLACES_DATABASE_FILESIZE_MB": {
    "expires_in_version": "never",
    "kind": "exponential",
    "low": 5,
    "high": "200",
    "n_buckets": 10,
    "description": "PLACES: Database filesize (MB)"
  },
  "PLACES_DATABASE_PAGESIZE_B": {
    "expires_in_version": "never",
    "kind": "exponential",
    "low": 1024,
    "high": "32768",
    "n_buckets": 10,
    "description": "PLACES: Database page size (bytes)"
  },
  "PLACES_DATABASE_SIZE_PER_PAGE_B": {
    "expires_in_version": "never",
    "kind": "exponential",
    "low": 500,
    "high": "10240",
    "n_buckets": 20,
    "description": "PLACES: Average size of a place in the database (bytes)"
  },
  "PLACES_EXPIRATION_STEPS_TO_CLEAN2": {
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 10,
    "description": "PLACES: Expiration steps to cleanup the database"
  },
  "PLACES_AUTOCOMPLETE_1ST_RESULT_TIME_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "low": 50,
    "high": "500",
    "n_buckets": 10,
    "description": "PLACES: Time for first autocomplete result if > 50ms (ms)"
  },
  "PLACES_AUTOCOMPLETE_6_FIRST_RESULTS_TIME_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "low": 50,
    "high": "1000",
    "n_buckets": 30,
    "description": "PLACES: Time for the 6 first autocomplete results (ms)"
  },
  "HISTORY_LASTVISITED_TREE_QUERY_TIME_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "low": 50,
    "high": "2000",
    "n_buckets": 30,
    "description": "PLACES: Time to load the sidebar history tree sorted by last visit (ms)"
  },
  "PLACES_HISTORY_LIBRARY_SEARCH_TIME_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "low": 50,
    "high": "1000",
    "n_buckets": 30,
    "description": "PLACES: Time to search the history library (ms)"
  },
  "PLACES_AUTOCOMPLETE_URLINLINE_DOMAIN_QUERY_TIME_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "low": 50,
    "high": 2000,
    "n_buckets": 10,
    "description": "PLACES: Duration of the domain query for the url inline autocompletion (ms)"
  },
  "PLACES_IDLE_FRECENCY_DECAY_TIME_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "low": 50,
    "high": "10000",
    "n_buckets": 10,
    "description": "PLACES: Time to decay all frecencies values on idle (ms)"
  },
  "PLACES_IDLE_MAINTENANCE_TIME_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "low": 1000,
    "high": "30000",
    "n_buckets": 10,
    "description": "PLACES: Time to execute maintenance tasks on idle (ms)"
  },
  "PLACES_ANNOS_BOOKMARKS_COUNT": {
    "expires_in_version": "never",
    "kind": "exponential",
    "low": 50,
    "high": "5000",
    "n_buckets": 10,
    "description": "PLACES: Number of bookmarks annotations"
  },
  "PLACES_ANNOS_PAGES_COUNT": {
    "expires_in_version": "never",
    "kind": "exponential",
    "low": 50,
    "high": "5000",
    "n_buckets": 10,
    "description": "PLACES: Number of pages annotations"
  },
  "PLACES_MAINTENANCE_DAYSFROMLAST": {
    "expires_in_version" : "never",
    "kind": "exponential",
    "low": 7,
    "high": 60,
    "n_buckets" : 10,
    "description": "PLACES: Days from last maintenance"
  },
  "UPDATE_CHECK_NO_UPDATE_EXTERNAL" : {
    "alert_emails": ["application-update-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "count",
    "releaseChannelCollection": "opt-out",
    "description": "Update: count of no updates were found for a background update check (externally initiated)"
  },
  "UPDATE_CHECK_NO_UPDATE_NOTIFY" : {
    "alert_emails": ["application-update-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "count",
    "releaseChannelCollection": "opt-out",
    "description": "Update: count of no updates were found for a background update check (timer initiated)"
  },
  "UPDATE_CHECK_CODE_EXTERNAL": {
    "alert_emails": ["application-update-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 50,
    "releaseChannelCollection": "opt-out",
    "description": "Update: background update check result code except for no updates found (externally initiated)"
  },
  "UPDATE_CHECK_CODE_NOTIFY": {
    "alert_emails": ["application-update-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 50,
    "releaseChannelCollection": "opt-out",
    "description": "Update: background update check result code except for no updates found (timer initiated)"
  },
  "UPDATE_CHECK_EXTENDED_ERROR_EXTERNAL": {
    "alert_emails": ["application-update-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "count",
    "keyed": true,
    "releaseChannelCollection": "opt-out",
    "description": "Update: keyed count (key names are prefixed with AUS_CHECK_EX_ERR_) of background update check extended error code (externally initiated)"
  },
  "UPDATE_CHECK_EXTENDED_ERROR_NOTIFY": {
    "alert_emails": ["application-update-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "count",
    "keyed": true,
    "releaseChannelCollection": "opt-out",
    "description": "Update: keyed count (key names are prefixed with AUS_CHECK_EX_ERR_) of background update check extended error code (timer initiated)"
  },
  "UPDATE_INVALID_LASTUPDATETIME_EXTERNAL": {
    "alert_emails": ["application-update-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "count",
    "releaseChannelCollection": "opt-out",
    "description": "Update: count of systems that have a last update time greater than the current time (externally initiated)"
  },
  "UPDATE_INVALID_LASTUPDATETIME_NOTIFY": {
    "alert_emails": ["application-update-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "count",
    "releaseChannelCollection": "opt-out",
    "description": "Update: count of systems that have a last update time greater than the current time (timer initiated)"
  },
  "UPDATE_LAST_NOTIFY_INTERVAL_DAYS_EXTERNAL": {
    "alert_emails": ["application-update-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "exponential",
    "n_buckets": 60,
    "high": "365",
    "releaseChannelCollection": "opt-out",
    "description": "Update: interval in days since the last background update check (externally initiated)"
  },
  "UPDATE_LAST_NOTIFY_INTERVAL_DAYS_NOTIFY": {
    "alert_emails": ["application-update-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "exponential",
    "n_buckets": 30,
    "high": "180",
    "releaseChannelCollection": "opt-out",
    "description": "Update: interval in days since the last background update check (timer initiated)"
  },
  "UPDATE_PING_COUNT_EXTERNAL": {
    "alert_emails": ["application-update-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "count",
    "releaseChannelCollection": "opt-out",
    "description": "Update: count of systems for this ping for comparison with other pings (externally initiated)"
  },
  "UPDATE_PING_COUNT_NOTIFY": {
    "alert_emails": ["application-update-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "count",
    "releaseChannelCollection": "opt-out",
    "description": "Update: count of systems for this ping for comparison with other pings (timer initiated)"
  },
  "UPDATE_SERVICE_INSTALLED_EXTERNAL": {
    "alert_emails": ["application-update-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "boolean",
    "releaseChannelCollection": "opt-out",
    "description": "Update: whether the service is installed (externally initiated)"
  },
  "UPDATE_SERVICE_INSTALLED_NOTIFY": {
    "alert_emails": ["application-update-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "boolean",
    "releaseChannelCollection": "opt-out",
    "description": "Update: whether the service is installed (timer initiated)"
  },
  "UPDATE_SERVICE_MANUALLY_UNINSTALLED_EXTERNAL": {
    "alert_emails": ["application-update-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "count",
    "releaseChannelCollection": "opt-out",
    "description": "Update: count of systems that manually uninstalled the service (externally initiated)"
  },
  "UPDATE_SERVICE_MANUALLY_UNINSTALLED_NOTIFY": {
    "alert_emails": ["application-update-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "count",
    "releaseChannelCollection": "opt-out",
    "description": "Update: count of systems that manually uninstalled the service (timer initiated)"
  },
  "UPDATE_UNABLE_TO_APPLY_EXTERNAL": {
    "alert_emails": ["application-update-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "count",
    "releaseChannelCollection": "opt-out",
    "description": "Update: count of systems that cannot apply updates (externally initiated)"
  },
  "UPDATE_UNABLE_TO_APPLY_NOTIFY": {
    "alert_emails": ["application-update-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "count",
    "releaseChannelCollection": "opt-out",
    "description": "Update: count of systems that cannot apply updates (timer initiated)"
  },
  "UPDATE_CANNOT_STAGE_EXTERNAL": {
    "alert_emails": ["application-update-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "count",
    "releaseChannelCollection": "opt-out",
    "description": "Update: count of systems that cannot stage updates (externally initiated)"
  },
  "UPDATE_CANNOT_STAGE_NOTIFY": {
    "alert_emails": ["application-update-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "count",
    "releaseChannelCollection": "opt-out",
    "description": "Update: count of systems that cannot stage updates (timer initiated)"
  },
  "UPDATE_HAS_PREF_URL_OVERRIDE_EXTERNAL": {
    "alert_emails": ["application-update-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "count",
    "releaseChannelCollection": "opt-out",
    "description": "Update: count of systems that have an app.update.url.override preference (externally initiated)"
  },
  "UPDATE_HAS_PREF_URL_OVERRIDE_NOTIFY": {
    "alert_emails": ["application-update-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "count",
    "releaseChannelCollection": "opt-out",
    "description": "Update: count of systems that have an app.update.url.override preference (timer initiated)"
  },
  "UPDATE_PREF_UPDATE_CANCELATIONS_EXTERNAL": {
    "alert_emails": ["application-update-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 100,
    "releaseChannelCollection": "opt-out",
    "description": "Update: number of sequential update elevation request cancelations greater than 0 (externally initiated)"
  },
  "UPDATE_PREF_UPDATE_CANCELATIONS_NOTIFY": {
    "alert_emails": ["application-update-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 100,
    "releaseChannelCollection": "opt-out",
    "description": "Update: number of sequential update elevation request cancelations greater than 0 (timer initiated)"
  },
  "UPDATE_PREF_SERVICE_ERRORS_EXTERNAL": {
    "alert_emails": ["application-update-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 30,
    "releaseChannelCollection": "opt-out",
    "description": "Update: number of sequential update service errors greater than 0 (externally initiated)"
  },
  "UPDATE_PREF_SERVICE_ERRORS_NOTIFY": {
    "alert_emails": ["application-update-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 30,
    "releaseChannelCollection": "opt-out",
    "description": "Update: number of sequential update service errors greater than 0 (timer initiated)"
  },
  "UPDATE_NOT_PREF_UPDATE_AUTO_EXTERNAL": {
    "alert_emails": ["application-update-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "count",
    "releaseChannelCollection": "opt-out",
    "description": "Update: count of when the app.update.auto boolean preference is not the default value of true (true values are not submitted)"
  },
  "UPDATE_NOT_PREF_UPDATE_AUTO_NOTIFY": {
    "alert_emails": ["application-update-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "count",
    "releaseChannelCollection": "opt-out",
    "description": "Update: count of when the app.update.auto boolean preference is not the default value of true (true values are not submitted)"
  },
  "UPDATE_NOT_PREF_UPDATE_ENABLED_EXTERNAL": {
    "alert_emails": ["application-update-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "count",
    "releaseChannelCollection": "opt-out",
    "description": "Update: count of when the app.update.enabled boolean preference is not the default value of true (true values are not submitted)"
  },
  "UPDATE_NOT_PREF_UPDATE_ENABLED_NOTIFY": {
    "alert_emails": ["application-update-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "count",
    "releaseChannelCollection": "opt-out",
    "description": "Update: count of when the app.update.enabled boolean preference is not the default value of true (true values are not submitted)"
  },
  "UPDATE_NOT_PREF_UPDATE_STAGING_ENABLED_EXTERNAL": {
    "alert_emails": ["application-update-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "count",
    "releaseChannelCollection": "opt-out",
    "description": "Update: count of when the app.update.staging.enabled boolean preference is not the default value of true (true values are not submitted)"
  },
  "UPDATE_NOT_PREF_UPDATE_STAGING_ENABLED_NOTIFY": {
    "alert_emails": ["application-update-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "count",
    "releaseChannelCollection": "opt-out",
    "description": "Update: count of when the app.update.staging.enabled boolean preference is not the default value of true (true values are not submitted)"
  },
  "UPDATE_NOT_PREF_UPDATE_SERVICE_ENABLED_EXTERNAL": {
    "alert_emails": ["application-update-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "count",
    "releaseChannelCollection": "opt-out",
    "description": "Update: count of when the app.update.service.enabled boolean preference is not the default value of true (true values are not submitted)"
  },
  "UPDATE_NOT_PREF_UPDATE_SERVICE_ENABLED_NOTIFY": {
    "alert_emails": ["application-update-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "count",
    "releaseChannelCollection": "opt-out",
    "description": "Update: count of when the app.update.service.enabled boolean preference is not the default value of true (true values are not submitted)"
  },
  "UPDATE_DOWNLOAD_CODE_COMPLETE": {
    "alert_emails": ["application-update-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 50,
    "releaseChannelCollection": "opt-out",
    "description": "Update: complete patch download result code"
  },
  "UPDATE_DOWNLOAD_CODE_PARTIAL": {
    "alert_emails": ["application-update-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 50,
    "releaseChannelCollection": "opt-out",
    "description": "Update: complete patch download result code"
  },
  "UPDATE_STATE_CODE_COMPLETE_STARTUP": {
    "alert_emails": ["application-update-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 20,
    "releaseChannelCollection": "opt-out",
    "description": "Update: the state of a complete update from update.status on startup"
  },
  "UPDATE_STATE_CODE_PARTIAL_STARTUP": {
    "alert_emails": ["application-update-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 20,
    "releaseChannelCollection": "opt-out",
    "description": "Update: the state of a partial patch update from update.status on startup"
  },
  "UPDATE_STATE_CODE_UNKNOWN_STARTUP": {
    "alert_emails": ["application-update-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 20,
    "releaseChannelCollection": "opt-out",
    "description": "Update: the state of an unknown patch update from update.status on startup"
  },
  "UPDATE_STATE_CODE_COMPLETE_STAGE": {
    "alert_emails": ["application-update-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 20,
    "releaseChannelCollection": "opt-out",
    "description": "Update: the state of a complete patch update from update.status after staging"
  },
  "UPDATE_STATE_CODE_PARTIAL_STAGE": {
    "alert_emails": ["application-update-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 20,
    "releaseChannelCollection": "opt-out",
    "description": "Update: the state of a partial patch update from update.status after staging"
  },
  "UPDATE_STATE_CODE_UNKNOWN_STAGE": {
    "alert_emails": ["application-update-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 20,
    "releaseChannelCollection": "opt-out",
    "description": "Update: the state of an unknown patch update from update.status after staging"
  },
  "UPDATE_STATUS_ERROR_CODE_COMPLETE_STARTUP": {
    "alert_emails": ["application-update-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 100,
    "releaseChannelCollection": "opt-out",
    "description": "Update: the status error code for a failed complete patch update from update.status on startup"
  },
  "UPDATE_STATUS_ERROR_CODE_PARTIAL_STARTUP": {
    "alert_emails": ["application-update-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 100,
    "releaseChannelCollection": "opt-out",
    "description": "Update: the status error code for a failed partial patch update from update.status on startup"
  },
  "UPDATE_STATUS_ERROR_CODE_UNKNOWN_STARTUP": {
    "alert_emails": ["application-update-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 100,
    "releaseChannelCollection": "opt-out",
    "description": "Update: the status error code for a failed unknown patch update from update.status on startup"
  },
  "UPDATE_STATUS_ERROR_CODE_COMPLETE_STAGE": {
    "alert_emails": ["application-update-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 100,
    "releaseChannelCollection": "opt-out",
    "description": "Update: the status error code for a failed complete patch update from update.status after staging"
  },
  "UPDATE_STATUS_ERROR_CODE_PARTIAL_STAGE": {
    "alert_emails": ["application-update-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 100,
    "releaseChannelCollection": "opt-out",
    "description": "Update: the status error code for a failed partial patch update from update.status after staging"
  },
  "UPDATE_STATUS_ERROR_CODE_UNKNOWN_STAGE": {
    "alert_emails": ["application-update-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 100,
    "releaseChannelCollection": "opt-out",
    "description": "Update: the status error code for a failed unknown patch update from update.status after staging"
  },
  "UPDATE_WIZ_LAST_PAGE_CODE": {
    "alert_emails": ["application-update-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 30,
    "releaseChannelCollection": "opt-out",
    "description": "Update: the update wizard page displayed when the UI was closed (mapped in toolkit/mozapps/update/UpdateTelemetry.jsm)"
  },
  "THUNDERBIRD_GLODA_SIZE_MB": {
    "expires_in_version": "never",
    "kind": "linear",
    "high": "1000",
    "n_buckets": 40,
    "description": "Gloda: size of global-messages-db.sqlite (MB)"
  },
  "THUNDERBIRD_CONVERSATIONS_TIME_TO_2ND_GLODA_QUERY_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": 30,
    "description": "Conversations: time between the moment we click and the second gloda query returns (ms)"
  },
  "THUNDERBIRD_INDEXING_RATE_MSG_PER_S": {
    "expires_in_version": "never",
    "kind": "linear",
    "high": "100",
    "n_buckets": 20,
    "description": "Gloda: indexing rate (message/s)"
  },
  "FX_GESTURE_TAKE_SNAPSHOT_OF_PAGE": {
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "1000",
    "n_buckets": "30",
    "description": "Firefox: Time taken to capture the page to a canvas, for reuse while swiping through history (ms)."
  },
  "FX_GESTURE_INSTALL_SNAPSHOT_OF_PAGE": {
    "expires_in_version": "50",
    "kind": "exponential",
    "high": "1000",
    "n_buckets": "30",
    "description": "Firefox: Time taken to store the image capture of the page to a canvas, for reuse while swiping through history (ms)."
  },
  "FX_GESTURE_COMPRESS_SNAPSHOT_OF_PAGE": {
    "expires_in_version": "50",
    "kind": "exponential",
    "high": "1000",
    "n_buckets": "30",
    "description": "Firefox: Time taken to kick off image compression of the canvas that will be used during swiping through history (ms)."
  },
  "FX_TAB_ANIM_OPEN_MS": {
    "alert_emails": ["perf-telemetry-alerts@mozilla.com"],
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Firefox: Time taken by the tab opening animation in milliseconds *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
  },
  "FX_TAB_ANIM_CLOSE_MS": {
    "alert_emails": ["perf-telemetry-alerts@mozilla.com"],
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Firefox: Time taken by the tab closing animation in milliseconds *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
  },
  "FX_TAB_ANIM_OPEN_PREVIEW_FRAME_INTERVAL_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "low": 7,
    "high": "500",
    "n_buckets": 50,
    "description": "Average frame interval during tab open animation of about:newtab (preview=on), when other tabs are unaffected"
  },
  "FX_TAB_ANIM_OPEN_FRAME_INTERVAL_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "low": 7,
    "high": "500",
    "n_buckets": 50,
    "description": "Average frame interval during tab open animation of about:newtab (preview=off), when other tabs are unaffected"
  },
  "FX_TAB_ANIM_ANY_FRAME_INTERVAL_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "low": 7,
    "high": "500",
    "n_buckets": 50,
    "description": "Average frame interval during any tab open/close animation (excluding tabstrip scroll)"
  },
  "FX_TAB_ANIM_ANY_FRAME_PAINT_MS": {
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "500",
    "n_buckets": 30,
    "description": "Average paint duration during any tab open/close animation (excluding tabstrip scroll) *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
  },
  "FX_REFRESH_DRIVER_CHROME_FRAME_DELAY_MS": {
    "alert_emails": ["perf-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": 50,
    "bug_numbers": [1220699],
    "description": "Delay in ms between the target and the actual handling time of the frame at refresh driver in the chrome process."
  },
  "FX_REFRESH_DRIVER_CONTENT_FRAME_DELAY_MS": {
    "alert_emails": ["perf-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": 50,
    "bug_numbers": [1221674],
    "description": "Delay in ms between the target and the actual handling time of the frame at refresh driver in the content process."
  },
  "FX_REFRESH_DRIVER_SYNC_SCROLL_FRAME_DELAY_MS": {
    "alert_emails": ["perf-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": 50,
    "bug_numbers": [1228147],
    "description": "Delay in ms between the target and the actual handling time of the frame at refresh driver while scrolling synchronously."
  },
  "FX_TAB_SWITCH_UPDATE_MS": {
    "alert_emails": ["perf-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "1000",
    "n_buckets": 20,
    "description": "Firefox: Time in ms spent updating UI in response to a tab switch"
  },
  "FX_TAB_SWITCH_TOTAL_MS": {
    "expires_in_version": "default",
    "kind": "exponential",
    "high": "1000",
    "n_buckets": 20,
    "description": "Firefox: Time in ms till a tab switch is complete including the first paint"
  },
  "FX_TAB_SWITCH_TOTAL_E10S_MS": {
    "expires_in_version": "default",
    "kind": "exponential",
    "high": "1000",
    "n_buckets": 20,
    "description": "Firefox: Time in ms between tab selection and tab content paint."
  },
  "FX_TAB_SWITCH_SPINNER_VISIBLE_MS": {
    "expires_in_version": "default",
    "kind": "exponential",
    "high": "1000",
    "n_buckets": 20,
    "description": "Firefox: If the spinner interstitial displays during tab switching, records the time in ms the graphic is visible"
  },
  "FX_TAB_CLICK_MS": {
    "expires_in_version": "default",
    "kind": "exponential",
    "high": "1000",
    "n_buckets": 20,
    "description": "Firefox: Time in ms spent on switching tabs in response to a tab click"
  },
  "FX_IDENTITY_POPUP_OPEN_MS": {
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "1000",
    "n_buckets": 10,
    "description": "Firefox: Time taken by the identity popup to open in milliseconds"
  },
  "FX_BOOKMARKS_TOOLBAR_INIT_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "low": 50,
    "high": "5000",
    "n_buckets": 10,
    "description": "Firefox: Time to initialize the bookmarks toolbar view (ms)"
  },
  "FX_BROWSER_FULLSCREEN_USED": {
    "expires_in_version": "46",
    "kind": "count",
    "description": "The number of times that a session enters browser fullscreen (f11-fullscreen)"
  },
  "FX_NEW_WINDOW_MS": {
    "expires_in_version": "default",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": 20,
    "description": "Firefox: Time taken to open a new browser window (ms)"
  },
  "FX_PAGE_LOAD_MS": {
    "expires_in_version": "default",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": 20,
    "description": "Firefox: Time taken to load a page (ms). This includes all static contents, no dynamic content. Loading of about: pages is not counted."
  },
  "FX_TOTAL_TOP_VISITS": {
    "expires_in_version": "default",
    "kind": "boolean",
    "description": "Count the number of times a new top page was starting to load"
  },
  "FX_THUMBNAILS_CAPTURE_TIME_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "500",
    "n_buckets": 15,
    "description": "THUMBNAILS: Time (ms) it takes to capture a thumbnail"
  },
  "FX_THUMBNAILS_STORE_TIME_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "500",
    "n_buckets": 15,
    "description": "THUMBNAILS: Time (ms) it takes to store a thumbnail in the cache"
  },
  "FX_THUMBNAILS_HIT_OR_MISS": {
    "expires_in_version": "never",
    "kind": "boolean",
    "description": "THUMBNAILS: Thumbnail found"
  },
  "FX_MIGRATION_ENTRY_POINT": {
    "expires_in_version": "49",
    "kind": "enumerated",
    "n_values": 10,
    "releaseChannelCollection": "opt-out",
    "description": "Where the migration wizard was entered from. 0=Other/catch-all, 1=first-run, 2=refresh-firefox, 3=Places window, 4=Password manager"
  },
  "FX_MIGRATION_SOURCE_BROWSER": {
    "expires_in_version": "49",
    "kind": "enumerated",
    "n_values": 15,
    "releaseChannelCollection": "opt-out",
    "description": "The browser that data is pulled from. The values correspond to the internal browser ID (see MigrationUtils.jsm)"
  },
  "FX_MIGRATION_ERRORS": {
    "expires_in_version": "49",
    "kind": "enumerated",
    "keyed": "true",
    "n_values": 12,
    "releaseChannelCollection": "opt-out",
    "description": "Errors encountered during migration in buckets defined by the datatype, keyed by the string description of the browser."
  },
  "FX_MIGRATION_USAGE": {
    "expires_in_version": "49",
    "kind": "enumerated",
    "keyed": "true",
    "n_values": 12,
    "releaseChannelCollection": "opt-out",
    "description": "Usage of migration for each datatype when migration is run through the post-firstrun flow which allows individual datatypes, keyed by the string description of the browser."
  },
  "FX_MIGRATION_HOMEPAGE_IMPORTED": {
    "expires_in_version": "49",
    "kind": "boolean",
    "keyed": "true",
    "releaseChannelCollection": "opt-out",
    "description": "Whether the homepage was imported during browser migration. Only available on release builds during firstrun."
  },
  "EVENTLOOP_UI_ACTIVITY_EXP_MS": {
    "alert_emails": ["perf-telemetry-alerts@mozilla.com"],
    "bug_numbers": [1198196],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "60000",
    "n_buckets": 50,
    "description": "Widget: Time it takes for the message before a UI message (ms)"
  },
  "FX_SESSION_RESTORE_STARTUP_INIT_SESSION_MS": {
    "alert_emails": ["session-restore-telemetry-alerts@mozilla.com"],
    "expires_in_version": "default",
    "kind": "exponential",
    "high": "30000",
    "n_buckets": 20,
    "description": "Session restore: Time it takes to prepare the data structures for restoring a session (ms)"
  },
  "FX_SESSION_RESTORE_STARTUP_ONLOAD_INITIAL_WINDOW_MS": {
    "alert_emails": ["session-restore-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "30000",
    "n_buckets": 20,
    "description": "Session restore: Time it takes to finish restoration once we have first opened a window (ms)"
  },
  "FX_SESSION_RESTORE_COLLECT_ALL_WINDOWS_DATA_MS": {
    "alert_emails": ["session-restore-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "30000",
    "n_buckets": 10,
    "description": "Session restore: Time to collect all window data (ms)"
  },
  "FX_SESSION_RESTORE_COLLECT_COOKIES_MS": {
    "alert_emails": ["session-restore-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "30000",
    "n_buckets": 10,
    "description": "Session restore: Time to collect cookies (ms)"
  },
  "FX_SESSION_RESTORE_COLLECT_DATA_MS": {
    "alert_emails": ["session-restore-telemetry-alerts@mozilla.com"],
    "expires_in_version": "default",
    "kind": "exponential",
    "high": "30000",
    "n_buckets": 10,
    "description": "Session restore: Time to collect all window and tab data (ms)"
  },
  "FX_SESSION_RESTORE_COLLECT_DATA_LONGEST_OP_MS": {
    "alert_emails": ["session-restore-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "30000",
    "n_buckets": 10,
    "description": "Session restore: Duration of the longest uninterruptible operation while collecting all window and tab data (ms)"
  },
  "FX_SESSION_RESTORE_CONTENT_COLLECT_DATA_LONGEST_OP_MS": {
    "alert_emails": ["session-restore-telemetry-alerts@mozilla.com"],
    "expires_in_version": "default",
    "kind": "exponential",
    "high": "30000",
    "n_buckets": 10,
    "description": "Session restore: Duration of the longest uninterruptible operation while collecting data in the content process (ms)"
  },
  "FX_SESSION_RESTORE_SERIALIZE_DATA_MS": {
    "alert_emails": ["session-restore-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "1000",
    "n_buckets": 10,
    "description": "Session restore: Time to JSON serialize session data (ms)"
  },
  "FX_SESSION_RESTORE_READ_FILE_MS": {
    "alert_emails": ["session-restore-telemetry-alerts@mozilla.com"],
    "expires_in_version": "default",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Session restore: Time to read the session data from the file on disk (ms)"
  },
  "FX_SESSION_RESTORE_WRITE_FILE_MS": {
    "alert_emails": ["session-restore-telemetry-alerts@mozilla.com"],
    "expires_in_version": "default",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Session restore: Time to write the session data to the file on disk (ms)"
  },
  "FX_SESSION_RESTORE_FILE_SIZE_BYTES": {
    "alert_emails": ["session-restore-telemetry-alerts@mozilla.com"],
    "expires_in_version": "default",
    "kind": "exponential",
    "high": 50000000,
    "n_buckets": 30,
    "description": "Session restore: The size of file sessionstore.js (bytes)"
  },
  "FX_SESSION_RESTORE_CORRUPT_FILE": {
    "alert_emails": ["session-restore-telemetry-alerts@mozilla.com"],
    "expires_in_version": "default",
    "kind": "boolean",
    "description": "Session restore: Whether the file read on startup contained parse-able JSON"
  },
  "FX_SESSION_RESTORE_ALL_FILES_CORRUPT": {
    "alert_emails": ["session-restore-telemetry-alerts@mozilla.com"],
    "expires_in_version": "default",
    "kind": "boolean",
    "description": "Session restore: Whether none of the backup files contained parse-able JSON"
  },
  "FX_SESSION_RESTORE_RESTORE_WINDOW_MS": {
    "alert_emails": ["session-restore-telemetry-alerts@mozilla.com"],
    "expires_in_version": "default",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Session restore: Time spent blocking the main thread while restoring a window state (ms)"
  },
  "FX_SESSION_RESTORE_SEND_UPDATE_CAUSED_OOM": {
    "alert_emails": ["session-restore-telemetry-alerts@mozilla.com"],
    "expires_in_version": "default",
    "kind": "count",
    "description": "Count of messages sent by SessionRestore from child frames to the parent and that cannot be transmitted as they eat up too much memory."
  },
  "FX_SESSION_RESTORE_DOM_STORAGE_SIZE_ESTIMATE_CHARS": {
    "expires_in_version": "default",
    "kind": "exponential",
    "high": "30000000",
    "n_buckets": 20,
    "description": "Session restore: Number of characters in DOM Storage for a tab. Pages without DOM Storage or with an empty DOM Storage are ignored."
  },
  "FX_TABLETMODE_PAGE_LOAD": {
    "expires_in_version": "47",
    "kind": "exponential",
    "high": 100000,
    "n_buckets": 30,
    "keyed": true,
    "description": "Number of toplevel location changes in tablet and desktop mode (only used on win10 where tablet mode is available)"
  },
  "FX_TOUCH_USED": {
    "expires_in_version": "46",
    "kind": "count",
    "description": "Windows only. Counts occurrences of touch events"
  },
  "FX_URLBAR_SELECTED_RESULT_INDEX": {
    "alert_emails": ["mbonardo@mozilla.com"],
    "expires_in_version": "50",
    "kind": "enumerated",
    "n_values": 17,
    "bug_numbers": [775825],
    "description": "Firefox: The index of the selected result in the URL bar popup"
  },
  "FX_URLBAR_SELECTED_RESULT_TYPE": {
    "alert_emails": ["mbonardo@mozilla.com"],
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 14,
    "bug_numbers": [775825],
    "description": "Firefox: The type of the selected result in the URL bar popup. See nsBrowserGlue.js::_handleURLBarTelemetry for the result types."
  },
  "INNERWINDOWS_WITH_MUTATION_LISTENERS": {
    "expires_in_version": "never",
    "kind": "boolean",
    "description": "Deleted or to-be-reused innerwindow which has had mutation event listeners."
  },
  "CHARSET_OVERRIDE_SITUATION": {
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 8,
    "description": "Labeling status of top-level page when overriding charset (0: unlabeled file URL without detection, 1: unlabeled non-TLD-guessed non-file URL without detection, 2: unlabeled file URL with detection, 3: unlabeled non-file URL with detection, 4: labeled, 5: already overridden, 6: bug, 7: unlabeled with TLD guessing)"
  },
  "CHARSET_OVERRIDE_USED": {
    "expires_in_version": "never",
    "kind": "flag",
    "description": "Whether the character encoding menu was used to override an encoding in this session."
  },
  "DECODER_INSTANTIATED_ISO2022JP": {
    "expires_in_version": "never",
    "kind": "flag",
    "description": "Whether the decoder for ISO-2022-JP has been instantiated in this session."
  },
  "DECODER_INSTANTIATED_IBM866": {
    "expires_in_version": "never",
    "kind": "flag",
    "description": "Whether the decoder for IBM866 has been instantiated in this session."
  },
  "DECODER_INSTANTIATED_MACGREEK": {
    "expires_in_version": "never",
    "kind": "flag",
    "description": "Whether the decoder for MACGREEK has been instantiated in this session."
  },
  "DECODER_INSTANTIATED_MACICELANDIC": {
    "expires_in_version": "never",
    "kind": "flag",
    "description": "Whether the decoder for MACICELANDIC has been instantiated in this session."
  },
  "DECODER_INSTANTIATED_MACCE": {
    "expires_in_version": "never",
    "kind": "flag",
    "description": "Whether the decoder for MACCE has been instantiated in this session."
  },
  "DECODER_INSTANTIATED_MACHEBREW": {
    "expires_in_version": "never",
    "kind": "flag",
    "description": "Whether the decoder for MACHEBREW has been instantiated in this session."
  },
  "DECODER_INSTANTIATED_MACARABIC": {
    "expires_in_version": "never",
    "kind": "flag",
    "description": "Whether the decoder for MACARABIC has been instantiated in this session."
  },
  "DECODER_INSTANTIATED_MACFARSI": {
    "expires_in_version": "never",
    "kind": "flag",
    "description": "Whether the decoder for MACFARSI has been instantiated in this session."
  },
  "DECODER_INSTANTIATED_MACCROATIAN": {
    "expires_in_version": "never",
    "kind": "flag",
    "description": "Whether the decoder for MACCROATIAN has been instantiated in this session."
  },
  "DECODER_INSTANTIATED_MACCYRILLIC": {
    "expires_in_version": "never",
    "kind": "flag",
    "description": "Whether the decoder for MACCYRILLIC has been instantiated in this session."
  },
  "DECODER_INSTANTIATED_MACROMANIAN": {
    "expires_in_version": "never",
    "kind": "flag",
    "description": "Whether the decoder for MACROMANIAN has been instantiated in this session."
  },
  "DECODER_INSTANTIATED_MACTURKISH": {
    "expires_in_version": "never",
    "kind": "flag",
    "description": "Whether the decoder for MACTURKISH has been instantiated in this session."
  },
  "DECODER_INSTANTIATED_MACDEVANAGARI": {
    "expires_in_version": "never",
    "kind": "flag",
    "description": "Whether the decoder for MACDEVANAGARI has been instantiated in this session."
  },
  "DECODER_INSTANTIATED_MACGUJARATI": {
    "expires_in_version": "never",
    "kind": "flag",
    "description": "Whether the decoder for MACGUJARATI has been instantiated in this session."
  },
  "DECODER_INSTANTIATED_MACGURMUKHI": {
    "expires_in_version": "never",
    "kind": "flag",
    "description": "Whether the decoder for MACGURMUKHI has been instantiated in this session."
  },
  "DECODER_INSTANTIATED_KOI8R": {
    "expires_in_version": "never",
    "kind": "flag",
    "description": "Whether the decoder for KOI8R has been instantiated in this session."
  },
  "DECODER_INSTANTIATED_KOI8U": {
    "expires_in_version": "never",
    "kind": "flag",
    "description": "Whether the decoder for KOI8U has been instantiated in this session."
  },
  "DECODER_INSTANTIATED_ISO_8859_5": {
    "expires_in_version": "never",
    "kind": "flag",
    "description": "Whether the decoder for ISO-8859-5 has been instantiated in this session."
  },
  "XUL_FOREGROUND_REFLOW_MS": {
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "XUL reflows in foreground windows (ms) *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
  },
  "XUL_BACKGROUND_REFLOW_MS": {
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "XUL reflows in background windows (ms) *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
  },
  "HTML_FOREGROUND_REFLOW_MS_2": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": 20,
    "description": "HTML reflows in foreground windows (ms)"
  },
  "HTML_BACKGROUND_REFLOW_MS_2": {
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": 20,
    "description": "HTML reflows in background windows (ms)"
  },
  "LONG_REFLOW_INTERRUPTIBLE": {
    "expires_in_version": "never",
    "kind": "boolean",
    "description": "Long running reflow, interruptible or not"
  },
  "XUL_INITIAL_FRAME_CONSTRUCTION": {
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "initial xul frame construction *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
  },
  "XMLHTTPREQUEST_ASYNC_OR_SYNC": {
    "expires_in_version": "never",
    "kind": "boolean",
    "description": "Type of XMLHttpRequest, async or sync"
  },
  "DOM_TIMERS_FIRED_PER_NATIVE_TIMEOUT": {
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "DOM: Timer handlers called per native timer expiration *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
  },
  "DOM_TIMERS_RECENTLY_SET": {
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "DOM: setTimeout/setInterval calls recently (last 30s or more) *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
  },
  "DOM_RANGE_DETACHED": {
    "expires_in_version": "40",
    "kind": "boolean",
    "description": "DOM: Ranges that are detached on destruction (bug 702948) *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
  },
  "DOM_WINDOW_SHOWMODALDIALOG_USED": {
    "expires_in_version": "41",
    "kind": "flag",
    "description": "Whether Window.showModalDialog was used in this session"
  },
  "LOCALDOMSTORAGE_INIT_DATABASE_MS": {
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Time to open the localStorage database (ms)"
  },
  "LOCALDOMSTORAGE_SHUTDOWN_DATABASE_MS": {
    "expires_in_version": "default",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Time to flush and close the localStorage database (ms)"
  },
  "LOCALDOMSTORAGE_PRELOAD_PENDING_ON_FIRST_ACCESS": {
    "expires_in_version": "default",
    "kind": "boolean",
    "description": "True when we had to wait for a pending preload on first access to localStorage data, false otherwise"
  },
  "LOCALDOMSTORAGE_GETALLKEYS_BLOCKING_MS": {
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Time to block before we return a list of all keys in domain's LocalStorage (ms)"
  },
  "LOCALDOMSTORAGE_GETKEY_BLOCKING_MS": {
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Time to block before we return a key name in domain's LocalStorage (ms)"
  },
  "LOCALDOMSTORAGE_GETLENGTH_BLOCKING_MS": {
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Time to block before we return number of keys in domain's LocalStorage (ms)"
  },
  "LOCALDOMSTORAGE_GETVALUE_BLOCKING_MS": {
    "expires_in_version": "default",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Time to block before we return a value for a key in LocalStorage (ms)"
  },
  "LOCALDOMSTORAGE_SETVALUE_BLOCKING_MS": {
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Time to block before we set a single key's value in LocalStorage (ms)"
  },
  "LOCALDOMSTORAGE_REMOVEKEY_BLOCKING_MS": {
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Time to block before we remove a single key from LocalStorage (ms)"
  },
  "LOCALDOMSTORAGE_CLEAR_BLOCKING_MS": {
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Time to block before we clear LocalStorage for all domains (ms)"
  },
  "LOCALDOMSTORAGE_UNLOAD_BLOCKING_MS": {
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Time to fetch LocalStorage data before we can clean the cache (ms)"
  },
  "LOCALDOMSTORAGE_SESSIONONLY_PRELOAD_BLOCKING_MS": {
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Time to fetch LocalStorage data before we can expose them as session only data (ms)"
  },
  "LOCALDOMSTORAGE_KEY_SIZE_BYTES": {
    "expires_in_version": "40",
    "kind": "exponential",
    "low": 1024,
    "high": "32768",
    "n_buckets": 10,
    "description": "DOM storage: size of keys stored in localStorage"
  },
  "LOCALDOMSTORAGE_VALUE_SIZE_BYTES": {
    "expires_in_version": "40",
    "kind": "exponential",
    "low": 1024,
    "high": "32768",
    "n_buckets": 10,
    "description": "DOM storage: size of values stored in localStorage"
  },
  "SESSIONDOMSTORAGE_KEY_SIZE_BYTES": {
    "expires_in_version": "40",
    "kind": "exponential",
    "low": 1024,
    "high": "32768",
    "n_buckets": 10,
    "description": "DOM storage: size of keys stored in sessionStorage"
  },
  "SESSIONDOMSTORAGE_VALUE_SIZE_BYTES": {
    "expires_in_version": "40",
    "kind": "exponential",
    "low": 1024,
    "high": "32768",
    "n_buckets": 10,
    "description": "DOM storage: size of values stored in sessionStorage"
  },
  "RANGE_CHECKSUM_ERRORS": {
    "alert_emails": ["perf-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Number of histograms with range checksum errors"
  },
  "BUCKET_ORDER_ERRORS": {
    "alert_emails": ["perf-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Number of histograms with bucket order errors"
  },
  "TOTAL_COUNT_HIGH_ERRORS": {
    "alert_emails": ["perf-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Number of histograms with total count high errors"
  },
  "TOTAL_COUNT_LOW_ERRORS": {
    "alert_emails": ["perf-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Number of histograms with total count low errors"
  },
  "TELEMETRY_ARCHIVE_DIRECTORIES_COUNT": {
    "alert_emails": ["telemetry-client-dev@mozilla.com"],
    "expires_in_version": "never",
    "kind": "linear",
    "high": "13",
    "n_buckets": 12,
    "bug_numbers": [1162538],
    "description": "Number of directories in the archive at scan"
  },
  "TELEMETRY_ARCHIVE_OLDEST_DIRECTORY_AGE": {
    "alert_emails": ["telemetry-client-dev@mozilla.com"],
    "expires_in_version": "never",
    "kind": "linear",
    "high": "13",
    "n_buckets": 12,
    "bug_numbers": [1162538],
    "description": "The age of the oldest Telemetry archive directory in months"
  },
  "TELEMETRY_ARCHIVE_SCAN_PING_COUNT": {
    "alert_emails": ["telemetry-client-dev@mozilla.com"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "100000",
    "n_buckets": 100,
    "bug_numbers": [1162538],
    "description": "Number of Telemetry pings in the archive at scan"
  },
  "TELEMETRY_ARCHIVE_SESSION_PING_COUNT": {
    "alert_emails": ["telemetry-client-dev@mozilla.com"],
    "expires_in_version": "never",
    "kind": "count",
    "bug_numbers": [1162538],
    "description": "Number of Telemetry pings added to the archive during the session"
  },
  "TELEMETRY_ARCHIVE_SIZE_MB": {
    "alert_emails": ["telemetry-client-dev@mozilla.com"],
    "expires_in_version": "never",
    "kind": "linear",
    "high": "300",
    "n_buckets": 60,
    "bug_numbers": [1162538],
    "description": "The size of the Telemetry archive (MB)"
  },
  "TELEMETRY_ARCHIVE_EVICTED_OVER_QUOTA": {
    "alert_emails": ["telemetry-client-dev@mozilla.com"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "100000",
    "n_buckets": 100,
    "bug_numbers": [1162538],
    "description": "Number of Telemetry pings evicted from the archive during cleanup, because they were over the quota"
  },
  "TELEMETRY_ARCHIVE_EVICTED_OLD_DIRS": {
    "alert_emails": ["telemetry-client-dev@mozilla.com"],
    "expires_in_version": "never",
    "kind": "linear",
    "high": "13",
    "n_buckets": 12,
    "bug_numbers": [1162538],
    "description": "Number of Telemetry directories evicted from the archive during cleanup, because they were too old"
  },
  "TELEMETRY_ARCHIVE_EVICTING_DIRS_MS": {
    "alert_emails": ["telemetry-client-dev@mozilla.com"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "300000",
    "n_buckets": 20,
    "bug_numbers": [1162538],
    "description": "Time (ms) it takes for evicting old directories"
  },
  "TELEMETRY_ARCHIVE_CHECKING_OVER_QUOTA_MS": {
    "alert_emails": ["telemetry-client-dev@mozilla.com"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "300000",
    "n_buckets": 20,
    "bug_numbers": [1162538],
    "description": "Time (ms) it takes for checking if the archive is over-quota"
  },
  "TELEMETRY_ARCHIVE_EVICTING_OVER_QUOTA_MS": {
    "alert_emails": ["telemetry-client-dev@mozilla.com"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "300000",
    "n_buckets": 20,
    "bug_numbers": [1162538],
    "description": "Time (ms) it takes for evicting over-quota pings"
  },
  "TELEMETRY_PENDING_LOAD_FAILURE_READ": {
    "alert_emails": ["telemetry-client-dev@mozilla.com"],
    "expires_in_version": "never",
    "kind": "count",
    "description": "Number of pending Telemetry pings that failed to load from the disk"
  },
  "TELEMETRY_PENDING_LOAD_FAILURE_PARSE": {
    "alert_emails": ["telemetry-client-dev@mozilla.com"],
    "expires_in_version": "never",
    "kind": "count",
    "description": "Number of pending Telemetry pings that failed to parse once loaded from the disk"
  },
  "TELEMETRY_PENDING_PINGS_SIZE_MB": {
    "alert_emails": ["telemetry-client-dev@mozilla.com"],
    "expires_in_version": "never",
    "kind": "linear",
    "high": "17",
    "n_buckets": 16,
    "description": "The size of the Telemetry pending pings directory (MB). The special value 17 is used to indicate over quota pings."
  },
  "TELEMETRY_PENDING_PINGS_AGE": {
    "alert_emails": ["telemetry-client-dev@mozilla.com"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "365",
    "n_buckets": 30,
    "description": "The age, in days, of the pending pings."
  },
  "TELEMETRY_PENDING_PINGS_EVICTED_OVER_QUOTA": {
    "alert_emails": ["telemetry-client-dev@mozilla.com"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "100000",
    "n_buckets": 100,
    "description": "Number of Telemetry pings evicted from the pending pings directory during cleanup, because they were over the quota"
  },
  "TELEMETRY_PENDING_EVICTING_OVER_QUOTA_MS": {
    "alert_emails": ["telemetry-client-dev@mozilla.com"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "300000",
    "n_buckets": 20,
    "description": "Time (ms) it takes for evicting over-quota pending pings"
  },
  "TELEMETRY_PENDING_CHECKING_OVER_QUOTA_MS": {
    "alert_emails": ["telemetry-client-dev@mozilla.com"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "300000",
    "n_buckets": 20,
    "description": "Time (ms) it takes for checking if the pending pings are over-quota"
  },
  "TELEMETRY_PING_SIZE_EXCEEDED_SEND": {
    "alert_emails": ["telemetry-client-dev@mozilla.com"],
    "expires_in_version": "never",
    "kind": "count",
    "description": "Number of Telemetry pings discarded before sending because they exceeded the maximum size"
  },
  "TELEMETRY_PING_SIZE_EXCEEDED_PENDING": {
    "alert_emails": ["telemetry-client-dev@mozilla.com"],
    "expires_in_version": "never",
    "kind": "count",
    "description": "Number of Telemetry pending pings discarded because they exceeded the maximum size"
  },
  "TELEMETRY_PING_SIZE_EXCEEDED_ARCHIVED": {
    "alert_emails": ["telemetry-client-dev@mozilla.com"],
    "expires_in_version": "never",
    "kind": "count",
    "description": "Number of archived Telemetry pings discarded because they exceeded the maximum size"
  },
  "TELEMETRY_DISCARDED_PENDING_PINGS_SIZE_MB": {
    "alert_emails": ["telemetry-client-dev@mozilla.com"],
    "expires_in_version": "never",
    "kind": "linear",
    "high": "30",
    "n_buckets": 29,
    "description": "The size (MB) of the Telemetry pending pings exceeding the maximum file size"
  },
  "TELEMETRY_DISCARDED_ARCHIVED_PINGS_SIZE_MB": {
    "alert_emails": ["telemetry-client-dev@mozilla.com"],
    "expires_in_version": "never",
    "kind": "linear",
    "high": "30",
    "n_buckets": 29,
    "description": "The size (MB) of the Telemetry archived, compressed, pings exceeding the maximum file size"
  },
  "TELEMETRY_DISCARDED_SEND_PINGS_SIZE_MB": {
    "alert_emails": ["telemetry-client-dev@mozilla.com"],
    "expires_in_version": "never",
    "kind": "linear",
    "high": "30",
    "n_buckets": 29,
    "description": "The size (MB) of the ping data submitted to Telemetry exceeding the maximum size"
  },
  "TELEMETRY_DISCARDED_CONTENT_PINGS_COUNT": {
    "alert_emails": ["perf-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "count",
    "description": "Count of discarded content payloads."
  },
  "TELEMETRY_COMPRESS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Time taken to compress telemetry object (ms)"
  },
  "TELEMETRY_PING": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Time taken to submit telemetry info (ms)"
  },
  "TELEMETRY_SEND" : {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Time to send the compressed string to the Telemetry servers and get a reply back (ms)"
  },
  "TELEMETRY_STRINGIFY" : {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "3000",
    "n_buckets": 10,
    "description": "Time to stringify telemetry object (ms)"
  },
  "TELEMETRY_SUCCESS": {
    "expires_in_version": "never",
    "kind": "boolean",
    "description": "Successful telemetry submission"
  },
  "TELEMETRY_INVALID_PING_TYPE_SUBMITTED": {
    "alert_emails": ["telemetry-client-dev@mozilla.com"],
    "expires_in_version": "never",
    "kind": "count",
    "keyed": true,
    "description": "Count of individual invalid ping types that were submitted to Telemetry."
  },
  "TELEMETRY_PING_EVICTED_FOR_SERVER_ERRORS": {
    "alert_emails": ["telemetry-client-dev@mozilla.com"],
    "expires_in_version": "never",
    "kind": "count",
    "description": "Number of Telemetry ping files evicted due to server errors (4XX HTTP code received)"
  },
  "TELEMETRY_SESSIONDATA_FAILED_LOAD": {
    "alert_emails": ["telemetry-client-dev@mozilla.com"],
    "expires_in_version": "never",
    "kind": "flag",
    "description": "Set if Telemetry failed to load the session data from disk."
  },
  "TELEMETRY_SESSIONDATA_FAILED_PARSE": {
    "alert_emails": ["telemetry-client-dev@mozilla.com"],
    "expires_in_version": "never",
    "kind": "flag",
    "description": "Set if Telemetry failed to parse the session data loaded from disk."
  },
  "TELEMETRY_SESSIONDATA_FAILED_VALIDATION": {
    "alert_emails": ["telemetry-client-dev@mozilla.com"],
    "expires_in_version": "never",
    "kind": "flag",
    "description": "Set if Telemetry failed to validate the session data loaded from disk."
  },
  "TELEMETRY_SESSIONDATA_FAILED_SAVE": {
    "alert_emails": ["telemetry-client-dev@mozilla.com"],
    "expires_in_version": "never",
    "kind": "flag",
    "description": "Set if Telemetry failed to save the session data to disk."
  },
  "TELEMETRY_TEST_FLAG": {
    "expires_in_version": "never",
    "kind": "flag",
    "description": "a testing histogram; not meant to be touched"
  },
  "TELEMETRY_TEST_COUNT": {
    "expires_in_version": "never",
    "kind": "count",
    "description": "a testing histogram; not meant to be touched"
  },
  "TELEMETRY_TEST_COUNT_INIT_NO_RECORD": {
    "expires_in_version": "never",
    "kind": "count",
    "description": "a testing histogram; not meant to be touched - initially not recording"
  },
  "TELEMETRY_TEST_KEYED_COUNT_INIT_NO_RECORD": {
    "expires_in_version": "never",
    "kind": "count",
    "keyed": true,
    "description": "a testing histogram; not meant to be touched - initially not recording"
  },
  "TELEMETRY_TEST_KEYED_FLAG": {
    "expires_in_version": "never",
    "kind": "flag",
    "keyed": true,
    "description": "a testing histogram; not meant to be touched"
  },
  "TELEMETRY_TEST_KEYED_COUNT": {
    "expires_in_version": "never",
    "kind": "count",
    "keyed": true,
    "description": "a testing histogram; not meant to be touched"
  },
  "TELEMETRY_TEST_RELEASE_OPTOUT": {
    "expires_in_version": "never",
    "kind": "flag",
    "releaseChannelCollection": "opt-out",
    "description": "a testing histogram; not meant to be touched"
  },
  "TELEMETRY_TEST_RELEASE_OPTIN": {
    "expires_in_version": "never",
    "kind": "flag",
    "releaseChannelCollection": "opt-in",
    "description": "a testing histogram; not meant to be touched"
  },
  "TELEMETRY_TEST_KEYED_RELEASE_OPTIN": {
    "expires_in_version": "never",
    "kind": "flag",
    "keyed": true,
    "releaseChannelCollection": "opt-in",
    "description": "a testing histogram; not meant to be touched"
  },
  "TELEMETRY_TEST_KEYED_RELEASE_OPTOUT": {
    "expires_in_version": "never",
    "kind": "flag",
    "keyed": true,
    "releaseChannelCollection": "opt-out",
    "description": "a testing histogram; not meant to be touched"
  },
  "STARTUP_CRASH_DETECTED": {
    "expires_in_version": "never",
    "kind": "flag",
    "description": "Whether there was a crash during the last startup"
  },
  "SAFE_MODE_USAGE": {
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 3,
    "description": "Whether the user is in safe mode (No, Yes, Forced)"
  },
  "NEWTAB_PAGE_ENABLED": {
    "expires_in_version": "default",
    "kind": "boolean",
    "description": "New tab page is enabled."
  },
  "NEWTAB_PAGE_ENHANCED": {
    "expires_in_version": "default",
    "kind": "boolean",
    "description": "New tab page is enhanced (showing suggestions)."
  },
  "NEWTAB_PAGE_LIFE_SPAN": {
    "expires_in_version": "default",
    "kind": "exponential",
    "high": "1200",
    "n_buckets": 100,
    "description": "Life-span of a new tab without suggested tile: time delta between first-visible and unload events (half-seconds)."
  },
  "NEWTAB_PAGE_LIFE_SPAN_SUGGESTED": {
    "expires_in_version": "default",
    "kind": "exponential",
    "high": "1200",
    "n_buckets": 100,
    "description": "Life-span of a new tab with suggested tile: time delta between first-visible and unload events (half-seconds)."
  },
  "NEWTAB_PAGE_PINNED_SITES_COUNT": {
    "expires_in_version": "default",
    "kind": "enumerated",
    "n_values": 9,
    "description": "Number of pinned sites on the new tab page."
  },
  "NEWTAB_PAGE_BLOCKED_SITES_COUNT": {
    "expires_in_version": "default",
    "kind": "exponential",
    "high": "100",
    "n_buckets": 10,
    "description": "Number of sites blocked from the new tab page."
  },
  "NEWTAB_PAGE_SHOWN": {
    "expires_in_version": "35",
    "kind": "boolean",
    "description": "Number of times about:newtab was shown from opening a new tab or window. *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
  },
  "NEWTAB_PAGE_SITE_CLICKED": {
    "expires_in_version": "35",
    "kind": "enumerated",
    "n_values": 10,
    "description": "Track click count on about:newtab tiles per index (0-8). For non-default row or column configurations all clicks into the '9' bucket. *** No longer needed (bug 1156565). Delete histogram and accumulation code! ***"
  },
  "BROWSERPROVIDER_XUL_IMPORT_TIME": {
    "expires_in_version": "40",
    "kind": "exponential",
    "low": 20,
    "high": "600000",
    "n_buckets": 20,
    "description": "Time for the initial conversion of a XUL places database (ms)",
    "cpp_guard": "ANDROID"
  },
  "BROWSERPROVIDER_XUL_IMPORT_BOOKMARKS": {
    "expires_in_version": "default",
    "kind": "exponential",
    "high": "50000",
    "n_buckets": 20,
    "description": "Number of bookmarks in the original XUL places database",
    "cpp_guard": "ANDROID"
  },
  "BROWSERPROVIDER_XUL_IMPORT_HISTORY": {
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "1000000",
    "n_buckets": 20,
    "description": "Number of history entries in the original XUL places database",
    "cpp_guard": "ANDROID"
  },
  "FENNEC_GLOBALHISTORY_ADD_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "low": 10,
    "high": "20000",
    "n_buckets": 20,
    "description": "Time for a record to be added to history (ms)",
    "cpp_guard": "ANDROID"
  },
  "FENNEC_GLOBALHISTORY_UPDATE_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "low": 10,
    "high": "20000",
    "n_buckets": 20,
    "description": "Time for a record to be updated in history (ms)",
    "cpp_guard": "ANDROID"
  },
  "FENNEC_GLOBALHISTORY_VISITED_BUILD_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "low": 10,
    "high": "20000",
    "n_buckets": 20,
    "description": "Time to update the visited link set (ms)",
    "cpp_guard": "ANDROID"
  },
  "FENNEC_RESTORING_ACTIVITY": {
    "expires_in_version": "never",
    "kind": "flag",
    "description": "Fennec is starting up but the Gecko thread was still running",
    "cpp_guard": "ANDROID"
  },
  "FENNEC_SEARCH_LOADER_TIME_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "low": 10,
    "high": "20000",
    "n_buckets": 20,
    "description": "Time for a URL bar DB search to return (ms)",
    "cpp_guard": "ANDROID"
  },
  "FENNEC_GECKOAPP_STARTUP_ACTION": {
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 10,
    "description": "The way the GeckoApp was launched. (Normal, URL, Prefetch, WebApp, Guest)",
    "cpp_guard": "ANDROID"
  },
  "FENNEC_STARTUP_TIME_GECKOREADY": {
    "expires_in_version": "never",
    "kind": "exponential",
    "low": 500,
    "high": "20000",
    "n_buckets": 20,
    "description": "Time for the Gecko:Ready message to arrive (ms)",
    "cpp_guard": "ANDROID"
  },
  "FENNEC_STARTUP_TIME_JAVAUI": {
    "expires_in_version": "never",
    "kind": "exponential",
    "low": 100,
    "high": "5000",
    "n_buckets": 20,
    "description": "Time for the Java UI to load (ms)",
    "cpp_guard": "ANDROID"
  },
  "FENNEC_TOPSITES_LOADER_TIME_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "low": 10,
    "high": "20000",
    "n_buckets": 20,
    "description": "Time for the home screen Top Sites query to return with no filter set (ms)",
    "cpp_guard": "ANDROID"
  },
  "FENNEC_WAS_KILLED": {
    "expires_in_version": "never",
    "kind": "flag",
    "description": "Killed, likely due to an OOM condition",
    "cpp_guard": "ANDROID"
  },
  "SECURITY_UI": {
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 100,
    "description": "Security UI Telemetry"
  },
  "JS_TELEMETRY_ADDON_EXCEPTIONS" : {
    "expires_in_version" : "never",
    "kind": "count",
    "keyed" : true,
    "description" : "Exceptions thrown by add-ons"
  },
  "IPC_TRANSACTION_CANCEL": {
    "alert_emails": ["billm@mozilla.com"],
    "expires_in_version": "never",
    "kind": "boolean",
    "description": "True when an IPC transaction is canceled"
  },
  "IPC_SAME_PROCESS_MESSAGE_COPY_OOM_KB": {
     "expires_in_version": "50",
     "kind": "exponential",
     "low": 100,
     "high": 10000000,
     "n_buckets": 10,
     "description": "Whenever the same-process MessageManager cannot be sent through sendAsyncMessage as it would cause an OOM, the size of the message content, in kb."
  },
  "SLOW_ADDON_WARNING_STATES": {
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 20,
    "description": "The states the Slow Add-on Warning goes through. 0: Displayed the warning. 1: User clicked on 'Disable add-on'. 2: User clicked 'Ignore add-on for now'. 3: User clicked 'Ignore add-on permanently'. 4: User closed notification. Other values are reserved for future uses."
  },
  "SLOW_ADDON_WARNING_RESPONSE_TIME": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "86400000",
    "n_buckets": 30,
    "description": "Time elapsed between before responding to Slow Add-on Warning UI (ms). Not updated if the user doesn't respond at all."
  },
  "SEARCH_COUNTS": {
    "expires_in_version": "never",
    "kind": "count",
    "keyed": true,
    "releaseChannelCollection": "opt-out",
    "description": "Record the search counts for search engines"
  },
  "SEARCH_SERVICE_INIT_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "1000",
    "n_buckets": 15,
    "description": "Time (ms) it takes to initialize the search service"
  },
  "SEARCH_SERVICE_INIT_SYNC": {
    "alert_emails": ["rvitillo@mozilla.com", "gavin@mozilla.com"],
    "expires_in_version": "never",
    "kind": "boolean",
    "description": "search service has been initialized synchronously"
  },
  "SEARCH_SERVICE_BUILD_CACHE_MS": {
    "expires_in_version": "40",
    "kind": "exponential",
    "high": "1000",
    "n_buckets": 15,
    "description": "Time (ms) it takes to build the cache of the search service"
  },
  "SEARCH_SERVICE_COUNTRY_FETCH_TIME_MS": {
    "alert_emails": ["mhammond@mozilla.com", "gavin@mozilla.com"],
    "expires_in_version": "never",
    "kind": "exponential",
    "n_buckets": 30,
    "high": 100000,
    "description": "Time (ms) it takes to fetch the country code"
  },
  "SEARCH_SERVICE_COUNTRY_FETCH_RESULT": {
    "alert_emails": ["mhammond@mozilla.com", "gavin@mozilla.com"],
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 8,
    "description": "Result of XHR request fetching the country-code. 0=SUCCESS, 1=SUCCESS_WITHOUT_DATA, 2=XHRTIMEOUT, 3=ERROR (rest reserved for finer-grained error codes later)"
  },
  "SEARCH_SERVICE_COUNTRY_TIMEOUT": {
    "alert_emails": ["mhammond@mozilla.com", "gavin@mozilla.com"],
    "expires_in_version": "never",
    "kind": "boolean",
    "description": "True if we stopped waiting for the XHR response before it completed"
  },
  "SEARCH_SERVICE_COUNTRY_FETCH_CAUSED_SYNC_INIT": {
    "alert_emails": ["mhammond@mozilla.com", "gavin@mozilla.com"],
    "expires_in_version": "never",
    "kind": "boolean",
    "description": "True if the search service was synchronously initialized while we were waiting for the XHR response"
  },
  "SEARCH_SERVICE_US_COUNTRY_MISMATCHED_TIMEZONE": {
    "alert_emails": ["mhammond@mozilla.com", "gavin@mozilla.com"],
    "expires_in_version": "never",
    "kind": "flag",
    "description": "Set if the fetched country-code indicates US but the time-zone heuristic doesn't"
  },
  "SEARCH_SERVICE_US_TIMEZONE_MISMATCHED_COUNTRY": {
    "alert_emails": ["mhammond@mozilla.com", "gavin@mozilla.com"],
    "expires_in_version": "never",
    "kind": "flag",
    "description": "Set if the time-zone heuristic indicates US but the fetched country code doesn't"
  },
  "SEARCH_SERVICE_US_COUNTRY_MISMATCHED_PLATFORM_OSX": {
    "alert_emails": ["mhammond@mozilla.com", "gavin@mozilla.com"],
    "expires_in_version": "never",
    "kind": "boolean",
    "description": "If we are on OSX and either the OSX countryCode or the geoip countryCode indicates we are in the US, set to false if they both do or true otherwise"
  },
  "SEARCH_SERVICE_NONUS_COUNTRY_MISMATCHED_PLATFORM_OSX": {
    "alert_emails": ["mhammond@mozilla.com", "gavin@mozilla.com"],
    "expires_in_version": "never",
    "kind": "boolean",
    "description": "If we are on OSX and neither the OSX countryCode nor the geoip countryCode indicates we are in the US, set to false if they both agree on the value or true otherwise"
  },
  "SEARCH_SERVICE_US_COUNTRY_MISMATCHED_PLATFORM_WIN": {
    "alert_emails": ["mhammond@mozilla.com", "gavin@mozilla.com"],
    "expires_in_version": "never",
    "kind": "boolean",
    "description": "If we are on Windows and either the Windows countryCode or the geoip countryCode indicates we are in the US, set to false if they both do or true otherwise"
  },
  "SEARCH_SERVICE_NONUS_COUNTRY_MISMATCHED_PLATFORM_WIN": {
    "alert_emails": ["mhammond@mozilla.com", "gavin@mozilla.com"],
    "expires_in_version": "never",
    "kind": "boolean",
    "description": "If we are on Windows and neither the Windows countryCode nor the geoip countryCode indicates we are in the US, set to false if they both agree on the value or true otherwise"
  },
  "SOCIAL_ENABLED_ON_SESSION": {
    "expires_in_version": "never",
    "kind": "flag",
    "description": "Social has been enabled at least once on the current session"
  },
  "ENABLE_PRIVILEGE_EVER_CALLED": {
    "expires_in_version": "never",
    "kind": "flag",
    "description": "Whether enablePrivilege has ever been called during the current session"
  },
  "SUBJECT_PRINCIPAL_ACCESSED_WITHOUT_SCRIPT_ON_STACK": {
    "expires_in_version": "46",
    "alert_emails": ["bholley@mozilla.com"],
    "kind": "flag",
    "description": "Whether the subject principal was accessed without script on the stack during the current session"
  },
  "TOUCH_ENABLED_DEVICE": {
    "expires_in_version": "never",
    "kind": "boolean",
    "description": "The device supports touch input",
    "cpp_guard": "XP_WIN"
  },
  "COMPONENTS_SHIM_ACCESSED_BY_CONTENT": {
    "expires_in_version": "never",
    "kind": "flag",
    "description": "Whether content ever accesed the Components shim in this session"
  },
  "CHECK_ADDONS_MODIFIED_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "5000",
    "n_buckets": 15,
    "description": "Time (ms) it takes to figure out extension last modified time"
  },
  "TELEMETRY_MEMORY_REPORTER_MS": {
    "alert_emails": ["memshrink-telemetry-alerts@mozilla.com"],
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "5000",
    "n_buckets": 10,
    "description": "Time (ms) it takes to run memory reporters when sending a telemetry ping"
  },
  "SSL_SUCCESFUL_CERT_VALIDATION_TIME_MOZILLAPKIX" : {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "60000",
    "n_buckets": 50,
    "description": "Time spent on a successful cert verification in mozilla::pkix mode (ms)"
  },
  "SSL_INITIAL_FAILED_CERT_VALIDATION_TIME_MOZILLAPKIX" : {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "60000",
    "n_buckets": 50,
    "description": "Time spent on an initially failed cert verification in mozilla::pkix mode (ms)"
  },
  "HEALTHREPORT_DB_OPEN_FIRSTRUN_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "20000",
    "n_buckets": 15,
    "description": "Time (ms) spent to open Firefox Health Report's database the first time, including schema setup."
  },
  "HEALTHREPORT_DB_OPEN_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "20000",
    "n_buckets": 15,
    "description": "Time (ms) spent to open Firefox Health Report's database."
  },
  "HEALTHREPORT_INIT_FIRSTRUN_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "20000",
    "n_buckets": 15,
    "description": "Time (ms) spent to initialize Firefox Health Report the first time, including provider and collector initialization."
  },
  "HEALTHREPORT_INIT_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "20000",
    "n_buckets": 15,
    "description": "Time (ms) spent to initialize Firefox Health Report service."
  },
  "HEALTHREPORT_GENERATE_JSON_PAYLOAD_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "30000",
    "n_buckets": 20,
    "description": "Time (ms) it takes to obtain and format a Health Report JSON payload."
  },
  "HEALTHREPORT_JSON_PAYLOAD_SERIALIZE_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "5000",
    "n_buckets": 10,
    "description": "Time (ms) it takes to JSON.stringify() the FHR JSON payload."
  },
  "HEALTHREPORT_PAYLOAD_UNCOMPRESSED_BYTES": {
    "expires_in_version": "never",
    "kind": "linear",
    "high": "2000000",
    "n_buckets": 202,
    "description": "Size (in bytes) of the raw Health Report payload."
  },
  "HEALTHREPORT_PAYLOAD_COMPRESSED_BYTES": {
    "expires_in_version": "never",
    "kind": "linear",
    "high": "2000000",
    "n_buckets": 202,
    "description": "Size (in bytes) of the compressed Health Report payload. This is what is sent over the wire."
  },
  "HEALTHREPORT_UPLOAD_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "60000",
    "n_buckets": 20,
    "description": "Time (ms) it takes to upload the Health Report payload."
  },
  "HEALTHREPORT_COLLECT_CONSTANT_DATA_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "20000",
    "n_buckets": 15,
    "description": "Time (ms) it takes FHR to collect constant data."
  },
  "HEALTHREPORT_COLLECT_DAILY_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "20000",
    "n_buckets": 15,
    "description": "Time (ms) it takes FHR to collect daily data."
  },
  "HEALTHREPORT_SHUTDOWN_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "20000",
    "n_buckets": 15,
    "description": "Time (ms) it takes FHR to shut down."
  },
  "HEALTHREPORT_POST_COLLECT_CHECKPOINT_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "20000",
    "n_buckets": 15,
    "description": "Time (ms) for a WAL checkpoint after collecting all measurements."
  },
  "CRASH_STORE_COMPRESSED_BYTES": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "1000000",
    "n_buckets": 202,
    "description": "Size (in bytes) of the compressed crash store JSON file."
  },
  "PDF_VIEWER_USED": {
    "expires_in_version": "default",
    "kind": "boolean",
    "description": "How many times PDF Viewer was used"
  },
  "PDF_VIEWER_FALLBACK_SHOWN": {
    "expires_in_version": "default",
    "kind": "boolean",
    "description": "How many times PDF Viewer fallback bar was shown"
  },
  "PDF_VIEWER_PRINT": {
    "expires_in_version": "never",
    "kind": "boolean",
    "description": "How many times PDF Viewer print functionality was used"
  },
  "PDF_VIEWER_DOCUMENT_VERSION": {
    "expires_in_version": "default",
    "kind": "enumerated",
    "n_values": 20,
    "description": "The PDF document version (1.1, 1.2, etc.)"
  },
  "PDF_VIEWER_DOCUMENT_GENERATOR": {
    "expires_in_version": "default",
    "kind": "enumerated",
    "n_values": 30,
    "description": "The PDF document generator"
  },
  "PDF_VIEWER_DOCUMENT_SIZE_KB": {
    "expires_in_version": "default",
    "kind": "exponential",
    "low": "2",
    "high": "64 * 1024",
    "n_buckets": 20,
    "description": "The PDF document size (KB)"
  },
  "PDF_VIEWER_FONT_TYPES": {
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 19,
    "description": "The PDF document font types used"
  },
  "PDF_VIEWER_EMBED": {
    "expires_in_version": "never",
    "kind": "boolean",
    "description": "A PDF document was embedded: true using OBJECT/EMBED and false using IFRAME"
  },
  "PDF_VIEWER_FORM": {
    "expires_in_version": "default",
    "kind": "boolean",
    "description": "A PDF form expected: true for AcroForm and false for XFA"
  },
  "PDF_VIEWER_STREAM_TYPES": {
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 19,
    "description": "The PDF document compression stream types used"
  },
  "PDF_VIEWER_TIME_TO_VIEW_MS": {
    "expires_in_version": "default",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": 50,
    "description": "Time spent to display first page in PDF Viewer (ms)"
  },
  "SHUMWAY_TIME_TO_VIEW_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "2 * 60 * 1000",
    "n_buckets": 50,
    "description": "Time spent to display first frame (ms)"
  },
  "SHUMWAY_PARSING_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "2 * 60 * 1000",
    "n_buckets": 50,
    "description": "Time spent to parse SWF file (ms)"
  },
  "SHUMWAY_SWF_INDEX_ON_PAGE": {
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 30,
    "description": "Index of the SWF on the page (0 - full page, 1 - first, 2 - second, etc.)"
  },
  "SHUMWAY_SWF_SIZE_KB": {
    "expires_in_version": "never",
    "kind": "exponential",
    "low": "1",
    "high": "256 * 1024",
    "n_buckets": 50,
    "description": "The SWF file size (KB)"
  },
  "SHUMWAY_SWF_VERSION": {
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 30,
    "description": "The SWF file version"
  },
  "SHUMWAY_SWF_FRAME_RATE": {
    "expires_in_version": "never",
    "kind": "linear",
    "high": "256",
    "n_buckets": "50",
    "description": "The SWF file frame rate"
  },
  "SHUMWAY_SWF_AREA": {
    "expires_in_version": "never",
    "kind": "exponential",
    "low": "256",
    "high": "16777216",
    "n_buckets": 50,
    "description": "The SWF file dimension: amount of pixels (width * height)"
  },
  "SHUMWAY_SWF_AVM2": {
    "expires_in_version": "never",
    "kind": "boolean",
    "description": "The AVM2 is enabled in the SWF file"
  },
  "SHUMWAY_SWF_BANNER": {
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 30,
    "description": "The well-known banner size"
  },
  "SHUMWAY_ERROR": {
    "expires_in_version": "default",
    "kind": "enumerated",
    "n_values": 3,
    "description": "The Shumway reported error: 0 - unknown, 1 - AVM1, 2 - AVM2)"
  },
  "SHUMWAY_FEATURE_USED": {
    "expires_in_version": "default",
    "kind": "enumerated",
    "n_values": 700,
    "description": "The Shumway feature is used during movie execution"
  },
  "SHUMWAY_LOAD_RESOURCE_RESULT": {
    "expires_in_version": "default",
    "kind": "enumerated",
    "n_values": 10,
    "description": "The Shumway external resource loading result"
  },
  "SHUMWAY_FALLBACK": {
    "expires_in_version": "default",
    "kind": "boolean",
    "description": "The Shumway was selected to fallback to the Flash (false - by heuristics, true - by user)"
  },
  "PLUGINS_NOTIFICATION_SHOWN": {
    "expires_in_version": "never",
    "kind": "boolean",
    "description": "The number of times the click-to-activate notification was shown: false: shown by in-content activation true: shown by location bar activation"
  },
  "PLUGINS_NOTIFICATION_PLUGIN_COUNT": {
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 5,
    "description": "The number of plugins present in the click-to-activate notification, minus one (1, 2, 3, 4, more than 4)"
  },
  "PLUGINS_NOTIFICATION_USER_ACTION": {
    "expires_in_version": "never",
    "kind": "enumerated",
    "n_values": 3,
    "description": "User actions taken in the plugin notification: 0: allownow 1: allowalways 2: block"
  },
  "PLUGINS_INFOBAR_SHOWN": {
    "expires_in_version": "never",
    "kind": "boolean",
    "description": "Count of when the hidden-plugin infobar was displayed."
  },
  "PLUGINS_INFOBAR_BLOCK": {
    "expires_in_version": "never",
    "kind": "boolean",
    "description": "Count the number of times the user clicked 'block' on the hidden-plugin infobar."
  },
  "PLUGINS_INFOBAR_ALLOW": {
    "expires_in_version": "never",
    "kind": "boolean",
    "description": "Count the number of times the user clicked 'allow' on the hidden-plugin infobar."
  },
  "POPUP_NOTIFICATION_STATS": {
    "alert_emails": ["firefox-dev@mozilla.org"],
    "expires_in_version": "48",
    "kind": "enumerated",
    "keyed": true,
    "n_values": 40,
    "description": "(Bug 1207089) Usage of popup notifications, keyed by ID (0 = Offered, 1..4 = Action, 5 = Click outside, 6 = Leave page, 7 = Use 'X', 8 = Not now, 10 = Open submenu, 11 = Learn more. Add 20 if happened after reopen.)"
  },
  "POPUP_NOTIFICATION_MAIN_ACTION_MS": {
    "alert_emails": ["firefox-dev@mozilla.org"],
    "expires_in_version": "48",
    "kind": "exponential",
    "keyed": true,
    "low": 100,
    "high": 600000,
    "n_buckets": 40,
    "description": "(Bug 1207089) Time in ms between initially requesting a popup notification and triggering the main action, keyed by ID"
  },
  "POPUP_NOTIFICATION_DISMISSAL_MS": {
    "alert_emails": ["firefox-dev@mozilla.org"],
    "expires_in_version": "48",
    "kind": "exponential",
    "keyed": true,
    "low": 200,
    "high": 20000,
    "n_buckets": 50,
    "description": "(Bug 1207089) Time in ms between displaying a popup notification and dismissing it without an action the first time, keyed by ID"
  },
  "DEVTOOLS_DEBUGGER_RDP_LOCAL_RELOAD_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'reload' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_REMOTE_RELOAD_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'reload' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_LOCAL_NAVIGATETO_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'navigateTo' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_REMOTE_NAVIGATETO_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'navigateTo' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_LOCAL_EVENTLISTENERS_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took an 'eventListeners' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_REMOTE_EVENTLISTENERS_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took an 'eventListeners' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_LOCAL_DETACH_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'detach' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_REMOTE_DETACH_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'detach' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_LOCAL_RESUME_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'resume' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_REMOTE_RESUME_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'resume' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_LOCAL_INTERRUPT_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took an 'interrupt' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_REMOTE_INTERRUPT_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took an 'interrupt' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_LOCAL_CLIENTEVALUATE_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'clientEvaluate' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_REMOTE_CLIENTEVALUATE_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'clientEvaluate' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_LOCAL_RELEASEMANY_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'releaseMany' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_REMOTE_RELEASEMANY_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'releaseMany' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_LOCAL_THREADGRIPS_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'threadGrips' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_REMOTE_THREADGRIPS_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'threadGrips' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_LOCAL_SOURCES_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'sources' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_REMOTE_SOURCES_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'sources' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_LOCAL_FRAMES_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'frames' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_REMOTE_FRAMES_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'frames' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_LOCAL_PARAMETERNAMES_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'parameterNames' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_REMOTE_PARAMETERNAMES_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'parameterNames' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_LOCAL_OWNPROPERTYNAMES_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'ownPropertyNames' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_REMOTE_OWNPROPERTYNAMES_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'ownPropertyNames' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_LOCAL_PROTOTYPEANDPROPERTIES_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'prototypeAndProperties' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_REMOTE_PROTOTYPEANDPROPERTIES_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'prototypeAndProperties' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_LOCAL_ENUMPROPERTIES_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'enumProperties' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_REMOTE_ENUMPROPERTIES_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'enumProperties' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_LOCAL_PROTOTYPESANDPROPERTIES_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'prototypesAndProperties' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_REMOTE_PROTOTYPESANDPROPERTIES_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'prototypesAndProperties' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_LOCAL_PROPERTY_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'property' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_REMOTE_PROPERTY_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'property' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_LOCAL_PROTOTYPE_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'prototype' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_REMOTE_PROTOTYPE_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'prototype' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_REMOTE_DISPLAYSTRING_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'displayString' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_LOCAL_DISPLAYSTRING_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'displayString' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_LOCAL_SUBSTRING_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'substring' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_REMOTE_SUBSTRING_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'substring' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_LOCAL_RELEASE_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'release' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_REMOTE_RELEASE_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'release' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_LOCAL_LISTTABS_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'listTabs' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_REMOTE_LISTTABS_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'listTabs' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_LOCAL_LISTSERVICEWORKERREGISTRATIONS_MS": {
    "alert_emails": ["dev-developer-tools@lists.mozilla.org", "ejpbruel@mozilla.com"],
    "expires_in_version": "50",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "100",
    "description": "The time (in milliseconds) that it took a 'listServiceWorkerRegistrations' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_REMOTE_LISTSERVICEWORKERREGISTRATIONS_MS": {
    "alert_emails": ["dev-developer-tools@lists.mozilla.org", "ejpbruel@mozilla.com"],
    "expires_in_version": "50",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "100",
    "description": "The time (in milliseconds) that it took a 'listServiceWorkerRegistrations' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_LOCAL_PROTOCOLDESCRIPTION_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'protocolDescription' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_REMOTE_PROTOCOLDESCRIPTION_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'protocolDescription' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_LOCAL_LISTADDONS_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'listAddons' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_REMOTE_LISTADDONS_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'listAddons' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_LOCAL_LISTWORKERS_MS": {
    "alert_emails": ["dev-developer-tools@lists.mozilla.org", "jan@mozilla.com"],
    "expires_in_version": "55",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "50",
    "description": "The time (in milliseconds) that it took a 'listWorkers' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_REMOTE_LISTWORKERS_MS": {
    "alert_emails": ["dev-developer-tools@lists.mozilla.org", "jan@mozilla.com"],
    "expires_in_version": "55",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "50",
    "description": "The time (in milliseconds) that it took a 'listWorkers' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_LOCAL_LISTPROCESSES_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'listProcesses' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_REMOTE_LISTPROCESSES_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'listProcesses' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_LOCAL_DELETE_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'delete' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_REMOTE_DELETE_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'delete' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_LOCAL_THREADDETACH_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'detach' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_REMOTE_THREADDETACH_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'detach' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_LOCAL_ADDONDETACH_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'detach' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_REMOTE_ADDONDETACH_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'detach' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_LOCAL_TABDETACH_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'detach' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_REMOTE_TABDETACH_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'detach' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_LOCAL_WORKERDETACH_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'detach' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_REMOTE_WORKERDETACH_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'detach' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_DISPLAY_SOURCE_LOCAL_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took to display a selected source to the user."
  },
  "DEVTOOLS_DEBUGGER_DISPLAY_SOURCE_REMOTE_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took to display a selected source to the user."
  },
  "DEVTOOLS_DEBUGGER_RDP_LOCAL_RECONFIGURETAB_MS": {
    "expires_in_version": "never",
    "kind": "exponential",
    "high": "10000",
    "n_buckets": "1000",
    "description": "The time (in milliseconds) that it took a 'reconfigure tab' request to go round trip."
  },
  "DEVTOOLS_DEBUGGER_RDP_REMOTE_RECONFIGURETAB_MS": {
    "expires_in_version": "never"