• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //
2 // Copyright (C) 2017 The Android Open Source Project
3 //
4 // Licensed under the Apache License, Version 2.0 (the "License");
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
7 //
8 //      http://www.apache.org/licenses/LICENSE-2.0
9 //
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15 //
16 
17 #ifndef UPDATE_ENGINE_AOSP_METRICS_REPORTER_ANDROID_H_
18 #define UPDATE_ENGINE_AOSP_METRICS_REPORTER_ANDROID_H_
19 
20 #include <string>
21 
22 #include "update_engine/common/error_code.h"
23 #include "update_engine/common/metrics_constants.h"
24 #include "update_engine/common/metrics_reporter_interface.h"
25 #include "update_engine/payload_consumer/install_plan.h"
26 
27 namespace chromeos_update_engine {
28 
29 class MetricsReporterAndroid : public MetricsReporterInterface {
30  public:
MetricsReporterAndroid(DynamicPartitionControlInterface * dynamic_partition_control,const InstallPlan * install_plan)31   explicit MetricsReporterAndroid(
32       DynamicPartitionControlInterface* dynamic_partition_control,
33       const InstallPlan* install_plan)
34       : dynamic_partition_control_(dynamic_partition_control),
35         install_plan_(install_plan) {}
36 
37   ~MetricsReporterAndroid() override = default;
38 
ReportRollbackMetrics(metrics::RollbackResult result)39   void ReportRollbackMetrics(metrics::RollbackResult result) override {}
40 
ReportEnterpriseRollbackMetrics(bool success,const std::string & rollback_version)41   void ReportEnterpriseRollbackMetrics(
42       bool success, const std::string& rollback_version) override {}
43 
ReportDailyMetrics(base::TimeDelta os_age)44   void ReportDailyMetrics(base::TimeDelta os_age) override {}
45 
ReportUpdateCheckMetrics(metrics::CheckResult result,metrics::CheckReaction reaction,metrics::DownloadErrorCode download_error_code)46   void ReportUpdateCheckMetrics(
47       metrics::CheckResult result,
48       metrics::CheckReaction reaction,
49       metrics::DownloadErrorCode download_error_code) override {}
50 
51   void ReportUpdateAttemptMetrics(int attempt_number,
52                                   PayloadType payload_type,
53                                   base::TimeDelta duration,
54                                   base::TimeDelta duration_uptime,
55                                   int64_t payload_size,
56                                   metrics::AttemptResult attempt_result,
57                                   ErrorCode internal_error_code) override;
58 
59   void ReportUpdateAttemptDownloadMetrics(
60       int64_t payload_bytes_downloaded,
61       int64_t payload_download_speed_bps,
62       DownloadSource download_source,
63       metrics::DownloadErrorCode payload_download_error_code,
64       metrics::ConnectionType connection_type) override;
65 
66   void ReportAbnormallyTerminatedUpdateAttemptMetrics() override;
67 
68   void ReportSuccessfulUpdateMetrics(
69       int attempt_count,
70       int updates_abandoned_count,
71       PayloadType payload_type,
72       int64_t payload_size,
73       int64_t num_bytes_downloaded[kNumDownloadSources],
74       int download_overhead_percentage,
75       base::TimeDelta total_duration,
76       base::TimeDelta total_duration_uptime,
77       int reboot_count,
78       int url_switch_count) override;
79 
ReportCertificateCheckMetrics(ServerToCheck server_to_check,CertificateCheckResult result)80   void ReportCertificateCheckMetrics(ServerToCheck server_to_check,
81                                      CertificateCheckResult result) override {}
82 
ReportFailedUpdateCount(int target_attempt)83   void ReportFailedUpdateCount(int target_attempt) override {}
84 
ReportTimeToReboot(int time_to_reboot_minutes)85   void ReportTimeToReboot(int time_to_reboot_minutes) override {}
86 
ReportInstallDateProvisioningSource(int source,int max)87   void ReportInstallDateProvisioningSource(int source, int max) override {}
88 
ReportInternalErrorCode(ErrorCode error_code)89   void ReportInternalErrorCode(ErrorCode error_code) override {}
90 
ReportKeyVersionMetrics(int kernel_min_version,int kernel_max_rollforward_version,bool kernel_max_rollforward_success)91   void ReportKeyVersionMetrics(int kernel_min_version,
92                                int kernel_max_rollforward_version,
93                                bool kernel_max_rollforward_success) override {}
94 
ReportEnterpriseUpdateSeenToDownloadDays(bool has_time_restriction_policy,int time_to_update_days)95   void ReportEnterpriseUpdateSeenToDownloadDays(
96       bool has_time_restriction_policy, int time_to_update_days) override {}
97 
98  private:
99   DynamicPartitionControlInterface* dynamic_partition_control_{};
100   const InstallPlan* install_plan_{};
101 
102   DISALLOW_COPY_AND_ASSIGN(MetricsReporterAndroid);
103 };
104 
105 }  // namespace chromeos_update_engine
106 
107 #endif  // UPDATE_ENGINE_AOSP_METRICS_REPORTER_ANDROID_H_
108