Код: Выделить всё
// Monitor is IResourceMonitor and gets registered in DI
var utilization = monitor.GetUtilization(TimeSpan.FromSeconds(3));
var resources = utilization.SystemResources;
// Use various properties from utilization and resources for CPU and memory usage
< /code>
Но iresourcemonitor < /code> снижается этим сообщением: < /p>
extobs0001: интерфейс 'microsoft.extensions.diagnostics.resourcemonitoring.iresourcenitor' Рассмотрим использование мониторинга ресурсов наблюдаемых инструментов. '
, будучи незнакомым с сбором показателей и всеми связанными соглашениями об именовании, я пытался исследовать и использовать System.diagnostics.metrics
using MeterListener listener = new();
listener.InstrumentPublished = (instrument, l) =>
l.EnableMeasurementEvents(instrument);
};
listener.SetMeasurementEventCallback((instrument, value, tags, state) =>
{
Console.WriteLine($"[LONG] {instrument.Name} = {value} {instrument.Unit}");
});
listener.SetMeasurementEventCallback((instrument, value, tags, state) =>
{
Console.WriteLine($"[DOUBLE] {instrument.Name} = {value:F2} {instrument.Unit}");
});
listener.SetMeasurementEventCallback((instrument, value, tags, state) =>
{
Console.WriteLine($"[INT] {instrument.Name} = {value:F2} {instrument.Unit}");
});
listener.SetMeasurementEventCallback((instrument, value, tags, state) =>
{
Console.WriteLine($"[DECIMAL] {instrument.Name} = {value:F2} {instrument.Unit}");
});
listener.Start();
Console.WriteLine("Listening for metrics... Press Ctrl+C to exit.");
List memory = [];
while (true)
{
var array = new byte[1024];
var index = Random.Shared.Next(array.Length);
array[index] = (byte)Random.Shared.Next(0, 255); // Touch memory to make sure it's being used
Console.WriteLine(array[index]);
memory.Add(array); // Keep adding memory
await Task.Delay(TimeSpan.FromSeconds(3));
}
< /code>
Я пробовал это в Windows и Linux (и в контейнере Linux), и обратные вызовы никогда не вызываются, даже если я вижу, что все события измерения включены. Все, что я хочу сделать, это получить использование ЦП и памяти, и кажется, что это сложнее или более вовлечено, чем я думал. (т.е. я не хочу писать и поддерживать код, который сам запрашивает и обрабатывает значения из файловой системы cgroup)
Подробнее здесь: https://stackoverflow.com/questions/796 ... hin-my-app