270
// upsertHeartbeat records or refreshes a WorkerHeartbeat under the given namespace.
271
// New entries increment the global counter.
272
>
func (m *registryImpl) upsertHeartbeats(nsID namespace.ID, nsName namespace.Name, principal *commonpb.Principal, heartbeats []*workerpb.WorkerHeartbeat) {
registry_impl.go
273
>
b := m.getBucket(nsID)
274
>
added, removed := b.upsertHeartbeats(nsID, nsName, principal, heartbeats)
275
>
m.total.Add(added - removed)
276
>
if added > 0 {
277
metrics.WorkerRegistryWorkersAdded.With(m.metricsHandler).Record(added)
278
}
280
metrics.WorkerRegistryWorkersRemoved.With(m.metricsHandler).Record(removed)
281
}
283
}
284
285
// recordUtilizationMetric records the overall capacity utilization ratio.
287
>
maxItems := int64(m.maxItemsFn())
288
>
utilization := float64(m.total.Load()) / float64(maxItems)
289
>
metrics.WorkerRegistryCapacityUtilizationMetric.With(m.metricsHandler).Record(utilization)
290
>
}
291
292
// recordEvictionMetric sets the eviction metric based on current capacity state.