Bug 1563239 - Do not summarize builtin events to the "dynamic" process r=janerik

Check if the dynamic event is built-in or not before summarizing.

Differential Revision: https://phabricator.services.mozilla.com/D41924

--HG--
extra : moz-landing-system : lando
This commit is contained in:
singuliere 2019-08-15 16:27:54 +00:00
parent 1f8e589f72
commit 3fcd223b56
2 changed files with 19 additions and 2 deletions

View File

@ -443,7 +443,9 @@ RecordEventResult RecordEvent(const StaticMutexAutoLock& lock,
// Fixup the process id only for non-builtin (e.g. supporting build faster)
// dynamic events.
if (eventKey->dynamic && !(*gDynamicEventInfo)[eventKey->id].builtin) {
auto dynamicNonBuiltin =
eventKey->dynamic && !(*gDynamicEventInfo)[eventKey->id].builtin;
if (dynamicNonBuiltin) {
processType = ProcessID::Dynamic;
}
@ -462,7 +464,7 @@ RecordEventResult RecordEvent(const StaticMutexAutoLock& lock,
// Count the number of times this event has been recorded, even if its
// category does not have recording enabled.
TelemetryScalar::SummarizeEvent(UniqueEventName(category, method, object),
processType, eventKey->dynamic);
processType, dynamicNonBuiltin);
// Check whether this event's category has recording enabled
if (!gEnabledCategories.GetEntry(GetCategory(lock, *eventKey))) {

View File

@ -164,6 +164,7 @@ add_task(
add_task(async function test_dynamicBuiltinEvents() {
Telemetry.clearEvents();
Telemetry.clearScalars();
Telemetry.canRecordExtended = true;
const TEST_EVENT_NAME = "telemetry.test.dynamicbuiltin";
@ -200,6 +201,13 @@ add_task(async function test_dynamicBuiltinEvents() {
);
Assert.ok("parent" in snapshot, "Should have parent events in the snapshot.");
// For checking event summaries
const scalars = Telemetry.getSnapshotForKeyedScalars("main", true);
Assert.ok(
"parent" in scalars,
"Should have parent scalars in the main snapshot."
);
let expected = [
[TEST_EVENT_NAME, "test1", "object1"],
[TEST_EVENT_NAME, "test2", "object1", null, { key1: "foo", key2: "bar" }],
@ -217,6 +225,13 @@ add_task(async function test_dynamicBuiltinEvents() {
expected[i],
"Should have recorded the expected event data."
);
const uniqueEventName = `${expected[i][0]}#${expected[i][1]}#${
expected[i][2]
}`;
const summaryCount =
scalars.parent["telemetry.event_counts"][uniqueEventName];
Assert.equal(1, summaryCount, `${uniqueEventName} had wrong summary count`);
}
});