Commit graph

140 commits

Author SHA1 Message Date
Jared Wein
fd84c776c7 Bug 1292042 - Enable the keyword-spacing rule for eslint. Most of this patch was autogenerated by 'eslint --fix'. Files with .xml extension needed to be changed by hand due to limitations of custom plugin. r=markh
MozReview-Commit-ID: EMjJ3yWt9Wt

--HG--
extra : rebase_source : 2b8327e5a7cf0bfd190d696ad5fe475f13faa3cc
2016-08-04 03:28:58 -04:00
Jared Wein
169d66a3ed Bug 1292035 - Enable the space-before-blocks rule for eslint. This patch was generated using 'eslint --fix'. r=markh
MozReview-Commit-ID: 2XVoU05YvES

--HG--
extra : rebase_source : e7ed2d094c21b59dd59476b8930b75da2e6d6980
2016-08-04 03:20:25 -04:00
Alessio Placitelli
0f0b2b22da Bug 1271304 - Measure the tabs/window open events and max number of tab/window per subsession. r=Gijs, r=gfritzsche, data-review=bsmedberg
MozReview-Commit-ID: 6vYfoEb8VvB
2016-05-12 09:30:00 +02:00
Alessio Placitelli
1f87ffba1c Bug 1282091 - Adjust the "scalars" format in the main ping. r=gfritzsche 2016-07-05 02:35:00 +02:00
Alessio Placitelli
d961e1211b Bug 1276196 - Add scalars to the main ping payload. r=gfritzsche 2016-06-24 08:58:00 +02:00
Alessio Placitelli
a890eaf25d Bug 1156361 - Telemetry redesign: Consolidate date & string utility functions in TelemetryUtils.jsm. r=gfritzsche 2016-05-06 09:36:00 +02:00
Iaroslav Sheptykin
5bafbc0e78 Bug 1145188: Shifting TelemetrySession init control to TelemetryController (core). r=Dexter 2016-05-16 06:57:00 +02:00
Sebastian Hengst
62d7ced7d1 Backed out changeset 9e90db2262ac (bug 1145188) for frequent Android 4.2 x86 opt Sets(S4) failure in test_TelemetrySession.js. r=backout 2016-04-29 21:30:50 +02:00
Georg Fritzsche
bf449cecaf Bug 1262386 - Trigger Telemetry scheduler tick after waking up from sleep. r=dexter 2016-04-29 15:16:22 +02:00
Georg Fritzsche
e44cdeac43 Bug 1262386 - Move Scheduler shutdown() next to init(). r=dexter 2016-04-29 15:16:22 +02:00
Georg Fritzsche
daea52c8ab Bug 1268581 - Reduce Telemetry initialization delay in tests. r=dexter 2016-04-29 15:16:22 +02:00
Iaroslav Sheptykin
af97a1b2ef Bug 1145188: Shifting TelemetrySession init control to TelemetryController (core). r=Dexter 2016-04-17 11:57:00 +02:00
Claas Augner
51d726419d Bug 1231812 - Don't send empty keyed histograms in Telemetry pings. r=gfritzsche
MozReview-Commit-ID: 2Vl3IjjeaHj
2016-04-14 15:57:10 -07:00
Georg Fritzsche
74c129cedf Bug 1250640 - Part 3 - Add diagnostics for suspected scheduler scenarios. r=dexter, f=bsmedberg 2016-04-13 12:55:31 +02:00
Georg Fritzsche
7a9037bd40 Bug 1250640 - Part 2 - Start new subsessions even when payload assembly fails. r=dexter 2016-04-13 12:55:31 +02:00
Georg Fritzsche
ee92f2e48a Bug 1250640 - Part 1 - Avoid potential timer races in the TelemetrySession scheduler. r=dexter 2016-04-13 12:55:31 +02:00
Nicholas Nethercote
1e6cdc049c Bug 1263484 - Remove the JS_MAIN_RUNTIME_TEMPORARY_PEAK telemetry measurement. r=chutten.
It's no longer useful.

--HG--
extra : rebase_source : 099c6fc013b249331f5e7ff294aa19ff99df2819
2016-04-11 09:33:35 +10:00
Wes Kocher
dfc7e5253f Merge m-c to inbound, a=merge
MozReview-Commit-ID: 9YZdlIARozU
2016-04-08 16:47:03 -07:00
Dave Townsend
6e44ebad84 Bug 1257246: Update toolkit for eslint 2. r=Gijs
Most of this is fixing functions that in some cases return a value but then
can also run to completion without returning anything. ESLint 2 catches this
where previous versions didn't. Unless there was an obvious other choice I just
made these functions return undefined at the end which is effectively what
already happens.

