Bug 807872 - Add telemetry probes for database seizes. r=gcp

This commit is contained in:
Wes Johnston 2012-11-02 17:44:20 -07:00
parent 0fce3534e5
commit 16397d8a59
5 changed files with 62 additions and 0 deletions

View File

@ -223,6 +223,7 @@ abstract public class BrowserApp extends GeckoApp
registerEventListener("Feedback:OpenPlayStore");
registerEventListener("Feedback:MaybeLater");
registerEventListener("Dex:Load");
registerEventListener("Telemetry:Gather");
}
@Override
@ -237,6 +238,7 @@ abstract public class BrowserApp extends GeckoApp
unregisterEventListener("Feedback:OpenPlayStore");
unregisterEventListener("Feedback:MaybeLater");
unregisterEventListener("Dex:Load");
unregisterEventListener("Telemetry:Gather");
}
@Override
@ -428,6 +430,11 @@ abstract public class BrowserApp extends GeckoApp
menu.findItem(R.id.settings).setEnabled(true);
}
});
} else if (event.equals("Telemetry:Gather")) {
Telemetry.HistogramAdd("PLACES_PAGES_COUNT", BrowserDB.getCount(getContentResolver(), "history"));
Telemetry.HistogramAdd("PLACES_BOOKMARKS_COUNT", BrowserDB.getCount(getContentResolver(), "bookmarks"));
Telemetry.HistogramAdd("FENNEC_FAVICONS_COUNT", BrowserDB.getCount(getContentResolver(), "favicons"));
Telemetry.HistogramAdd("FENNEC_THUMBNAILS_COUNT", BrowserDB.getCount(getContentResolver(), "thumbnails"));
} else if (event.equals("Dex:Load")) {
String zipFile = message.getString("zipfile");
String implClass = message.getString("impl");

View File

@ -90,6 +90,8 @@ public class BrowserDB {
public void registerBookmarkObserver(ContentResolver cr, ContentObserver observer);
public void registerHistoryObserver(ContentResolver cr, ContentObserver observer);
public int getCount(ContentResolver cr, String database);
}
static {
@ -227,4 +229,8 @@ public class BrowserDB {
public static void unregisterContentObserver(ContentResolver cr, ContentObserver observer) {
cr.unregisterContentObserver(observer);
}
public static int getCount(ContentResolver cr, String database) {
return sDb.getCount(cr, database);
}
}

View File

@ -177,6 +177,38 @@ public class LocalBrowserDB implements BrowserDB.BrowserDBIface {
return new LocalDBCursor(c);
}
public int getCount(ContentResolver cr, String database) {
Cursor cursor = null;
int count = 0;
String constraint = null;
try {
Uri uri = null;
if ("history".equals(database)) {
uri = mHistoryUriWithProfile;
constraint = Combined.VISITS + " > 0";
} else if ("bookmarks".equals(database)) {
uri = mBookmarksUriWithProfile;
// ignore folders, tags, keywords, separators, etc.
constraint = Bookmarks.TYPE + " = " + Bookmarks.TYPE_BOOKMARK;
} else if ("thumbnails".equals(database)) {
uri = mImagesUriWithProfile;
constraint = Combined.THUMBNAIL + " IS NOT NULL";
} else if ("favicons".equals(database)) {
uri = mImagesUriWithProfile;
constraint = Combined.FAVICON + " IS NOT NULL";
}
if (uri != null) {
cursor = cr.query(uri, null, constraint, null, null);
count = cursor.getCount();
}
} finally {
if (cursor != null)
cursor.close();
}
debug("Got count " + count + " for " + database);
return count;
}
public Cursor filter(ContentResolver cr, CharSequence constraint, int limit) {
return filterAllSites(cr,
new String[] { Combined._ID,

View File

@ -184,6 +184,7 @@ var BrowserApp = {
Services.obs.addObserver(this, "Passwords:Init", false);
Services.obs.addObserver(this, "FormHistory:Init", false);
Services.obs.addObserver(this, "ToggleProfiling", false);
Services.obs.addObserver(this, "gather-telemetry", false);
Services.obs.addObserver(this, "sessionstore-state-purge-complete", false);
@ -1145,6 +1146,8 @@ var BrowserApp = {
} else {
profiler.StartProfiler(100000, 25, ["stackwalk"], 1);
}
} else if (aTopic == "gather-telemetry") {
sendMessageToJava({ gecko: { type: "Telemetry:Gather" }});
} else if (aTopic == "Session:Restore") {
let data = JSON.parse(aData);
this.restoreSession(data.restoringOOM, data.sessionString);

View File

@ -1754,6 +1754,20 @@
"n_buckets": 10,
"description": "PLACES: Number of keywords"
},
"FENNEC_FAVICONS_COUNT": {
"kind": "exponential",
"high": "2000",
"n_buckets": 10,
"cpp_guard": "ANDROID",
"description": "PLACES: Number of favicons stored"
},
"FENNEC_THUMBNAILS_COUNT": {
"kind": "exponential",
"high": "2000",
"n_buckets": 10,
"cpp_guard": "ANDROID",
"description": "Fennec: Number of thumbnails stored"
},
"PLACES_SORTED_BOOKMARKS_PERC": {
"kind": "linear",
"high": "100",