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

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

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

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

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

В вашем <project>/settings.gradle

pluginManagement {
     repositories {
         maven { url 'https://artifactory-external.vkpartner.ru/artifactory/maven/' }
     }
} dependencyResolutionManagement {
      repositories {
          maven { url 'https://artifactory-external.vkpartner.ru/artifactory/maven/' }
      }
}

В вашем <project>/<app-module>/build.gradle

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

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

В вашем 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:

  • setEnabled — не используется и будет удалена в версии 0.3.x, ядро трейсера всегда включено, но не активно пока нет включенных плагинов;
  • setHostprovideHost — изменение адреса трейсера;
  • setStatHostprovideStatHost — изменение адреса трейсера для фичи crash free;
  • setCustomAppKeyprovideCustomAppKey — заменяет sampleUploadToken из конфигурации gradle-плагина.
Обновлено 22 сентября 2023 г.
Was this information helpful?