MozReview-Commit-ID: KHYdAkRvhVr

--HG--
extra : rebase_source : 720cc9d864175248508146a7f4704b4bf3f02439
extra : histedit_source : 6cc0ecbf21a571e1a41d517b67512a3452fac19a
2016-04-05 11:33:48 -07:00
Jonathan Watt
6b407c6579 Bug 1263042 - When the crash reporter is disabled, avoid JavaScript strict warnings in Telemetry code during startup. r=gfritzsche 2016-03-23 10:24:41 +00:00
Benjamin Smedberg
702c087507 Bug 1187270 - Add Telemetry session ID to crash annotations, r=gfritzsche
MozReview-Commit-ID: GwVI0dfsT4H

--HG--
extra : rebase_source : 0ae9efbce919efcd0f20314bd89848da017b7e57
2016-03-14 09:31:19 -04:00
Rob Wood
41543f1dac Bug 1253633 - Don't put the TELEMETRY_TEST_* histograms into the Telemetry payload outside of tests; r=gfritzsche
MozReview-Commit-ID: FX5BsR2cUBh

--HG--
extra : rebase_source : 47ac0d0537e06f5474ccc8cc08c9e1ee7612e672
2016-03-14 14:45:33 -04:00
malayaleecoder
41ccdf4282 Bug 1252481 - Remove sum_squares_lo and sum_squares_hi from Histogram serialization. r=gfritzsche 2016-03-12 01:34:59 +05:30
Nicholas Nethercote
6373d8547c Bug 1252375 - Fix up jemalloc stats reporting. r=erahm.
We have some oddities in our jemalloc stats reporting.

- "heap-overhead-ratio" is a strange measurement: overhead / non-overhead,
  expressed as a percentage. And it omits "bin_unused", which appears to be an
  oversight.

- "heap-committed" also omits "bin_unused".

- There are some minor errors in memory report descriptions.

This patch fixes these and improves the heap reporting. It makes the following
reporting changes:

- "heap-allocated": Duplicated as "heap-committed/allocated". (We keep
  "heap-allocated" because that's a special value used in the computation of
  "heap-unclassified".)

- "heap-committed/overhead": Added; it's the same as the sum of the
  "explicit/heap-overhead/*" values. Together with "heap-committed/allocated"
  it shows clearly what fraction of the heap is overhead and what fraction is
  useful.

- "heap-committed": Removed; now implicit as the "heap-committed/" node.

- "heap-overhead-ratio":
  - Removed from memory reports; now shown as the percentage of the new
    "heap-committed/overhead" node.
  - Still available as a distinguished amount (because it's useful in
    isolation) but renamed to heapOverheadFraction, and the telemetry ID is
    renamed as MEMORY_HEAP_OVERHEAD_FRACTION.

- "heap-chunks": Removed; it's not that interesting, and can be manually
  computed as "heap-mapped" / "heap-chunksize" if necessary.

--HG--
extra : rebase_source : 6f238cda780eb17b2de2f8b9a0b04377c93b109c
2016-03-03 12:49:27 +11:00
Anthony Zhang
d2f6517ee3 Bug 1250224 - Add a comment to clarify the purpose of TelemetrySession._childThreadHangs, etc. r=gfritzsche 2016-02-23 11:00:45 -05:00
Mark Finkle
beaf5b2d42 Bug 1246973 - Support clearing UI Telemetry when creating pings r=gfritzsche 2016-02-12 18:02:03 -05:00
Georg Fritzsche
566d0e0066 Bug 1247258 - Use Array.prototype.includes in Telemetry code. r=dexter 2016-02-10 15:19:37 +01:00
Dave Townsend
e496a11771 Bug 1245649: Turn on no-extra-semi. r=markh
--HG--
extra : commitid : HReQFPDOA6x
extra : rebase_source : 303a92f511c3c9dd2d26135975d4dc7c85e823b3
2016-02-03 17:27:36 -08:00
Anthony Zhang
0571a2708a Bug 1242777 - Expose child process hang stats to Javascript. r=chutten
What it does:

