App Metrics — это кроссплатформенная библиотека .NET с открытым исходным кодом, используемая для записи метрик в приложении. Метрики приложений могут работать на .NET Core или на полной платформе .NET, также поддерживающей .NET 4.5.2.

Неважно, хотите ли вы измерить, как используется ваше приложение, увидеть наиболее неисправные конечные точки или просто узнать состояние работоспособности вашего приложения. AppMetrics может охватывать многие другие варианты использования, когда речь идет о мониторинге приложений. Он работает в фоновом режиме приложений .NET с минимальными затратами памяти и производительности.

Преимущества

Как владелец приложения, которому необходимо постоянно следить за своим приложением, я перечисляю наиболее полезные показатели и то, как они помогают мне выявлять текущие и возникающие проблемы с моим приложением.

  1. Ошибки на конечную точку.Помогает определить, какая конкретная конечная точка наименее стабильна и требует усовершенствований или рефакторинга.
  2. Время запроса/ответа — я могу выяснить все различия во времени ответа, чтобы отслеживать потенциально нестабильные конечные точки и дополнительно их исследовать.
  3. Количество запросов к каждой конечной точке. Это помогает мне обнаруживать все потенциальные случаи неправомерного использования моего приложения и определять, какие части приложения используются чаще, поэтому нужно уделять больше внимания. Он также выделяет те части кода, которые вообще не используются (мы можем снизить затраты на обслуживание, удалив неиспользуемый код).
  4. Когда используются конечные точки/службы —я t дает мне подсказки о том, как и когда следует масштабировать мое приложение.
  5. Использование системы — насколько сколько ресурсов использует мое приложение — помогает мне выявить любые утечки памяти или неэффективную обработку в моем приложении.
  6. Оценка ApDex — измеряет удовлетворенность пользователей использованием API.
  7. Контексты.AppMetrics поддерживает несколько контекстов, поэтому метрики одного процесса легко отличить от другого.
  8. Пользовательские метрики — поскольку AppMetrics поддерживает настраиваемые метрики, поэтому я могу измерять почти все, что происходит в моем приложении, например, время выполнения определенной части кода, время всех запросов sql или объем памяти. используется определенной частью кода. Более того, я могу измерить бизнес-метрику с помощью того же кода, что и технические показатели.
  9. Исторические данные. Для всего вышеперечисленного я могу отслеживать прошлые значения и то, как они менялись, что дает мне отличный обзор тенденций. Я могу реагировать на все потенциальные проблемы и трудности еще до того, как они возникнут.

Типы метрик

  • Датчик — лучше всего подходит для измерения таких значений, как ЦП, использование памяти, процентное значение, температура и т. д.
  • Счетчик – простейшая метрика, подсчитывающая количество событий.
  • Измеритель – аналогичен счетчику, однако лучше подходит для измерения тенденций, чем для определения точного значения. Он основан на Экспоненциально-взвешенной скользящей средней, поэтому тренды более плавные.
  • Гистограмма – измеряет статистическое распределение набора значений. Полезно для таких показателей, как размер запросов POST и PIT.
  • Таймеры — измеряют время выполнения данной части кода. Очень полезно для измерения запросов к базе данных и отделения их от всего времени ответа вызова API.
  • Apdex — измеряет удовлетворенность конечных пользователей на основе индекса производительности приложений.

Сторонники стандарта Apdex считают, что он предлагает лучший способ «измерить то, что имеет значение». Метод Apdex преобразует множество измерений в одно число по единой шкале от 0 до 1 (0 = пользователи не удовлетворены, 1 = все пользователи удовлетворены). Полученная оценка Apdex является числовым показателем удовлетворенности пользователей производительностью корпоративных приложений.

Репортеры метрик

AppMetrics только собирает данные, сама по себе она не может отображать данные в удобочитаемом или графическом формате. Вот почему рекомендуется использовать сотрудничающий агрегатор данных для хранения и анализа данных.

Поскольку он поддерживает:

  • Прометей
  • DataDog
  • InfluxDb
  • Проверка работоспособности Майкрософт
  • Аналитика Azure
  • Пользовательская http-интеграция

неважно, какой агрегатор метрик вы выберете, поддерживаются методы pull и push.

101 Настройка

Добавьте nugets в свой файл .csproj.

  <PackageReference Include="App.Metrics.App.All" Version="4.3.0" />
  <PackageReference Include="App.Metrics.AspNetCore.Tracking" Version="4.3.0" />
  <PackageReference Include="App.Metrics.AspNetCore.Mvc" Version="4.3.0" />
  <PackageReference Include="App.Metrics.Reporting.Console" Version="4.3.0" />

Зарегистрируйте метрики в файле Program.cs.

builder.Services.AddMvcCore().AddMetricsCore();
builder.Services.AddMetricsReportingHostedService();
builder.Services.AddMetricsEndpoints();

//...

app.UseMetricsAllMiddleware();
app.UseMetricsAllEndpoints();

Вуаля!

Создайте и запустите его и получите доступ к конечной точке /metrics. Он должен вернуть вам самый базовый (но все же очень полезный) набор метрик.



Узнать больше