public async Task <IEnumerable <NodeLoadMetricInformation> > GetNodeLoadAsync(string nodeName) { long replicaCount = await this.GetNodeReplicaCountAsync(nodeName); NodeLoadInformation loadInfo = await this.fabricClient.QueryManager.GetNodeLoadInformationAsync(nodeName); foreach (string systemService in systemMetrics) { NodeLoadMetricInformation item = loadInfo.NodeLoadMetricInformationList.FirstOrDefault(x => String.Equals(x.Name, systemService, StringComparison.OrdinalIgnoreCase)); if (item != null) { loadInfo.NodeLoadMetricInformationList.Remove(item); } } Type t = typeof(NodeLoadMetricInformation); NodeLoadMetricInformation countMetric = new NodeLoadMetricInformation(); t.GetProperty("Name").SetValue(countMetric, CountMetricName); t.GetProperty("IsCapacityViolation").SetValue(countMetric, false); t.GetProperty("NodeBufferedCapacity").SetValue(countMetric, 0); t.GetProperty("NodeCapacity").SetValue(countMetric, 0); t.GetProperty("NodeLoad").SetValue(countMetric, replicaCount); t.GetProperty("NodeRemainingBufferedCapacity").SetValue(countMetric, -1); t.GetProperty("NodeRemainingCapacity").SetValue(countMetric, -1); IList <NodeLoadMetricInformation> metrics = loadInfo.NodeLoadMetricInformationList; metrics.Add(countMetric); return(metrics); }
/// <summary> /// Serializes the object to JSON. /// </summary> /// <param name="writer">The <see cref="T: Newtonsoft.Json.JsonWriter" /> to write to.</param> /// <param name="obj">The object to serialize to JSON.</param> internal static void Serialize(JsonWriter writer, NodeLoadMetricInformation obj) { // Required properties are always serialized, optional properties are serialized when not null. writer.WriteStartObject(); if (obj.Name != null) { writer.WriteProperty(obj.Name, "Name", JsonWriterExtensions.WriteStringValue); } if (obj.NodeCapacity != null) { writer.WriteProperty(obj.NodeCapacity, "NodeCapacity", JsonWriterExtensions.WriteStringValue); } if (obj.NodeLoad != null) { writer.WriteProperty(obj.NodeLoad, "NodeLoad", JsonWriterExtensions.WriteStringValue); } if (obj.NodeRemainingCapacity != null) { writer.WriteProperty(obj.NodeRemainingCapacity, "NodeRemainingCapacity", JsonWriterExtensions.WriteStringValue); } if (obj.IsCapacityViolation != null) { writer.WriteProperty(obj.IsCapacityViolation, "IsCapacityViolation", JsonWriterExtensions.WriteBoolValue); } if (obj.NodeBufferedCapacity != null) { writer.WriteProperty(obj.NodeBufferedCapacity, "NodeBufferedCapacity", JsonWriterExtensions.WriteStringValue); } if (obj.NodeRemainingBufferedCapacity != null) { writer.WriteProperty(obj.NodeRemainingBufferedCapacity, "NodeRemainingBufferedCapacity", JsonWriterExtensions.WriteStringValue); } writer.WriteEndObject(); }