@@ -25,7 +25,7 @@ extension GleanMetrics {
25
25
// Intentionally left private, no external user can instantiate a new global object.
26
26
}
27
27
28
- public static let info = BuildInfo ( buildDate: DateComponents ( calendar: Calendar . current, timeZone: TimeZone ( abbreviation: " UTC " ) , year: 2023 , month: 10 , day: 12 , hour: 5 , minute: 19 , second: 32 ) )
28
+ public static let info = BuildInfo ( buildDate: DateComponents ( calendar: Calendar . current, timeZone: TimeZone ( abbreviation: " UTC " ) , year: 2023 , month: 10 , day: 13 , hour: 5 , minute: 31 , second: 17 ) )
29
29
}
30
30
31
31
enum NimbusEvents {
@@ -99,6 +99,40 @@ extension GleanMetrics {
99
99
}
100
100
}
101
101
102
+ struct EnrollmentStatusExtra : EventExtras {
103
+ var branch : String ?
104
+ var conflictSlug : String ?
105
+ var errorString : String ?
106
+ var reason : String ?
107
+ var slug : String ?
108
+ var status : String ?
109
+
110
+ func toExtraRecord( ) -> [ String : String ] {
111
+ var record = [ String: String] ( )
112
+
113
+ if let branch = self . branch {
114
+ record [ " branch " ] = String ( branch)
115
+ }
116
+ if let conflictSlug = self . conflictSlug {
117
+ record [ " conflict_slug " ] = String ( conflictSlug)
118
+ }
119
+ if let errorString = self . errorString {
120
+ record [ " error_string " ] = String ( errorString)
121
+ }
122
+ if let reason = self . reason {
123
+ record [ " reason " ] = String ( reason)
124
+ }
125
+ if let slug = self . slug {
126
+ record [ " slug " ] = String ( slug)
127
+ }
128
+ if let status = self . status {
129
+ record [ " status " ] = String ( status)
130
+ }
131
+
132
+ return record
133
+ }
134
+ }
135
+
102
136
struct ExposureExtra : EventExtras {
103
137
var branch : String ?
104
138
var experiment : String ?
@@ -231,6 +265,19 @@ extension GleanMetrics {
231
265
, [ " branch " , " enrollment_id " , " experiment " , " experiment_type " ]
232
266
)
233
267
268
+ /// Recorded for each enrollment status each time the SDK completes application of
269
+ /// pending experiments.
270
+ static let enrollmentStatus = EventMetricType < EnrollmentStatusExtra > ( // generated from nimbus_events.enrollment_status
271
+ CommonMetricData (
272
+ category: " nimbus_events " ,
273
+ name: " enrollment_status " ,
274
+ sendInPings: [ " events " ] ,
275
+ lifetime: . ping,
276
+ disabled: false
277
+ )
278
+ , [ " branch " , " conflict_slug " , " error_string " , " reason " , " slug " , " status " ]
279
+ )
280
+
234
281
/// Recorded when a user actually observes an experimental treatment, or would have
235
282
/// observed an experimental treatment if they had been in a branch that would have
236
283
/// shown one.
0 commit comments