services/healthreport/docs/dataformat.rst

Wed, 31 Dec 2014 07:53:36 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 07:53:36 +0100
branch
TOR_BUG_3246
changeset 5
4ab42b5ab56c
permissions
-rw-r--r--

Correct small whitespace inconsistency, lost while renaming variables.

michael@0 1 .. _healthreport_dataformat:
michael@0 2
michael@0 3 ==============
michael@0 4 Payload Format
michael@0 5 ==============
michael@0 6
michael@0 7 Currently, the Firefox Health Report is submitted as a compressed JSON
michael@0 8 document. The root JSON element is an object. A *version* field defines
michael@0 9 the version of the payload which in turn defines the expected contents
michael@0 10 the object.
michael@0 11
michael@0 12 As of 2013-07-03, desktop submits Version 2, and Firefox for Android submits
michael@0 13 Version 3 payloads.
michael@0 14
michael@0 15 Version 3
michael@0 16 =========
michael@0 17
michael@0 18 Version 3 is a complete rebuild of the document format. Events are tracked in
michael@0 19 an "environment". Environments are computed from a large swath of local data
michael@0 20 (e.g., add-ons, CPU count, versions), and a new environment comes into being
michael@0 21 when one of its attributes changes.
michael@0 22
michael@0 23 Client documents, then, will include descriptions of many environments, and
michael@0 24 measurements will be attributed to one particular environment.
michael@0 25
michael@0 26 A map of environments is present at the top level of the document, with the
michael@0 27 current named "current" in the map. Each environment has a hash identifier and
michael@0 28 a set of attributes. The current environment is completely described, and has
michael@0 29 its hash present in a "hash" attribute. All other environments are represented
michael@0 30 as a tree diff from the current environment, with their hash as the key in the
michael@0 31 "environments" object.
michael@0 32
michael@0 33 A removed add-on has the value 'null'.
michael@0 34
michael@0 35 There is no "last" data at present.
michael@0 36
michael@0 37 Daily data is hierarchical: by day, then by environment, and then by
michael@0 38 measurement, and is present in "data", just as in v2.
michael@0 39
michael@0 40 Leading by example::
michael@0 41
michael@0 42 {
michael@0 43 "lastPingDate": "2013-06-29",
michael@0 44 "thisPingDate": "2013-07-03",
michael@0 45 "version": 3,
michael@0 46 "environments": {
michael@0 47 "current": {
michael@0 48 "org.mozilla.sysinfo.sysinfo": {
michael@0 49 "memoryMB": 1567,
michael@0 50 "cpuCount": 4,
michael@0 51 "architecture": "armeabi-v7a",
michael@0 52 "_v": 1,
michael@0 53 "version": "4.1.2",
michael@0 54 "name": "Android"
michael@0 55 },
michael@0 56 "org.mozilla.profile.age": {
michael@0 57 "_v": 1,
michael@0 58 "profileCreation": 15827
michael@0 59 },
michael@0 60 "org.mozilla.addons.active": {
michael@0 61 "QuitNow@TWiGSoftware.com": {
michael@0 62 "appDisabled": false,
michael@0 63 "userDisabled": false,
michael@0 64 "scope": 1,
michael@0 65 "updateDay": 15885,
michael@0 66 "foreignInstall": false,
michael@0 67 "hasBinaryComponents": false,
michael@0 68 "blocklistState": 0,
michael@0 69 "type": "extension",
michael@0 70 "installDay": 15885,
michael@0 71 "version": "1.18.02"
michael@0 72 },
michael@0 73 "{dbbf9331-b713-6eda-1006-205efead09dc}": {
michael@0 74 "appDisabled": false,
michael@0 75 "userDisabled": "askToActivate",
michael@0 76 "scope": 8,
michael@0 77 "updateDay": 15779,
michael@0 78 "foreignInstall": true,
michael@0 79 "blocklistState": 0,
michael@0 80 "type": "plugin",
michael@0 81 "installDay": 15779,
michael@0 82 "version": "11.1 r115"
michael@0 83 },
michael@0 84 "desktopbydefault@bnicholson.mozilla.org": {
michael@0 85 "appDisabled": false,
michael@0 86 "userDisabled": true,
michael@0 87 "scope": 1,
michael@0 88 "updateDay": 15870,
michael@0 89 "foreignInstall": false,
michael@0 90 "hasBinaryComponents": false,
michael@0 91 "blocklistState": 0,
michael@0 92 "type": "extension",
michael@0 93 "installDay": 15870,
michael@0 94 "version": "1.1"
michael@0 95 },
michael@0 96 "{6e092a7f-ba58-4abb-88c1-1a4e50b217e4}": {
michael@0 97 "appDisabled": false,
michael@0 98 "userDisabled": false,
michael@0 99 "scope": 1,
michael@0 100 "updateDay": 15828,
michael@0 101 "foreignInstall": false,
michael@0 102 "hasBinaryComponents": false,
michael@0 103 "blocklistState": 0,
michael@0 104 "type": "extension",
michael@0 105 "installDay": 15828,
michael@0 106 "version": "1.1.0"
michael@0 107 },
michael@0 108 "{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}": {
michael@0 109 "appDisabled": false,
michael@0 110 "userDisabled": true,
michael@0 111 "scope": 1,
michael@0 112 "updateDay": 15879,
michael@0 113 "foreignInstall": false,
michael@0 114 "hasBinaryComponents": false,
michael@0 115 "blocklistState": 0,
michael@0 116 "type": "extension",
michael@0 117 "installDay": 15879,
michael@0 118 "version": "1.3.2"
michael@0 119 },
michael@0 120 "_v": 1
michael@0 121 },
michael@0 122 "org.mozilla.appInfo.appinfo": {
michael@0 123 "_v": 3,
michael@0 124 "appLocale": "en_us",
michael@0 125 "osLocale": "en_us",
michael@0 126 "distribution": "",
michael@0 127 "acceptLangIsUserSet": 0,
michael@0 128 "isTelemetryEnabled": 1,
michael@0 129 "isBlocklistEnabled": 1
michael@0 130 },
michael@0 131 "geckoAppInfo": {
michael@0 132 "updateChannel": "nightly",
michael@0 133 "id": "{aa3c5121-dab2-40e2-81ca-7ea25febc110}",
michael@0 134 "os": "Android",
michael@0 135 "platformBuildID": "20130703031323",
michael@0 136 "platformVersion": "25.0a1",
michael@0 137 "vendor": "Mozilla",
michael@0 138 "name": "fennec",
michael@0 139 "xpcomabi": "arm-eabi-gcc3",
michael@0 140 "appBuildID": "20130703031323",
michael@0 141 "_v": 1,
michael@0 142 "version": "25.0a1"
michael@0 143 },
michael@0 144 "hash": "tB4Pnnep9yTxnMDymc3dAB2RRB0=",
michael@0 145 "org.mozilla.addons.counts": {
michael@0 146 "extension": 4,
michael@0 147 "plugin": 1,
michael@0 148 "_v": 1,
michael@0 149 "theme": 0
michael@0 150 }
michael@0 151 },
michael@0 152 "k2O3hlreMeS7L1qtxeMsYWxgWWQ=": {
michael@0 153 "geckoAppInfo": {
michael@0 154 "platformBuildID": "20130630031138",
michael@0 155 "appBuildID": "20130630031138",
michael@0 156 "_v": 1
michael@0 157 },
michael@0 158 "org.mozilla.appInfo.appinfo": {
michael@0 159 "_v": 2,
michael@0 160 }
michael@0 161 },
michael@0 162 "1+KN9TutMpzdl4TJEl+aCxK+xcw=": {
michael@0 163 "geckoAppInfo": {
michael@0 164 "platformBuildID": "20130626031100",
michael@0 165 "appBuildID": "20130626031100",
michael@0 166 "_v": 1
michael@0 167 },
michael@0 168 "org.mozilla.addons.active": {
michael@0 169 "QuitNow@TWiGSoftware.com": null,
michael@0 170 "{dbbf9331-b713-6eda-1006-205efead09dc}": null,
michael@0 171 "desktopbydefault@bnicholson.mozilla.org": null,
michael@0 172 "{6e092a7f-ba58-4abb-88c1-1a4e50b217e4}": null,
michael@0 173 "{46551EC9-40F0-4e47-8E18-8E5CF550CFB8}": null,
michael@0 174 "_v": 1
michael@0 175 },
michael@0 176 "org.mozilla.addons.counts": {
michael@0 177 "extension": 0,
michael@0 178 "plugin": 0,
michael@0 179 "_v": 1
michael@0 180 }
michael@0 181 }
michael@0 182 },
michael@0 183 "data": {
michael@0 184 "last": {},
michael@0 185 "days": {
michael@0 186 "2013-07-03": {
michael@0 187 "tB4Pnnep9yTxnMDymc3dAB2RRB0=": {
michael@0 188 "org.mozilla.appSessions": {
michael@0 189 "normal": [
michael@0 190 {
michael@0 191 "r": "P",
michael@0 192 "d": 2,
michael@0 193 "sj": 653
michael@0 194 },
michael@0 195 {
michael@0 196 "r": "P",
michael@0 197 "d": 22
michael@0 198 },
michael@0 199 {
michael@0 200 "r": "P",
michael@0 201 "d": 5
michael@0 202 },
michael@0 203 {
michael@0 204 "r": "P",
michael@0 205 "d": 0
michael@0 206 },
michael@0 207 {
michael@0 208 "r": "P",
michael@0 209 "sg": 3560,
michael@0 210 "d": 171,
michael@0 211 "sj": 518
michael@0 212 },
michael@0 213 {
michael@0 214 "r": "P",
michael@0 215 "d": 16
michael@0 216 },
michael@0 217 {
michael@0 218 "r": "P",
michael@0 219 "d": 1079
michael@0 220 }
michael@0 221 ],
michael@0 222 "_v": "4"
michael@0 223 }
michael@0 224 },
michael@0 225 "k2O3hlreMeS7L1qtxeMsYWxgWWQ=": {
michael@0 226 "org.mozilla.appSessions": {
michael@0 227 "normal": [
michael@0 228 {
michael@0 229 "r": "P",
michael@0 230 "d": 27
michael@0 231 },
michael@0 232 {
michael@0 233 "r": "P",
michael@0 234 "d": 19
michael@0 235 },
michael@0 236 {
michael@0 237 "r": "P",
michael@0 238 "d": 55
michael@0 239 }
michael@0 240 ],
michael@0 241 "_v": "4"
michael@0 242 },
michael@0 243 "org.mozilla.searches.counts": {
michael@0 244 "bartext": {
michael@0 245 "google": 1
michael@0 246 },
michael@0 247 "_v": "4"
michael@0 248 },
michael@0 249 "org.mozilla.experiment": {
michael@0 250 "lastActive": "some.experiment.id"
michael@0 251 "_v": "1"
michael@0 252 }
michael@0 253 }
michael@0 254 }
michael@0 255 }
michael@0 256 }
michael@0 257 }
michael@0 258
michael@0 259 App sessions in Version 3
michael@0 260 -------------------------
michael@0 261
michael@0 262 Sessions are divided into "normal" and "abnormal". Session objects are stored as discrete JSON::
michael@0 263
michael@0 264 "org.mozilla.appSessions": {
michael@0 265 _v: 4,
michael@0 266 "normal": [
michael@0 267 {"r":"P", "d": 123},
michael@0 268 ],
michael@0 269 "abnormal": [
michael@0 270 {"r":"A", "oom": true, "stopped": false}
michael@0 271 ]
michael@0 272 }
michael@0 273
michael@0 274 Keys are:
michael@0 275
michael@0 276 "r"
michael@0 277 reason. Values are "P" (activity paused), "A" (abnormal termination).
michael@0 278 "d"
michael@0 279 duration. Value in seconds.
michael@0 280 "sg"
michael@0 281 Gecko startup time (msec). Present if this is a clean launch. This
michael@0 282 corresponds to the telemetry timer *FENNEC_STARTUP_TIME_GECKOREADY*.
michael@0 283 "sj"
michael@0 284 Java activity init time (msec). Present if this is a clean launch. This
michael@0 285 corresponds to the telemetry timer *FENNEC_STARTUP_TIME_JAVAUI*,
michael@0 286 and includes initialization tasks beyond initial
michael@0 287 *onWindowFocusChanged*.
michael@0 288
michael@0 289 Abnormal terminations will be missing a duration and will feature these keys:
michael@0 290
michael@0 291 "oom"
michael@0 292 was the session killed by an OOM exception?
michael@0 293 "stopped"
michael@0 294 was the session stopped gently?
michael@0 295
michael@0 296 Version 3.1
michael@0 297 -----------
michael@0 298
michael@0 299 As of Firefox 27, *appinfo* is now bumped to v3, including *osLocale*,
michael@0 300 *appLocale* (currently always the same as *osLocale*), *distribution* (a string
michael@0 301 containing the distribution ID and version, separated by a colon), and
michael@0 302 *acceptLangIsUserSet*, an integer-boolean that describes whether the user set
michael@0 303 an *intl.accept_languages* preference.
michael@0 304
michael@0 305 The search counts measurement is now at version 5, which indicates that
michael@0 306 non-partner searches are recorded. You'll see identifiers like "other-Foo Bar"
michael@0 307 rather than "other".
michael@0 308
michael@0 309 Other notable differences from Version 2
michael@0 310 ----------------------------------------
michael@0 311
michael@0 312 * There is no default browser indicator on Android.
michael@0 313 * Add-ons include a *blocklistState* attribute, as returned by AddonManager.
michael@0 314 * Searches are now version 4, and are hierarchical: how the search was started
michael@0 315 (bartext, barkeyword, barsuggest), and then counts per provider.
michael@0 316
michael@0 317 Version 2
michael@0 318 =========
michael@0 319
michael@0 320 Version 2 is the same as version 1 with the exception that it has an additional
michael@0 321 top-level field, *geckoAppInfo*, which contains basic application info.
michael@0 322
michael@0 323 geckoAppInfo
michael@0 324 ------------
michael@0 325
michael@0 326 This field is an object that is a simple map of string keys and values
michael@0 327 describing basic application metadata. It is very similar to the *appinfo*
michael@0 328 measurement in the *last* section. The difference is this field is almost
michael@0 329 certainly guaranteed to exist whereas the one in the data part of the
michael@0 330 payload may be omitted in certain scenarios (such as catastrophic client
michael@0 331 error).
michael@0 332
michael@0 333 Its keys are as follows:
michael@0 334
michael@0 335 appBuildID
michael@0 336 The build ID/date of the application. e.g. "20130314113542".
michael@0 337
michael@0 338 version
michael@0 339 The value of nsXREAppData.version. This is the application's version. e.g.
michael@0 340 "21.0.0".
michael@0 341
michael@0 342 vendor
michael@0 343 The value of nsXREAppData.vendor. Can be empty an empty string. For
michael@0 344 official Mozilla builds, this will be "Mozilla".
michael@0 345
michael@0 346 name
michael@0 347 The value of nsXREAppData.name. For official Firefox builds, this
michael@0 348 will be "Firefox".
michael@0 349
michael@0 350 id
michael@0 351 The value of nsXREAppData.ID.
michael@0 352
michael@0 353 platformVersion
michael@0 354 The version of the Gecko platform (as opposed to the app version). For
michael@0 355 Firefox, this is almost certainly equivalent to the *version* field.
michael@0 356
michael@0 357 platformBuildID
michael@0 358 The build ID/date of the Gecko platfor (as opposed to the app version).
michael@0 359 This is commonly equivalent to *appBuildID*.
michael@0 360
michael@0 361 os
michael@0 362 The name of the operating system the application is running on.
michael@0 363
michael@0 364 xpcomabi
michael@0 365 The binary architecture of the build.
michael@0 366
michael@0 367 updateChannel
michael@0 368 The name of the channel used for application updates. Official Mozilla
michael@0 369 builds have one of the values {release, beta, aurora, nightly}. Local and
michael@0 370 test builds have *default* as the channel.
michael@0 371
michael@0 372 Version 1
michael@0 373 =========
michael@0 374
michael@0 375 Top-level Properties
michael@0 376 --------------------
michael@0 377
michael@0 378 The main JSON object contains the following properties:
michael@0 379
michael@0 380 lastPingDate
michael@0 381 UTC date of the last upload. If this is the first upload from this client,
michael@0 382 this will not be present.
michael@0 383
michael@0 384 thisPingDate
michael@0 385 UTC date when this payload was constructed.
michael@0 386
michael@0 387 version
michael@0 388 Integer version of this payload format. Currently only 1 is defined.
michael@0 389
michael@0 390 clientID
michael@0 391 An identifier that identifies the client that is submitting data.
michael@0 392
michael@0 393 This property may not be present in older clients.
michael@0 394
michael@0 395 See :ref:`healthreport_identifiers` for more info on identifiers.
michael@0 396
michael@0 397 clientIDVersion
michael@0 398 Integer version associated with the generation semantics for the
michael@0 399 ``clientID``.
michael@0 400
michael@0 401 If the value is ``1``, ``clientID`` is a randomly-generated UUID.
michael@0 402
michael@0 403 This property may not be present in older clients.
michael@0 404
michael@0 405 data
michael@0 406 Object holding data constituting health report.
michael@0 407
michael@0 408 Data Properties
michael@0 409 ---------------
michael@0 410
michael@0 411 The bulk of the health report is contained within the *data* object. This
michael@0 412 object has the following keys:
michael@0 413
michael@0 414 days
michael@0 415 Object mapping UTC days to measurements from that day. Keys are in the
michael@0 416 *YYYY-MM-DD* format. e.g. "2013-03-14"
michael@0 417
michael@0 418 last
michael@0 419 Object mapping measurement names to their values.
michael@0 420
michael@0 421
michael@0 422 The value of *days* and *last* are objects mapping measurement names to that
michael@0 423 measurement's values. The values are always objects. Each object contains
michael@0 424 a *_v* property. This property defines the version of this measurement.
michael@0 425 Additional non-underscore-prefixed properties are defined by the measurement
michael@0 426 itself (see sections below).
michael@0 427
michael@0 428 Example
michael@0 429 -------
michael@0 430
michael@0 431 Here is an example JSON document for version 1::
michael@0 432
michael@0 433 {
michael@0 434 "version": 1,
michael@0 435 "thisPingDate": "2013-03-11",
michael@0 436 "lastPingDate": "2013-03-10",
michael@0 437 "data": {
michael@0 438 "last": {
michael@0 439 "org.mozilla.addons.active": {
michael@0 440 "masspasswordreset@johnathan.nightingale": {
michael@0 441 "userDisabled": false,
michael@0 442 "appDisabled": false,
michael@0 443 "version": "1.05",
michael@0 444 "type": "extension",
michael@0 445 "scope": 1,
michael@0 446 "foreignInstall": false,
michael@0 447 "hasBinaryComponents": false,
michael@0 448 "installDay": 14973,
michael@0 449 "updateDay": 15317
michael@0 450 },
michael@0 451 "places-maintenance@bonardo.net": {
michael@0 452 "userDisabled": false,
michael@0 453 "appDisabled": false,
michael@0 454 "version": "1.3",
michael@0 455 "type": "extension",
michael@0 456 "scope": 1,
michael@0 457 "foreignInstall": false,
michael@0 458 "hasBinaryComponents": false,
michael@0 459 "installDay": 15268,
michael@0 460 "updateDay": 15379
michael@0 461 },
michael@0 462 "_v": 1
michael@0 463 },
michael@0 464 "org.mozilla.appInfo.appinfo": {
michael@0 465 "_v": 1,
michael@0 466 "appBuildID": "20130309030841",
michael@0 467 "distributionID": "",
michael@0 468 "distributionVersion": "",
michael@0 469 "hotfixVersion": "",
michael@0 470 "id": "{ec8030f7-c20a-464f-9b0e-13a3a9e97384}",
michael@0 471 "locale": "en-US",
michael@0 472 "name": "Firefox",
michael@0 473 "os": "Darwin",
michael@0 474 "platformBuildID": "20130309030841",
michael@0 475 "platformVersion": "22.0a1",
michael@0 476 "updateChannel": "nightly",
michael@0 477 "vendor": "Mozilla",
michael@0 478 "version": "22.0a1",
michael@0 479 "xpcomabi": "x86_64-gcc3"
michael@0 480 },
michael@0 481 "org.mozilla.profile.age": {
michael@0 482 "_v": 1,
michael@0 483 "profileCreation": 12444
michael@0 484 },
michael@0 485 "org.mozilla.appSessions.current": {
michael@0 486 "_v": 3,
michael@0 487 "startDay": 15773,
michael@0 488 "activeTicks": 522,
michael@0 489 "totalTime": 70858,
michael@0 490 "main": 1245,
michael@0 491 "firstPaint": 2695,
michael@0 492 "sessionRestored": 3436
michael@0 493 },
michael@0 494 "org.mozilla.sysinfo.sysinfo": {
michael@0 495 "_v": 1,
michael@0 496 "cpuCount": 8,
michael@0 497 "memoryMB": 16384,
michael@0 498 "architecture": "x86-64",
michael@0 499 "name": "Darwin",
michael@0 500 "version": "12.2.1"
michael@0 501 }
michael@0 502 },
michael@0 503 "days": {
michael@0 504 "2013-03-11": {
michael@0 505 "org.mozilla.addons.counts": {
michael@0 506 "_v": 1,
michael@0 507 "extension": 15,
michael@0 508 "plugin": 12,
michael@0 509 "theme": 1
michael@0 510 },
michael@0 511 "org.mozilla.places.places": {
michael@0 512 "_v": 1,
michael@0 513 "bookmarks": 757,
michael@0 514 "pages": 104858
michael@0 515 },
michael@0 516 "org.mozilla.appInfo.appinfo": {
michael@0 517 "_v": 1,
michael@0 518 "isDefaultBrowser": 1
michael@0 519 }
michael@0 520 },
michael@0 521 "2013-03-10": {
michael@0 522 "org.mozilla.addons.counts": {
michael@0 523 "_v": 1,
michael@0 524 "extension": 15,
michael@0 525 "plugin": 12,
michael@0 526 "theme": 1
michael@0 527 },
michael@0 528 "org.mozilla.places.places": {
michael@0 529 "_v": 1,
michael@0 530 "bookmarks": 757,
michael@0 531 "pages": 104857
michael@0 532 },
michael@0 533 "org.mozilla.searches.counts": {
michael@0 534 "_v": 1,
michael@0 535 "google.urlbar": 4
michael@0 536 },
michael@0 537 "org.mozilla.appInfo.appinfo": {
michael@0 538 "_v": 1,
michael@0 539 "isDefaultBrowser": 1
michael@0 540 }
michael@0 541 }
michael@0 542 }
michael@0 543 }
michael@0 544 }
michael@0 545
michael@0 546 Measurements
michael@0 547 ============
michael@0 548
michael@0 549 The bulk of payloads consists of measurement data. An individual measurement
michael@0 550 is merely a collection of related values e.g. *statistics about the Places
michael@0 551 database* or *system information*.
michael@0 552
michael@0 553 Each measurement has an integer version number attached. When the fields in
michael@0 554 a measurement or the semantics of data within that measurement change, the
michael@0 555 version number is incremented.
michael@0 556
michael@0 557 All measurements are defined alphabetically in the sections below.
michael@0 558
michael@0 559 org.mozilla.addons.addons
michael@0 560 -------------------------
michael@0 561
michael@0 562 This measurement contains information about the currently-installed add-ons.
michael@0 563
michael@0 564 Version 2
michael@0 565 ^^^^^^^^^
michael@0 566
michael@0 567 This version adds the human-readable fields *name* and *description*, both
michael@0 568 coming directly from the Addon instance as most properties in version 1.
michael@0 569 Also, all plugin details are now in org.mozilla.addons.plugins.
michael@0 570
michael@0 571 Version 1
michael@0 572 ^^^^^^^^^
michael@0 573
michael@0 574 The measurement object is a mapping of add-on IDs to objects containing
michael@0 575 add-on metadata.
michael@0 576
michael@0 577 Each add-on contains the following properties:
michael@0 578
michael@0 579 * userDisabled
michael@0 580 * appDisabled
michael@0 581 * version
michael@0 582 * type
michael@0 583 * scope
michael@0 584 * foreignInstall
michael@0 585 * hasBinaryComponents
michael@0 586 * installDay
michael@0 587 * updateDay
michael@0 588
michael@0 589 With the exception of *installDay* and *updateDay*, all these properties
michael@0 590 come direct from the Addon instance. See https://developer.mozilla.org/en-US/docs/Addons/Add-on_Manager/Addon.
michael@0 591 *installDay* and *updateDay* are the number of days since UNIX epoch of
michael@0 592 the add-ons *installDate* and *updateDate* properties, respectively.
michael@0 593
michael@0 594 Notes
michael@0 595 ^^^^^
michael@0 596
michael@0 597 Add-ons that have opted out of AMO updates via the
michael@0 598 *extensions._id_.getAddons.cache.enabled* preference are, since Bug 868306
michael@0 599 (Firefox 24), included in the list of submitted add-ons.
michael@0 600
michael@0 601 Example
michael@0 602 ^^^^^^^
michael@0 603 ::
michael@0 604
michael@0 605 "org.mozilla.addons.addons": {
michael@0 606 "_v": 2,
michael@0 607 "{d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}": {
michael@0 608 "userDisabled": false,
michael@0 609 "appDisabled": false,
michael@0 610 "name": "Adblock Plus",
michael@0 611 "version": "2.4.1",
michael@0 612 "type": "extension",
michael@0 613 "scope": 1,
michael@0 614 "description": "Ads were yesterday!",
michael@0 615 "foreignInstall": false,
michael@0 616 "hasBinaryComponents": false,
michael@0 617 "installDay": 16093,
michael@0 618 "updateDay": 16093
michael@0 619 },
michael@0 620 "{e4a8a97b-f2ed-450b-b12d-ee082ba24781}": {
michael@0 621 "userDisabled": true,
michael@0 622 "appDisabled": false,
michael@0 623 "name": "Greasemonkey",
michael@0 624 "version": "1.14",
michael@0 625 "type": "extension",
michael@0 626 "scope": 1,
michael@0 627 "description": "A User Script Manager for Firefox",
michael@0 628 "foreignInstall": false,
michael@0 629 "hasBinaryComponents": false,
michael@0 630 "installDay": 16093,
michael@0 631 "updateDay": 16093
michael@0 632 }
michael@0 633 }
michael@0 634
michael@0 635 org.mozilla.addons.plugins
michael@0 636 -------------------------
michael@0 637
michael@0 638 This measurement contains information about the currently-installed plugins.
michael@0 639
michael@0 640 Version 1
michael@0 641 ^^^^^^^^^
michael@0 642
michael@0 643 The measurement object is a mapping of plugin IDs to objects containing
michael@0 644 plugin metadata.
michael@0 645
michael@0 646 The plugin ID is constructed of the plugins filename, name, version and
michael@0 647 description. Every plugin has at least a filename and a name.
michael@0 648
michael@0 649 Each plugin contains the following properties:
michael@0 650
michael@0 651 * name
michael@0 652 * version
michael@0 653 * description
michael@0 654 * blocklisted
michael@0 655 * disabled
michael@0 656 * clicktoplay
michael@0 657 * mimeTypes
michael@0 658 * updateDay
michael@0 659
michael@0 660 With the exception of *updateDay* and *mimeTypes*, all these properties come
michael@0 661 directly from ``nsIPluginTag`` via ``nsIPluginHost``.
michael@0 662 *updateDay* is the number of days since UNIX epoch of the plugins last modified
michael@0 663 time.
michael@0 664 *mimeTypes* is the list of mimetypes the plugin supports, see
michael@0 665 ``nsIPluginTag.getMimeTypes()`.
michael@0 666
michael@0 667 Example
michael@0 668 ^^^^^^^
michael@0 669
michael@0 670 ::
michael@0 671
michael@0 672 "org.mozilla.addons.plugins": {
michael@0 673 "_v": 1,
michael@0 674 "Flash Player.plugin:Shockwave Flash:12.0.0.38:Shockwave Flash 12.0 r0": {
michael@0 675 "mimeTypes": [
michael@0 676 "application/x-shockwave-flash",
michael@0 677 "application/futuresplash"
michael@0 678 ],
michael@0 679 "name": "Shockwave Flash",
michael@0 680 "version": "12.0.0.38",
michael@0 681 "description": "Shockwave Flash 12.0 r0",
michael@0 682 "blocklisted": false,
michael@0 683 "disabled": false,
michael@0 684 "clicktoplay": false
michael@0 685 },
michael@0 686 "Default Browser.plugin:Default Browser Helper:537:Provides information about the default web browser": {
michael@0 687 "mimeTypes": [
michael@0 688 "application/apple-default-browser"
michael@0 689 ],
michael@0 690 "name": "Default Browser Helper",
michael@0 691 "version": "537",
michael@0 692 "description": "Provides information about the default web browser",
michael@0 693 "blocklisted": false,
michael@0 694 "disabled": true,
michael@0 695 "clicktoplay": false
michael@0 696 }
michael@0 697 }
michael@0 698
michael@0 699 org.mozilla.addons.counts
michael@0 700 -------------------------
michael@0 701
michael@0 702 This measurement contains information about historical add-on counts.
michael@0 703
michael@0 704 Version 1
michael@0 705 ^^^^^^^^^
michael@0 706
michael@0 707 The measurement object consists of counts of different add-on types. The
michael@0 708 properties are:
michael@0 709
michael@0 710 extension
michael@0 711 Integer count of installed extensions.
michael@0 712 plugin
michael@0 713 Integer count of installed plugins.
michael@0 714 theme
michael@0 715 Integer count of installed themes.
michael@0 716 lwtheme
michael@0 717 Integer count of installed lightweigh themes.
michael@0 718
michael@0 719 Notes
michael@0 720 ^^^^^
michael@0 721
michael@0 722 Add-ons opted out of AMO updates are included in the counts. This differs from
michael@0 723 the behavior of the active add-ons measurement.
michael@0 724
michael@0 725 If no add-ons of a particular type are installed, the property for that type
michael@0 726 will not be present (as opposed to an explicit property with value of 0).
michael@0 727
michael@0 728 Example
michael@0 729 ^^^^^^^
michael@0 730
michael@0 731 ::
michael@0 732
michael@0 733 "2013-03-14": {
michael@0 734 "org.mozilla.addons.counts": {
michael@0 735 "_v": 1,
michael@0 736 "extension": 21,
michael@0 737 "plugin": 4,
michael@0 738 "theme": 1
michael@0 739 }
michael@0 740 }
michael@0 741
michael@0 742
michael@0 743
michael@0 744 org.mozilla.appInfo.appinfo
michael@0 745 ---------------------------
michael@0 746
michael@0 747 This measurement contains basic XUL application and Gecko platform
michael@0 748 information. It is reported in the *last* section.
michael@0 749
michael@0 750 Version 2
michael@0 751 ^^^^^^^^^
michael@0 752
michael@0 753 In addition to fields present in version 1, this version has the following
michael@0 754 fields appearing in the *days* section:
michael@0 755
michael@0 756 isBlocklistEnabled
michael@0 757 Whether the blocklist ping is enabled. This is an integer, 0 or 1.
michael@0 758 This does not indicate whether the blocklist ping was sent but merely
michael@0 759 whether the application will try to send the blocklist ping.
michael@0 760
michael@0 761 isTelemetryEnabled
michael@0 762 Whether Telemetry is enabled. This is an integer, 0 or 1.
michael@0 763
michael@0 764 Version 1
michael@0 765 ^^^^^^^^^
michael@0 766
michael@0 767 The measurement object contains mostly string values describing the
michael@0 768 current application and build. The properties are:
michael@0 769
michael@0 770 * vendor
michael@0 771 * name
michael@0 772 * id
michael@0 773 * version
michael@0 774 * appBuildID
michael@0 775 * platformVersion
michael@0 776 * platformBuildID
michael@0 777 * os
michael@0 778 * xpcomabi
michael@0 779 * updateChannel
michael@0 780 * distributionID
michael@0 781 * distributionVersion
michael@0 782 * hotfixVersion
michael@0 783 * locale
michael@0 784 * isDefaultBrowser
michael@0 785
michael@0 786 Notes
michael@0 787 ^^^^^
michael@0 788
michael@0 789 All of the properties appear in the *last* section except for
michael@0 790 *isDefaultBrowser*, which appears under *days*.
michael@0 791
michael@0 792 Example
michael@0 793 ^^^^^^^
michael@0 794
michael@0 795 This example comes from an official OS X Nightly build::
michael@0 796
michael@0 797 "org.mozilla.appInfo.appinfo": {
michael@0 798 "_v": 1,
michael@0 799 "appBuildID": "20130311030946",
michael@0 800 "distributionID": "",
michael@0 801 "distributionVersion": "",
michael@0 802 "hotfixVersion": "",
michael@0 803 "id": "{ec8030f7-c20a-464f-9b0e-13a3a9e97384}",
michael@0 804 "locale": "en-US",
michael@0 805 "name": "Firefox",
michael@0 806 "os": "Darwin",
michael@0 807 "platformBuildID": "20130311030946",
michael@0 808 "platformVersion": "22.0a1",
michael@0 809 "updateChannel": "nightly",
michael@0 810 "vendor": "Mozilla",
michael@0 811 "version": "22.0a1",
michael@0 812 "xpcomabi": "x86_64-gcc3"
michael@0 813 },
michael@0 814
michael@0 815 org.mozilla.appInfo.update
michael@0 816 --------------------------
michael@0 817
michael@0 818 This measurement contains information about the application update mechanism
michael@0 819 in the application.
michael@0 820
michael@0 821 Version 1
michael@0 822 ^^^^^^^^^
michael@0 823
michael@0 824 The following daily values are reported:
michael@0 825
michael@0 826 enabled
michael@0 827 Whether automatic application update checking is enabled. 1 for yes,
michael@0 828 0 for no.
michael@0 829 autoDownload
michael@0 830 Whether automatic download of available updates is enabled.
michael@0 831
michael@0 832 Notes
michael@0 833 ^^^^^
michael@0 834
michael@0 835 This measurement was merged to mozilla-central for JS FHR on 2013-07-15.
michael@0 836
michael@0 837 Example
michael@0 838 ^^^^^^^
michael@0 839
michael@0 840 ::
michael@0 841
michael@0 842 "2013-07-15": {
michael@0 843 "org.mozilla.appInfo.update": {
michael@0 844 "_v": 1,
michael@0 845 "enabled": 1,
michael@0 846 "autoDownload": 1,
michael@0 847 }
michael@0 848 }
michael@0 849
michael@0 850 org.mozilla.appInfo.versions
michael@0 851 ----------------------------
michael@0 852
michael@0 853 This measurement contains a history of application version numbers.
michael@0 854
michael@0 855 Version 2
michael@0 856 ^^^^^^^^^
michael@0 857
michael@0 858 Version 2 reports more fields than version 1 and is not backwards compatible.
michael@0 859 The following fields are present in version 2:
michael@0 860
michael@0 861 appVersion
michael@0 862 An array of application version strings.
michael@0 863 appBuildID
michael@0 864 An array of application build ID strings.
michael@0 865 platformVersion
michael@0 866 An array of platform version strings.
michael@0 867 platformBuildID
michael@0 868 An array of platform build ID strings.
michael@0 869
michael@0 870 When the application is upgraded, the new version and/or build IDs are
michael@0 871 appended to their appropriate fields.
michael@0 872
michael@0 873 Version 1
michael@0 874 ^^^^^^^^^
michael@0 875
michael@0 876 When the application version (*version* from *org.mozilla.appinfo.appinfo*)
michael@0 877 changes, we record the new version on the day the change was seen. The new
michael@0 878 versions for a day are recorded in an array under the *version* property.
michael@0 879
michael@0 880 Notes
michael@0 881 ^^^^^
michael@0 882
michael@0 883 If the application isn't upgraded, this measurement will not be present.
michael@0 884 This means this measurement will not be present for most days if a user is
michael@0 885 on the release channel (since updates are typically released every 6 weeks).
michael@0 886 However, users on the Nightly and Aurora channels will likely have a lot
michael@0 887 of these entries since those builds are updated every day.
michael@0 888
michael@0 889 Values for this measurement are collected when performing the daily
michael@0 890 collection (typically occurs at upload time). As a result, it's possible
michael@0 891 the actual upgrade day may not be attributed to the proper day - the
michael@0 892 reported day may lag behind.
michael@0 893
michael@0 894 The app and platform versions and build IDs should be identical for most
michael@0 895 clients. If they are different, we are possibly looking at a *Frankenfox*.
michael@0 896
michael@0 897 Example
michael@0 898 ^^^^^^^
michael@0 899
michael@0 900 ::
michael@0 901
michael@0 902 "2013-03-27": {
michael@0 903 "org.mozilla.appInfo.versions": {
michael@0 904 "_v": 2,
michael@0 905 "appVersion": [
michael@0 906 "22.0.0"
michael@0 907 ],
michael@0 908 "appBuildID": [
michael@0 909 "20130325031100"
michael@0 910 ],
michael@0 911 "platformVersion": [
michael@0 912 "22.0.0"
michael@0 913 ],
michael@0 914 "platformBuildID": [
michael@0 915 "20130325031100"
michael@0 916 ]
michael@0 917 }
michael@0 918 }
michael@0 919
michael@0 920 org.mozilla.appSessions.current
michael@0 921 -------------------------------
michael@0 922
michael@0 923 This measurement contains information about the currently running XUL
michael@0 924 application's session.
michael@0 925
michael@0 926 Version 3
michael@0 927 ^^^^^^^^^
michael@0 928
michael@0 929 This measurement has the following properties:
michael@0 930
michael@0 931 startDay
michael@0 932 Integer days since UNIX epoch when this session began.
michael@0 933 activeTicks
michael@0 934 Integer count of *ticks* the session was active for. Gecko periodically
michael@0 935 sends out a signal when the session is active. Session activity
michael@0 936 involves keyboard or mouse interaction with the application. Each tick
michael@0 937 represents a window of 5 seconds where there was interaction.
michael@0 938 totalTime
michael@0 939 Integer seconds the session has been alive.
michael@0 940 main
michael@0 941 Integer milliseconds it took for the Gecko process to start up.
michael@0 942 firstPaint
michael@0 943 Integer milliseconds from process start to first paint.
michael@0 944 sessionRestored
michael@0 945 Integer milliseconds from process start to session restore.
michael@0 946
michael@0 947 Example
michael@0 948 ^^^^^^^
michael@0 949
michael@0 950 ::
michael@0 951
michael@0 952 "org.mozilla.appSessions.current": {
michael@0 953 "_v": 3,
michael@0 954 "startDay": 15775,
michael@0 955 "activeTicks": 4282,
michael@0 956 "totalTime": 249422,
michael@0 957 "main": 851,
michael@0 958 "firstPaint": 3271,
michael@0 959 "sessionRestored": 5998
michael@0 960 }
michael@0 961
michael@0 962 org.mozilla.appSessions.previous
michael@0 963 --------------------------------
michael@0 964
michael@0 965 This measurement contains information about previous XUL application sessions.
michael@0 966
michael@0 967 Version 3
michael@0 968 ^^^^^^^^^
michael@0 969
michael@0 970 This measurement contains per-day lists of all the sessions started on that
michael@0 971 day. The following properties may be present:
michael@0 972
michael@0 973 cleanActiveTicks
michael@0 974 Active ticks of sessions that were properly shut down.
michael@0 975 cleanTotalTime
michael@0 976 Total number of seconds for sessions that were properly shut down.
michael@0 977 abortedActiveTicks
michael@0 978 Active ticks of sessions that were not properly shut down.
michael@0 979 abortedTotalTime
michael@0 980 Total number of seconds for sessions that were not properly shut down.
michael@0 981 main
michael@0 982 Time in milliseconds from process start to main process initialization.
michael@0 983 firstPaint
michael@0 984 Time in milliseconds from process start to first paint.
michael@0 985 sessionRestored
michael@0 986 Time in milliseconds from process start to session restore.
michael@0 987
michael@0 988 Notes
michael@0 989 ^^^^^
michael@0 990
michael@0 991 Sessions are recorded on the date on which they began.
michael@0 992
michael@0 993 If a session was aborted/crashed, the total time may be less than the actual
michael@0 994 total time. This is because we don't always update total time during periods
michael@0 995 of inactivity and the abort/crash could occur after a long period of idle,
michael@0 996 before we've updated the total time.
michael@0 997
michael@0 998 The lengths of the arrays for {cleanActiveTicks, cleanTotalTime},
michael@0 999 {abortedActiveTicks, abortedTotalTime}, and {main, firstPaint, sessionRestored}
michael@0 1000 should all be identical.
michael@0 1001
michael@0 1002 The length of the clean sessions plus the length of the aborted sessions should
michael@0 1003 be equal to the length of the {main, firstPaint, sessionRestored} properties.
michael@0 1004
michael@0 1005 It is not possible to distinguish the main, firstPaint, and sessionRestored
michael@0 1006 values from a clean vs aborted session: they are all lumped together.
michael@0 1007
michael@0 1008 For sessions spanning multiple UTC days, it's not possible to know which
michael@0 1009 days the session was active for. It's possible a week long session only
michael@0 1010 had activity for 2 days and there's no way for us to tell which days.
michael@0 1011
michael@0 1012 Example
michael@0 1013 ^^^^^^^
michael@0 1014
michael@0 1015 ::
michael@0 1016
michael@0 1017 "org.mozilla.appSessions.previous": {
michael@0 1018 "_v": 3,
michael@0 1019 "cleanActiveTicks": [
michael@0 1020 78,
michael@0 1021 1785
michael@0 1022 ],
michael@0 1023 "cleanTotalTime": [
michael@0 1024 4472,
michael@0 1025 88908
michael@0 1026 ],
michael@0 1027 "main": [
michael@0 1028 32,
michael@0 1029 952
michael@0 1030 ],
michael@0 1031 "firstPaint": [
michael@0 1032 2755,
michael@0 1033 3497
michael@0 1034 ],
michael@0 1035 "sessionRestored": [
michael@0 1036 5149,
michael@0 1037 5520
michael@0 1038 ]
michael@0 1039 }
michael@0 1040
michael@0 1041 org.mozilla.crashes.crashes
michael@0 1042 ---------------------------
michael@0 1043
michael@0 1044 This measurement contains a historical record of application crashes.
michael@0 1045
michael@0 1046 Version 2
michael@0 1047 ^^^^^^^^^
michael@0 1048
michael@0 1049 The switch to version 2 coincides with the introduction of the
michael@0 1050 :ref:`crashes_crashmanager`, which provides a more robust source of
michael@0 1051 crash data.
michael@0 1052
michael@0 1053 This measurement will be reported on each day there was a crash. The
michael@0 1054 following fields may be present in each record:
michael@0 1055
michael@0 1056 mainCrash
michael@0 1057 The number of main process crashes that occurred on the given day.
michael@0 1058
michael@0 1059 Yes, version 2 does not track submissions like version 1. It is very
michael@0 1060 likely submissions will be re-added later.
michael@0 1061
michael@0 1062 Also absent from version 2 are plugin crashes and hangs. These will be
michael@0 1063 re-added, likely in version 3.
michael@0 1064
michael@0 1065 Version 1
michael@0 1066 ^^^^^^^^^
michael@0 1067
michael@0 1068 This measurement will be reported on each day there was a crash. The
michael@0 1069 following properties are reported:
michael@0 1070
michael@0 1071 pending
michael@0 1072 The number of crash reports that haven't been submitted.
michael@0 1073 submitted
michael@0 1074 The number of crash reports that were submitted.
michael@0 1075
michael@0 1076 Notes
michael@0 1077 ^^^^^
michael@0 1078
michael@0 1079 Main process crashes are typically submitted immediately after they
michael@0 1080 occur (by checking a box in the crash reporter, which should appear
michael@0 1081 automatically after a crash). If the crash reporter submits the crash
michael@0 1082 successfully, we get a submitted crash. Else, we leave it as pending.
michael@0 1083
michael@0 1084 A pending crash does not mean it will eventually be submitted.
michael@0 1085
michael@0 1086 Pending crash reports can be submitted post-crash by going to
michael@0 1087 about:crashes.
michael@0 1088
michael@0 1089 If a pending crash is submitted via about:crashes, the submitted count
michael@0 1090 increments but the pending count does not decrement. This is because FHR
michael@0 1091 does not know which pending crash was just submitted and therefore it does
michael@0 1092 not know which day's pending crash to decrement.
michael@0 1093
michael@0 1094 Example
michael@0 1095 ^^^^^^^
michael@0 1096
michael@0 1097 ::
michael@0 1098
michael@0 1099 "org.mozilla.crashes.crashes": {
michael@0 1100 "_v": 1,
michael@0 1101 "pending": 1,
michael@0 1102 "submitted": 2
michael@0 1103 },
michael@0 1104 "org.mozilla.crashes.crashes": {
michael@0 1105 "_v": 2,
michael@0 1106 "mainCrash": 2
michael@0 1107 }
michael@0 1108
michael@0 1109 org.mozilla.healthreport.submissions
michael@0 1110 ------------------------------------
michael@0 1111
michael@0 1112 This measurement contains a history of FHR's own data submission activity.
michael@0 1113 It was added in Firefox 23 in early May 2013.
michael@0 1114
michael@0 1115 Version 2
michael@0 1116 ^^^^^^^^^
michael@0 1117
michael@0 1118 This is the same as version 1 except an additional field has been added.
michael@0 1119
michael@0 1120 uploadAlreadyInProgress
michael@0 1121 A request for upload was initiated while another upload was in progress.
michael@0 1122 This should not occur in well-behaving clients. It (along with a lock
michael@0 1123 preventing simultaneous upload) was added to ensure this never occurs.
michael@0 1124
michael@0 1125 Version 1
michael@0 1126 ^^^^^^^^^
michael@0 1127
michael@0 1128 Daily counts of upload events are recorded.
michael@0 1129
michael@0 1130 firstDocumentUploadAttempt
michael@0 1131 An attempt was made to upload the client's first document to the server.
michael@0 1132 These are uploads where the client is not aware of a previous document ID
michael@0 1133 on the server. Unless the client had disabled upload, there should be at
michael@0 1134 most one of these in the history of the client.
michael@0 1135
michael@0 1136 continuationUploadAttempt
michael@0 1137 An attempt was made to upload a document that replaces an existing document
michael@0 1138 on the server. Most upload attempts should be attributed to this as opposed
michael@0 1139 to *firstDocumentUploadAttempt*.
michael@0 1140
michael@0 1141 uploadSuccess
michael@0 1142 The upload attempt recorded by *firstDocumentUploadAttempt* or
michael@0 1143 *continuationUploadAttempt* was successful.
michael@0 1144
michael@0 1145 uploadTransportFailure
michael@0 1146 An upload attempt failed due to transport failure (network unavailable,
michael@0 1147 etc).
michael@0 1148
michael@0 1149 uploadServerFailure
michael@0 1150 An upload attempt failed due to a server-reported failure. Ideally these
michael@0 1151 are failures reported by the FHR server itself. However, intermediate
michael@0 1152 proxies, firewalls, etc may trigger this depending on how things are
michael@0 1153 configured.
michael@0 1154
michael@0 1155 uploadClientFailure
michael@0 1156 An upload attempt failued due to an error/exception in the client.
michael@0 1157 This almost certainly points to a bug in the client.
michael@0 1158
michael@0 1159 The result for an upload attempt is always attributed to the same day as
michael@0 1160 the attempt, even if the result occurred on a different day from the attempt.
michael@0 1161 Therefore, the sum of the result counts should equal the result of the attempt
michael@0 1162 counts.
michael@0 1163
michael@0 1164 org.mozilla.places.places
michael@0 1165 -------------------------
michael@0 1166
michael@0 1167 This measurement contains information about the Places database (where Firefox
michael@0 1168 stores its history and bookmarks).
michael@0 1169
michael@0 1170 Version 1
michael@0 1171 ^^^^^^^^^
michael@0 1172
michael@0 1173 Daily counts of items in the database are reported in the following properties:
michael@0 1174
michael@0 1175 bookmarks
michael@0 1176 Integer count of bookmarks present.
michael@0 1177 pages
michael@0 1178 Integer count of pages in the history database.
michael@0 1179
michael@0 1180 Example
michael@0 1181 ^^^^^^^
michael@0 1182
michael@0 1183 ::
michael@0 1184
michael@0 1185 "org.mozilla.places.places": {
michael@0 1186 "_v": 1,
michael@0 1187 "bookmarks": 388,
michael@0 1188 "pages": 94870
michael@0 1189 }
michael@0 1190
michael@0 1191 org.mozilla.profile.age
michael@0 1192 -----------------------
michael@0 1193
michael@0 1194 This measurement contains information about the current profile's age.
michael@0 1195
michael@0 1196 Version 1
michael@0 1197 ^^^^^^^^^
michael@0 1198
michael@0 1199 A single *profileCreation* property is present. It defines the integer
michael@0 1200 days since UNIX epoch that the current profile was created.
michael@0 1201
michael@0 1202 Notes
michael@0 1203 ^^^^^
michael@0 1204
michael@0 1205 It is somewhat difficult to obtain a reliable *profile born date* due to a
michael@0 1206 number of factors.
michael@0 1207
michael@0 1208 Example
michael@0 1209 ^^^^^^^
michael@0 1210
michael@0 1211 ::
michael@0 1212
michael@0 1213 "org.mozilla.profile.age": {
michael@0 1214 "_v": 1,
michael@0 1215 "profileCreation": 15176
michael@0 1216 }
michael@0 1217
michael@0 1218 org.mozilla.searches.counts
michael@0 1219 ---------------------------
michael@0 1220
michael@0 1221 This measurement contains information about searches performed in the
michael@0 1222 application.
michael@0 1223
michael@0 1224 Version 2
michael@0 1225 ^^^^^^^^^
michael@0 1226
michael@0 1227 This behaves like version 1 except we added all search engines that
michael@0 1228 Mozilla has a partner agreement with. Like version 1, we concatenate
michael@0 1229 a search engine ID with a search origin.
michael@0 1230
michael@0 1231 Another difference with version 2 is we should no longer misattribute
michael@0 1232 a search to the *other* bucket if the search engine name is localized.
michael@0 1233
michael@0 1234 The set of search engine providers is:
michael@0 1235
michael@0 1236 * amazon-co-uk
michael@0 1237 * amazon-de
michael@0 1238 * amazon-en-GB
michael@0 1239 * amazon-france
michael@0 1240 * amazon-it
michael@0 1241 * amazon-jp
michael@0 1242 * amazondotcn
michael@0 1243 * amazondotcom
michael@0 1244 * amazondotcom-de
michael@0 1245 * aol-en-GB
michael@0 1246 * aol-web-search
michael@0 1247 * bing
michael@0 1248 * eBay
michael@0 1249 * eBay-de
michael@0 1250 * eBay-en-GB
michael@0 1251 * eBay-es
michael@0 1252 * eBay-fi
michael@0 1253 * eBay-france
michael@0 1254 * eBay-hu
michael@0 1255 * eBay-in
michael@0 1256 * eBay-it
michael@0 1257 * google
michael@0 1258 * google-jp
michael@0 1259 * google-ku
michael@0 1260 * google-maps-zh-TW
michael@0 1261 * mailru
michael@0 1262 * mercadolibre-ar
michael@0 1263 * mercadolibre-cl
michael@0 1264 * mercadolibre-mx
michael@0 1265 * seznam-cz
michael@0 1266 * twitter
michael@0 1267 * twitter-de
michael@0 1268 * twitter-ja
michael@0 1269 * yahoo
michael@0 1270 * yahoo-NO
michael@0 1271 * yahoo-answer-zh-TW
michael@0 1272 * yahoo-ar
michael@0 1273 * yahoo-bid-zh-TW
michael@0 1274 * yahoo-br
michael@0 1275 * yahoo-ch
michael@0 1276 * yahoo-cl
michael@0 1277 * yahoo-de
michael@0 1278 * yahoo-en-GB
michael@0 1279 * yahoo-es
michael@0 1280 * yahoo-fi
michael@0 1281 * yahoo-france
michael@0 1282 * yahoo-fy-NL
michael@0 1283 * yahoo-id
michael@0 1284 * yahoo-in
michael@0 1285 * yahoo-it
michael@0 1286 * yahoo-jp
michael@0 1287 * yahoo-jp-auctions
michael@0 1288 * yahoo-mx
michael@0 1289 * yahoo-sv-SE
michael@0 1290 * yahoo-zh-TW
michael@0 1291 * yandex
michael@0 1292 * yandex-ru
michael@0 1293 * yandex-slovari
michael@0 1294 * yandex-tr
michael@0 1295 * yandex.by
michael@0 1296 * yandex.ru-be
michael@0 1297
michael@0 1298 And of course, *other*.
michael@0 1299
michael@0 1300 The sources for searches remain:
michael@0 1301
michael@0 1302 * abouthome
michael@0 1303 * contextmenu
michael@0 1304 * searchbar
michael@0 1305 * urlbar
michael@0 1306
michael@0 1307 The measurement will only be populated with providers and sources that
michael@0 1308 occurred that day.
michael@0 1309
michael@0 1310 If a user switches locales, searches from default providers on the older
michael@0 1311 locale will still be supported. However, if that same search engine is
michael@0 1312 added by the user to the new build and is *not* a default search engine
michael@0 1313 provider, its searches will be attributed to the *other* bucket.
michael@0 1314
michael@0 1315 Version 1
michael@0 1316 ^^^^^^^^^
michael@0 1317
michael@0 1318 We record counts of performed searches grouped by search engine and search
michael@0 1319 origin. Only search engines with which Mozilla has a business relationship
michael@0 1320 are explicitly counted. All other search engines are grouped into an
michael@0 1321 *other* bucket.
michael@0 1322
michael@0 1323 The following search engines are explicitly counted:
michael@0 1324
michael@0 1325 * Amazon.com
michael@0 1326 * Bing
michael@0 1327 * Google
michael@0 1328 * Yahoo
michael@0 1329 * Other
michael@0 1330
michael@0 1331 The following search origins are distinguished:
michael@0 1332
michael@0 1333 about:home
michael@0 1334 Searches initiated from the search text box on about:home.
michael@0 1335 context menu
michael@0 1336 Searches initiated from the context menu (highlight text, right click,
michael@0 1337 and select "search for...")
michael@0 1338 search bar
michael@0 1339 Searches initiated from the search bar (the text field next to the
michael@0 1340 Awesomebar)
michael@0 1341 url bar
michael@0 1342 Searches initiated from the awesomebar/url bar.
michael@0 1343
michael@0 1344 Due to the localization of search engine names, non en-US locales may wrongly
michael@0 1345 attribute searches to the *other* bucket. This is fixed in version 2.
michael@0 1346
michael@0 1347 Example
michael@0 1348 ^^^^^^^
michael@0 1349
michael@0 1350 ::
michael@0 1351
michael@0 1352 "org.mozilla.searches.counts": {
michael@0 1353 "_v": 1,
michael@0 1354 "google.searchbar": 3,
michael@0 1355 "google.urlbar": 7
michael@0 1356 },
michael@0 1357
michael@0 1358 org.mozilla.searches.engines
michael@0 1359 ----------------------------
michael@0 1360
michael@0 1361 This measurement contains information about search engines.
michael@0 1362
michael@0 1363 Version 1
michael@0 1364 ^^^^^^^^^
michael@0 1365
michael@0 1366 This version debuted with Firefox 31 on desktop. It contains the
michael@0 1367 following properties:
michael@0 1368
michael@0 1369 default
michael@0 1370 Daily string identifier or name of the default search engine provider.
michael@0 1371
michael@0 1372 This field will only be collected if Telemetry is enabled. If
michael@0 1373 Telemetry is enabled and then later disabled, this field may
michael@0 1374 disappear from future days in the payload.
michael@0 1375
michael@0 1376 The special value ``NONE`` could occur if there is no default search
michael@0 1377 engine.
michael@0 1378
michael@0 1379 The special value ``UNDEFINED`` could occur if a default search
michael@0 1380 engine exists but its identifier could not be determined.
michael@0 1381
michael@0 1382 This field's contents are
michael@0 1383 ``Services.search.defaultEngine.identifier`` (if defined) or
michael@0 1384 ``"other-"`` + ``Services.search.defaultEngine.name`` if not.
michael@0 1385 In other words, search engines without an ``.identifier``
michael@0 1386 are prefixed with ``other-``.
michael@0 1387
michael@0 1388 org.mozilla.sync.sync
michael@0 1389 ---------------------
michael@0 1390
michael@0 1391 This daily measurement contains information about the Sync service.
michael@0 1392
michael@0 1393 Values should be recorded for every day FHR measurements occurred.
michael@0 1394
michael@0 1395 Version 1
michael@0 1396 ^^^^^^^^^
michael@0 1397
michael@0 1398 This version debuted with Firefox 30 on desktop. It contains the following
michael@0 1399 properties:
michael@0 1400
michael@0 1401 enabled
michael@0 1402 Daily numeric indicating whether Sync is configured and enabled. 1 if so,
michael@0 1403 0 otherwise.
michael@0 1404
michael@0 1405 preferredProtocol
michael@0 1406 String version of the maximum Sync protocol version the client supports.
michael@0 1407 This will be ``1.1`` for for legacy Sync and ``1.5`` for clients that
michael@0 1408 speak the Firefox Accounts protocol.
michael@0 1409
michael@0 1410 actualProtocol
michael@0 1411 The actual Sync protocol version the client is configured to use.
michael@0 1412
michael@0 1413 This will be ``1.1`` if the client is configured with the legacy Sync
michael@0 1414 service or if the client only supports ``1.1``.
michael@0 1415
michael@0 1416 It will be ``1.5`` if the client supports ``1.5`` and either a) the
michael@0 1417 client is not configured b) the client is using Firefox Accounts Sync.
michael@0 1418
michael@0 1419 syncStart
michael@0 1420 Count of sync operations performed.
michael@0 1421
michael@0 1422 syncSuccess
michael@0 1423 Count of sync operations that completed successfully.
michael@0 1424
michael@0 1425 syncError
michael@0 1426 Count of sync operations that did not complete successfully.
michael@0 1427
michael@0 1428 This is a measure of overall sync success. This does *not* reflect
michael@0 1429 recoverable errors (such as record conflict) that can occur during
michael@0 1430 sync. This is thus a rough proxy of whether the sync service is
michael@0 1431 operating without error.
michael@0 1432
michael@0 1433 org.mozilla.sync.devices
michael@0 1434 ------------------------
michael@0 1435
michael@0 1436 This daily measurement contains information about the device type composition
michael@0 1437 for the configured Sync account.
michael@0 1438
michael@0 1439 Version 1
michael@0 1440 ^^^^^^^^^
michael@0 1441
michael@0 1442 Version 1 was introduced with Firefox 30.
michael@0 1443
michael@0 1444 Field names are dynamic according to the client-reported device types from
michael@0 1445 Sync records. All fields are daily last seen integer values corresponding to
michael@0 1446 the number of devices of that type.
michael@0 1447
michael@0 1448 Common values include:
michael@0 1449
michael@0 1450 desktop
michael@0 1451 Corresponds to a Firefox desktop client.
michael@0 1452
michael@0 1453 mobile
michael@0 1454 Corresponds to a Fennec client.
michael@0 1455
michael@0 1456 org.mozilla.sysinfo.sysinfo
michael@0 1457 ---------------------------
michael@0 1458
michael@0 1459 This measurement contains basic information about the system the application
michael@0 1460 is running on.
michael@0 1461
michael@0 1462 Version 2
michael@0 1463 ^^^^^^^^^
michael@0 1464
michael@0 1465 This version debuted with Firefox 29 on desktop.
michael@0 1466
michael@0 1467 A single property was introduced.
michael@0 1468
michael@0 1469 isWow64
michael@0 1470 If present, this property indicates whether the machine supports WoW64.
michael@0 1471 This property can be used to identify whether the host machine is 64-bit.
michael@0 1472
michael@0 1473 This property is only present on Windows machines. It is the preferred way
michael@0 1474 to identify 32- vs 64-bit support in that environment.
michael@0 1475
michael@0 1476 Version 1
michael@0 1477 ^^^^^^^^^
michael@0 1478
michael@0 1479 The following properties may be available:
michael@0 1480
michael@0 1481 cpuCount
michael@0 1482 Integer number of CPUs/cores in the machine.
michael@0 1483 memoryMB
michael@0 1484 Integer megabytes of memory in the machine.
michael@0 1485 manufacturer
michael@0 1486 The manufacturer of the device.
michael@0 1487 device
michael@0 1488 The name of the device (like model number).
michael@0 1489 hardware
michael@0 1490 Unknown.
michael@0 1491 name
michael@0 1492 OS name.
michael@0 1493 version
michael@0 1494 OS version.
michael@0 1495 architecture
michael@0 1496 OS architecture that the application is built for. This is not the
michael@0 1497 actual system architecture.
michael@0 1498
michael@0 1499 Example
michael@0 1500 ^^^^^^^
michael@0 1501
michael@0 1502 ::
michael@0 1503
michael@0 1504 "org.mozilla.sysinfo.sysinfo": {
michael@0 1505 "_v": 1,
michael@0 1506 "cpuCount": 8,
michael@0 1507 "memoryMB": 8192,
michael@0 1508 "architecture": "x86-64",
michael@0 1509 "name": "Darwin",
michael@0 1510 "version": "12.2.0"
michael@0 1511 }
michael@0 1512
michael@0 1513
michael@0 1514
michael@0 1515 org.mozilla.experiments.info
michael@0 1516 ----------------------------------
michael@0 1517
michael@0 1518 Daily measurement reporting information about the Telemetry Experiments service.
michael@0 1519
michael@0 1520 Version 1
michael@0 1521 ^^^^^^^^^
michael@0 1522
michael@0 1523 Property:
michael@0 1524
michael@0 1525 lastActive
michael@0 1526 ID of the final Telemetry Experiment that is active on a given day, if any.
michael@0 1527
michael@0 1528
michael@0 1529 Version 2
michael@0 1530 ^^^^^^^^^
michael@0 1531
michael@0 1532 Adds an additional optional property:
michael@0 1533
michael@0 1534 lastActiveBranch
michael@0 1535 If the experiment uses branches, the branch identifier string.
michael@0 1536
michael@0 1537 Example
michael@0 1538 ^^^^^^^
michael@0 1539
michael@0 1540 ::
michael@0 1541
michael@0 1542 "org.mozilla.experiments.info": {
michael@0 1543 "_v": 2,
michael@0 1544 "lastActive": "some.experiment.id",
michael@0 1545 "lastActiveBranch": "control"
michael@0 1546 }
michael@0 1547

mercurial