summaryrefslogtreecommitdiff
path: root/runtime/runtime.cc
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/runtime.cc')
-rw-r--r--runtime/runtime.cc15
1 files changed, 7 insertions, 8 deletions
diff --git a/runtime/runtime.cc b/runtime/runtime.cc
index f03896901f..fe4830a3ed 100644
--- a/runtime/runtime.cc
+++ b/runtime/runtime.cc
@@ -1088,13 +1088,12 @@ void Runtime::InitNonZygoteOrPostFork(
GetMetrics()->Reset();
if (metrics_reporter_ != nullptr) {
- if (IsSystemServer() && !metrics_reporter_->IsPeriodicReportingEnabled()) {
- // For system server, we don't get startup metrics, so make sure we have periodic reporting
- // enabled.
- //
- // Note that this does not override the command line argument if one is given.
- metrics_reporter_->SetReportingPeriod(kOneHourInSeconds);
- }
+ // Now that we know if we are an app or system server, reload the metrics reporter config
+ // in case there are any difference.
+ metrics::ReportingConfig metrics_config =
+ metrics::ReportingConfig::FromFlags(is_system_server);
+
+ metrics_reporter_->ReloadConfig(metrics_config);
metrics::SessionData session_data{metrics::SessionData::CreateDefault()};
session_data.session_id = GetRandomNumber<int64_t>(0, std::numeric_limits<int64_t>::max());
@@ -1948,7 +1947,7 @@ bool Runtime::Init(RuntimeArgumentMap&& runtime_options_in) {
}
void Runtime::InitMetrics() {
- auto metrics_config = metrics::ReportingConfig::FromFlags();
+ metrics::ReportingConfig metrics_config = metrics::ReportingConfig::FromFlags();
metrics_reporter_ = metrics::MetricsReporter::Create(metrics_config, this);
}