summaryrefslogtreecommitdiff
path: root/runtime/runtime.cc
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/runtime.cc')
-rw-r--r--runtime/runtime.cc23
1 files changed, 12 insertions, 11 deletions
diff --git a/runtime/runtime.cc b/runtime/runtime.cc
index 74a563e23a..370ee02790 100644
--- a/runtime/runtime.cc
+++ b/runtime/runtime.cc
@@ -1088,16 +1088,17 @@ 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());
+ // Start the session id from 1 to avoid clashes with the default value.
+ // (better for debugability)
+ session_data.session_id = GetRandomNumber<int64_t>(1, std::numeric_limits<int64_t>::max());
// TODO: set session_data.compilation_reason and session_data.compiler_filter
metrics_reporter_->MaybeStartBackgroundThread(session_data);
}
@@ -1838,7 +1839,7 @@ bool Runtime::Init(RuntimeArgumentMap&& runtime_options_in) {
// Class-roots are setup, we can now finish initializing the JniIdManager.
GetJniIdManager()->Init(self);
- InitMetrics(runtime_options);
+ InitMetrics();
// Runtime initialization is largely done now.
// We load plugins first since that can modify the runtime state slightly.
@@ -1938,8 +1939,8 @@ bool Runtime::Init(RuntimeArgumentMap&& runtime_options_in) {
return true;
}
-void Runtime::InitMetrics(const RuntimeArgumentMap& runtime_options) {
- auto metrics_config = metrics::ReportingConfig::FromRuntimeArguments(runtime_options);
+void Runtime::InitMetrics() {
+ metrics::ReportingConfig metrics_config = metrics::ReportingConfig::FromFlags();
metrics_reporter_ = metrics::MetricsReporter::Create(metrics_config, this);
}