• 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   kOnConnect = 3,
31 
32   // Guardrails inside perfetto_cmd before tracing is finished.
33   kOnTimeout = 16,
34   kCmdUserBuildTracingNotAllowed = 43,
35   kCmdFailedToInitGuardrailState = 44,
36   kCmdInvalidGuardrailState = 45,
37   kCmdHitUploadLimit = 46,
38 
39   // Checkpoints inside traced.
40   kTracedEnableTracing = 37,
41   kTracedStartTracing = 38,
42   kTracedDisableTracing = 39,
43   kTracedNotifyTracingDisabled = 40,
44 
45   // Trigger checkpoints inside traced.
46   // These atoms are special because, along with the UUID,
47   // they log the trigger name.
48   kTracedTriggerStartTracing = 41,
49   kTracedTriggerStopTracing = 42,
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 
75   // Checkpoints inside perfetto_cmd after tracing has finished.
76   kOnTracingDisabled = 4,
77   kFinalizeTraceAndExit = 11,
78   kCmdFwReportBegin = 49,
79   // Will be removed once incidentd is no longer used.
80   kUploadIncidentBegin = 8,
81   kNotUploadingEmptyTrace = 17,
82 
83   // Guardrails inside perfetto_cmd after tracing has finished.
84   kCmdFwReportEmptyTrace = 50,
85   // Will be removed once incidentd is no longer used.
86   kUploadIncidentFailure = 10,
87 
88   // "Successful" terminal states inside perfetto_cmd.
89   kCmdFwReportHandoff = 51,
90 
91   // Deprecated as "success" is misleading; it simply means we were
92   // able to communicate with incidentd. Will be removed once
93   // incidentd is no longer used.
94   kUploadIncidentSuccess = 9,
95 
96   // Contained trigger begin/success/failure. Replaced by
97   // |PerfettoTriggerAtom| to allow aggregation using a count metric
98   // and reduce spam.
99   // reserved 12, 13, 14;
100 
101   // Contained that a guardrail in perfetto_cmd was hit. Replaced with
102   // kCmd* guardrails.
103   // reserved 15;
104 
105   // Contained status of Dropbox uploads. Removed as Perfetto no
106   // longer supports uploading traces using Dropbox.
107   // reserved 5, 6, 7;
108 };
109 
110 // This must match the values of the PerfettoTrigger::TriggerType enum in:
111 // frameworks/base/cmds/statsd/src/atoms.proto
112 enum PerfettoTriggerAtom {
113   kUndefined = 0,
114 
115   kCmdTrigger = 1,
116   kCmdTriggerFail = 2,
117 
118   kTriggerPerfettoTrigger = 3,
119   kTriggerPerfettoTriggerFail = 4,
120 
121   kTracedLimitProbability = 5,
122   kTracedLimitMaxPer24h = 6,
123 
124   kProbesProducerTrigger = 7,
125   kProbesProducerTriggerFail = 8,
126 };
127 
128 }  // namespace perfetto
129 
130 #endif  // SRC_ANDROID_STATS_PERFETTO_ATOMS_H_
131