• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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: 40
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  ART_DATUM_DELTA_GC_APP_SLOW_PATH_DURING_YOUNG_GENERATION_COLLECTION_DURATION_MILLIS = 38;
63  ART_DATUM_DELTA_GC_APP_SLOW_PATH_DURING_FULL_HEAP_COLLECTION_DURATION_MILLIS = 39;
64
65  reserved 1, 2, 4, 7, 10, 11, 12, 13, 14, 15, 18, 19, 20, 22, 23, 24, 25, 26, 27;
66}
67
68// Indicates which kind of measurement ART is reporting.
69//
70// Where it makes sense, the datum ID ends with the type of datum (counter or histogram) and the
71// units.
72// Note: Histograms are not yet reported by statsd.
73enum ArtDatumId {
74  ART_DATUM_INVALID = 0;
75  ART_DATUM_GC_WORLD_STOP_TIME_AVG_MICROS = 1;
76  ART_DATUM_GC_YOUNG_GENERATION_COLLECTION_TIME_HISTO_MILLIS = 2;
77  ART_DATUM_GC_YOUNG_GENERATION_COLLECTION_COUNT = 3;
78  ART_DATUM_GC_FULL_HEAP_COLLECTION_TIME_HISTO_MILLIS = 4;
79  ART_DATUM_GC_FULL_HEAP_COLLECTION_COUNT = 5;
80  ART_DATUM_JIT_METHOD_COMPILE_TIME_MICROS = 6;
81  ART_DATUM_AOT_COMPILE_TIME = 7;
82  ART_DATUM_CLASS_VERIFICATION_TIME_COUNTER_MICROS = 8;
83  ART_DATUM_CLASS_LOADING_TIME_COUNTER_MICROS = 9;
84
85  // Metrics IDs for dex2oat.
86  ART_DATUM_DEX2OAT_RESULT_CODE = 10 [deprecated = true];
87  ART_DATUM_DEX2OAT_DEX_CODE_COUNTER_BYTES = 11 [deprecated = true];
88  ART_DATUM_DEX2OAT_TOTAL_TIME_COUNTER_MILLIS = 12 [deprecated = true];
89  ART_DATUM_DEX2OAT_VERIFY_DEX_FILE_TIME_COUNTER_MILLIS = 13 [deprecated = true];
90  ART_DATUM_DEX2OAT_FAST_VERIFY_TIME_COUNTER_MILLIS = 14 [deprecated = true];
91  ART_DATUM_DEX2OAT_RESOLVE_METHODS_AND_FIELDS_TIME_COUNTER_MILLIS = 15 [deprecated = true];
92
93  ART_DATUM_CLASS_VERIFICATION_COUNT = 16;
94  ART_DATUM_GC_TOTAL_BYTES_ALLOCATED = 17;
95  ART_DATUM_GC_TOTAL_METADATA_SIZE_BYTES = 18 [deprecated=true];
96  ART_DATUM_GC_YOUNG_GENERATION_COLLECTION_THROUGHPUT_HISTO_MB_PER_SEC = 19;
97  ART_DATUM_GC_FULL_HEAP_COLLECTION_THROUGHPUT_HISTO_MB_PER_SEC = 20;
98  ART_DATUM_JIT_METHOD_COMPILE_COUNT = 21;
99  ART_DATUM_GC_YOUNG_GENERATION_TRACING_THROUGHPUT_HISTO_MB_PER_SEC = 22;
100  ART_DATUM_GC_FULL_HEAP_TRACING_THROUGHPUT_HISTO_MB_PER_SEC = 23;
101  ART_DATUM_GC_YOUNG_GENERATION_COLLECTION_THROUGHPUT_AVG_MB_PER_SEC = 24;
102  ART_DATUM_GC_FULL_HEAP_COLLECTION_THROUGHPUT_AVG_MB_PER_SEC = 25;
103  ART_DATUM_GC_YOUNG_GENERATION_TRACING_THROUGHPUT_AVG_MB_PER_SEC = 26;
104  ART_DATUM_GC_FULL_HEAP_TRACING_THROUGHPUT_AVG_MB_PER_SEC = 27;
105  ART_DATUM_GC_TOTAL_COLLECTION_TIME_MS = 28;
106
107  // New metrics to support averages reported as sum (numerator) and count (denominator),
108  // in order to make it easier to be reported as Value Metrics.
109
110  // numerator from ART_DATUM_GC_WORLD_STOP_TIME_AVG_MICROS
111  ART_DATUM_GC_WORLD_STOP_TIME_US = 29;
112  // denominator from ART_DATUM_GC_WORLD_STOP_TIME_AVG_MICROS
113  ART_DATUM_GC_WORLD_STOP_COUNT = 30;
114  // numerator from ART_DATUM_GC_YOUNG_GENERATION_TRACING_THROUGHPUT_AVG_MB_PER_SEC
115  ART_DATUM_GC_YOUNG_GENERATION_COLLECTION_SCANNED_BYTES = 31;
116  // numerator from ART_DATUM_GC_YOUNG_GENERATION_COLLECTION_THROUGHPUT_AVG_MB_PER_SEC
117  ART_DATUM_GC_YOUNG_GENERATION_COLLECTION_FREED_BYTES = 32;
118  // denominator from ART_DATUM_GC_YOUNG_GENERATION_TRACING_THROUGHPUT_AVG_MB_PER_SEC
119  // and ART_DATUM_GC_YOUNG_GENERATION_COLLECTION_THROUGHPUT_AVG_MB_PER_SEC
120  ART_DATUM_GC_YOUNG_GENERATION_COLLECTION_DURATION_MS = 33;
121  // numerator from ART_DATUM_GC_FULL_HEAP_TRACING_THROUGHPUT_AVG_MB_PER_SEC
122  ART_DATUM_GC_FULL_HEAP_COLLECTION_SCANNED_BYTES = 34;
123  // numerator from ART_DATUM_GC_FULL_HEAP_COLLECTION_THROUGHPUT_AVG_MB_PER_SEC
124  ART_DATUM_GC_FULL_HEAP_COLLECTION_FREED_BYTES = 35;
125  // denominator from ART_DATUM_GC_FULL_HEAP_TRACING_THROUGHPUT_AVG_MB_PER_SEC
126  // and ART_DATUM_GC_FULL_HEAP_COLLECTION_THROUGHPUT_AVG_MB_PER_SEC
127  ART_DATUM_GC_FULL_HEAP_COLLECTION_DURATION_MS = 36;
128}
129
130enum BootImageStatus {
131  // Unknown value.
132  STATUS_UNSPECIFIED = 0;
133  // Boot image(s) are fully usable.
134  STATUS_FULL = 1;
135  // Only the minimal boot image is usable.
136  STATUS_MINIMAL = 2;
137  // No boot image is usable.
138  STATUS_NONE = 3;
139}
140