data_type_histogram.cc 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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
  3. // found in the LICENSE file.
  4. #include "components/sync/base/data_type_histogram.h"
  5. #include <string>
  6. #include "base/metrics/histogram_functions.h"
  7. namespace syncer {
  8. namespace {
  9. const char kModelTypeMemoryHistogramPrefix[] = "Sync.ModelTypeMemoryKB.";
  10. const char kModelTypeCountHistogramPrefix[] = "Sync.ModelTypeCount4.";
  11. const char kModelTypeUpdateDropHistogramPrefix[] = "Sync.ModelTypeUpdateDrop.";
  12. std::string GetHistogramSuffixForUpdateDropReason(UpdateDropReason reason) {
  13. switch (reason) {
  14. case UpdateDropReason::kInconsistentClientTag:
  15. return "InconsistentClientTag";
  16. case UpdateDropReason::kCannotGenerateStorageKey:
  17. return "CannotGenerateStorageKey";
  18. case UpdateDropReason::kTombstoneInFullUpdate:
  19. return "TombstoneInFullUpdate";
  20. case UpdateDropReason::kTombstoneForNonexistentInIncrementalUpdate:
  21. return "TombstoneForNonexistentInIncrementalUpdate";
  22. case UpdateDropReason::kDecryptionPending:
  23. return "DecryptionPending";
  24. case UpdateDropReason::kDecryptionPendingForTooLong:
  25. return "DecryptionPendingForTooLong";
  26. case UpdateDropReason::kFailedToDecrypt:
  27. return "FailedToDecrypt";
  28. }
  29. }
  30. } // namespace
  31. void SyncRecordModelTypeUpdateDropReason(UpdateDropReason reason,
  32. ModelType type) {
  33. std::string full_histogram_name =
  34. kModelTypeUpdateDropHistogramPrefix +
  35. GetHistogramSuffixForUpdateDropReason(reason);
  36. base::UmaHistogramEnumeration(full_histogram_name,
  37. ModelTypeHistogramValue(type));
  38. }
  39. void SyncRecordModelTypeMemoryHistogram(ModelType model_type, size_t bytes) {
  40. std::string type_string = ModelTypeToHistogramSuffix(model_type);
  41. std::string full_histogram_name =
  42. kModelTypeMemoryHistogramPrefix + type_string;
  43. base::UmaHistogramCounts1M(full_histogram_name, bytes / 1024);
  44. }
  45. void SyncRecordModelTypeCountHistogram(ModelType model_type, size_t count) {
  46. std::string type_string = ModelTypeToHistogramSuffix(model_type);
  47. std::string full_histogram_name =
  48. kModelTypeCountHistogramPrefix + type_string;
  49. base::UmaHistogramCounts1M(full_histogram_name, count);
  50. }
  51. } // namespace syncer