338
}
339
341
>
if duration, ok := metrics.ContextCounterGet(ctx, metrics.HistoryWorkflowExecutionCacheLatency.Name()); ok {
342
attemptUserLatency = time.Duration(duration)
343
}
344
345
>
attemptLatency := e.timeSource.Now().Sub(startTime)
executable.go
346
>
e.attemptNoUserLatency = attemptLatency - attemptUserLatency
347
>
// emit total attempt latency so that we know how much time a task will occpy a worker goroutine
348
>
metrics.TaskProcessingLatency.With(e.chasmMetricsHandler).Record(attemptLatency)
349
>
350
>
if persistenceDuration, ok := metrics.ContextCounterGet(ctx, metrics.TaskPersistenceLatency.Name()); ok {
351
attemptNoPersistence := attemptLatency - time.Duration(persistenceDuration)
352
metrics.TaskProcessingNoPersistenceLatency.With(e.chasmMetricsHandler).Record(attemptNoPersistence)
353
}
354
355
>
priorityTaggedProvider := e.chasmMetricsHandler.WithTags(metrics.TaskPriorityTag(e.priority.String()))
executable.go
356
>
metrics.TaskRequests.With(priorityTaggedProvider).Record(1)
357
>
metrics.TaskScheduleLatency.With(priorityTaggedProvider).Record(e.scheduleLatency)
358
>
metrics.OperationCounter.With(e.defaultMetricsHandler).Record(1)
359
>
360
>
if retErr == nil {
361
e.inMemoryNoUserLatency += e.scheduleLatency + e.attemptNoUserLatency
362
}