Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(43)

Side by Side Diff: chrome/browser/resources/file_manager/js/metrics.js

Issue 8819013: Add UMA metrics to Photo Editor (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Better trace Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 /** 5 /**
6 * @fileoverview Utility methods for accessing chrome.metricsPrivate API. 6 * @fileoverview Utility methods for accessing chrome.metricsPrivate API.
7 * 7 *
8 * To be included as a first script in main.html 8 * To be included as a first script in main.html
9 */ 9 */
10 10
11 var metrics = {}; 11 var metrics = {};
12 12
13 metrics.intervals = {}; 13 metrics.intervals = {};
14 14
15 metrics.startInterval = function(name) { 15 metrics.startInterval = function(name) {
16 metrics.intervals[name] = Date.now(); 16 metrics.intervals[name] = Date.now();
17 }; 17 };
18 18
19 metrics.startInterval('Load.Total'); 19 metrics.startInterval('Load.Total');
20 metrics.startInterval('Load.Script'); 20 metrics.startInterval('Load.Script');
21 21
22 metrics.convertName_ = function(name) { 22 metrics.convertName_ = function(name) {
23 return 'FileBrowser.' + name; 23 return 'FileBrowser.' + name;
24 }; 24 };
25 25
26 metrics.recordTime = function(name) { 26 metrics.decorate = function(name) {
27 this[name] = function() {
28 var args = Array.apply(null, arguments);
29 args[0] = metrics.convertName_(args[0]);
30 chrome.metricsPrivate[name].apply(chrome.metricsPrivate, args);
31 if (localStorage.logMetrics) {
32 console.log('chrome.metricsPrivate.' + name, args);
33 }
34 }
35 };
36
37 metrics.decorate('recordMediumCount');
38 metrics.decorate('recordSmallCount');
39 metrics.decorate('recordTime');
40 metrics.decorate('recordUserAction');
41
42 metrics.recordInterval = function(name) {
27 if (name in metrics.intervals) { 43 if (name in metrics.intervals) {
28 var elapsed = Date.now() - metrics.intervals[name]; 44 metrics.recordTime(name, Date.now() - metrics.intervals[name]);
29 console.log(name + ': ' + elapsed + 'ms');
30 chrome.metricsPrivate.recordTime(metrics.convertName_(name), elapsed);
31 } else { 45 } else {
32 console.error('Unknown interval: ' + name); 46 console.error('Unknown interval: ' + name);
33 } 47 }
34 }; 48 };
35 49
36 metrics.recordAction = function(name) { 50 metrics.recordEnum = function(name, value, validValues) {
37 chrome.metricsPrivate.recordUserAction(metrics.convertName_(name)); 51 var maxValue;
52 var index;
53 if (validValues.constructor.name == 'Array') {
54 index = validValues.indexOf(value);
55 maxValue = validValues.length;
dgozman 2011/12/06 15:45:56 I think, it should be validValues.length - 1
Vladislav Kaznacheev 2011/12/06 16:07:44 Done.
56 } else {
57 index = value;
58 maxValue = validValues - 1;
59 }
60 // Collect invalid values in the extra bucket at the end.
61 if (index < 0 || index > maxValue)
62 index = maxValue;
63
64 var metricDescr = {
65 'metricName': metrics.convertName_(name),
66 'type': 'histogram-linear',
67 'min': 0,
68 'max': maxValue,
69 'buckets': maxValue + 1
70 };
71 chrome.metricsPrivate.recordValue(metricDescr, index);
72 if (localStorage.logMetrics) {
73 console.log('chrome.metricsPrivate.recordValue',
74 [metricDescr.metricName, index, value]);
75 }
38 }; 76 };
39
40 metrics.reportCount = function(name, value) {
41 chrome.metricsPrivate.recordMediumCount(metrics.convertName_(name), value);
42 };
43
44 metrics.recordEnum = function(name, value, validValues) {
45 var index = validValues.indexOf(value);
46
47 // Collect invalid values in the extra bucket at the end.
48 if (index < 0) index = validValues.length;
49
50 chrome.metricsPrivate.recordValue({
51 'metricName': metrics.convertName_(name),
52 'type': 'histogram-linear',
53 'min': 0,
54 'max': validValues.length,
55 'buckets': validValues.length + 1
56 },
57 index);
58 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698