Example #1
0
        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();
        }