mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-16 23:05:42 +00:00
bug 1470493 - Render "event" ping events in about:telemetry r=janerik
MozReview-Commit-ID: 8U54Cs6obOs Differential Revision: https://phabricator.services.mozilla.com/D1882 --HG-- extra : moz-landing-system : lando
This commit is contained in:
parent
f53f58d169
commit
9c9f1dff7c
@ -379,10 +379,19 @@ var PingPicker = {
|
|||||||
|
|
||||||
_updateCurrentPingData() {
|
_updateCurrentPingData() {
|
||||||
const subsession = document.getElementById("show-subsession-data").checked;
|
const subsession = document.getElementById("show-subsession-data").checked;
|
||||||
const ping = TelemetryController.getCurrentPingData(subsession);
|
let ping = TelemetryController.getCurrentPingData(subsession);
|
||||||
if (!ping) {
|
if (!ping) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// augment ping payload with event telemetry
|
||||||
|
let eventSnapshot = Telemetry.snapshotEvents(Telemetry.DATASET_RELEASE_CHANNEL_OPTIN, false);
|
||||||
|
for (let process of Object.keys(eventSnapshot)) {
|
||||||
|
if (process in ping.payload.processes) {
|
||||||
|
ping.payload.processes[process].events = eventSnapshot[process].filter(e => !e[1].startsWith("telemetry.test"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
displayPingData(ping, true);
|
displayPingData(ping, true);
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -1708,6 +1717,47 @@ var KeyedScalars = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
var Events = {
|
||||||
|
/**
|
||||||
|
* Render the event data - if present - from the payload in a simple table.
|
||||||
|
* @param aPayload A payload object to render the data from.
|
||||||
|
*/
|
||||||
|
render(aPayload) {
|
||||||
|
let eventsSection = document.getElementById("events");
|
||||||
|
removeAllChildNodes(eventsSection);
|
||||||
|
|
||||||
|
let processesSelect = document.getElementById("processes");
|
||||||
|
let selectedProcess = processesSelect.selectedOptions.item(0).getAttribute("value");
|
||||||
|
|
||||||
|
if (!aPayload.processes ||
|
||||||
|
!selectedProcess ||
|
||||||
|
!(selectedProcess in aPayload.processes)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
let events = aPayload.processes[selectedProcess].events || {};
|
||||||
|
let hasData = Array.from(processesSelect.options).some((option) => {
|
||||||
|
let value = option.getAttribute("value");
|
||||||
|
let evts = aPayload.processes[value].events;
|
||||||
|
return evts && Object.keys(evts).length > 0;
|
||||||
|
});
|
||||||
|
setHasData("events-section", hasData);
|
||||||
|
if (Object.keys(events).length > 0) {
|
||||||
|
const headings = [
|
||||||
|
"timestampHeader",
|
||||||
|
"categoryHeader",
|
||||||
|
"methodHeader",
|
||||||
|
"objectHeader",
|
||||||
|
"valuesHeader",
|
||||||
|
"extraHeader",
|
||||||
|
].map(h => bundle.GetStringFromName(h));
|
||||||
|
|
||||||
|
const table = GenericTable.render(events, headings);
|
||||||
|
eventsSection.appendChild(table);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Helper function for showing either the toggle element or "No data collected" message for a section
|
* Helper function for showing either the toggle element or "No data collected" message for a section
|
||||||
*
|
*
|
||||||
@ -2306,6 +2356,9 @@ function displayRichPingData(ping, updatePayloadList) {
|
|||||||
// Show keyed histogram data
|
// Show keyed histogram data
|
||||||
KeyedHistogramSection.render(payload);
|
KeyedHistogramSection.render(payload);
|
||||||
|
|
||||||
|
// Show event data.
|
||||||
|
Events.render(payload);
|
||||||
|
|
||||||
// Show captured stacks.
|
// Show captured stacks.
|
||||||
CapturedStacks.render(payload);
|
CapturedStacks.render(payload);
|
||||||
|
|
||||||
|
@ -57,6 +57,9 @@
|
|||||||
<div class="category" value="keyed-histograms-section">
|
<div class="category" value="keyed-histograms-section">
|
||||||
<span class="category-name">&aboutTelemetry.keyedHistogramsSection;</span>
|
<span class="category-name">&aboutTelemetry.keyedHistogramsSection;</span>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="category" value="events-section">
|
||||||
|
<span class="category-name">&aboutTelemetry.eventsSection;</span>
|
||||||
|
</div>
|
||||||
<div class="category" value="simple-measurements-section">
|
<div class="category" value="simple-measurements-section">
|
||||||
<span class="category-name">&aboutTelemetry.simpleMeasurementsSection;</span>
|
<span class="category-name">&aboutTelemetry.simpleMeasurementsSection;</span>
|
||||||
</div>
|
</div>
|
||||||
|
@ -34,6 +34,7 @@
|
|||||||
<!ENTITY aboutTelemetry.keyedScalarsSection "Keyed Scalars">
|
<!ENTITY aboutTelemetry.keyedScalarsSection "Keyed Scalars">
|
||||||
<!ENTITY aboutTelemetry.histogramsSection "Histograms">
|
<!ENTITY aboutTelemetry.histogramsSection "Histograms">
|
||||||
<!ENTITY aboutTelemetry.keyedHistogramsSection "Keyed Histograms">
|
<!ENTITY aboutTelemetry.keyedHistogramsSection "Keyed Histograms">
|
||||||
|
<!ENTITY aboutTelemetry.eventsSection "Events">
|
||||||
<!ENTITY aboutTelemetry.simpleMeasurementsSection "Simple Measurements">
|
<!ENTITY aboutTelemetry.simpleMeasurementsSection "Simple Measurements">
|
||||||
<!ENTITY aboutTelemetry.slowSqlSection "Slow SQL Statements">
|
<!ENTITY aboutTelemetry.slowSqlSection "Slow SQL Statements">
|
||||||
<!ENTITY aboutTelemetry.addonDetailsSection "Add-on Details">
|
<!ENTITY aboutTelemetry.addonDetailsSection "Add-on Details">
|
||||||
|
@ -94,3 +94,8 @@ memoryMapTitle = Memory map:
|
|||||||
|
|
||||||
errorFetchingSymbols = An error occurred while fetching symbols. Check that you are connected to the Internet and try again.
|
errorFetchingSymbols = An error occurred while fetching symbols. Check that you are connected to the Internet and try again.
|
||||||
|
|
||||||
|
timestampHeader = timestamp
|
||||||
|
categoryHeader = category
|
||||||
|
methodHeader = method
|
||||||
|
objectHeader = object
|
||||||
|
extraHeader = extra
|
||||||
|
Loading…
Reference in New Issue
Block a user