1*6dbdd20aSAndroid Build Coastguard Worker /* 2*6dbdd20aSAndroid Build Coastguard Worker * Copyright (C) 2020 The Android Open Source Project 3*6dbdd20aSAndroid Build Coastguard Worker * 4*6dbdd20aSAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 5*6dbdd20aSAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 6*6dbdd20aSAndroid Build Coastguard Worker * You may obtain a copy of the License at 7*6dbdd20aSAndroid Build Coastguard Worker * 8*6dbdd20aSAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 9*6dbdd20aSAndroid Build Coastguard Worker * 10*6dbdd20aSAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 11*6dbdd20aSAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 12*6dbdd20aSAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*6dbdd20aSAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 14*6dbdd20aSAndroid Build Coastguard Worker * limitations under the License. 15*6dbdd20aSAndroid Build Coastguard Worker */ 16*6dbdd20aSAndroid Build Coastguard Worker 17*6dbdd20aSAndroid Build Coastguard Worker #ifndef SRC_ANDROID_STATS_PERFETTO_ATOMS_H_ 18*6dbdd20aSAndroid Build Coastguard Worker #define SRC_ANDROID_STATS_PERFETTO_ATOMS_H_ 19*6dbdd20aSAndroid Build Coastguard Worker 20*6dbdd20aSAndroid Build Coastguard Worker namespace perfetto { 21*6dbdd20aSAndroid Build Coastguard Worker 22*6dbdd20aSAndroid Build Coastguard Worker // This must match the values of the PerfettoUploadEvent enum in: 23*6dbdd20aSAndroid Build Coastguard Worker // frameworks/proto_logging/stats/atoms.proto 24*6dbdd20aSAndroid Build Coastguard Worker enum class PerfettoStatsdAtom { 25*6dbdd20aSAndroid Build Coastguard Worker kUndefined = 0, 26*6dbdd20aSAndroid Build Coastguard Worker 27*6dbdd20aSAndroid Build Coastguard Worker // Checkpoints inside perfetto_cmd before tracing is finished. 28*6dbdd20aSAndroid Build Coastguard Worker kTraceBegin = 1, 29*6dbdd20aSAndroid Build Coastguard Worker kBackgroundTraceBegin = 2, 30*6dbdd20aSAndroid Build Coastguard Worker kCmdCloneTraceBegin = 55, 31*6dbdd20aSAndroid Build Coastguard Worker kCmdCloneTriggerTraceBegin = 56, 32*6dbdd20aSAndroid Build Coastguard Worker kOnConnect = 3, 33*6dbdd20aSAndroid Build Coastguard Worker kCmdOnSessionClone = 58, 34*6dbdd20aSAndroid Build Coastguard Worker kCmdOnTriggerSessionClone = 59, 35*6dbdd20aSAndroid Build Coastguard Worker 36*6dbdd20aSAndroid Build Coastguard Worker // Guardrails inside perfetto_cmd before tracing is finished. 37*6dbdd20aSAndroid Build Coastguard Worker kOnTimeout = 16, 38*6dbdd20aSAndroid Build Coastguard Worker 39*6dbdd20aSAndroid Build Coastguard Worker // Checkpoints inside traced. 40*6dbdd20aSAndroid Build Coastguard Worker kTracedEnableTracing = 37, 41*6dbdd20aSAndroid Build Coastguard Worker kTracedStartTracing = 38, 42*6dbdd20aSAndroid Build Coastguard Worker kTracedDisableTracing = 39, 43*6dbdd20aSAndroid Build Coastguard Worker kTracedNotifyTracingDisabled = 40, 44*6dbdd20aSAndroid Build Coastguard Worker 45*6dbdd20aSAndroid Build Coastguard Worker // Trigger checkpoints inside traced. 46*6dbdd20aSAndroid Build Coastguard Worker // These atoms are special because, along with the UUID, 47*6dbdd20aSAndroid Build Coastguard Worker // they log the trigger name. 48*6dbdd20aSAndroid Build Coastguard Worker kTracedTriggerStartTracing = 41, 49*6dbdd20aSAndroid Build Coastguard Worker kTracedTriggerStopTracing = 42, 50*6dbdd20aSAndroid Build Coastguard Worker kTracedTriggerCloneSnapshot = 53, 51*6dbdd20aSAndroid Build Coastguard Worker 52*6dbdd20aSAndroid Build Coastguard Worker // Guardrails inside traced. 53*6dbdd20aSAndroid Build Coastguard Worker kTracedEnableTracingExistingTraceSession = 18, 54*6dbdd20aSAndroid Build Coastguard Worker kTracedEnableTracingTooLongTrace = 19, 55*6dbdd20aSAndroid Build Coastguard Worker kTracedEnableTracingInvalidTriggerTimeout = 20, 56*6dbdd20aSAndroid Build Coastguard Worker kTracedEnableTracingDurationWithTrigger = 21, 57*6dbdd20aSAndroid Build Coastguard Worker kTracedEnableTracingStopTracingWriteIntoFile = 22, 58*6dbdd20aSAndroid Build Coastguard Worker kTracedEnableTracingDuplicateTriggerName = 23, 59*6dbdd20aSAndroid Build Coastguard Worker kTracedEnableTracingInvalidDeferredStart = 24, 60*6dbdd20aSAndroid Build Coastguard Worker kTracedEnableTracingInvalidBufferSize = 25, 61*6dbdd20aSAndroid Build Coastguard Worker kTracedEnableTracingBufferSizeTooLarge = 26, 62*6dbdd20aSAndroid Build Coastguard Worker kTracedEnableTracingTooManyBuffers = 27, 63*6dbdd20aSAndroid Build Coastguard Worker kTracedEnableTracingDuplicateSessionName = 28, 64*6dbdd20aSAndroid Build Coastguard Worker kTracedEnableTracingSessionNameTooRecent = 29, 65*6dbdd20aSAndroid Build Coastguard Worker kTracedEnableTracingTooManySessionsForUid = 30, 66*6dbdd20aSAndroid Build Coastguard Worker kTracedEnableTracingTooManyConcurrentSessions = 31, 67*6dbdd20aSAndroid Build Coastguard Worker kTracedEnableTracingInvalidFdOutputFile = 32, 68*6dbdd20aSAndroid Build Coastguard Worker kTracedEnableTracingFailedToCreateFile = 33, 69*6dbdd20aSAndroid Build Coastguard Worker kTracedEnableTracingOom = 34, 70*6dbdd20aSAndroid Build Coastguard Worker kTracedEnableTracingUnknown = 35, 71*6dbdd20aSAndroid Build Coastguard Worker kTracedStartTracingInvalidSessionState = 36, 72*6dbdd20aSAndroid Build Coastguard Worker kTracedEnableTracingInvalidFilter = 47, 73*6dbdd20aSAndroid Build Coastguard Worker kTracedEnableTracingOobTargetBuffer = 48, 74*6dbdd20aSAndroid Build Coastguard Worker kTracedEnableTracingInvalidTriggerMode = 52, 75*6dbdd20aSAndroid Build Coastguard Worker kTracedEnableTracingInvalidBrFilename = 54, 76*6dbdd20aSAndroid Build Coastguard Worker kTracedEnableTracingFailedSessionSemaphoreCheck = 57, 77*6dbdd20aSAndroid Build Coastguard Worker 78*6dbdd20aSAndroid Build Coastguard Worker // Checkpoints inside perfetto_cmd after tracing has finished. 79*6dbdd20aSAndroid Build Coastguard Worker kOnTracingDisabled = 4, 80*6dbdd20aSAndroid Build Coastguard Worker kFinalizeTraceAndExit = 11, 81*6dbdd20aSAndroid Build Coastguard Worker kCmdFwReportBegin = 49, 82*6dbdd20aSAndroid Build Coastguard Worker // Will be removed once incidentd is no longer used. 83*6dbdd20aSAndroid Build Coastguard Worker kUploadIncidentBegin = 8, 84*6dbdd20aSAndroid Build Coastguard Worker kNotUploadingEmptyTrace = 17, 85*6dbdd20aSAndroid Build Coastguard Worker 86*6dbdd20aSAndroid Build Coastguard Worker // Guardrails inside perfetto_cmd after tracing has finished. 87*6dbdd20aSAndroid Build Coastguard Worker kCmdFwReportEmptyTrace = 50, 88*6dbdd20aSAndroid Build Coastguard Worker // Will be removed once incidentd is no longer used. 89*6dbdd20aSAndroid Build Coastguard Worker kUploadIncidentFailure = 10, 90*6dbdd20aSAndroid Build Coastguard Worker 91*6dbdd20aSAndroid Build Coastguard Worker // "Successful" terminal states inside perfetto_cmd. 92*6dbdd20aSAndroid Build Coastguard Worker kCmdFwReportHandoff = 51, 93*6dbdd20aSAndroid Build Coastguard Worker 94*6dbdd20aSAndroid Build Coastguard Worker // Deprecated as "success" is misleading; it simply means we were 95*6dbdd20aSAndroid Build Coastguard Worker // able to communicate with incidentd. Will be removed once 96*6dbdd20aSAndroid Build Coastguard Worker // incidentd is no longer used. 97*6dbdd20aSAndroid Build Coastguard Worker kUploadIncidentSuccess = 9, 98*6dbdd20aSAndroid Build Coastguard Worker 99*6dbdd20aSAndroid Build Coastguard Worker // Contained trigger begin/success/failure. Replaced by 100*6dbdd20aSAndroid Build Coastguard Worker // |PerfettoTriggerAtom| to allow aggregation using a count metric 101*6dbdd20aSAndroid Build Coastguard Worker // and reduce spam. 102*6dbdd20aSAndroid Build Coastguard Worker // reserved 12, 13, 14; 103*6dbdd20aSAndroid Build Coastguard Worker 104*6dbdd20aSAndroid Build Coastguard Worker // Contained that a guardrail in perfetto_cmd was hit. Replaced with 105*6dbdd20aSAndroid Build Coastguard Worker // kCmd* guardrails. 106*6dbdd20aSAndroid Build Coastguard Worker // reserved 15; 107*6dbdd20aSAndroid Build Coastguard Worker 108*6dbdd20aSAndroid Build Coastguard Worker // Contained status of Dropbox uploads. Removed as Perfetto no 109*6dbdd20aSAndroid Build Coastguard Worker // longer supports uploading traces using Dropbox. 110*6dbdd20aSAndroid Build Coastguard Worker // reserved 5, 6, 7; 111*6dbdd20aSAndroid Build Coastguard Worker 112*6dbdd20aSAndroid Build Coastguard Worker // Contained status of guardrail state initialization and upload limit in 113*6dbdd20aSAndroid Build Coastguard Worker // perfetto_cmd. Removed as perfetto no longer manages stateful guardrails 114*6dbdd20aSAndroid Build Coastguard Worker // reserved 44, 45, 46; 115*6dbdd20aSAndroid Build Coastguard Worker 116*6dbdd20aSAndroid Build Coastguard Worker // Contained the guardrail for user build tracing. Removed as this guardrail 117*6dbdd20aSAndroid Build Coastguard Worker // causes more problem than it solves these days. 118*6dbdd20aSAndroid Build Coastguard Worker // reserved 43; 119*6dbdd20aSAndroid Build Coastguard Worker }; 120*6dbdd20aSAndroid Build Coastguard Worker 121*6dbdd20aSAndroid Build Coastguard Worker // This must match the values of the PerfettoTrigger::TriggerType enum in: 122*6dbdd20aSAndroid Build Coastguard Worker // frameworks/proto_logging/stats/atoms.proto 123*6dbdd20aSAndroid Build Coastguard Worker enum PerfettoTriggerAtom { 124*6dbdd20aSAndroid Build Coastguard Worker kUndefined = 0, 125*6dbdd20aSAndroid Build Coastguard Worker 126*6dbdd20aSAndroid Build Coastguard Worker kTracedLimitProbability = 5, 127*6dbdd20aSAndroid Build Coastguard Worker kTracedLimitMaxPer24h = 6, 128*6dbdd20aSAndroid Build Coastguard Worker 129*6dbdd20aSAndroid Build Coastguard Worker kTracedTrigger = 9, 130*6dbdd20aSAndroid Build Coastguard Worker 131*6dbdd20aSAndroid Build Coastguard Worker // Contained events of logging triggers through perfetto_cmd, probes and 132*6dbdd20aSAndroid Build Coastguard Worker // trigger_perfetto. 133*6dbdd20aSAndroid Build Coastguard Worker // Removed in W (Oct 2024) and replaced by |kTracedTrigger|. 134*6dbdd20aSAndroid Build Coastguard Worker // reserved 1, 2, 3, 4, 7, 8 135*6dbdd20aSAndroid Build Coastguard Worker }; 136*6dbdd20aSAndroid Build Coastguard Worker 137*6dbdd20aSAndroid Build Coastguard Worker } // namespace perfetto 138*6dbdd20aSAndroid Build Coastguard Worker 139*6dbdd20aSAndroid Build Coastguard Worker #endif // SRC_ANDROID_STATS_PERFETTO_ATOMS_H_ 140