Revert "Issue #1273 - Remove Telemetry from Gloda"

This reverts commit 4db1ae892bad565e8e59ec6034b4c98946077248.
This commit is contained in:
Matt A. Tobin 2019-11-10 20:14:28 -05:00 committed by Roy Tam
commit 8ca877d7d7
3 changed files with 31 additions and 0 deletions

View file

@ -1030,6 +1030,17 @@ var GlodaDatastore = {
var dbConnection;
// Report about the size of the database through telemetry (if there's a
// database, naturally).
if (dbFile.exists()) {
try {
let h = Services.telemetry.getHistogramById("THUNDERBIRD_GLODA_SIZE_MB");
h.add(dbFile.fileSize/1048576);
} catch (e) {
this._log.warn("Couldn't report telemetry", e);
}
}
// Create the file if it does not exist
if (!dbFile.exists()) {
this._log.debug("Creating database because it doesn't exist.");

View file

@ -1460,6 +1460,7 @@ var GlodaMsgIndexer = {
yield aCallbackHandle.pushAndGo(
this._indexMessage(msgHdr, aCallbackHandle),
{what: "indexMessage", msgHdr: msgHdr});
GlodaIndexer._indexedMessageCount++;
if (logDebug)
this._log.debug("<<< back from _indexMessage");
}

View file

@ -1006,6 +1006,10 @@ var GlodaIndexer = {
// make ourselves less responsive by drawing out the period of time we
// are dominating the main thread.
this._perfIndexStopwatch.start();
// For telemetry purposes, we want to know how many messages we've been
// processing during that batch, and how long it took, pauses included.
let t0 = Date.now();
this._indexedMessageCount = 0;
batchCount = 0;
while (batchCount < this._indexTokens) {
if ((this._callbackHandle.activeIterator === null) &&
@ -1146,6 +1150,21 @@ var GlodaIndexer = {
}
}
// All pauses have been taken, how effective were we? Report!
// XXX: there's possibly a lot of fluctuation since we go through here
// every 5 messages or even less
if (this._indexedMessageCount > 0) {
let delta = (Date.now() - t0)/1000; // in seconds
let v = Math.round(this._indexedMessageCount/delta);
try {
let h = Services.telemetry
.getHistogramById("THUNDERBIRD_INDEXING_RATE_MSG_PER_S");
h.add(v);
} catch (e) {
this._log.warn("Couldn't report telemetry", e, v);
}
}
if (batchCount > 0) {
let totalTime = this._perfIndexStopwatch.realTimeSeconds * 1000;
let timePerToken = totalTime / batchCount;