2096
ai *persistencespb.ActivityInfo,
2097
request *workflowservice.RecordActivityTaskHeartbeatRequest,
2099
>
if prev, existed := ms.pendingActivityInfoIDs[ai.ScheduledEventId]; existed {
2100
>
ms.approximateSize -= prev.Size()
2101
>
}
2102
>
ai.Version = ms.GetCurrentVersion()
2103
>
ai.LastHeartbeatDetails = request.Details
2104
>
now := ms.timeSource.Now()
2105
>
ai.LastHeartbeatUpdateTime = timestamppb.New(now)
2106
>
ms.updateActivityInfos[ai.ScheduledEventId] = ai
2107
>
ms.activityInfosUserDataUpdated[ai.ScheduledEventId] = struct{}{}
2108
>
ms.approximateSize += ai.Size()
2109
>
ms.syncActivityTasks[ai.ScheduledEventId] = struct{}{}
2110
>
2111
>
payloadSize := request.Details.Size()
2112
>
if payloadSize > 0 {
2113
>
ms.metricsHandler.Counter(metrics.ActivityPayloadSize.Name()).Record(
2114
>
int64(payloadSize),
2115
>
metrics.OperationTag(metrics.HistoryRecordActivityTaskHeartbeatScope),
2116
>
metrics.NamespaceTag(ms.namespaceEntry.Name().String()))
2117
>
}
2118
>
ms.metricsHandler.Counter(metrics.ActivityHeartbeatCount.Name()).Record(1,
2119
>
metrics.OperationTag(metrics.HistoryRecordActivityTaskHeartbeatScope),
2120
>
metrics.NamespaceTag(ms.namespaceEntry.Name().String()),
2121
>
metrics.StringTag("has_details", strconv.FormatBool(payloadSize > 0)))
2122
}
2123