diff options
Diffstat (limited to 'payload_state.cc')
-rw-r--r-- | payload_state.cc | 23 |
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); } |