1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CHROME_BROWSER_PERFORMANCE_MONITOR_METRIC_H_
6 #define CHROME_BROWSER_PERFORMANCE_MONITOR_METRIC_H_
9 #include "base/time/time.h"
11 namespace performance_monitor
{
13 // IMPORTANT: To add new metrics, please
14 // - Place the new metric above METRIC_NUMBER_OF_METRICS.
15 // - Add a member to the MetricKeyChar enum in key_builder.cc.
16 // - Add the appropriate messages in generated_resources.grd.
17 // - Add the appropriate functions in
18 // chrome/browser/ui/webui/performance_monitor/performance_monitor_l10n.h.
22 // CPU and memory usage are combined for all Chrome-related processes.
24 METRIC_PRIVATE_MEMORY_USAGE
,
25 METRIC_SHARED_MEMORY_USAGE
,
27 // Timing measurements; these are all independent metrics (e.g., session
28 // restore time is independent of startup time, even though they may happen
29 // in sequence). Test startup time refers to any non-normal startup time, e.g.
30 // when we run test suites.
32 METRIC_TEST_STARTUP_TIME
,
33 METRIC_SESSION_RESTORE_TIME
,
34 METRIC_PAGE_LOAD_TIME
,
36 // Total number of bytes read since PerformanceMonitor first started running.
37 METRIC_NETWORK_BYTES_READ
,
39 METRIC_NUMBER_OF_METRICS
45 Metric(MetricType metric_type
,
46 const base::Time
& metric_time
,
47 const double metric_value
);
48 Metric(MetricType metric_type
,
49 const std::string
& metric_time
,
50 const std::string
& metric_value
);
53 // Check the value in the metric to make sure that it is reasonable. Since
54 // some metric-gathering methods will fail and return incorrect values, we
55 // need to try to weed these out as best we can.
58 // This converts the double stored in value to a string format. This will
59 // not perform any checking on the validity of the metric, and only makes
60 // sense if the metric IsValid().
61 std::string
ValueAsString() const;
68 } // namespace performance_monitor
70 #endif // CHROME_BROWSER_PERFORMANCE_MONITOR_METRIC_H_