private static void WriteDashboardData(JsonTextWriter writer, HystrixDashboardStream.DashboardData data) { try { writer.WriteStartArray(); foreach (HystrixCommandMetrics commandMetrics in data.CommandMetrics) { WriteCommandMetrics(writer, commandMetrics); } foreach (HystrixThreadPoolMetrics threadPoolMetrics in data.ThreadPoolMetrics) { WriteThreadPoolMetrics(writer, threadPoolMetrics); } foreach (HystrixCollapserMetrics collapserMetrics in data.CollapserMetrics) { WriteCollapserMetrics(writer, collapserMetrics); } writer.WriteEndArray(); } catch (Exception) { // Log } }
private static void WriteCommandData(HystrixDashboardStream.DashboardData data, IDiscoveryClient discoveryClient, List <string> jsonList) { try { var localService = discoveryClient?.GetLocalServiceInstance(); foreach (HystrixCommandMetrics commandMetrics in data.CommandMetrics) { using (StringWriter sw = new StringWriter()) { using (JsonTextWriter writer = new JsonTextWriter(sw)) { writer.WriteStartObject(); WriteLocalService(writer, localService); writer.WriteObjectFieldStart("data"); WriteCommandMetrics(writer, commandMetrics, localService); writer.WriteEndObject(); writer.WriteEndObject(); } jsonList.Add(sw.ToString()); } } } catch (Exception) { // Log } }
public static List <string> ToJsonList(HystrixDashboardStream.DashboardData data, IDiscoveryClient discoveryClient) { List <string> jsonList = new List <string>(); WriteCommandData(data, discoveryClient, jsonList); WriteThreadPoolData(data, discoveryClient, jsonList); return(jsonList); }
public static string ToJsonString(HystrixDashboardStream.DashboardData data) { using var sw = new StringWriter(); using (var writer = new JsonTextWriter(sw)) { WriteDashboardData(writer, data); } return(sw.ToString()); }
public static List <string> ToMultipleJsonStrings(HystrixDashboardStream.DashboardData dashboardData) { List <string> jsonStrings = new List <string>(); foreach (HystrixCommandMetrics commandMetrics in dashboardData.CommandMetrics) { jsonStrings.Add(ToJsonString(commandMetrics)); } foreach (HystrixThreadPoolMetrics threadPoolMetrics in dashboardData.ThreadPoolMetrics) { jsonStrings.Add(ToJsonString(threadPoolMetrics)); } foreach (HystrixCollapserMetrics collapserMetrics in dashboardData.CollapserMetrics) { jsonStrings.Add(ToJsonString(collapserMetrics)); } return(jsonStrings); }