diff options
author | 2021-07-01 09:01:51 -0700 | |
---|---|---|
committer | 2021-07-02 01:40:06 +0000 | |
commit | 3d12876bd9782831ad5c907f1f9dc94d10867f3d (patch) | |
tree | cd2f65f171ff5ff83bd447513abf171696359262 | |
parent | 1792c6ff1c9838dfbe948be124dc1a8501fc6636 (diff) |
Add special control flags for system server reporting
System server is important enough to have its own config.
Test: gtest
Bug: 170149255
Change-Id: I33741751717ef3474f3a89e8fda8ad19b9e952ed
-rw-r--r-- | libartbase/base/flags.h | 4 | ||||
-rw-r--r-- | runtime/metrics/reporter.cc | 15 |
2 files changed, 15 insertions, 4 deletions
diff --git a/libartbase/base/flags.h b/libartbase/base/flags.h index 0345ebc79c..d1e1ca6243 100644 --- a/libartbase/base/flags.h +++ b/libartbase/base/flags.h @@ -277,6 +277,8 @@ struct Flags { // By default, the mods are 0, which means the reporting is disabled. Flag<uint32_t> MetricsReportingMods{"metrics.reporting-mods", 0, FlagType::kDeviceConfig}; + Flag<uint32_t> MetricsReportingModsServer{"metrics.reporting-mods-server", 0, + FlagType::kDeviceConfig}; // See MetricsReportingMods docs. // @@ -285,6 +287,8 @@ struct Flags { // grain unit is needed (e.g. a tenth of a percent), the num-mods can be increased. Flag<uint32_t> MetricsReportingNumMods{"metrics.reporting-num-mods", 100, FlagType::kDeviceConfig}; + Flag<uint32_t> MetricsReportingNumModsServer{"metrics.reporting-num-mods-server", 100, + FlagType::kDeviceConfig}; // Whether or not we should write metrics to statsd. // Note that the actual write is still controlled by diff --git a/runtime/metrics/reporter.cc b/runtime/metrics/reporter.cc index 5104bd3917..a44066e487 100644 --- a/runtime/metrics/reporter.cc +++ b/runtime/metrics/reporter.cc @@ -272,12 +272,19 @@ ReportingConfig ReportingConfig::FromFlags(bool is_system_server) { } } - uint32_t reporting_num_mods = gFlags.MetricsReportingNumMods(); - uint32_t reporting_mods = gFlags.MetricsReportingMods(); - if (reporting_mods > reporting_num_mods) { + uint32_t reporting_num_mods = is_system_server + ? gFlags.MetricsReportingNumModsServer() + : gFlags.MetricsReportingNumMods(); + uint32_t reporting_mods = is_system_server + ? gFlags.MetricsReportingModsServer() + : gFlags.MetricsReportingMods(); + + if (reporting_mods > reporting_num_mods || reporting_num_mods == 0) { LOG(ERROR) << "Invalid metrics reporting mods: " << reporting_mods - << " num modes=" << reporting_num_mods; + << " num modes=" << reporting_num_mods + << ". The reporting is disabled"; reporting_mods = 0; + reporting_num_mods = 100; } return { |