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