| // Copyright 2014 The Chromium Authors | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #include "components/metrics/metrics_switches.h" | |
| #include "base/check.h" | |
| #include "base/command_line.h" | |
| namespace metrics { | |
| namespace switches { | |
| // Enables the observing of all UMA logs created during the session and | |
| // automatically exports them to the passed file path on shutdown (the file is | |
| // created if it does not already exist). This also enables viewing all UMA logs | |
| // in the chrome://metrics-internals debug page. The format of the exported file | |
| // is outlined in MetricsServiceObserver::ExportLogsAsJson(). | |
| // Example usage: --export-uma-logs-to-file=/tmp/logs.json | |
| const char kExportUmaLogsToFile[] = "export-uma-logs-to-file"; | |
| // Forces metrics reporting to be enabled. Should not be used for tests as it | |
| // will send data to servers. | |
| const char kForceEnableMetricsReporting[] = "force-enable-metrics-reporting"; | |
| // Forces MSBB setting to be on for UKM recording. Should only be used in | |
| // automated testing browser sessions in which it is infeasible or impractical | |
| // to toggle the setting manually. | |
| const char kForceMsbbSettingOnForUkm[] = "force-msbb-setting-on-for-ukm"; | |
| // Enables the recording of metrics reports but disables reporting. In contrast | |
| // to kForceEnableMetricsReporting, this executes all the code that a normal | |
| // client would use for reporting, except the report is dropped rather than sent | |
| // to the server. This is useful for finding issues in the metrics code during | |
| // UI and performance tests. | |
| const char kMetricsRecordingOnly[] = "metrics-recording-only"; | |
| // Override the standard time interval between each metrics report upload for | |
| // UMA and UKM. It is useful to set to a short interval for debugging. Unit in | |
| // seconds. (The default is 1800 seconds on desktop). | |
| const char kMetricsUploadIntervalSec[] = "metrics-upload-interval"; | |
| // Forces a reset of the one-time-randomized FieldTrials on this client, also | |
| // known as the Chrome Variations state. | |
| const char kResetVariationState[] = "reset-variation-state"; | |
| // Overrides the URL of the server that UKM reports are uploaded to. This can | |
| // only be used in debug builds. | |
| const char kUkmServerUrl[] = "ukm-server-url"; | |
| // Overrides the URL of the server that UMA reports are uploaded to. This can | |
| // only be used in debug builds. | |
| const char kUmaServerUrl[] = "uma-server-url"; | |
| // Overrides the URL of the server that UMA reports are uploaded to when the | |
| // connection to the default secure URL fails (see |kUmaServerUrl|). This can | |
| // only be used in debug builds. | |
| const char kUmaInsecureServerUrl[] = "uma-insecure-server-url"; | |
| } // namespace switches | |
| bool IsMetricsRecordingOnlyEnabled() { | |
| return base::CommandLine::ForCurrentProcess()->HasSwitch( | |
| switches::kMetricsRecordingOnly); | |
| } | |
| bool IsMetricsReportingForceEnabled() { | |
| return base::CommandLine::ForCurrentProcess()->HasSwitch( | |
| switches::kForceEnableMetricsReporting); | |
| } | |
| bool IsMsbbSettingForcedOnForUkm() { | |
| return base::CommandLine::ForCurrentProcess()->HasSwitch( | |
| switches::kForceMsbbSettingOnForUkm); | |
| } | |
| void EnableMetricsRecordingOnlyForTesting(base::CommandLine* command_line) { | |
| CHECK(command_line); | |
| if (!command_line->HasSwitch(switches::kMetricsRecordingOnly)) { | |
| command_line->AppendSwitch(switches::kMetricsRecordingOnly); | |
| } | |
| } | |
| void ForceEnableMetricsReportingForTesting() { | |
| auto* command_line = base::CommandLine::ForCurrentProcess(); | |
| CHECK(command_line); | |
| if (!command_line->HasSwitch(switches::kForceEnableMetricsReporting)) { | |
| command_line->AppendSwitch(switches::kForceEnableMetricsReporting); | |
| } | |
| } | |
| } // namespace metrics |