xref: /aosp_15_r20/frameworks/proto_logging/stats/enums/art/art_enums.proto (revision 64c55175f22a2714b5ba1250098ad9bbc12ec7cd)
1/*
2 * Copyright (C) 2024 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17syntax = "proto2";
18
19package android.os.statsd.art;
20
21option java_package = "com.android.os.art";
22option java_multiple_files = true;
23
24// Indicates which kind of measurement ART is reporting as increments / deltas.
25// Next ID: 37
26enum ArtDatumDeltaId {
27  ART_DATUM_DELTA_INVALID = 0;
28
29  // These IDs are the equivalent of the ArtDatumId values,
30  // but for reporting increments / deltas.
31  ART_DATUM_DELTA_CLASS_VERIFICATION_COUNT = 16;
32  ART_DATUM_DELTA_CLASS_VERIFICATION_TIME_MICROS = 8;
33  ART_DATUM_DELTA_CLASS_LOADING_TIME_MICROS = 9;
34  ART_DATUM_DELTA_GC_FULL_HEAP_COLLECTION_COUNT = 5;
35  ART_DATUM_DELTA_GC_TOTAL_BYTES_ALLOCATED = 17;
36  ART_DATUM_DELTA_GC_TOTAL_COLLECTION_TIME_MS = 28;
37  ART_DATUM_DELTA_GC_YOUNG_GENERATION_COLLECTION_COUNT = 3;
38  ART_DATUM_DELTA_JIT_METHOD_COMPILE_COUNT = 21;
39  ART_DATUM_DELTA_JIT_METHOD_COMPILE_TIME_MICROS = 6;
40
41  // numerator from ART_DATUM_GC_WORLD_STOP_TIME_AVG_MICROS
42  ART_DATUM_DELTA_GC_WORLD_STOP_TIME_US = 29;
43  // denominator from ART_DATUM_GC_WORLD_STOP_TIME_AVG_MICROS
44  ART_DATUM_DELTA_GC_WORLD_STOP_COUNT = 30;
45  // numerator from ART_DATUM_GC_YOUNG_GENERATION_TRACING_THROUGHPUT_AVG_MB_PER_SEC
46  ART_DATUM_DELTA_GC_YOUNG_GENERATION_COLLECTION_SCANNED_BYTES = 31;
47  // numerator from ART_DATUM_GC_YOUNG_GENERATION_COLLECTION_THROUGHPUT_AVG_MB_PER_SEC
48  ART_DATUM_DELTA_GC_YOUNG_GENERATION_COLLECTION_FREED_BYTES = 32;
49  // denominator from ART_DATUM_GC_YOUNG_GENERATION_TRACING_THROUGHPUT_AVG_MB_PER_SEC
50  // and ART_DATUM_GC_YOUNG_GENERATION_COLLECTION_THROUGHPUT_AVG_MB_PER_SEC
51  ART_DATUM_DELTA_GC_YOUNG_GENERATION_COLLECTION_DURATION_MS = 33;
52  // numerator from ART_DATUM_GC_FULL_HEAP_TRACING_THROUGHPUT_AVG_MB_PER_SEC
53  ART_DATUM_DELTA_GC_FULL_HEAP_COLLECTION_SCANNED_BYTES = 34;
54  // numerator from ART_DATUM_GC_FULL_HEAP_COLLECTION_THROUGHPUT_AVG_MB_PER_SEC
55  ART_DATUM_DELTA_GC_FULL_HEAP_COLLECTION_FREED_BYTES = 35;
56  // denominator from ART_DATUM_GC_FULL_HEAP_TRACING_THROUGHPUT_AVG_MB_PER_SEC
57  // and ART_DATUM_GC_FULL_HEAP_COLLECTION_THROUGHPUT_AVG_MB_PER_SEC
58  ART_DATUM_DELTA_GC_FULL_HEAP_COLLECTION_DURATION_MS = 36;
59  // The number of milliseconds since the last time metrics were reported.
60  ART_DATUM_DELTA_TIME_ELAPSED_MS = 37;
61
62  reserved 1, 2, 4, 7, 10, 11, 12, 13, 14, 15, 18, 19, 20, 22, 23, 24, 25, 26, 27;
63}
64
65// Indicates which kind of measurement ART is reporting.
66//
67// Where it makes sense, the datum ID ends with the type of datum (counter or histogram) and the
68// units.
69// Note: Histograms are not yet reported by statsd.
70enum ArtDatumId {
71  ART_DATUM_INVALID = 0;
72  ART_DATUM_GC_WORLD_STOP_TIME_AVG_MICROS = 1;
73  ART_DATUM_GC_YOUNG_GENERATION_COLLECTION_TIME_HISTO_MILLIS = 2;
74  ART_DATUM_GC_YOUNG_GENERATION_COLLECTION_COUNT = 3;
75  ART_DATUM_GC_FULL_HEAP_COLLECTION_TIME_HISTO_MILLIS = 4;
76  ART_DATUM_GC_FULL_HEAP_COLLECTION_COUNT = 5;
77  ART_DATUM_JIT_METHOD_COMPILE_TIME_MICROS = 6;
78  ART_DATUM_AOT_COMPILE_TIME = 7;
79  ART_DATUM_CLASS_VERIFICATION_TIME_COUNTER_MICROS = 8;
80  ART_DATUM_CLASS_LOADING_TIME_COUNTER_MICROS = 9;
81
82  // Metrics IDs for dex2oat.
83  ART_DATUM_DEX2OAT_RESULT_CODE = 10 [deprecated = true];
84  ART_DATUM_DEX2OAT_DEX_CODE_COUNTER_BYTES = 11 [deprecated = true];
85  ART_DATUM_DEX2OAT_TOTAL_TIME_COUNTER_MILLIS = 12 [deprecated = true];
86  ART_DATUM_DEX2OAT_VERIFY_DEX_FILE_TIME_COUNTER_MILLIS = 13 [deprecated = true];
87  ART_DATUM_DEX2OAT_FAST_VERIFY_TIME_COUNTER_MILLIS = 14 [deprecated = true];
88  ART_DATUM_DEX2OAT_RESOLVE_METHODS_AND_FIELDS_TIME_COUNTER_MILLIS = 15 [deprecated = true];
89
90  ART_DATUM_CLASS_VERIFICATION_COUNT = 16;
91  ART_DATUM_GC_TOTAL_BYTES_ALLOCATED = 17;
92  ART_DATUM_GC_TOTAL_METADATA_SIZE_BYTES = 18 [deprecated=true];
93  ART_DATUM_GC_YOUNG_GENERATION_COLLECTION_THROUGHPUT_HISTO_MB_PER_SEC = 19;
94  ART_DATUM_GC_FULL_HEAP_COLLECTION_THROUGHPUT_HISTO_MB_PER_SEC = 20;
95  ART_DATUM_JIT_METHOD_COMPILE_COUNT = 21;
96  ART_DATUM_GC_YOUNG_GENERATION_TRACING_THROUGHPUT_HISTO_MB_PER_SEC = 22;
97  ART_DATUM_GC_FULL_HEAP_TRACING_THROUGHPUT_HISTO_MB_PER_SEC = 23;
98  ART_DATUM_GC_YOUNG_GENERATION_COLLECTION_THROUGHPUT_AVG_MB_PER_SEC = 24;
99  ART_DATUM_GC_FULL_HEAP_COLLECTION_THROUGHPUT_AVG_MB_PER_SEC = 25;
100  ART_DATUM_GC_YOUNG_GENERATION_TRACING_THROUGHPUT_AVG_MB_PER_SEC = 26;
101  ART_DATUM_GC_FULL_HEAP_TRACING_THROUGHPUT_AVG_MB_PER_SEC = 27;
102  ART_DATUM_GC_TOTAL_COLLECTION_TIME_MS = 28;
103
104  // New metrics to support averages reported as sum (numerator) and count (denominator),
105  // in order to make it easier to be reported as Value Metrics.
106
107  // numerator from ART_DATUM_GC_WORLD_STOP_TIME_AVG_MICROS
108  ART_DATUM_GC_WORLD_STOP_TIME_US = 29;
109  // denominator from ART_DATUM_GC_WORLD_STOP_TIME_AVG_MICROS
110  ART_DATUM_GC_WORLD_STOP_COUNT = 30;
111  // numerator from ART_DATUM_GC_YOUNG_GENERATION_TRACING_THROUGHPUT_AVG_MB_PER_SEC
112  ART_DATUM_GC_YOUNG_GENERATION_COLLECTION_SCANNED_BYTES = 31;
113  // numerator from ART_DATUM_GC_YOUNG_GENERATION_COLLECTION_THROUGHPUT_AVG_MB_PER_SEC
114  ART_DATUM_GC_YOUNG_GENERATION_COLLECTION_FREED_BYTES = 32;
115  // denominator from ART_DATUM_GC_YOUNG_GENERATION_TRACING_THROUGHPUT_AVG_MB_PER_SEC
116  // and ART_DATUM_GC_YOUNG_GENERATION_COLLECTION_THROUGHPUT_AVG_MB_PER_SEC
117  ART_DATUM_GC_YOUNG_GENERATION_COLLECTION_DURATION_MS = 33;
118  // numerator from ART_DATUM_GC_FULL_HEAP_TRACING_THROUGHPUT_AVG_MB_PER_SEC
119  ART_DATUM_GC_FULL_HEAP_COLLECTION_SCANNED_BYTES = 34;
120  // numerator from ART_DATUM_GC_FULL_HEAP_COLLECTION_THROUGHPUT_AVG_MB_PER_SEC
121  ART_DATUM_GC_FULL_HEAP_COLLECTION_FREED_BYTES = 35;
122  // denominator from ART_DATUM_GC_FULL_HEAP_TRACING_THROUGHPUT_AVG_MB_PER_SEC
123  // and ART_DATUM_GC_FULL_HEAP_COLLECTION_THROUGHPUT_AVG_MB_PER_SEC
124  ART_DATUM_GC_FULL_HEAP_COLLECTION_DURATION_MS = 36;
125}
126
127enum BootImageStatus {
128  // Unknown value.
129  STATUS_UNSPECIFIED = 0;
130  // Boot image(s) are fully usable.
131  STATUS_FULL = 1;
132  // Only the minimal boot image is usable.
133  STATUS_MINIMAL = 2;
134  // No boot image is usable.
135  STATUS_NONE = 3;
136}
137