Statsd

يتضمّن وحدة 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 مجموعة من واجهات برمجة التطبيقات @hide لتسجيل الأحداث من النظام. بالنسبة إلى رمز Java البرمجي، تتم إعادة تصميم معظم واجهات برمجة التطبيقات @hide ليتم إنشاؤها على مجموعة أصغر من الطرق التي تم وضع علامة @SystemApi عليها، مع تضمين بعض الرموز البرمجية الصغيرة التي تم إنشاؤها. بالنسبة إلى الرموز البرمجية الأصلية، تتم إعادة تصميم الدوال الأصلية الحالية لتصبح واجهات برمجة تطبيقات C رسمية في VNDK، مع إنشاء رمز ربط.

التخصيص

لا يتيح وحدة Statsd إمكانية التخصيص.

الاختبار

تتحقّق "مجموعة أدوات اختبار التوافق" (CTS) لنظام التشغيل Android من وظائف statsd والعناصر التي تعتمد عليها إدارة الإصدارات.