Быстрый старт

Регистрация и настройка

Для начала нужно:

  1. Зайти в аккаунт Tracer.
  2. Создать или вступить в организацию.
  3. Добавить андроид проект (нужно быть администратором или владельцем организации).

Подключение зависимостей на Трейсер к проекту

ВАЖНО! При каждом обновлении версии SDK настоятельно рекомендуется делать clean build.

В вашем <project>/settings.gradle.kts добавьте репозитории с плагином Трейсера и рантаймом Трейсера:

pluginManagement { repositories { // другие репозитории c вашими зависимостями mavenCentral() } } dependencyResolutionManagement { repositories { // другие репозитории c вашими зависимостями mavenCentral() } }

В вашем <project>/<app-module>/build.gradle.kts настройте необходимые параметры (подробнее в разделе Настройки конфигурации):

plugins { id("ru.ok.tracer").version("1.0.7") } tracer { create("defaultConfig") { // См. в разделе _«Настройки»_ pluginToken = "PLUGIN_TOKEN" appToken = "APP_TOKEN" // Ваши параметры конфигурации (подробее см. выше) // Например: uploadMapping = true uploadNativeSymbols = true additionalLibrariesPath = projectDir.toString() + "/aVeryNonstandardLibsDirectory" } // Также можно задавать конфигурацию для каждого flavor, buildType, buildVariant. // Конфигурации наследуют defaultConfig. create("debug") { // Параметры... } create("demoDebug") { // Параметры... } } dependencies { implementation(platform("ru.ok.tracer:tracer-platform:1.0.7")) // Плагины независимы друг от друга. Можно подключать только те, // которые необходимы в данный момент. // Сбор и анализ крешей и ANR implementation("ru.ok.tracer:tracer-crash-report") // Сбор и анализ нативных крешей implementation("ru.ok.tracer:tracer-crash-report-native") // Сбор и анализ хипдапмов при OOM implementation("ru.ok.tracer:tracer-heap-dumps") // Анализ потребления дискового места на устройстве implementation("ru.ok.tracer:tracer-disk-usage") // Семплирующий профайлер implementation("ru.ok.tracer:tracer-profiler-sampling") // Систрейс implementation("ru.ok.tracer:tracer-profiler-systrace") }

Включение плагинов трейсера и их конфигурация в проекте

В вашем Application.kt реализуйте интерфейс HasTracerConfiguration

class MyApplication : Application(), HasTracerConfiguration { override val tracerConfiguration: List<TracerConfiguration> get() = listOf( CoreTracerConfiguration.build { // опции ядра трейсера }, CrashReportConfiguration.build { // опции сборщика крэшей }, CrashFreeConfiguration.build { // опции подсчета crash free }, HeapDumpConfiguration.build { // опции сборщика хипдампов при ООМ }, DiskUsageConfiguration.build { // опции анализатора дискового пространства }, SystraceProfilerConfiguration.build { // опции systrace-профайлера в продакшене }, SamplingProfilerConfiguration.build { // опции семплирующего профайлера }, ) }

Проперти HasTracerConfiguration.tracerConfiguration будет запрошена ровно один раз при старте процесса до вызова Application.onCreate но после Application.attachBaseContext. В геттере уже можно обращаться к контексту приложения, но еще рано обращаться к тому, что проинициализируется в onCreate.

Подробное описание опций:

  • CoreTracerConfiguration — далее на этой странице
  • CrashReportConfiguration и CrashFreeConfiguration — на странице Crash и ANR
  • HeapDumpConfiguration — на странице Heap Dumps
  • DiskUsageConfiguration — на странице Disk Usage
  • SystraceProfilerConfiguration — на странице Systrace Profiler
  • SamplingProfilerConfiguration - на странице Sampling Profiler

Описание CoreTracerConfiguration

В том редком случае, когда вы захотите сконфигурировать ядро трейсера в вашем проекте, нужно вернуть CoreTracerConfiguration из HasTracerConfiguration

class MyApplication : Application(), HasTracerConfiguration { override val tracerConfiguration: List<TracerConfiguration> get() = listOf( CoreTracerConfiguration.build { // ваши опции }, ) }

Опции CoreTracerConfiguration.Builder:

ОпцияОписание
setApiUrl или provideApiUrlИзменяет адреса api Tracer-а. Используйте с умом.
setOverrideAppToken или provideOverrideAppTokenПереопределяет appToken из конфигурации gradle-плагина. Используйте с умом.
setDebugUploadОтвечает за включение/выключение загрузки данных в дебажной сборке приложения. По умолчанию загрузка данных выключена.
setOverrideEnvironmentПереопределяет значение environment из конфигурации gradle-плагина. Используйте с умом.
setInitialKey или setInitialKeysПозволяет установить ключи для событий, как только проинициализиурется Трейсер. Используйте, если хотите определять значения ключей как можно раньше (пока в приложении ничего не успело случиться)
setExperimentalMaxKeysCountПозволяет установить максимальное количество ключей, которые может хранить. По умолчанию установлено 30.

Рекомендуется использовать только для тестов!
setTrafficStatsTagПозволяет установить тег для потока, который генерирует сетевой трафик. Поможет ограничить количество ворнингов StrictMode UntaggedSocketViolation.
setIoExecutorПозволяет установить IO-executor для Трейсера. Используйте только в случае крайней необходимости, если уверены в том, что делаете.
setBgExecutorПозволяет установить executor, в котором Трейсер будет выполнять фоновые операции (в т.ч. критические для работы Tracer). Используйте только в случае крайней необходимости, если уверены в том, что делаете.

Deprecated-опции CoreTracerConfiguration.Builder, от которых мы откажемся в ближайшем будущем:

ОпцияОписание
setExperimentalMaxTagsCountПозволяет установить максимальное количество ключей, которые может хранить. По умолчанию установлено 30.

Рекомендуется использовать только для тестов!

Демо приложение

Ознакомиться с примером интеграции можно в нашем демо проекте