public static AppStatus GetStatusBasedOnHealthChecks(string appID, string IPAddress) { AppStatus AggregatedStatus = AppStatus.Up; string failedMessagesJson = string.Empty; List <SelfHealthMessage> unHealthyMessages = HealthMessageLogic.GetFailedChecks(appID, IPAddress); //Step 1: Get Aggregate Status of AppID depeding on status of related health messages if (unHealthyMessages != null && unHealthyMessages.Count > 0) { var failedMessages = unHealthyMessages.Where(x => x.OverallStatus == Contracts.CheckResultStatus.Down || x.OverallStatus == Contracts.CheckResultStatus.Unknown); if (failedMessages != null && failedMessages.Count() > 0) { AggregatedStatus = AppStatus.Down; } else { AggregatedStatus = AppStatus.PerformanceDegraded; } //failedMessagesJson = JsonConvert.SerializeObject(unHealthyMessages); } return(AggregatedStatus); }
public void LoadAllApplications() { List <Component> components = ComponentLogic.GetAllComponents(); foreach (var component in components) { List <AppStatus> replicaAppStatus = null; List <string> subComponentIPs = new HealthMessageLogic().GetIPAddressesForApp(component.AppID); var data = JsonConvert.SerializeObject(component); if (subComponentIPs == null || subComponentIPs.Count() == 0) { Clients.All.loadAllApllications(data, null, null); continue; } Trace.TraceInformation("About to Get Status based on Replica apps"); replicaAppStatus = HealthMessageUtility.GetStatusBasedOnReplicas(component, subComponentIPs); Trace.TraceInformation("Replica App Status Done "); //string data = JsonConvert.SerializeObject(component); Clients.All.loadAllApllications(data, JsonConvert.SerializeObject(subComponentIPs), replicaAppStatus); } }