summaryrefslogtreecommitdiff
path: root/mailnews
diff options
context:
space:
mode:
authorMatt A. Tobin <email@mattatobin.com>2019-11-10 20:14:28 -0500
committerMatt A. Tobin <email@mattatobin.com>2019-11-10 20:14:28 -0500
commit4d6dbd35f17620aaad7f4d4ade5d3a2634e1d067 (patch)
treeca0a81559d4a46f274283267a98ef3f3bc80d16e /mailnews
parenta2a658f885ea5cca042709f5a53224dbe57fb478 (diff)
downloaduxp-4d6dbd35f17620aaad7f4d4ade5d3a2634e1d067.tar.gz
Revert "Issue #1273 - Remove Telemetry from Gloda"
This reverts commit 4db1ae892bad565e8e59ec6034b4c98946077248.
Diffstat (limited to 'mailnews')
-rw-r--r--mailnews/db/gloda/modules/datastore.js11
-rw-r--r--mailnews/db/gloda/modules/index_msg.js1
-rw-r--r--mailnews/db/gloda/modules/indexer.js19
3 files changed, 31 insertions, 0 deletions
diff --git a/mailnews/db/gloda/modules/datastore.js b/mailnews/db/gloda/modules/datastore.js
index c9374c5637..70bbdc6a75 100644
--- a/mailnews/db/gloda/modules/datastore.js
+++ b/mailnews/db/gloda/modules/datastore.js
@@ -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.");
diff --git a/mailnews/db/gloda/modules/index_msg.js b/mailnews/db/gloda/modules/index_msg.js
index 8aec476a3c..d4d7a8ceb7 100644
--- a/mailnews/db/gloda/modules/index_msg.js
+++ b/mailnews/db/gloda/modules/index_msg.js
@@ -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");
}
diff --git a/mailnews/db/gloda/modules/indexer.js b/mailnews/db/gloda/modules/indexer.js
index e75b6796b9..f6c9395306 100644
--- a/mailnews/db/gloda/modules/indexer.js
+++ b/mailnews/db/gloda/modules/indexer.js
@@ -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;