@@ -21,7 +21,7 @@ func (a *App) Reconcile(force bool) (reconcile.Result, error) {
21
21
22
22
var err error
23
23
24
- a .appMetrics .InitMetrics (a .Name (), a .Namespace ())
24
+ a .appMetrics .ReconcileCountMetrics . InitMetrics (a . Kind (), a .Name (), a .Namespace ())
25
25
26
26
timerOpts := ReconcileTimerOpts {
27
27
DefaultSyncPeriod : a .opts .DefaultSyncPeriod ,
@@ -103,6 +103,13 @@ func (a *App) reconcileDeploy() error {
103
103
}
104
104
105
105
func (a * App ) reconcileFetchTemplateDeploy () exec.CmdRunResult {
106
+ reconcileStartTime := time .Now ()
107
+ a .appMetrics .IsFirstReconcile = a .appMetrics .ReconcileCountMetrics .GetReconcileAttemptCounterValue (a .Kind (), a .Name (), a .Namespace ()) == 1
108
+ defer func () {
109
+ a .appMetrics .ReconcileTimeMetrics .RegisterOverallTime (a .Kind (), a .Name (), a .Namespace (), a .appMetrics .IsFirstReconcile ,
110
+ time .Since (reconcileStartTime ))
111
+ }()
112
+
106
113
tmpDir := memdir .NewTmpDir ("fetch-template-deploy" )
107
114
108
115
err := tmpDir .Create ()
@@ -129,6 +136,9 @@ func (a *App) reconcileFetchTemplateDeploy() exec.CmdRunResult {
129
136
UpdatedAt : metav1 .NewTime (time .Now ().UTC ()),
130
137
}
131
138
139
+ a .appMetrics .ReconcileTimeMetrics .RegisterFetchTime (a .Kind (), a .Name (), a .Namespace (), a .appMetrics .IsFirstReconcile ,
140
+ a .app .Status .Fetch .UpdatedAt .Sub (a .app .Status .Fetch .StartedAt .Time ))
141
+
132
142
err := a .updateStatus ("marking fetch completed" )
133
143
if err != nil {
134
144
return exec .NewCmdRunResultWithErr (err )
@@ -139,6 +149,8 @@ func (a *App) reconcileFetchTemplateDeploy() exec.CmdRunResult {
139
149
}
140
150
}
141
151
152
+ templateStartTime := time .Now ()
153
+
142
154
tplResult := a .template (assetsPath )
143
155
144
156
a .app .Status .Template = & v1alpha1.AppStatusTemplate {
@@ -148,6 +160,9 @@ func (a *App) reconcileFetchTemplateDeploy() exec.CmdRunResult {
148
160
UpdatedAt : metav1 .NewTime (time .Now ().UTC ()),
149
161
}
150
162
163
+ a .appMetrics .ReconcileTimeMetrics .RegisterTemplateTime (a .Kind (), a .Name (), a .Namespace (), a .appMetrics .IsFirstReconcile ,
164
+ a .app .Status .Template .UpdatedAt .Sub (templateStartTime ))
165
+
151
166
err = a .updateStatus ("marking template completed" )
152
167
if err != nil {
153
168
return exec .NewCmdRunResultWithErr (err )
@@ -202,6 +217,9 @@ func (a *App) updateLastDeploy(result exec.CmdRunResult) exec.CmdRunResult {
202
217
},
203
218
}
204
219
220
+ a .appMetrics .ReconcileTimeMetrics .RegisterDeployTime (a .Kind (), a .Name (), a .Namespace (), a .appMetrics .IsFirstReconcile ,
221
+ a .Status ().Deploy .UpdatedAt .Sub (a .Status ().Deploy .StartedAt .Time ))
222
+
205
223
return result
206
224
}
207
225
@@ -253,7 +271,7 @@ func (a *App) setReconciling() {
253
271
Status : corev1 .ConditionTrue ,
254
272
})
255
273
256
- a .appMetrics .RegisterReconcileAttempt (a .app .Name , a .app . Namespace )
274
+ a .appMetrics .ReconcileCountMetrics . RegisterReconcileAttempt (a .Kind (), a .Name () , a .Namespace () )
257
275
a .app .Status .FriendlyDescription = "Reconciling"
258
276
}
259
277
@@ -269,7 +287,7 @@ func (a *App) setReconcileCompleted(result exec.CmdRunResult) {
269
287
a .app .Status .ConsecutiveReconcileFailures ++
270
288
a .app .Status .ConsecutiveReconcileSuccesses = 0
271
289
a .app .Status .FriendlyDescription = fmt .Sprintf ("Reconcile failed: %s" , result .ErrorStr ())
272
- a .appMetrics .RegisterReconcileFailure (a .app .Name , a .app . Namespace )
290
+ a .appMetrics .ReconcileCountMetrics . RegisterReconcileFailure (a .Kind (), a .Name () , a .Namespace () )
273
291
a .setUsefulErrorMessage (result )
274
292
} else {
275
293
a .app .Status .Conditions = append (a .app .Status .Conditions , v1alpha1.Condition {
@@ -280,7 +298,7 @@ func (a *App) setReconcileCompleted(result exec.CmdRunResult) {
280
298
a .app .Status .ConsecutiveReconcileSuccesses ++
281
299
a .app .Status .ConsecutiveReconcileFailures = 0
282
300
a .app .Status .FriendlyDescription = "Reconcile succeeded"
283
- a .appMetrics .RegisterReconcileSuccess (a .app .Name , a .app . Namespace )
301
+ a .appMetrics .ReconcileCountMetrics . RegisterReconcileSuccess (a .Kind (), a .Name () , a .Namespace () )
284
302
a .app .Status .UsefulErrorMessage = ""
285
303
}
286
304
}
@@ -293,7 +311,7 @@ func (a *App) setDeleting() {
293
311
Status : corev1 .ConditionTrue ,
294
312
})
295
313
296
- a .appMetrics .RegisterReconcileDeleteAttempt (a .app .Name , a .app . Namespace )
314
+ a .appMetrics .ReconcileCountMetrics . RegisterReconcileDeleteAttempt (a .Kind (), a .Name () , a .Namespace () )
297
315
a .app .Status .FriendlyDescription = "Deleting"
298
316
}
299
317
@@ -309,10 +327,10 @@ func (a *App) setDeleteCompleted(result exec.CmdRunResult) {
309
327
a .app .Status .ConsecutiveReconcileFailures ++
310
328
a .app .Status .ConsecutiveReconcileSuccesses = 0
311
329
a .app .Status .FriendlyDescription = fmt .Sprintf ("Delete failed: %s" , result .ErrorStr ())
312
- a .appMetrics .RegisterReconcileDeleteFailed (a .app .Name , a .app . Namespace )
330
+ a .appMetrics .ReconcileCountMetrics . RegisterReconcileDeleteFailed (a .Kind (), a .Name () , a .Namespace () )
313
331
a .setUsefulErrorMessage (result )
314
332
} else {
315
- a .appMetrics .DeleteMetrics (a .app .Name , a .app . Namespace )
333
+ a .appMetrics .ReconcileCountMetrics . DeleteMetrics (a .Kind (), a .Name () , a .Namespace () )
316
334
}
317
335
}
318
336
0 commit comments