Как получить способ осведомленности CGRUP для захвата процессора и памяти?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как получить способ осведомленности CGRUP для захвата процессора и памяти?

Сообщение Anonymous »

Все, что я хочу сделать, - это обладать осведомленным способом захвата процессора и памяти в своем приложении C#, и это было очень сложно. Docker Stats выводила. Проблема в том, что Iresourcemonitor теперь помечен как устаревший. Это было так просто: < /p>

Код: Выделить всё

// 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 
, но это не работает для меня:
var listener = new MeterListener();

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.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 ... and-memory
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как иметь способ осведомленного CGROUP для захвата процессора и памяти в приложении DotNet?
    Anonymous » » в форуме C#
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Как иметь способ осведомленного CGROUP для захвата процессора и памяти в приложении .NET Core?
    Anonymous » » в форуме C#
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • SystemD CGRUP SLICE Переопределение пользователя не работает
    Anonymous » » в форуме Linux
    0 Ответы
    54 Просмотры
    Последнее сообщение Anonymous
  • Есть ли лучший способ осведомленности Python об источниках модулей?
    Anonymous » » в форуме Python
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Есть ли лучший способ осведомленности Python об источниках модулей?
    Anonymous » » в форуме Python
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»