summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Calin Juravle <calin@google.com> 2021-07-01 09:01:51 -0700
committer Treehugger Robot <treehugger-gerrit@google.com> 2021-07-02 01:40:06 +0000
commit3d12876bd9782831ad5c907f1f9dc94d10867f3d (patch)
treecd2f65f171ff5ff83bd447513abf171696359262
parent1792c6ff1c9838dfbe948be124dc1a8501fc6636 (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.h4
-rw-r--r--runtime/metrics/reporter.cc15
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 {