Commit Graph

121 Commits

Author SHA1 Message Date
Chris H-C
cd5fefdca9 bug 1460595 - Change storage semantics Telemetry Events r=Dexter
Instead of a hard cap, introduce a topic to notify when we reach the now-
preference-controlled per-process event record limit. Also add the capability
to leave some records behind in storage for the next call.

MozReview-Commit-ID: EY40tqKxxeW
2018-05-11 15:45:39 -04:00
Doug Thayer
35bd3f0b0d Bug 1448040 - Remove HangMonitor/ChromeHangs r=Nika
Fairly straightforward, just a blanket removal. Haven't heard
anything on dev-platform or fx-data-dev regarding this removal,
so I think it's likely safe to remove on Nightly, and we can
revert if anyone makes a fuss.

As part of removing the HangMonitor, I renamed a few things and
reorganized the namespaces to not depend on a HangMonitor
namespace. Hopefully this doesn't produce too much noise in the
diff, it just seemed appropriate to move everything around
rather than keep dangling vestiges of the old system.

MozReview-Commit-ID: 8C8NFnOP5GU
2018-04-29 18:21:20 -07:00
Cosmin Sabou
65e12679b2 Backed out changeset 531593bacc4e (bug 1448040) for Android build bustages on HangAnnotations.h. CLOSED TREE 2018-06-07 19:22:31 +03:00
Doug Thayer
9710c4d367 Bug 1448040 - Remove HangMonitor/ChromeHangs r=Nika
Fairly straightforward, just a blanket removal. Haven't heard
anything on dev-platform or fx-data-dev regarding this removal,
so I think it's likely safe to remove on Nightly, and we can
revert if anyone makes a fuss.

As part of removing the HangMonitor, I renamed a few things and
reorganized the namespaces to not depend on a HangMonitor
namespace. Hopefully this doesn't produce too much noise in the
diff, it just seemed appropriate to move everything around
rather than keep dangling vestiges of the old system.

MozReview-Commit-ID: 8C8NFnOP5GU
2018-04-29 18:21:20 -07:00
Dorel Luca
c84bdccc19 Backed out changeset da12c077747f (bug 1448040) for Android build bustage on build/src/obj-firefox/dist/include/mozilla/HangAnnotations.h. CLOSED TREE 2018-05-25 20:13:26 +03:00
Doug Thayer
c6c9d870ab Bug 1448040 - Remove HangMonitor/ChromeHangs r=Nika
Fairly straightforward, just a blanket removal. Haven't heard
anything on dev-platform or fx-data-dev regarding this removal,
so I think it's likely safe to remove on Nightly, and we can
revert if anyone makes a fuss.

As part of removing the HangMonitor, I renamed a few things and
reorganized the namespaces to not depend on a HangMonitor
namespace. Hopefully this doesn't produce too much noise in the
diff, it just seemed appropriate to move everything around
rather than keep dangling vestiges of the old system.

MozReview-Commit-ID: 8C8NFnOP5GU
2018-04-29 18:21:20 -07:00
Csoregi Natalia
664846369b Merge inbound to mozilla-central. a=merge 2018-05-15 12:53:24 +03:00
Nika Layzell
fbd3b168bb Bug 1455217 - Part 3: Use the new xpidl Promise type instead of nsISupports, r=bz 2018-05-14 17:55:54 -04:00
Alessio Placitelli
41d024043b Bug 1453591 - Add persistence support for GeckoView in the Telemetry core. r=bz,chutten,froydnj,gfritzsche,janerik
This implements the persistence timer and the logic to write measurements
to a persistence file off-the-main thread using JSONWriter. The code to
load persisted measurements off the disk uses the builtin JSON parsing
functions from JS (as we cannot use jsoncpp).
It additionally exposes the ClearProbes method to clear the probe storage and
trigger clearing the persisted data (GeckoView only).

MozReview-Commit-ID: 94FoZac47Cw
2018-04-16 11:15:48 +02:00
Cosmin Sabou
9b145c921e Backed out 5 changesets (bug 1453591) for build bustages on TelemetryGeckoViewPersistence.cpp. CLOSED TREE
Backed out changeset 6bd51139f05a (bug 1453591)
Backed out changeset f128be7d5256 (bug 1453591)
Backed out changeset e5cf4d14019f (bug 1453591)
Backed out changeset 47634ee93be3 (bug 1453591)
Backed out changeset 8e56f01b7ae4 (bug 1453591)
2018-05-14 22:56:28 +03:00
Alessio Placitelli
2d8160aba8 Bug 1453591 - Add persistence support for GeckoView in the Telemetry core. r=bz,chutten,froydnj,gfritzsche,janerik
This implements the persistence timer and the logic to write measurements
to a persistence file off-the-main thread using JSONWriter. The code to
load persisted measurements off the disk uses the builtin JSON parsing
functions from JS (as we cannot use jsoncpp).
It additionally exposes the ClearProbes method to clear the probe storage and
trigger clearing the persisted data (GeckoView only).

