• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2020 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 
17 #ifndef SRC_ANDROID_STATS_PERFETTO_ATOMS_H_
18 #define SRC_ANDROID_STATS_PERFETTO_ATOMS_H_
19 
20 namespace perfetto {
21 
22 // This must match the values of the PerfettoUploadEvent enum in:
23 // frameworks/proto_logging/stats/atoms.proto
24 enum class PerfettoStatsdAtom {
25   kUndefined = 0,
26 
27   // Checkpoints inside perfetto_cmd before tracing is finished.
28   kTraceBegin = 1,
29   kBackgroundTraceBegin = 2,
30   kCloneTraceBegin = 55,
31   kCloneTriggerTraceBegin = 56,
32   kOnConnect = 3,
33 
34   // Guardrails inside perfetto_cmd before tracing is finished.
35   kOnTimeout = 16,
36   kCmdUserBuildTracingNotAllowed = 43,
37 
38   // Checkpoints inside traced.
39   kTracedEnableTracing = 37,
40   kTracedStartTracing = 38,
41   kTracedDisableTracing = 39,
42   kTracedNotifyTracingDisabled = 40,
43 
44   // Trigger checkpoints inside traced.
45   // These atoms are special because, along with the UUID,
46   // they log the trigger name.
47   kTracedTriggerStartTracing = 41,
48   kTracedTriggerStopTracing = 42,
49   kTracedTriggerCloneSnapshot = 53,
50 
51   // Guardrails inside traced.
52   kTracedEnableTracingExistingTraceSession = 18,
53   kTracedEnableTracingTooLongTrace = 19,
54   kTracedEnableTracingInvalidTriggerTimeout = 20,
55   kTracedEnableTracingDurationWithTrigger = 21,
56   kTracedEnableTracingStopTracingWriteIntoFile = 22,
57   kTracedEnableTracingDuplicateTriggerName = 23,
58   kTracedEnableTracingInvalidDeferredStart = 24,
59   kTracedEnableTracingInvalidBufferSize = 25,
60   kTracedEnableTracingBufferSizeTooLarge = 26,
61   kTracedEnableTracingTooManyBuffers = 27,
62   kTracedEnableTracingDuplicateSessionName = 28,
63   kTracedEnableTracingSessionNameTooRecent = 29,
64   kTracedEnableTracingTooManySessionsForUid = 30,
65   kTracedEnableTracingTooManyConcurrentSessions = 31,
66   kTracedEnableTracingInvalidFdOutputFile = 32,
67   kTracedEnableTracingFailedToCreateFile = 33,
68   kTracedEnableTracingOom = 34,
69   kTracedEnableTracingUnknown = 35,
70   kTracedStartTracingInvalidSessionState = 36,
71   kTracedEnableTracingInvalidFilter = 47,
72   kTracedEnableTracingOobTargetBuffer = 48,
73   kTracedEnableTracingInvalidTriggerMode = 52,
74   kTracedEnableTracingInvalidBrFilename = 54,
75   kTracedEnableTracingFailedSessionSemaphoreCheck = 57,
76 
77   // Checkpoints inside perfetto_cmd after tracing has finished.
78   kOnTracingDisabled = 4,
79   kFinalizeTraceAndExit = 11,
80   kCmdFwReportBegin = 49,
81   // Will be removed once incidentd is no longer used.
82   kUploadIncidentBegin = 8,
83   kNotUploadingEmptyTrace = 17,
84 
85   // Guardrails inside perfetto_cmd after tracing has finished.
86   kCmdFwReportEmptyTrace = 50,
87   // Will be removed once incidentd is no longer used.
88   kUploadIncidentFailure = 10,
89 
90   // "Successful" terminal states inside perfetto_cmd.
91   kCmdFwReportHandoff = 51,
92 
93   // Deprecated as "success" is misleading; it simply means we were
94   // able to communicate with incidentd. Will be removed once
95   // incidentd is no longer used.
96   kUploadIncidentSuccess = 9,
97 
98   // Contained trigger begin/success/failure. Replaced by
99   // |PerfettoTriggerAtom| to allow aggregation using a count metric
100   // and reduce spam.
101   // reserved 12, 13, 14;
102 
103   // Contained that a guardrail in perfetto_cmd was hit. Replaced with
104   // kCmd* guardrails.
105   // reserved 15;
106 
107   // Contained status of Dropbox uploads. Removed as Perfetto no
108   // longer supports uploading traces using Dropbox.
109   // reserved 5, 6, 7;
110 
111   // Contained status of guardrail state initialization and upload limit in
112   // perfetto_cmd. Removed as perfetto no longer manages stateful guardrails
113   // reserved 44, 45, 46;
114 };
115 
116 // This must match the values of the PerfettoTrigger::TriggerType enum in:
117 // frameworks/proto_logging/stats/atoms.proto
118 enum PerfettoTriggerAtom {
119   kUndefined = 0,
120 
121   kCmdTrigger = 1,
122   kCmdTriggerFail = 2,
123 
124   kTriggerPerfettoTrigger = 3,
125   kTriggerPerfettoTriggerFail = 4,
126 
127   kTracedLimitProbability = 5,
128   kTracedLimitMaxPer24h = 6,
129 
130   kProbesProducerTrigger = 7,
131   kProbesProducerTriggerFail = 8,
132 };
133 
134 }  // namespace perfetto
135 
136 #endif  // SRC_ANDROID_STATS_PERFETTO_ATOMS_H_
137