Статистика

Модуль Statsd включает в себя statsd, собственную службу, работающую в фоновом режиме и собирающую метрики, и Java-службу StatsCompanionService , которая работает в системном процессе и обеспечивает связь между statsd и Java. Этот модуль обновляем, то есть он может получать обновления функциональности (например, обновления метрик, используемых для сбора данных) вне обычного цикла выпуска Android.

Граница модуля

Statsd является основным связующим звеном между платформой и сбором данных для обеспечения безопасности запуска. Модуль statsd включает следующий код.

  • statsd , расположенный в frameworks/base/cmds/statsd

  • StatsCompanionService , расположенный в frameworks/base/services/core/java/com/android/server/stats/StatsCompanionService.java

  • Подмножество структур protobuf платформы, расположенных преимущественно в frameworks/base/core/proto

Будучи встроенной службой, statsd может существовать дольше, чем сам фреймворк, и обнаруживать сбои в системе system_server .

В Android 12 код модуля Statsd перемещен из frameworks/base/cmds/StatsD , frameworks/base/apex/StatsD и system/core/libstats .

Новая структура проекта

  • system/core/libstatspackages/modules/StatsD/lib/libstats
    • system/core/libstats/socketpackages/modules/StatsD/lib/libstatssocket
    • system/core/libstats/pullpackages/modules/StatsD/lib/libstatspull
  • frameworks/base/cmds/StatsDpackages/modules/StatsD/bin
  • frameworks/base/apex/StatsD
    • Скопируйте верхний уровень как есть.
    • Переместите jni в framework/jni
    • Переместите файлы верхнего уровня в каталог /apex .
      • frameworks/base/apex/StatsD/\*packages/modules/StatsD/apex/\*
      • frameworks/base/apex/StatsD/jnipackages/modules/StatsD/apex/framework/jni
  • cts/hostsidetests/StatsDpackages/modules/StatsD/tests

Примеры команд для перемещения патча

Примените изменения к следующим веткам:

  • goog/mainline-prod
  • goog/main
  • goog/\*-plus-aosp
  • aosp/main

История изменений файлов в Statsd должна быть сохранена.

Формат модуля

Модуль statsd ( com.android.os.statsd ) имеет формат APEX и доступен для устройств под управлением Android 11 или выше.

Зависимости модуля

Модуль Statsd предоставляет набор API @hide для регистрации событий из системы. В Java-коде большинство API @hide переработаны и построены на основе меньшего набора методов с аннотацией @SystemApi , с добавлением небольшого сгенерированного связующего кода. В нативном коде существующие нативные функции переработаны и преобразованы в официальные C API VNDK с сгенерированным связующим кодом.

Настройка

Модуль Statsd не поддерживает настройку параметров.

Тестирование

Набор тестов на совместимость с Android (CTS) проверяет функциональность statsd и компонентов, от которых зависит управление релизами.