diff options
| author | Bookatz <bookatz@google.com> | 2018-09-20 17:17:49 -0700 |
|---|---|---|
| committer | Bookatz <bookatz@google.com> | 2018-11-05 18:52:49 -0800 |
| commit | ff71cadecc43ff034be0500ca0232873bf7212c6 (patch) | |
| tree | 0d816d0dd36c527239e3b4ec6aff9f6b8cdaead4 /core | |
| parent | 5f106c8ee5dcacd2f30a2644b6fdf3caa2116e2d (diff) | |
Statsd can dump data as proto to bugreport
* Creates an incident section for statsd data.
* Allows dump to output statsd data, in proto format.
* Hooks up two statsd outputs to bugreports:
-statsd report data in proto format
-statsd metadata (statsdstats) in text format
The incident section does not import stats_log.proto because that turns
out to be extremely difficult: stats_log.proto imports atoms.proto,
which imports more things and is enormous and causes all sorts of
problems. atoms.proto was purposefully never compiled in AOSP, so to
retain that feature, the incident section uses 'bytes' instead of an
actual message. Since this isn't ever read in AOSP (other than testing),
this should be fine.
Bug: 115678461
Test: take a bug report and confirm valid proto
Test: cts-tradefed run cts-dev -m CtsStatsdHostTestCases -t android.cts.statsd.atom.HostAtomTests#testDumpsysStats
Change-Id: I1c370af7678d1dc7440ce299ea5ea4da6d33832b
Diffstat (limited to 'core')
| -rw-r--r-- | core/proto/android/os/incident.proto | 7 | ||||
| -rw-r--r-- | core/proto/android/os/statsdata.proto | 33 |
2 files changed, 40 insertions, 0 deletions
diff --git a/core/proto/android/os/incident.proto b/core/proto/android/os/incident.proto index 8f289700aede..0b9e347ce5d1 100644 --- a/core/proto/android/os/incident.proto +++ b/core/proto/android/os/incident.proto @@ -26,6 +26,7 @@ import "frameworks/base/core/proto/android/os/kernelwake.proto"; import "frameworks/base/core/proto/android/os/pagetypeinfo.proto"; import "frameworks/base/core/proto/android/os/procrank.proto"; import "frameworks/base/core/proto/android/os/ps.proto"; +import "frameworks/base/core/proto/android/os/statsdata.proto"; import "frameworks/base/core/proto/android/os/system_properties.proto"; import "frameworks/base/core/proto/android/providers/settings.proto"; import "frameworks/base/core/proto/android/server/activitymanagerservice.proto"; @@ -301,6 +302,12 @@ message IncidentProto { (section).userdebug_and_eng_only = true ]; + optional android.os.StatsDataDumpProto stats_data = 3023 [ + (section).type = SECTION_DUMPSYS, + (section).args = "stats --proto", + (section).userdebug_and_eng_only = true + ]; + // Reserved for OEMs. extensions 50000 to 100000; } diff --git a/core/proto/android/os/statsdata.proto b/core/proto/android/os/statsdata.proto new file mode 100644 index 000000000000..25d76b869259 --- /dev/null +++ b/core/proto/android/os/statsdata.proto @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2018 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +syntax = "proto2"; +option java_multiple_files = true; + +package android.os; + +import "frameworks/base/libs/incident/proto/android/privacy.proto"; + +// Dump of statsd report data (dumpsys stats --proto). +message StatsDataDumpProto { + option (android.msg_privacy).dest = DEST_AUTOMATIC; + + // The following is an android.os.statsd.ConfigMetricsReportList, which is defined + // in frameworks/base/cmds/statsd/src/stats_log.proto. It should not be imported (even weakly) + // in AOSP because it would drag with it atoms.proto, which is enormous and awkward. + repeated bytes config_metrics_report_list = 1; + +}
\ No newline at end of file |
