| /* |
| * Copyright (C) 2017 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"; |
| package android.service.procstats; |
| |
| option java_multiple_files = true; |
| option java_outer_classname = "ProcessStatsServiceProto"; |
| |
| import "frameworks/base/core/proto/android/util/common.proto"; |
| import "frameworks/base/core/proto/android/privacy.proto"; |
| import "frameworks/proto_logging/stats/enums/service/procstats_enum.proto"; |
| |
| /** |
| * Data from ProcStatsService Dumpsys |
| * |
| * Next Tag: 4 |
| */ |
| message ProcessStatsServiceDumpProto { |
| option (android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional ProcessStatsSectionProto procstats_now = 1; |
| |
| optional ProcessStatsSectionProto procstats_over_3hrs = 2; |
| |
| optional ProcessStatsSectionProto procstats_over_24hrs = 3; |
| } |
| |
| /** |
| * Data model from /frameworks/base/core/java/com/android/internal/app/procstats/ProcessStats.java |
| * This proto is defined based on the writeToParcel method. |
| * |
| * Next Tag: 11 |
| */ |
| message ProcessStatsSectionProto { |
| option (android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| // Elapsed realtime at start of report. |
| optional int64 start_realtime_ms = 1; |
| |
| // Elapsed realtime at end of report. |
| optional int64 end_realtime_ms = 2; |
| |
| // CPU uptime at start of report. |
| optional int64 start_uptime_ms = 3; |
| |
| // CPU uptime at end of report. |
| optional int64 end_uptime_ms = 4; |
| |
| // System runtime library. e.g. "libdvm.so", "libart.so". |
| optional string runtime = 5; |
| |
| // whether kernel reports swapped pss. |
| optional bool has_swapped_pss = 6; |
| |
| // Data completeness. e.g. "complete", "partial", shutdown", or "sysprops". |
| enum Status { |
| STATUS_UNKNOWN = 0; |
| STATUS_COMPLETE = 1; |
| STATUS_PARTIAL = 2; |
| STATUS_SHUTDOWN = 3; |
| STATUS_SYSPROPS = 4; |
| } |
| repeated Status status = 7; |
| |
| // Number of pages available of various types and sizes, representation fragmentation. |
| repeated ProcessStatsAvailablePagesProto available_pages = 10; |
| |
| // Stats for each process. |
| repeated ProcessStatsProto process_stats = 8; |
| |
| // Stats for each package. |
| repeated ProcessStatsPackageProto package_stats = 9; |
| } |
| |
| // Next Tag: 5 |
| message ProcessStatsAvailablePagesProto { |
| option (android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| // Node these pages are in (as per /proc/pagetypeinfo) |
| optional int32 node = 1; |
| |
| // Zone these pages are in (as per /proc/pagetypeinfo) |
| optional string zone = 2; |
| |
| // Label for the type of these pages (as per /proc/pagetypeinfo) |
| optional string label = 3; |
| |
| // Distribution of number of pages available by order size. First entry in array is |
| // order 0, second is order 1, etc. Each order increase is a doubling of page size. |
| repeated int32 pages_per_order = 4; |
| } |
| |
| // Next Tag: 13 |
| message ProcessStatsStateProto { |
| option (android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| optional ScreenState screen_state = 1; |
| |
| optional MemoryState memory_state = 2; |
| |
| // this enum list is from frameworks/base/core/java/com/android/internal/app/procstats/ProcessStats.java |
| // and not frameworks/base/core/java/android/app/ActivityManager.java |
| optional ProcessState process_state = 3 [deprecated = true]; |
| |
| // the AggregatedProcessState needs to keep sync with ProcessStateAggregated |
| optional AggregatedProcessState process_state_aggregated = 10; |
| |
| // Millisecond uptime duration spent in this state |
| optional int64 duration_ms = 4 [deprecated = true]; |
| // Same as above, but with minute resolution so it fits into an int32. |
| optional int32 duration_minutes = 11; |
| |
| // Millisecond elapsed realtime duration spent in this state |
| optional int64 realtime_duration_ms = 9 [deprecated = true]; |
| // Same as above, but with minute resolution so it fits into an int32. |
| optional int32 realtime_duration_minutes = 12; |
| |
| // # of samples taken |
| optional int32 sample_size = 5; |
| |
| // PSS is memory reserved for this process |
| optional android.util.AggStats pss = 6; |
| |
| // USS is memory shared between processes, divided evenly for accounting |
| optional android.util.AggStats uss = 7; |
| |
| // RSS is memory resident for this process |
| optional android.util.AggStats rss = 8; |
| } |
| |
| // Next Tag: 8 |
| message ProcessStatsProto { |
| option (android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| // Name of process. |
| optional string process = 1; |
| |
| // Uid of the process. |
| optional int32 uid = 2; |
| |
| // Information about how often kills occurred |
| message Kill { |
| option (android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| // Count of excessive CPU kills |
| optional int32 cpu = 1; |
| |
| // Count of kills when cached |
| optional int32 cached = 2; |
| |
| // PSS stats during cached kill |
| optional android.util.AggStats cached_pss = 3; |
| } |
| optional Kill kill = 3; |
| |
| // Time and memory spent in various states. |
| repeated ProcessStatsStateProto states = 5; |
| |
| // Total time process has been running... screen_state, memory_state, and process_state |
| // will not be set. |
| optional ProcessStatsStateProto total_running_state = 6; |
| |
| // Association data for this process in this state; |
| // each entry here is one association. |
| repeated ProcessStatsAssociationProto assocs = 7; |
| } |
| |
| // Next Tag: 6 |
| message ProcessStatsAssociationProto { |
| // Procss Name of the associated process/package |
| optional string assoc_process_name = 1; |
| |
| // Package Name of the associated process/package |
| optional string assoc_package_name = 2 [deprecated = true]; |
| |
| // UID of the associated process/package |
| optional int32 assoc_uid = 5; |
| |
| // Total count of the times this association appeared. |
| optional int32 total_count = 3; |
| |
| // Uptime total duration in seconds this association was around. |
| optional int32 total_duration_secs = 4; |
| } |
| |
| // Next Tag: 4 |
| message PackageServiceOperationStatsProto { |
| option (android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| // Operate enum: Started, Foreground, Bound, Executing |
| optional ServiceOperationState operation = 1; |
| |
| // Number of times the service was in this operation. |
| optional int32 count = 2; |
| |
| // Information about a state the service can be in. |
| message StateStats { |
| option (android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| // Screen state enum. |
| optional android.service.procstats.ScreenState screen_state = 1; |
| // Memory state enum. |
| optional android.service.procstats.MemoryState memory_state = 2; |
| |
| // duration in milliseconds. |
| optional int64 duration_ms = 3; |
| // Millisecond elapsed realtime duration spent in this state |
| optional int64 realtime_duration_ms = 4; |
| } |
| repeated StateStats state_stats = 3; |
| } |
| |
| // Next Tag: 3 |
| message PackageServiceStatsProto { |
| option (android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| // Name of service component. |
| optional string service_name = 1; |
| |
| // The operation stats. |
| // The package_name, package_uid, package_version, service_name will not be set to save space. |
| repeated PackageServiceOperationStatsProto operation_stats = 2; |
| } |
| |
| // Next Tag: 8 |
| message PackageAssociationSourceProcessStatsProto { |
| option (android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| // Uid of the process. |
| optional int32 process_uid = 1; |
| // Process name. |
| optional string process_name = 2; |
| // Package name. |
| optional string package_name = 7; |
| |
| // Total count of the times this association appeared. |
| optional int32 total_count = 3; |
| |
| // Millisecond uptime total duration this association was around. |
| optional int64 total_duration_ms = 4; |
| |
| // Total count of the times this association became actively impacting its target process. |
| optional int32 active_count = 5; |
| |
| // Information on one source in this association. |
| message StateStats { |
| option (android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| // Process state enum. |
| optional android.service.procstats.ProcessState process_state = 1; |
| // Millisecond uptime duration spent in this state |
| optional int64 duration_ms = 2; |
| // Millisecond elapsed realtime duration spent in this state |
| optional int64 realtime_duration_ms = 3; |
| } |
| repeated StateStats active_state_stats = 6; |
| } |
| |
| // Next Tag: 7 |
| message PackageAssociationProcessStatsProto { |
| option (android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| // Name of the target component. |
| optional string component_name = 1; |
| |
| // Total count of the times this association appeared. |
| optional int32 total_count = 3; |
| |
| // Millisecond uptime total duration this association was around. |
| optional int64 total_duration_ms = 4; |
| |
| // Total count of the times this association became actively impacting its target process. |
| optional int32 active_count = 5; |
| |
| // Millisecond uptime total duration this association was around. |
| optional int64 active_duration_ms = 6; |
| |
| // Information on one source in this association. |
| repeated PackageAssociationSourceProcessStatsProto sources = 2; |
| } |
| |
| // Next Tag: 7 |
| message ProcessStatsPackageProto { |
| option (android.msg_privacy).dest = DEST_AUTOMATIC; |
| |
| // Name of package. |
| optional string package = 1; |
| |
| // Uid of the package. |
| optional int32 uid = 2; |
| |
| // Version of the package. |
| optional int64 version = 3; |
| |
| // Stats for each process running with the package loaded in to it. |
| repeated ProcessStatsProto process_stats = 4; |
| |
| // Stats for each of the package's services. |
| repeated PackageServiceStatsProto service_stats = 5; |
| |
| // Stats for each association with the package. |
| repeated PackageAssociationProcessStatsProto association_stats = 6; |
| } |