diff options
author | pam@chromium.org <pam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-26 00:53:04 +0000 |
---|---|---|
committer | pam@chromium.org <pam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-26 00:53:04 +0000 |
commit | 4733fda0dad4d53f8edf62ab1568c1e2a21b613d (patch) | |
tree | f9f11a78eaa81d318abd652ed65855da5e9189e5 /chrome/browser/history | |
parent | 64cbf8160666419a0d1bf24d1becd5c635030309 (diff) | |
download | chromium_src-4733fda0dad4d53f8edf62ab1568c1e2a21b613d.zip chromium_src-4733fda0dad4d53f8edf62ab1568c1e2a21b613d.tar.gz chromium_src-4733fda0dad4d53f8edf62ab1568c1e2a21b613d.tar.bz2 |
Add history-view-related UMA metrics and histograms for locally managed users.
BUG=171382
Review URL: https://chromiumcodereview.appspot.com/12047042
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@178971 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/history')
-rw-r--r-- | chrome/browser/history/history_database.cc | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/chrome/browser/history/history_database.cc b/chrome/browser/history/history_database.cc index e4a5920..fef9676 100644 --- a/chrome/browser/history/history_database.cc +++ b/chrome/browser/history/history_database.cc @@ -13,6 +13,7 @@ #include "base/metrics/histogram.h" #include "base/rand_util.h" #include "base/string_util.h" +#include "base/time.h" #include "sql/transaction.h" #if defined(OS_MACOSX) @@ -39,6 +40,7 @@ void ComputeDatabaseMetrics(const FilePath& history_name, if (base::RandInt(1, 100) != 50) return; // Only do this computation sometimes since it can be expensive. + base::TimeTicks start_time = base::TimeTicks::Now(); int64 file_size = 0; if (!file_util::GetFileSize(history_name, &file_size)) return; @@ -55,6 +57,59 @@ void ComputeDatabaseMetrics(const FilePath& history_name, if (!visit_count.Step()) return; UMA_HISTOGRAM_COUNTS("History.VisitTableCount", visit_count.ColumnInt(0)); + + base::Time one_week_ago = base::Time::Now() - base::TimeDelta::FromDays(7); + sql::Statement weekly_visit_sql(db.GetUniqueStatement( + "SELECT count(*) FROM visits WHERE visit_time > ?")); + weekly_visit_sql.BindInt64(0, one_week_ago.ToInternalValue()); + int weekly_visit_count = weekly_visit_sql.ColumnInt(0); + UMA_HISTOGRAM_COUNTS("History.WeeklyVisitCount", weekly_visit_count); + + base::Time one_month_ago = base::Time::Now() - base::TimeDelta::FromDays(30); + sql::Statement monthly_visit_sql(db.GetUniqueStatement( + "SELECT count(*) FROM visits WHERE visit_time > ? AND visit_time <= ?")); + monthly_visit_sql.BindInt64(0, one_month_ago.ToInternalValue()); + monthly_visit_sql.BindInt64(1, one_week_ago.ToInternalValue()); + UMA_HISTOGRAM_COUNTS("History.MonthlyVisitCount", + monthly_visit_sql.ColumnInt(0) + weekly_visit_count); + + UMA_HISTOGRAM_TIMES("History.DatabaseBasicMetricsTime", + base::TimeTicks::Now() - start_time); + + // Compute the advanced metrics even less often, pending timing data showing + // that's not necessary. + if (base::RandInt(1, 3) == 3) { + start_time = base::TimeTicks::Now(); + + // Collect all URLs visited within the last month. + sql::Statement url_sql(db.GetUniqueStatement( + "SELECT url, last_visit_time FROM urls WHERE last_visit_time > ?")); + url_sql.BindInt64(0, one_month_ago.ToInternalValue()); + + // Count URLs (which will always be unique) and unique hosts within the last + // week and last month. + int week_url_count = 0; + int month_url_count = 0; + std::set<std::string> week_hosts; + std::set<std::string> month_hosts; + while (url_sql.Step()) { + GURL url(url_sql.ColumnString(0)); + base::Time visit_time = + base::Time::FromInternalValue(url_sql.ColumnInt64(1)); + ++month_url_count; + month_hosts.insert(url.host()); + if (visit_time > one_week_ago) { + ++week_url_count; + week_hosts.insert(url.host()); + } + } + UMA_HISTOGRAM_COUNTS("History.WeeklyURLCount", week_url_count); + UMA_HISTOGRAM_COUNTS_10000("History.WeeklyHostCount", week_hosts.size()); + UMA_HISTOGRAM_COUNTS("History.MonthlyURLCount", month_url_count); + UMA_HISTOGRAM_COUNTS_10000("History.MonthlyHostCount", month_hosts.size()); + UMA_HISTOGRAM_TIMES("History.DatabaseAdvancedMetricsTime", + base::TimeTicks::Now() - start_time); + } } } // namespace |