public void MetricsCollector_collect_accurate_metrics_for_a_node()
{
var sample = _collector.Sample();
var metrics = sample.Metrics.Select(x => new {x.Name, x.Value}).ToList();
var used = metrics.First(arg => arg.Name == StandardMetrics.ClrProcessMemoryUsed);
var memoryAvailable = metrics.First(arg => arg.Name == StandardMetrics.SystemMemoryAvailable);
foreach (var metric in metrics)
{
if (metric.Name == StandardMetrics.SystemLoadAverage) Assert.True(metric.Value >= 0.0);
if (metric.Name == StandardMetrics.Processors) Assert.True(Convert.ToInt32(metric.Value) >= 0);
if (metric.Name == StandardMetrics.ClrProcessMemoryUsed) Assert.True(Convert.ToInt64(metric.Value) >= 0L);
if (metric.Name == StandardMetrics.SystemMemoryAvailable) Assert.True(Convert.ToInt64(metric.Value) > 0L);
if (metric.Name == StandardMetrics.SystemMemoryMax)
{
Assert.True(Convert.ToInt64(metric.Value) > 0L);
Assert.True(used.Value < metric.Value);
Assert.True(memoryAvailable.Value <= metric.Value);
}
}
}