public void NodeMetrics_MetricValues_must_extract_expected_metrics_for_load_balancing()
        {
            var stream1 = Convert.ToInt64(_node1.Metric(StandardMetrics.SystemMemoryMax).Value);
            var stream2 = Convert.ToInt64(_node2.Metric(StandardMetrics.SystemMemoryAvailable).Value);

            Assert.True(stream1 >= stream2);
        }
Beispiel #2
0
                Decompose(NodeMetrics nodeMetrics)
            {
                var used = nodeMetrics.Metric(MemoryUsed);
                var available = nodeMetrics.Metric(MemoryAvailable);
                
                if (!used.HasValue || !available.HasValue)
                    return Option<(Actor.Address, long, double, double, Option<double>)>.None;

                return (
                    nodeMetrics.Address,
                    nodeMetrics.Timestamp,
                    used.Value.SmoothValue,
                    available.Value.SmoothValue,
                    nodeMetrics.Metric(MaxMemoryRecommended).Select(v => v.SmoothValue)
                );
            }
Beispiel #3
0
        public void NodeMetrics_MetricValues_should_extract_expected_metrics_for_load_balancing()
        {
            var stream1 = _node2.Metric(StandardMetrics.MemoryAvailable).Value.Value.LongValue;
            var stream2 = _node1.Metric(StandardMetrics.MemoryUsed).Value.Value.LongValue;

            stream1.Should().BeGreaterOrEqualTo(stream2);
        }
Beispiel #4
0
            /// <summary>
            /// Given a NodeMetrics it returns the Cpu data if the nodeMetrics contains necessary heap metrics.
            /// </summary>
            /// <returns>If possible a tuple matching the Cpu constructor parameters</returns>
            public static Option<(Actor.Address Address, long Timestamp, double CpuProcessUsage, double CpuTotalUsage, int Processors)> Decompose(NodeMetrics nodeMetrics)
            {
                var processors = nodeMetrics.Metric(Processors);
                var cpuProcessUsage = nodeMetrics.Metric(CpuProcessUsage);
                var cpuTotalUsage = nodeMetrics.Metric(CpuTotalUsage);
                
                if (!processors.HasValue || !cpuProcessUsage.HasValue || !cpuTotalUsage.HasValue)
                    return Option<(Actor.Address, long, double, double, int)>.None;

                return (
                    nodeMetrics.Address,
                    nodeMetrics.Timestamp,
                    cpuProcessUsage.Value.SmoothValue,
                    cpuTotalUsage.Value.SmoothValue,
                    (int)processors.Value.Value.LongValue
                );
            }