public Task Handle(EndpointHeartbeat message, IMessageHandlerContext context) { var endpointInstanceId = new EndpointInstanceId(message.EndpointName, message.Host, message.HostId); monitor.RecordHeartbeat(endpointInstanceId, message.ExecutedAt); return(Task.FromResult(0)); }
static EndpointDetails Convert(EndpointInstanceId endpointInstanceId) { return(new EndpointDetails { Host = endpointInstanceId.HostName, HostId = endpointInstanceId.HostGuid, Name = endpointInstanceId.LogicalName }); }
public Task Handle(TaggedLongValueOccurrence message, IMessageHandlerContext context) { var instanceId = EndpointInstanceId.From(context.MessageHeaders); var messageType = context.MessageHeaders[MetricHeaders.MetricType]; if (messageType == RetriesMessageType) { store.Store(message.Entries, instanceId, new EndpointMessageType(instanceId.EndpointName, message.TagValue)); } return(TaskEx.Completed); }
public void CheckEndpoints(DateTime threshold) { foreach (var entry in heartbeats) { var recordedHeartbeat = entry.Value.MarkDeadIfOlderThan(threshold); EndpointInstanceId endpointInstanceId = entry.Key; var monitor = endpoints.GetOrAdd(endpointInstanceId.UniqueId, id => new EndpointInstanceMonitor(endpointInstanceId, true, domainEvents)); monitor.UpdateStatus(recordedHeartbeat.Status, recordedHeartbeat.Timestamp); } var stats = GetStats(); Update(stats); }
public void WarmupMonitoringFromPersistence() { using (var session = store.OpenSession()) { using (var endpointsEnumerator = session.Advanced.Stream(session.Query <KnownEndpoint, KnownEndpointIndex>())) { while (endpointsEnumerator.MoveNext()) { var endpoint = endpointsEnumerator.Current.Document; var endpointInstanceId = new EndpointInstanceId(endpoint.EndpointDetails.Name, endpoint.EndpointDetails.Host, endpoint.EndpointDetails.HostId); monitoring.GetOrCreateMonitor(endpointInstanceId, endpoint.Monitored); } } } }
public void DetectEndpointFromPersistentStore(EndpointDetails endpointDetails, bool monitored) { var endpointInstanceId = new EndpointInstanceId(endpointDetails.Name, endpointDetails.Host, endpointDetails.HostId); endpoints.GetOrAdd(endpointInstanceId.UniqueId, id => new EndpointInstanceMonitor(endpointInstanceId, monitored, domainEvents)); }
public void RecordHeartbeat(EndpointInstanceId endpointInstanceId, DateTime timestamp) => heartbeats.GetOrAdd(endpointInstanceId, id => new HeartbeatMonitor()).MarkAlive(timestamp);
public EndpointInstanceMonitor(EndpointInstanceId endpointInstanceId, bool monitored, IDomainEvents domainEvents) { Id = endpointInstanceId; Monitored = monitored; this.domainEvents = domainEvents; }
public EndpointInstanceMonitor(EndpointInstanceId endpointInstanceId, bool monitored) { Id = endpointInstanceId; Monitored = monitored; }
public void Handle(EndpointHeartbeat message) { var endpointInstanceId = new EndpointInstanceId(message.EndpointName, message.Host, message.HostId); monitor.RecordHeartbeat(endpointInstanceId, message.ExecutedAt); }
public EndpointInstanceMonitor GetOrCreateMonitor(EndpointInstanceId endpointInstanceId, bool monitorIfNew) { return(endpoints.GetOrAdd(endpointInstanceId.ToUniqueInstanceId(), id => new EndpointInstanceMonitor(endpointInstanceId, monitorIfNew))); }