MozReview-Commit-ID: 94FoZac47Cw
2018-04-16 11:15:48 +02:00
Jan-Erik Rediger
90310faec0 Bug 1320052 - Unify histogram storage into a single container. r=chutten
On Desktop and GeckoView we only ever need to store histograms for a
subsession and clear the histograms when a snapshot is done (e.g. a main ping is built).
On Fennec we don't have subsessions and only store for a session and never clear the storage.

MozReview-Commit-ID: BeVi86kZPs2
2018-05-02 15:43:02 +02:00
arthur.iakab
043600c175 Backed out 6 changesets (bug 1320052) on request by Dexter for requently failing test verify dom/base/test/browser_use_counters.js
Backed out changeset 07db52945b1f (bug 1320052)
Backed out changeset 7a64a23bf183 (bug 1320052)
Backed out changeset c95a4b0c6642 (bug 1320052)
Backed out changeset 4749633bd02f (bug 1320052)
Backed out changeset c7b8f6d55a0b (bug 1320052)
Backed out changeset b0396db0229c (bug 1320052)
2018-05-08 17:38:29 +03:00
Jan-Erik Rediger
576acd90f7 Bug 1320052 - Unify histogram storage into a single container. r=chutten
On Desktop and GeckoView we only ever need to store histograms for a
subsession and clear the histograms when a snapshot is done (e.g. a main ping is built).
On Fennec we don't have subsessions and only store for a session and never clear the storage.

MozReview-Commit-ID: BeVi86kZPs2
2018-05-02 15:43:02 +02:00
Jan-Erik Rediger
99595bf2ca Bug 1452552 - Add a method to reset the product during runtime on Android. r=Dexter
This should only be used in xpcshell on Android after toggling the GeckoView mode.
This is a workaround as we have no better way to detecting the current product (Fennec or GeckoView) on Android.

MozReview-Commit-ID: LEHt1Gt3JJ7
2018-04-26 16:41:46 +02:00
Jan-Erik Rediger
663a3b112b Bug 1448945 - Enable recording events in artifact builds without rebuilding Firefox. r=chutten
This patch enables the Firefox Telemetry core to register and record
to dynamic builtin scalars.

MozReview-Commit-ID: 8FeAgmmsQXw
2018-04-09 15:04:49 +02:00
Aaron Klotz
16aa025aba Bug 1434489: Add optional certSubject field to modules ping; r=chutten, data-review=francois (via bug 1430857) 2018-03-05 18:13:28 -07:00
Alessio Placitelli
eb7a868f0c Bug 1425909 - Enable adding scalars in artifact builds without rebuilding Firefox. r=chutten,froydnj
This patch enables generating a JSON file that mirrors the scalar definitions
in Scalars.yaml. On local developer builds, this file is loaded when Firefox
starts to register all the scalars. If some change was introduced in the
definition files, the new scalar will be dynamically added.
The JSON definition file will be regenerated every time an artifact build
is performed or the build faster command is invoked.

MozReview-Commit-ID: Do3WjE38aIK
2018-01-18 18:25:01 +01:00
Narcis Beleuzu
d49844a6e2 Backed out 2 changesets (bug 1425909) for mochitest C3 failures on test_memoryReporters.xul. on a CLOSED TREE
Backed out changeset 6bcaae60c82e (bug 1425909)
Backed out changeset 0b5d96b317c3 (bug 1425909)
2018-02-01 19:45:22 +02:00
Alessio Placitelli
7f5273e816 Bug 1425909 - Enable adding scalars in artifact builds without rebuilding Firefox. r=chutten,froydnj
This patch enables generating a JSON file that mirrors the scalar definitions
in Scalars.yaml. On local developer builds, this file is loaded when Firefox
starts to register all the scalars. If some change was introduced in the
definition files, the new scalar will be dynamically added.
The JSON definition file will be regenerated every time an artifact build
is performed or the build faster command is invoked.

MozReview-Commit-ID: Do3WjE38aIK
2018-01-18 18:25:01 +01:00
Chris H-C
8a5228ab75 bug 1410907 - Add CanRecord(Pre)Release data to nsITTelemetry r=Dexter
We're starting a shift towards talking about release/prerelease data instead of
base/extended collection. For now this is just a naming change.

At the same time, we can render these attributes read-only, which is nice.

