Index: sync/engine/commit.cc |
diff --git a/sync/engine/commit.cc b/sync/engine/commit.cc |
index f607be4c8b4e91499e2d1184c9c8d491d6b0d7ba..743996d026ba062c777f01f5a0615a506cc40b3f 100644 |
--- a/sync/engine/commit.cc |
+++ b/sync/engine/commit.cc |
@@ -4,6 +4,7 @@ |
#include "sync/engine/commit.h" |
+#include "base/metrics/sparse_histogram.h" |
#include "base/trace_event/trace_event.h" |
#include "sync/engine/commit_contribution.h" |
#include "sync/engine/commit_processor.h" |
@@ -13,6 +14,7 @@ |
#include "sync/internal_api/public/events/commit_request_event.h" |
#include "sync/internal_api/public/events/commit_response_event.h" |
#include "sync/sessions/sync_session.h" |
+#include "sync/util/data_type_histogram.h" |
namespace syncer { |
@@ -70,11 +72,19 @@ Commit* Commit::Init( |
enabled_types, |
commit_message); |
+ int previous_message_size = message.ByteSize(); |
// Finally, serialize all our contributions. |
- for (std::map<ModelType, CommitContribution*>::const_iterator it = |
- contributions.begin(); |
- it != contributions.end(); ++it) { |
- it->second->AddToCommitMessage(&message); |
+ for (const auto& contribution : contributions) { |
+ contribution.second->AddToCommitMessage(&message); |
+ int current_entry_size = message.ByteSize() - previous_message_size; |
+ previous_message_size = message.ByteSize(); |
+ int local_integer_model_type = ModelTypeToHistogramInt(contribution.first); |
+ if (current_entry_size > 0) { |
+ SyncRecordDatatypeBin("DataUse.Sync.Upload.Bytes", |
+ local_integer_model_type, current_entry_size); |
+ } |
+ UMA_HISTOGRAM_SPARSE_SLOWLY("DataUse.Sync.Upload.Count", |
+ local_integer_model_type); |
} |
// If we made it this far, then we've successfully prepared a commit message. |