Неважно, хотите ли вы измерить, как используется ваше приложение, увидеть наиболее неисправные конечные точки или просто узнать состояние работоспособности вашего приложения. AppMetrics может охватывать многие другие варианты использования, когда речь идет о мониторинге приложений. Он работает в фоновом режиме приложений .NET с минимальными затратами памяти и производительности.
Преимущества
Как владелец приложения, которому необходимо постоянно следить за своим приложением, я перечисляю наиболее полезные показатели и то, как они помогают мне выявлять текущие и возникающие проблемы с моим приложением.
- Ошибки на конечную точку.Помогает определить, какая конкретная конечная точка наименее стабильна и требует усовершенствований или рефакторинга.
- Время запроса/ответа — я могу выяснить все различия во времени ответа, чтобы отслеживать потенциально нестабильные конечные точки и дополнительно их исследовать.
- Количество запросов к каждой конечной точке. Это помогает мне обнаруживать все потенциальные случаи неправомерного использования моего приложения и определять, какие части приложения используются чаще, поэтому нужно уделять больше внимания. Он также выделяет те части кода, которые вообще не используются (мы можем снизить затраты на обслуживание, удалив неиспользуемый код).
- Когда используются конечные точки/службы —я t дает мне подсказки о том, как и когда следует масштабировать мое приложение.
- Использование системы — насколько сколько ресурсов использует мое приложение — помогает мне выявить любые утечки памяти или неэффективную обработку в моем приложении.
- Оценка ApDex — измеряет удовлетворенность пользователей использованием API.
- Контексты.AppMetrics поддерживает несколько контекстов, поэтому метрики одного процесса легко отличить от другого.
- Пользовательские метрики — поскольку AppMetrics поддерживает настраиваемые метрики, поэтому я могу измерять почти все, что происходит в моем приложении, например, время выполнения определенной части кода, время всех запросов sql или объем памяти. используется определенной частью кода. Более того, я могу измерить бизнес-метрику с помощью того же кода, что и технические показатели.
- Исторические данные. Для всего вышеперечисленного я могу отслеживать прошлые значения и то, как они менялись, что дает мне отличный обзор тенденций. Я могу реагировать на все потенциальные проблемы и трудности еще до того, как они возникнут.
Типы метрик
- Датчик — лучше всего подходит для измерения таких значений, как ЦП, использование памяти, процентное значение, температура и т. д.
- Счетчик – простейшая метрика, подсчитывающая количество событий.
- Измеритель – аналогичен счетчику, однако лучше подходит для измерения тенденций, чем для определения точного значения. Он основан на Экспоненциально-взвешенной скользящей средней, поэтому тренды более плавные.
- Гистограмма – измеряет статистическое распределение набора значений. Полезно для таких показателей, как размер запросов 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. Он должен вернуть вам самый базовый (но все же очень полезный) набор метрик.