MozReview-Commit-ID: IRuKpzLYW7i
2017-11-03 12:44:23 -04:00
Sebastian Hengst
64899f66d5 Backed out changeset 58b0f65614be (bug 1410907) for build bustage at toolkit/components/telemetry/Telemetry.cpp:1591. r=backout on a CLOSED TREE 2017-11-06 16:41:51 +01:00
Chris H-C
f948c23e98 bug 1410907 - Add CanRecord(Pre)Release data to nsITTelemetry r=Dexter
We're starting a shift towards talking about release/prerelease data instead of
base/extended collection. For now this is just a naming change.

At the same time, we can render these attributes read-only, which is nice.

MozReview-Commit-ID: IRuKpzLYW7i
2017-11-03 12:44:23 -04:00
Alessio Placitelli
fdceb69955 Bug 1395835 - Rename "group" to "category" in the scalar code and docs. r=chutten
MozReview-Commit-ID: HQ3I2cfEaa
2017-09-27 10:12:13 +02:00
Alessio Placitelli
e24412e896 Bug 1393801 - Enable dynamic scalar registration. f=gfritzsche,r=billm,chutten
MozReview-Commit-ID: JlRk7hLV5QD
2017-08-29 13:05:40 +02:00
Alessio Placitelli
324089ac37 Bug 1395838 - Rename nsITelemetry.SCALAR_* to nsITelemetry.SCALAR_TYPE_*. r=chutten
MozReview-Commit-ID: 6urKlSG0I6s
2017-09-06 12:35:44 +02:00
Chris H-C
eabcba7afb bug 1376600 - Remove registered(Keyed)Histograms r=Dexter
With the removal of the old addonHistograms, all histograms are now registered.
So removing registered(Keyed)Histograms should be straightforward?

Unfortunately not, as this was how we filtered data based on dataset
(opt-in/opt-out), so a little more fiddling was needed to get C++ to only
serialize dataset-appropriate data (instead of post-facto filtering it in JS).

MozReview-Commit-ID: HDplhmzmzJl
2017-08-22 09:42:09 -04:00
Michael Layzell
c115daf948 Bug 1380081 - Part 3: Remove the ThreadHangStats object and related code, r=froydnj
MozReview-Commit-ID: EtrktVmc3vP
2017-08-15 16:34:21 -04:00
Sebastian Hengst
983d3050d2 Backed out changeset bd63a8fecf00 (bug 1380081) 2017-08-11 09:28:47 +02:00
Michael Layzell
33751c95e2 Bug 1380081 - Part 3: Remove the ThreadHangStats object and related code, r=froydnj
MozReview-Commit-ID: EtrktVmc3vP
2017-08-10 15:55:12 -04:00
Georg Fritzsche
9385f14125 Bug 1302681 - Part 1: Extend Event Telemetry core for recording from addons. r=dexter
To cut down on complexity, we don't require specifying any expiry versions.
Given that these events will be recorded non-persistently from off-train add-ons, they can be expired by shipping new add-on releases.

We also start to use the new "record on release" terminology here instead of opt-in/opt-out, but are not changing the internal functionality yet.

Technically, this is implemented by keeping a separate registry for the dynamic event information.
Built-in & dynamic events are tracked with separate numeric ids, so introduce a common identifier for both, an EventKey.
For actual event storage, the events are treated the same as built-in events. They are simply bucketed into the 'dynamic' process storage.
This approach ends up duplicating code paths that use the event info, but keeps a single implementation for recording, storage & serialization.
2017-08-03 07:03:00 -04:00
Chris H-C
43ee3b33fc bug 1366294 - Part 7 - Use keyed histogram snaphots to build payloads. r=gfritzsche
TelemetrySession's getKeyedHistograms asks for each keyed histogram
individually. This is inefficient and doesn't work well with the storage
refactor.

So, plumb through a subsession keyed histogram snapshot API and convert
TelemetrySession over to using it.

MozReview-Commit-ID: Af9dTqw99UA
2017-07-24 09:52:26 -04:00
Chris H-C
1c9b6f562a bug 1366294 - Part 5 - Send appropriately-structured Telemetry data to JS r=gfritzsche
Previously we were doing bad string manipulation nonsense. Now when asked for
snapshots C++ can return a properly-formated Object tree.

MozReview-Commit-ID: HAvIbgzUvMU
2017-07-24 09:52:26 -04:00
Gabriele Svelto
b9cab3fec0 Bug 1356673 - Run the pingsender executable in a way that avoids shutdown races with mozalloc; r=Dexter
When sending the shutdown ping we launched the pingsender executable via
PR_CreateProcessDetached() which on both Linux and MacOS X would fork()
gecko's main process and then exec() the pingsender executable. On MacOS X
this seemed to trigger a race with the mozalloc shutdown procedure within the
forked process. This patch changes the telemetry logic to use nsIProcess
instead which relies on posix_spawnp() to launch the new executable making it
immune to issues related to mozalloc's shutdown.

