public ProbeResult Execute <T>(T snapshot) { ChannelSnapshot data = snapshot as ChannelSnapshot; ProbeResult result; var probeData = new List <ProbeData> { new ProbeDataImpl("PrefetchCount", data.PrefetchCount.ToString()) }; if (data.PrefetchCount == 0) { _kb.TryGet(Metadata.Id, ProbeResultStatus.Warning, out var article); result = new WarningProbeResult(data.ConnectionIdentifier, data.Identifier, Metadata.Id, Metadata.Name, ComponentType, probeData, article); } else { _kb.TryGet(Metadata.Id, ProbeResultStatus.Inconclusive, out var article); result = new InconclusiveProbeResult(data.ConnectionIdentifier, data.Identifier, Metadata.Id, Metadata.Name, ComponentType, probeData, article); } NotifyObservers(result); return(result); }
public ProbeResult Execute <T>(T snapshot) { ChannelSnapshot data = snapshot as ChannelSnapshot; ProbeResult result; var probeData = new List <ProbeData> { new ProbeDataImpl("UnacknowledgedMessages", data.UnacknowledgedMessages.ToString()), new ProbeDataImpl("PrefetchCount", data.PrefetchCount.ToString()) }; if (data.UnacknowledgedMessages > data.PrefetchCount) { _kb.TryGet(Metadata.Id, ProbeResultStatus.Unhealthy, out var article); result = new UnhealthyProbeResult(data.ConnectionIdentifier, data.Identifier, Metadata.Id, Metadata.Name, ComponentType, probeData, article); } else { _kb.TryGet(Metadata.Id, ProbeResultStatus.Healthy, out var article); result = new HealthyProbeResult(data.ConnectionIdentifier, data.Identifier, Metadata.Id, Metadata.Name, ComponentType, probeData, article); } NotifyObservers(result); return(result); }
public void Verify_probe_healthy_condition() { var knowledgeBaseProvider = _services.GetService <IKnowledgeBaseProvider>(); var probe = new ChannelThrottlingProbe(knowledgeBaseProvider); ChannelSnapshot snapshot = new ChannelSnapshot() { PrefetchCount = 6, UncommittedAcknowledgements = 2, UncommittedMessages = 5, UnconfirmedMessages = 8, UnacknowledgedMessages = 4, Consumers = 1, Identifier = "Channel1" }; var result = probe.Execute(snapshot); Assert.Multiple(() => { Assert.AreEqual(ProbeResultStatus.Healthy, result.Status); Assert.AreEqual(typeof(ChannelThrottlingProbe).GetIdentifier(), result.KB.Id); }); }