summaryrefslogtreecommitdiff
path: root/payload_state.cc
diff options
context:
space:
mode:
Diffstat (limited to 'payload_state.cc')
-rw-r--r--payload_state.cc23
1 files changed, 23 insertions, 0 deletions
diff --git a/payload_state.cc b/payload_state.cc
index 20e2cacb..a933ea53 100644
--- a/payload_state.cc
+++ b/payload_state.cc
@@ -156,6 +156,7 @@ void PayloadState::UpdateSucceeded() {
ReportRebootMetrics();
ReportDurationMetrics();
ReportUpdatesAbandonedCountMetric();
+ ReportPayloadTypeMetric();
// Reset the number of responses seen since it counts from the last
// successful update, e.g. now.
@@ -877,6 +878,28 @@ void PayloadState::ReportDurationMetrics() {
prefs_->Delete(kPrefsUpdateDurationUptime);
}
+void PayloadState::ReportPayloadTypeMetric() {
+ string metric;
+ PayloadType uma_payload_type;
+ OmahaRequestParams* params = system_state_->request_params();
+
+ if (response_.is_delta_payload) {
+ uma_payload_type = kPayloadTypeDelta;
+ } else if (params->delta_okay()) {
+ uma_payload_type = kPayloadTypeFull;
+ } else { // Full payload, delta was not allowed by request.
+ uma_payload_type = kPayloadTypeForcedFull;
+ }
+
+ metric = "Installer.PayloadFormat";
+ system_state_->metrics_lib()->SendEnumToUMA(
+ metric,
+ uma_payload_type,
+ kNumPayloadTypes);
+ LOG(INFO) << "Uploading " << utils::ToString(uma_payload_type)
+ << " for metric " << metric;
+}
+
string PayloadState::GetPrefsKey(const string& prefix, DownloadSource source) {
return prefix + "-from-" + utils::ToString(source);
}