Since we don't need C++ code anymore to run the pingsender the runPingSender()
method is also moved to TelemtrySend.

MozReview-Commit-ID: C7fZw1ZpVBO
2017-04-25 01:07:36 +02:00
Gabor Krizsanits
bb288d9a9c Bug 1352961 - P1: Exposing a timer to JS that can be used across the process boundaries. r=chutten 2017-04-25 17:11:05 +02:00
Chris H-C
a2a550854b bug 1353295 - Remove addonHistograms from Telemetry r=Dexter
addonHistograms isn't being used and has started getting in the way.
So it goes.

Leave the "Addon Histograms" section in about:telemetry for 60 days.
Remove it in bug 1355882

MozReview-Commit-ID: 4lm7ONirofl
2017-04-06 15:31:58 -04:00
Carsten "Tomcat" Book
6d5a053fe2 Backed out changeset cfe47bace342 (bug 1353295) for assertion failures 2017-04-13 09:39:17 +02:00
Chris H-C
79504a7b9d bug 1353295 - Remove addonHistograms from Telemetry r=Dexter
addonHistograms isn't being used and has started getting in the way.
So it goes.

Leave the "Addon Histograms" section in about:telemetry for 60 days.
Remove it in bug 1355882

MozReview-Commit-ID: 4lm7ONirofl
2017-04-06 15:31:58 -04:00
Gabriele Svelto
ad6e2212ea Bug 1345153 - When the pingsender fails to send a ping, persist it to disk so that it can be sent later via regular telemetry; r=chutten,ted
Currently we hand over a crash ping to the pingsender via a pipe; if the
pingsender fails to send the ping we rely on the CrashManager assembling and
sending one instead. Since the crashmanager is not aware of whether the ping
was sent or not this causes duplication on the server side. To solve this
problem we save the ping to disk instead, read it from the pingsender and
delete the file only if the ping was sent. In this scenario the CrashManager
will know that a ping was already sent and will not send a new one.

This patch removes all the code used to deal with pipes between the telemetry,
crashreporter and pingsender code and also tries to cut down the amount of
platform-specific code we have in this machinery.

MozReview-Commit-ID: ASm2jnDagCK
2017-03-27 12:38:39 +02:00
Alessio Placitelli
935681bcef Bug 1321349 - Make histogram.add check 'this' for the proper JSClass. r=gfritzsche 2017-02-21 01:55:00 +01:00
Marco Castelluccio
7a13c2898d Bug 1342034 - Fix documentation of getLoadedModules in nsITelemetry.idl. r=Dexter 2017-03-07 07:08:00 -05:00
Marco Castelluccio
2f3e68079b Bug 1330833 - Add the new "modules" (DLLs) ping type. r=Dexter,mstange,jorendorff, data-review=bsmedberg 2017-02-18 14:17:30 +00:00
Wes Kocher
3f83b41f7e Backed out 2 changesets (bug 1330833) for windows 64 xpcshell failures a=backout
Backed out changeset 466565fa382a (bug 1330833)
Backed out changeset 927194e7769d (bug 1330833)

MozReview-Commit-ID: GB4KsH29xYC
2017-02-16 17:20:54 -08:00
Marco Castelluccio
a7e3f95164 Bug 1330833 - Add the new "modules" (DLLs) ping type. r=Dexter,mstange,jorendorff, data-review=bsmedberg 2017-02-16 17:09:32 +00:00
Gabriele Svelto
7157a7973d Bug 1310703 - Add support for the pingsender to the Telemetry code; r=Dexter
MozReview-Commit-ID: 24I9wrJuFhN
2017-01-17 14:53:00 +01:00
Alessio Placitelli
1a9102ac62 Bug 1278556 - Enable child process scalar recording. r=chutten, f=gfritzsche,froydnj
MozReview-Commit-ID: IddrszBX0f5
2017-01-16 05:12:00 +01:00
Georg Fritzsche
2dacbb77e9 Bug 1329139 - Default event recording to disabled. r=dexter 2017-01-13 14:21:56 +07:00
Iaroslav (yarik) Sheptykin
7c3e98fde8 Bug 1225851: Capturing keyed call stacks on demand inside Telemetry. r=chutten,r=gfritzsche
MozReview-Commit-ID: XSs5MeQ1Bs
2016-11-17 20:52:53 +01:00
Georg Fritzsche
ee8fa595c6 Bug 1302663 - Part 2 - Implement Event Telemetry recording. r=froydnj,dexter
This implements the API, storage and serialization for Telemetry event recording.
2016-11-18 15:51:58 +01:00
Carsten "Tomcat" Book
6ee0c0ae44 Backed out changeset 64b95c8f9f12 (bug 1302663) 2016-11-18 14:27:50 +01:00