Adds a new function, TelemetrySession.getChildThreadHangs(), which returns a promise resolving to an array of threadHangStats [1], one per process.

Note that processes that spawn or die while the function's promise is created but not resolved may be excluded from the final result.

How we do this:

1. Parent sends a MESSAGE_TELEMETRY_GET_CHILD_PAYLOAD message to each child, promising the results of these messages.
2. Child processes respond to parent with a MESSAGE_TELEMETRY_THREAD_HANGS, which contains BHR stats in the payload.
3. Parent combines all the child responses together and resolves the promise.

Plus a bunch of synchronization stuff and handling of edge cases since the number of child processes can change at any time.

Also, there is a 200ms timeout since we can't handle all of these cases. Specifically, when a child dies without responding, after all other child processes have responded.

Why we do this:

* We can technically get thread hang stats by retrieving Telemetry pings (see requestChildPayloads() in TelemetrySession for details), but this is very slow and can only be done for one process at a time.
* TelemetrySession is responsible for various Telemetry IPC-related tasks, and so is a natural place to expose this function (i.e., the function blends in well with the rest of the API).
* Statuser [2] uses this for quickly obtaining child process BHR stats. This allows us to get realtime hang monitoring for child processes.

[1]: https://dxr.mozilla.org/mozilla-central/source/toolkit/components/telemetry/nsITelemetry.idl#146
[2]: https://github.com/chutten/statuser
2016-01-28 13:52:07 -05:00
Wes Kocher
e5f4ab2287 Backed out changeset 8ee5a700e4a2 (bug 1242777) to hopefully fix the intermittent hazard failures
--HG--
extra : commitid : IZS783zslAZ
2016-01-29 10:14:44 -08:00
Anthony Zhang
2e1e076345 Bug 1242777 - Expose child process hang stats to Javascript. r=chutten
What it does:

Adds a new function, TelemetrySession.getChildThreadHangs(), which returns a promise resolving to an array of threadHangStats [1], one per process.

Note that processes that spawn or die while the function's promise is created but not resolved may be excluded from the final result.

How we do this:

1. Parent sends a MESSAGE_TELEMETRY_GET_CHILD_PAYLOAD message to each child, promising the results of these messages.
2. Child processes respond to parent with a MESSAGE_TELEMETRY_THREAD_HANGS, which contains BHR stats in the payload.
3. Parent combines all the child responses together and resolves the promise.

Plus a bunch of synchronization stuff and handling of edge cases since the number of child processes can change at any time.

Also, there is a 200ms timeout since we can't handle all of these cases. Specifically, when a child dies without responding, after all other child processes have responded.

Why we do this:

* We can technically get thread hang stats by retrieving Telemetry pings (see requestChildPayloads() in TelemetrySession for details), but this is very slow and can only be done for one process at a time.
* TelemetrySession is responsible for various Telemetry IPC-related tasks, and so is a natural place to expose this function (i.e., the function blends in well with the rest of the API).
* Statuser [2] uses this for quickly obtaining child process BHR stats. This allows us to get realtime hang monitoring for child processes.

[1]: https://dxr.mozilla.org/mozilla-central/source/toolkit/components/telemetry/nsITelemetry.idl#146
[2]: https://github.com/chutten/statuser

--HG--
extra : rebase_source : d323afc3de716e5c978f1120f43af77f193f0b8a
2016-01-28 13:52:07 -05:00
Alessio Placitelli
fec464cddd Bug 1237700 - JavaScript warning: resource://gre/modules/TelemetrySession.jsm, line 1783: unreachable code after return statement. r=gfritzsche 2016-01-08 01:02:00 +01:00
Georg Fritzsche
8a67d78afe Bug 1200164 - Only do isOfficialTelemetry checks for Telemetry uploads. r=dexter 2015-12-18 19:35:05 +07:00
Chris H-C
9b98367204 Bug 1198209 - Add a "Total Memory" Histogram. r=vladan
We now have all the necessary measurement APIs to get a full memory picture for
a running multi-process instance. However, there's no way to correlate one
particular RSS measurement on chrome with its USS measurements on content
processes.

So do that in TelemetrySession and report it.

