Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
При добавлении нового инструментария метрик в приложение или библиотеку .NET можно выбрать нужный API из множества доступных. В этой статье вы узнаете о вариантах.
Интерфейсы API .NET
Система.Диагностика.Метрики
API System.Diagnostics.Metrics — это новейшие кроссплатформенные API, разработанные в тесном сотрудничестве в рамках проекта OpenTelemetry. Если у вас нет определенной причины использовать один из старых API, описанных ниже, System.Diagnostics.Metrics является хорошим выбором по умолчанию для новой работы. Он доступен путем нацеливания на .NET 6+ или в более старых версиях .NET Core и .NET Framework, добавив ссылку на пакет NuGet .NET System.Diagnostics.DiagnosticsSource 6.0+. Помимо обеспечения широкой совместимости, этот API добавляет поддержку для многих вещей, которые не хватает от предыдущих API, таких как:
- Гистограммы и процентили
- Многомерные метрики
- Строго типизированный высокопроизводительный API прослушивателя
- Несколько одновременных прослушивателей
- Доступ прослушивателя к неагрегированным измерениям
Хотя этот API был разработан для работы с OpenTelemetry и его растущей экосистемой подключаемых библиотек интеграции поставщиков, приложения могут также использовать встроенные в .NET API-интерфейсы прослушивателей напрямую. Благодаря этому можно создавать пользовательские средства метрик без зависимостей внешних библиотек.
PerformanceCounter
System.Diagnostics.PerformanceCounter API являются самыми старыми API метрик .NET. Они поддерживаются только в Windows и предоставляют управляемую программу-оболочку для технологии счетчиков производительности в ОС Windows. Они доступны во всех поддерживаемых версиях .NET.
Эти API предназначены в первую очередь для обеспечения совместимости. Команда разработчиков .NET считает, что это стабильный аспект, не требующий дальнейших улучшений (помимо исправления ошибок). Эти API-интерфейсы не предлагаются для использования в новых проектах разработки, если только проект не предназначен исключительно для Windows, и вы хотите работать с инструментами Счетчика производительности Windows.
Дополнительные сведения см. в статье Счетчики производительности в .NET Framework.
Счетчики событий
EventCounters были первыми API .NET для поддержки кроссплатформенных метрик. API доступны путем нацеливания на .NET Core 3.1+ и более поздние версии, а небольшое подмножество доступно на платформе .NET Framework 4.7.1 и более поздние версии. Эти API полностью поддерживаются и по-прежнему используются ключевыми библиотеками .NET, но они имеют меньше возможностей, чем новые System.Diagnostics.Metrics API. Счетчики производительности могут информировать о средних значениях и скорости изменений, но не поддерживают гистограммы и процентили. Кроме того, отсутствует поддержка многомерных метрик. Использовать пользовательский инструментарий можно с помощью API EventListener, хотя он не является строго типизированным. Он предоставляет доступ только к агрегированным значениям и имеет ограничения при использовании нескольких прослушивателей одновременно. Счетчики событий поддерживаются напрямую в Visual Studio, Application Insights, dotnet-counters и dotnet-monitor. Чтобы узнать о поддержке сторонних средств, обратитесь к документации по поставщику или проекту.
Команда .NET не планирует новых инвестиций в этот API, но, как и в случае с PerformanceCounters, он по-прежнему поддерживается для нынешних и будущих пользователей.
Сторонние API-интерфейсы
У большинства поставщиков мониторинга производительности приложений (APM), таких как AppDynamics, Application Insights, DataDog, DynaTrace и NewRelic, API-интерфейсы метрик входят в состав библиотек инструментирования. Prometheus и AppMetrics также являются популярными проектами OSS .NET. Дополнительные сведения об этих проектах можно найти на соответствующих веб-сайтах.