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