--HG--
extra : rebase_source : d410307f557923cf140105acfeaa486e274731a5
2015-12-21 13:57:00 +01:00
Anup Kumar
77710725de Bug 1201492 - Remove extended_statistics_ok from Telemetry histograms. r=dexter 2015-12-21 08:31:00 +01:00
Carsten "Tomcat" Book
7aa1c2a90b Backed out changeset d19ad724c64c (bug 1198209) for test failures in browser_aboutHealthReport.js
--HG--
extra : rebase_source : c1e683221a39c97d991c77df4d5c5b1f8e16f40f
2015-12-21 14:28:43 +01:00
Chris H-C
5e2c10e8ec Bug 1198209 - Add a "Total Memory" Histogram. r=vladan
We now have all the necessary measurement APIs to get a full memory picture for
a running multi-process instance. However, there's no way to correlate one
particular RSS measurement on chrome with its USS measurements on content
processes.

So do that in TelemetrySession and report it.
2015-12-18 07:48:00 +01:00
Patrick Nwoko
2acf265b7b Bug 1217458 - change TelemetrySession comments to point to the correct bug number. r=dexter 2015-12-08 04:38:00 +01:00
Dave Townsend
76a557581f Bug 1229519: Fix toolkit/components/telemetry to pass eslint checks. r=gfritzsche
--HG--
extra : commitid : 2LoaRxJUYEZ
extra : rebase_source : 8813b2be37ea0e4fa078096cb54eb27a6de3d6bd
2015-12-03 10:02:02 -08:00
Tyler Steiman
8b773f53cd Bug 1226196 Lowers MEMORY_RESIDENT's buckets from 200 to 100. When building, MEMORY_RESIDENT_FAST correctly shows in the HISTOGRAMs in about:telemetry r=chutten 2015-11-23 11:19:04 -08:00
Chris H-C
75457f4dd6 Bug 1198209 - Add a histogram for USS r=Yoric
Unique Set Size (USS) could be described as "the amount of memory you could
expect to reclaim if you killed this process"

Resident Set Size (RSS) is USS with the addition of memory allocated by
shared memory.

To get a full picture of the memory use of a multi-process application is
impossible. A better guess than most is

Parent Process' RSS + sum(Child Processes' USS)

Or, from Telemetry:

Parent MEMORY_RESIDENT + sum(Children's MEMORY_UNIQUE)
2015-11-19 08:18:00 +01:00
Alessio Placitelli
5eef00061e Bug 1222054 - Route shutdown/saved-session pings through TelemetrySend. r=gfritzsche 2015-11-10 07:34:00 +01:00
Carsten "Tomcat" Book
839fa910f5 merge mozilla-inbound to mozilla-central a=merge 2015-11-19 14:44:11 +01:00
simplyblue
ca6f99ed19 Bug 1221505 - Remove osfile.jsm dependency from TelemetrySession.jsm. r=dexter 2015-11-17 16:55:47 +05:30
Birunthan Mohanathas
ae2f3493a3 Bug 1225861 - Fix collection of LOW_MEMORY_EVENTS_{PHYSICAL,VIRTUAL} histograms. r=njn 2015-11-19 09:13:50 +02:00
rthyberg
dd7668ef22 Bug 1190801 - Moved loadSessionData and split saveSessionData from TelemetrySession to TelemetryStorage. r=gfritzsche 2015-11-06 03:54:00 +01:00
Nils Ohlmeier [:drno]
380290f5b6 Bug 1198883 - Part 2: Added WebRTC ICE candidates to Telemetry. r+vladan
--HG--
extra : transplant_source : %19%C7%F3%06%7F%86%08%3Bx%C4%C7%E8%F7Q%D1%0EN%AE%E6%EC
2015-10-08 14:44:50 -07:00
Tooru Fujisawa
65e2703499 Bug 1217082 - Remove for-each from toolkit/. r=Gijs
--HG--
extra : commitid : Ewr7Bixammr
extra : rebase_source : 91e560a7b8b8d4b78debb1db2512867262b18375
2015-10-19 04:57:14 +09:00
Georg Fritzsche
1a13948e65 Bug 1210658 - Protect Telemetry ping assembly from exceptions in data gathering functions. r=dexter 2015-10-19 18:23:57 +02:00
Iaroslav (yarik) Sheptykin
abcebff312 Bug 1209458 - Replace HISTOGRAM_FILE_VERSION preprocessor usage with AppConstants.jsm definitions. r=ted,gfritzsche
--HG--
extra : transplant_source : %B9%5D%20%1EN%D0%C3%F7%0F1%CF%91%F2%2C%10%81U%D8X%3F
2015-10-01 10:18:10 +02:00