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

Side by Side Diff: ios/chrome/today_extension/today_metrics_logger.mm

Issue 2910023003: Change the logic for discarding all non-histogram logs because of actions/omnibox events to truncat… (Closed)
Patch Set: today extension Created 3 years, 6 months 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
« no previous file with comments | « components/metrics/metrics_service.cc ('k') | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 #import <UIKit/UIKit.h> 5 #import <UIKit/UIKit.h>
6 6
7 #import "ios/chrome/today_extension/today_metrics_logger.h" 7 #import "ios/chrome/today_extension/today_metrics_logger.h"
8 8
9 #include "base/base64.h" 9 #include "base/base64.h"
10 #include "base/cpu.h" 10 #include "base/cpu.h"
(...skipping 28 matching lines...) Expand all
39 39
40 // User default key to keep track of the current log session ID. Increased every 40 // User default key to keep track of the current log session ID. Increased every
41 // time a log is created. This ID must be offset using 41 // time a log is created. This ID must be offset using
42 // app_group::AppGroupSessionID. 42 // app_group::AppGroupSessionID.
43 NSString* const kTodayExtensionMetricsSessionID = @"MetricsSessionID"; 43 NSString* const kTodayExtensionMetricsSessionID = @"MetricsSessionID";
44 44
45 // User default key to the current log serialized. In case of an extension 45 // User default key to the current log serialized. In case of an extension
46 // restart, this log can be written to disk for upload. 46 // restart, this log can be written to disk for upload.
47 NSString* const kTodayExtensionMetricsCurrentLog = @"MetricsCurrentLog"; 47 NSString* const kTodayExtensionMetricsCurrentLog = @"MetricsCurrentLog";
48 48
49 // Maximum number of event in a log.
50 const int kMaxEventsPerLog = 1000;
51
52 // Maximum age of a log. 49 // Maximum age of a log.
53 const int kMaxLogLifeTimeInSeconds = 86400; 50 const int kMaxLogLifeTimeInSeconds = 86400;
54 51
55 // A simple implementation of metrics::MetricsServiceClient. 52 // A simple implementation of metrics::MetricsServiceClient.
56 // As logs are uploaded by Chrome application, not all methods are needed. 53 // As logs are uploaded by Chrome application, not all methods are needed.
57 // Only the method needed to initialize the metrics logs are implementsd. 54 // Only the method needed to initialize the metrics logs are implementsd.
58 class TodayMetricsServiceClient : public metrics::MetricsServiceClient { 55 class TodayMetricsServiceClient : public metrics::MetricsServiceClient {
59 public: 56 public:
60 TodayMetricsServiceClient() {} 57 TodayMetricsServiceClient() {}
61 metrics::MetricsService* GetMetricsService() override; 58 metrics::MetricsService* GetMetricsService() override;
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
200 histogram_snapshot_manager_.PrepareDeltas( 197 histogram_snapshot_manager_.PrepareDeltas(
201 base::StatisticsRecorder::begin(false), base::StatisticsRecorder::end(), 198 base::StatisticsRecorder::begin(false), base::StatisticsRecorder::end(),
202 base::Histogram::kNoFlags, base::Histogram::kNoFlags); 199 base::Histogram::kNoFlags, base::Histogram::kNoFlags);
203 std::string encoded_log; 200 std::string encoded_log;
204 log_->GetOpenEncodedLog(&encoded_log); 201 log_->GetOpenEncodedLog(&encoded_log);
205 NSData* ns_encoded_log = 202 NSData* ns_encoded_log =
206 [NSData dataWithBytes:encoded_log.c_str() length:encoded_log.length()]; 203 [NSData dataWithBytes:encoded_log.c_str() length:encoded_log.length()];
207 [[NSUserDefaults standardUserDefaults] 204 [[NSUserDefaults standardUserDefaults]
208 setObject:ns_encoded_log 205 setObject:ns_encoded_log
209 forKey:kTodayExtensionMetricsCurrentLog]; 206 forKey:kTodayExtensionMetricsCurrentLog];
210 if (log_->num_events() >= kMaxEventsPerLog || 207 log_->TruncateEvents();
211 (base::TimeTicks::Now() - log_->creation_time()).InSeconds() >= 208 if ((base::TimeTicks::Now() - log_->creation_time()).InSeconds() >=
212 kMaxLogLifeTimeInSeconds) { 209 kMaxLogLifeTimeInSeconds) {
213 CreateNewLog(); 210 CreateNewLog();
214 } 211 }
215 } 212 }
216 213
217 bool TodayMetricsLogger::CreateNewLog() { 214 bool TodayMetricsLogger::CreateNewLog() {
218 id previous_log = [[NSUserDefaults standardUserDefaults] 215 id previous_log = [[NSUserDefaults standardUserDefaults]
219 dataForKey:kTodayExtensionMetricsCurrentLog]; 216 dataForKey:kTodayExtensionMetricsCurrentLog];
220 if (previous_log) { 217 if (previous_log) {
221 app_group::client_app::AddPendingLog(previous_log, 218 app_group::client_app::AddPendingLog(previous_log,
222 app_group::APP_GROUP_TODAY_EXTENSION); 219 app_group::APP_GROUP_TODAY_EXTENSION);
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
298 void TodayMetricsLogger::UniqueInconsistencyDetected( 295 void TodayMetricsLogger::UniqueInconsistencyDetected(
299 base::HistogramBase::Inconsistency problem) { 296 base::HistogramBase::Inconsistency problem) {
300 UMA_HISTOGRAM_ENUMERATION("Histogram.InconsistenciesBrowserUnique", problem, 297 UMA_HISTOGRAM_ENUMERATION("Histogram.InconsistenciesBrowserUnique", problem,
301 base::HistogramBase::NEVER_EXCEEDED_VALUE); 298 base::HistogramBase::NEVER_EXCEEDED_VALUE);
302 } 299 }
303 300
304 void TodayMetricsLogger::InconsistencyDetectedInLoggedCount(int amount) { 301 void TodayMetricsLogger::InconsistencyDetectedInLoggedCount(int amount) {
305 UMA_HISTOGRAM_COUNTS("Histogram.InconsistentSnapshotBrowser", 302 UMA_HISTOGRAM_COUNTS("Histogram.InconsistentSnapshotBrowser",
306 std::abs(amount)); 303 std::abs(amount));
307 } 304 }
OLDNEW
« no previous file with comments | « components/metrics/metrics_service.cc ('k') | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698