| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 #include "components/metrics/metrics_log.h" | 5 #include "components/metrics/metrics_log.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <string> | 10 #include <string> |
| (...skipping 24 matching lines...) Expand all Loading... |
| 35 | 35 |
| 36 #if defined(OS_WIN) | 36 #if defined(OS_WIN) |
| 37 #include "base/win/current_module.h" | 37 #include "base/win/current_module.h" |
| 38 #endif | 38 #endif |
| 39 | 39 |
| 40 using base::SampleCountIterator; | 40 using base::SampleCountIterator; |
| 41 typedef variations::ActiveGroupId ActiveGroupId; | 41 typedef variations::ActiveGroupId ActiveGroupId; |
| 42 | 42 |
| 43 namespace metrics { | 43 namespace metrics { |
| 44 | 44 |
| 45 namespace internal { |
| 46 // Maximum number of events before truncation. |
| 47 extern const int kOmniboxEventLimit = 5000; |
| 48 extern const int kUserActionEventLimit = 5000; |
| 49 } |
| 50 |
| 45 namespace { | 51 namespace { |
| 46 | 52 |
| 47 // Any id less than 16 bytes is considered to be a testing id. | 53 // Any id less than 16 bytes is considered to be a testing id. |
| 48 bool IsTestingID(const std::string& id) { | 54 bool IsTestingID(const std::string& id) { |
| 49 return id.size() < 16; | 55 return id.size() < 16; |
| 50 } | 56 } |
| 51 | 57 |
| 52 void WriteFieldTrials(const std::vector<ActiveGroupId>& field_trial_ids, | 58 void WriteFieldTrials(const std::vector<ActiveGroupId>& field_trial_ids, |
| 53 SystemProfileProto* system_profile) { | 59 SystemProfileProto* system_profile) { |
| 54 for (std::vector<ActiveGroupId>::const_iterator it = | 60 for (std::vector<ActiveGroupId>::const_iterator it = |
| (...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 316 if (success) | 322 if (success) |
| 317 *app_version = system_profile->app_version(); | 323 *app_version = system_profile->app_version(); |
| 318 return success; | 324 return success; |
| 319 } | 325 } |
| 320 | 326 |
| 321 void MetricsLog::CloseLog() { | 327 void MetricsLog::CloseLog() { |
| 322 DCHECK(!closed_); | 328 DCHECK(!closed_); |
| 323 closed_ = true; | 329 closed_ = true; |
| 324 } | 330 } |
| 325 | 331 |
| 332 void MetricsLog::TruncateEvents() { |
| 333 DCHECK(!closed_); |
| 334 if (uma_proto_.user_action_event_size() > internal::kUserActionEventLimit) { |
| 335 UMA_HISTOGRAM_COUNTS_100000("UMA.TruncatedEvents.UserAction", |
| 336 uma_proto_.user_action_event_size()); |
| 337 uma_proto_.mutable_user_action_event()->DeleteSubrange( |
| 338 internal::kUserActionEventLimit, |
| 339 uma_proto_.user_action_event_size() - internal::kUserActionEventLimit); |
| 340 } |
| 341 |
| 342 if (uma_proto_.omnibox_event_size() > internal::kOmniboxEventLimit) { |
| 343 UMA_HISTOGRAM_COUNTS_100000("UMA.TruncatedEvents.Omnibox", |
| 344 uma_proto_.omnibox_event_size()); |
| 345 uma_proto_.mutable_omnibox_event()->DeleteSubrange( |
| 346 internal::kOmniboxEventLimit, |
| 347 uma_proto_.omnibox_event_size() - internal::kOmniboxEventLimit); |
| 348 } |
| 349 } |
| 350 |
| 326 void MetricsLog::GetEncodedLog(std::string* encoded_log) { | 351 void MetricsLog::GetEncodedLog(std::string* encoded_log) { |
| 327 DCHECK(closed_); | 352 DCHECK(closed_); |
| 328 uma_proto_.SerializeToString(encoded_log); | 353 uma_proto_.SerializeToString(encoded_log); |
| 329 } | 354 } |
| 330 | 355 |
| 331 } // namespace metrics | 356 } // namespace metrics |
| OLD | NEW |