MetricKit – это мощный инструмент для мониторинга и диагностики производительности и стабильности iOS приложений. Он предоставляет разработчикам возможность отслеживать важные метрики, такие как зависания интерфейса, нагрузка на процессор, время запуска, активность диска и крэши. Минимальная версия iOS для подключения MetricKit – iOS 14.
Hang
- зависания UI.CPU
- высокая нагрузка на процессор.Launch
- долгий запуск приложения.Disk
- высокая активность записи на диск.Crash
- крэши приложения.MetricKit выделяет отдельный тип METRIC_KIT
в общем списке сбоев. Для фильтрации различных диагностик в списке можно использовать специальный ключ MetricKitType
. Доступные значения:
Значение ключа | Описание |
---|---|
MXHang | Фильтрация зависаний UI. |
MXCPU | Фильтрация диагностики нагрузки на процессор. |
MXDisk | Фильтрация диагностики активности записи на диск. |
MXCrash | Фильтрация крэшей. |
MXLaunch | Фильтрация диагностики длительного запуска. |
MXWatchdog | Фильтрация крэшей, связанных с вотчдогами (при включённой настройке separateWatchdogs ). |
MXDeadlock | Фильтрация крэшей, связанных с дедлоками (при включённой настройке separateDeadlocks ). |
ВАЖНО! В отчётах MetricKit не имеет смысла обращаться к полям логов, данным и ключам. Диагностика может происходить в любой момент и сразу же отправляется, загружая все текущие properties
и tags
, установленные в SDK. Единственные поля, на которые стоит обращать внимание в отчётах MetricKit: versionName
, versionCode
, message
и MetricKitType
.
Для интеграции MetricKit в ваше приложение необходимо передать новый тип .metricKit
с конфигурацией TracerMetricKitConfiguration
в FeatureConfiguration
в вашей конфигурации Configuration
.
import OKTracer let metricKitConfiguration = TracerMetricKitConfiguration() // настройка опций metricKitConfiguration let configuration = Configuration( token: "your_token", features: [ .metricKit(metricKitConfiguration) ] )
Конфигурация TracerMetricKitConfiguration
позволяет гибко настроить сбор различных метрик и событий. Рассмотрим методы настройки подробнее.
Параметр | Тип | Описание |
---|---|---|
hangsEnabled | Bool | Включение/выключение диагностики зависаний UI (по умолчанию true ). |
hangsDuration | TimeInterval | Минимальная длительность зависания для отправки (по умолчанию 0). |
hangFreeSessions | Bool | Включение/выключение подсчета сессий без зависаний (по умолчанию false ). |
cpuEnabled | Bool | Включение/выключение диагностики нагрузки на процессор (по умолчанию true ). |
diskEnabled | Bool | Включение/выключение диагностики активности записи на диск (по умолчанию true ). |
launchEnabled | Bool | Включение/выключение диагностики длительного запуска приложения (по умолчанию true ). |
crashEnabled | Bool | Включение/выключение диагностики крэшей (по умолчанию true ). |
separateWatchdogs | Bool | Отделение крэшей, связанных с вотчдогами, от остальных крэшей (по умолчанию false ). |
separateDeadlocks | Bool | Отделение крэшей, связанных с дедлоками, от остальных крэшей (по умолчанию false ). |
В конфигурации есть конструктор без параметров TracerMetricKitConfiguration()
, который инициализирует все параметры по умолчанию.
В TracerMetricKitConfiguration
также есть некоторые опции, которые позволяют настраивать различные типы диагностики.
Позволяет настроить диагностику зависаний (Hang
).
Параметр | Тип | Описание |
---|---|---|
enabled | Bool | Включает/выключает диагностику зависаний (по умолчанию true ). |
duration | TimeInterval | Минимальная длительность зависания в секундах. Зависания, длительностью менее указанного значения, не будут отправляться (по умолчанию 0). |
hangFreeSessions | Bool | Включает/выключает подсчёт сессий без зависаний. Если включено, можно использовать метод lastSessionHangsCount() в TracerServiceProtocol для получения количества зависаний за предыдущую сессию (по умолчанию false ). |
Пример использования:
let metricKitConfig = TracerMetricKitConfiguration() .withHangs(enabled: true, duration: 2.0, hangFreeSessions: true)
Позволяет настроить диагностики для CPU, диска и запуска приложения.
Параметр | Тип | Описание |
---|---|---|
cpuEnabled | Bool | Включает/выключает диагностику нагрузки на процессор (по умолчанию true ). |
diskEnabled | Bool | Включает/выключает диагностику активности записи на диск (по умолчанию true ). |
launchEnabled | Bool | Включает/выключает диагностику длительного запуска приложения (по умолчанию true ). |
Пример использования:
let metricKitConfig = TracerMetricKitConfiguration() .with(cpuEnabled: true, diskEnabled: true, launchEnabled: true)
Позволяет настроить диагностику крэшей (Crash
).
Параметр | Тип | Описание |
---|---|---|
crashEnabled | Bool | Включает/выключает диагностику крэшей (по умолчанию true ). |
separateWatchdogs | Bool | Отделяет крэши, связанные с вотчдогами, от остальных крэшей при фильтрации (по умолчанию false ). |
separateDeadlocks | Bool | Отделяет крэши, связанные с дедлоками, от остальных крэшей при фильтрации (по умолчанию false ). |
Пример использования:
let metricKitConfig = TracerMetricKitConfiguration() .withCrashes(enabled: true, separateWatchdogs: true, separateDeadlocks: true)