xref: /aosp_15_r20/external/perfetto/src/android_stats/perfetto_atoms.h (revision 6dbdd20afdafa5e3ca9b8809fa73465d530080dc)
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