مفاهيم إعدادات المقاييس

تحدّد إعدادات المقاييس حملات القياس عن بُعد التي تشغِّلها "خدمة القياس عن بُعد". إعدادات المقاييس هي مثال على رسالة Protocol Buffers (protobuf) من نوع MetricsConfig. تحدّد إعدادات المقاييس كيفية جمع البيانات ومعالجتها وإعداد التقارير عنها. يمكن لمصنّعي المعدات الأصلية تفعيل إعدادات المقاييس من خلال واجهة برمجة التطبيقات الخاصة بـ "خدمة القياس عن بُعد". يمكن تشغيل إعدادات متعددة في الوقت نفسه.

قبل البدء، يُرجى التعرّف على بنية SDV، وهي بنية موجّهة نحو الخدمات تنشر فيها الخدمات البيانات كرسائل protobuf. تتواصل هذه الرسائل باستخدام حزمة اتصالات SDV من خلال طلب الإجراء عن بُعد (RPC) أو نموذج النشر والاشتراك.

العبارات الرئيسية

تنسّق إعدادات المقاييس عملية جمع البيانات من خلال تحديد مصادر البيانات وقواعد المعالجة وآليات إعداد التقارير. من المزايا الرئيسية لمعالجة البيانات على الجهاز تقليل استخدام بيانات الجوّال. من خلال معالجة البيانات عالية التردد على الجهاز وتحميل الإحصاءات المجمّعة أو الإحصاءات فقط، يمكنك تقليل مقدار البيانات المنقولة إلى السحابة الإلكترونية بشكلٍ كبير.

يبدأ تعريف إعدادات المقاييس بإدراج مصادر البيانات التي سيتم استخدامها في الإعدادات. هذه هي الخدمات التي تتيح البيانات من خلال حزمة اتصالات SDV. عند تفعيل إعدادات، تتصل "خدمة القياس عن بُعد" بهذه المصادر لبث البيانات أو جلبها حسب الحاجة.

يتمحور الإعداد حول إمكانية معالجة البيانات على الجهاز، والتي تتم إدارتها من خلال مجمّعات البيانات التي تحتفظ بالحالة. يستخدم كل مجمّع أداة إنشاء الرسائل التي تحتفظ بمثال على رسالة proto تحتفظ بالحالة. يتم ملء كل حقل في هذه الرسالة من خلال تقييم تعبير يحدّد البيانات التي يجب قراءتها من مصادر البيانات أو المجمّعات الأخرى والعمليات الحسابية أو المنطقية أو عمليات التجميع التي يجب تطبيقها على البيانات. يمكنك تطبيق عمليات تجميع إضافية على نتيجة تعبير.

تُعد المشغّلات أساسية للتحكّم في هذه العملية. يمكن أن يتم تشغيلها بشكلٍ دوري أو استجابةً لبيانات جديدة أو عند استيفاء شروط تستند إلى البيانات. تحدّد المشغّلات متى يقيّم المجمّعون أداة إنشاء الرسائل ومتى يتم إنشاء تقارير المقاييس، ويمكن أن تؤثر في دورة حياة الإعدادات، مثلاً من خلال بدء جمع البيانات أو إيقافه.

تقارير المقاييس هي الناتج النهائي. يتضمّن كل تقرير حمولة البيانات التي تحدّدها أداة إنشاء الرسائل، بالإضافة إلى البيانات الوصفية، مثل الطوابع الزمنية ورقم تعريف التقرير. يمكنك إنشاء التقارير في لحظات معيّنة من دورة حياة الإعدادات، مثلاً عند تفعيل إعدادات أو إيقافها. يتم تخزين التقارير التي تم إنشاؤها في الذاكرة، ويتم إشعار العميل لاستردادها من خلال قناة إشعارات حالة التقرير.

يوضّح الشكل التالي مثالاً مفاهيميًا على كيفية تفاعل المكوّنات ضمن إعدادات المقاييس:

مخطّط مفاهيمي يوضّح مصادر البيانات والمعالجة وإعداد التقارير ضمن إعدادات المقاييس

الشكل 1: مصادر البيانات والمعالجة وإعداد التقارير ضمن إعدادات المقاييس

مكوّنات إعدادات المقاييس

يمكنك استخدام إعدادات المقاييس لتحديد مهام جمع البيانات ومسارات المعالجة المعقدة على الجهاز. يوضّح هذا القسم بالتفصيل المكوّنات الأساسية المستخدَمة لتحديد حملة مقاييس. يتم عرض المكوّنات بالترتيب الذي تتدفق به البيانات عبر النظام، من الإدخال إلى الإخراج. يمكنك تحديد هذه المكوّنات بأي ترتيب. تُعد معالجة البيانات باستخدام المجمّعات وإدارة دورة الحياة اختيارية.

  • تحديد مصادر البيانات
  • معالجة البيانات باستخدام المجمّعات
  • التحكّم في تدفق التنفيذ باستخدام المشغّلات
  • إنشاء تقارير المقاييس
  • إدارة دورة حياة جمع البيانات

تحديد مصادر البيانات

أساس أي حملة مقاييس هو البيانات. في إعدادات المقاييس، يتم تجريد آلية تلقّي البيانات، ولا تحتاج إلا إلى تحديد الاسم الذي يمكن من خلاله تحديد مصدر البيانات ووضع الاتصال (الاشتراك أو عند الطلب). يمكن أن تكون مصادر البيانات أي خدمة تتيح البيانات من خلال حزمة اتصالات SDV أو تسجّل نفسها في سجلّ الناشرين القابل للضبط، ما يتيح جمع البيانات من التطبيقات التي لا يتوفّر فيها برنامج SDV الوسيط. يجب أن يكون لكل مصدر بيانات اسم فريد ضمن الإعدادات حتى يمكن الإشارة إليه من خلال مكوّنات إعدادات المقاييس الأخرى، مثل المشغّلات أو المجمّعات. يمكنك ضبط كيفية الاتصال وعدد مرات تلقّي البيانات وتقديم عنصر إعدادات خاص بالخدمة.

إعدادات مصادر البيانات

يمكن أن تتصل "خدمة القياس عن بُعد" بمصدر بيانات بطريقتَين:

  • الدالة Getter: تجلب هذه الطريقة البيانات عند الطلب كلما احتاج تعبير محدّد في إعدادات المقاييس إلى قراءة البيانات من هذا المصدر. يكون ذلك مفيدًا لمصادر البيانات التي لا توفّر بثًا مستمرًا أو عندما تحتاج إلى لقطات بيانات غير متكررة.
  • الاشتراك: هذه هي الطريقة التلقائية. تنشئ هذه الطريقة بثًا مستمرًا للبيانات من المصدر. يكون هذا النوع من الاتصال مطلوبًا إذا كنت تنوي استخدام مشغّل بيانات يتم تشغيله عند وصول رسائل جديدة من هذا المصدر.

عند استخدام اشتراك، يمكنك ضبط ما يلي:

  • أخذ عينات فرعية: لتجنُّب إدخال البيانات بشكلٍ متكرّر جدًا، يمكنك تحديد حد أدنى للفاصل الزمني بين الرسائل المتتالية من المصدر نفسه. إذا كان المصدر ينشر البيانات بشكلٍ أسرع من هذا الفاصل الزمني، فإنّ "خدمة القياس عن بُعد" تحدّ من الإشعارات، ولا يتم تفعيل مشغّلات البيانات إلا للرسائل التي يتم تلقّيها بعد الحدّ من الإشعارات. يؤدي ذلك إلى أخذ عينات فرعية من البيانات بشكلٍ فعّال.
  • استرداد الرسالة الأولية: يمكنك ضبط الخدمة لاسترداد أحدث رسالة من المصدر عند إنشاء الاشتراك. نتيجةً لذلك، يتم ملء مصدر البيانات بقيمة على الفور إذا كانت متوفّرة، بدلاً من انتظار نشر أول رسالة جديدة. يكون ذلك مفيدًا في المشغّلات أو المجمّعات الشرطية التي تتطلّب حالة أولية أو عندما ينشر مصدر البيانات بشكلٍ غير متكرّر.

بغض النظر عن النوع، يتم تخزين الرسائل مؤقتًا داخليًا. إذا كانت تعبيرات أو مجمّعات متعددة تتطلّب بيانات من المصدر نفسه خلال دورة تقييم واحدة، فإنّ النظام يجلب البيانات مرة واحدة فقط، إما من ذاكرة التخزين المؤقت إذا وصلت رسالة جديدة باستخدام اشتراك، أو باستخدام طلب واحد عند الطلب.

معالجة البيانات باستخدام المجمّعات

بينما توفّر مصادر البيانات بيانات أولية، تُجري المجمّعات معالجة البيانات على الجهاز مع الاحتفاظ بالحالة. تستهلك المجمّعات البيانات من مصادر البيانات أو المجمّعات الأخرى، وتحوّلها، وتتيح قراءة النتيجة من خلال تقارير المقاييس أو معالجتها بشكلٍ أكبر من خلال مجمّعات أخرى. يتيح ذلك إنشاء مسارات معالجة متعددة المراحل، مثلاً، حساب إحصاءات السرعة في مجمّع واحد واستخدام هذه الإحصاءات في مكوّن آخر يرصد أنماط سلوك القيادة.

يتم تشغيل المجمّعات لإجراء عملياتها الحسابية من خلال مشغّل واحد أو أكثر. في كل مرة يتم فيها تشغيل أحد مشغّلاتها، يقيّم المجمّع قواعده ويعدّل حالته الداخلية.

يمكنك ضبط مجمّع لإعادة ضبط حالته بعد أن يقرأ مكوّن آخر قيمته، وهو أمر مفيد لحساب الإحصاءات على مدى فترات زمنية غير متداخلة.

تحدّد أداة إنشاء الرسائل بنية المجمّع ومنطقه. تحدّد أداة إنشاء الرسائل كيفية إنشاء مثال على رسالة proto من خلال وصف كيفية إنشاء البيانات لكل حقل من حقولها. لكل حقل، يحدّد تعبير كيفية قراءة البيانات من مصادر البيانات والمجمّعات وتطبيق العمليات على هذه البيانات. بالإضافة إلى ذلك، يمكنك تطبيق عملية تجميع، وهي عملية حسابية أو عملية جمع يتم تطبيقها على نتائج التعبير بمرور الوقت.

تتوفّر أنواع التجميع التالية:

  • رياضي: يحسب الإحصاءات (المتوسط والحد الأدنى والحد الأقصى والمجموع والانحراف المعياري والفرق) على القيم التي يعرضها تعبير في كل مشغّل. الفرق هو الفرق بين القيمة الرقمية الحالية والقيمة الرقمية السابقة التي يعرضها تعبير.
  • القائمة: تجمع القيم التي يعرضها تعبير في قائمة. يمكنك تحديد حجم القائمة لإنشاء نافذة متجددة (مخزن مؤقت حلقي) للقيم الأخيرة.
  • العدد: حالة خاصة لا يتم فيها تحديد أي تعبير. تحسب هذه الحالة عدد مرات تقييم الحقل (أي عدد مرات تشغيل المجمّع أو التقرير).
  • المرور: تستخدم هذه الحالة نتيجة تعبير مباشرةً، بدون تطبيق عملية تجميع. يكون ذلك مفيدًا في إعدادات التقارير للوصول إلى القيم النهائية من المجمّعات.

الشكل التالي هو رسم بياني مفاهيمي يوضّح تقييم المجمّع:

مخطّط توضيحي يوضّح عملية تقييم أداة التجميع

الشكل 2: تقييم المجمّع

إجراء العمليات الحسابية أو تحديد الشروط باستخدام التعبيرات

تُستخدَم التعبيرات ضمن أدوات إنشاء الرسائل والمشغّلات الشرطية لإجراء العمليات الحسابية أو تحديد الشروط. عند استخدام "أداة إنشاء إعدادات المقاييس" (MCG) لإنشاء كائنات JSON لإعدادات المقاييس، تتم كتابة التعبيرات كسلاسل قابلة للقراءة تستخدم رمز النقطة للوصول إلى حقول مصدر البيانات (مثلاً، vehicle_speed.speed_value) وتطبيق مجموعة كبيرة من العمليات. تحوّل "أداة إنشاء إعدادات المقاييس" هذه السلاسل إلى بنية شجرة محسّنة، مشابهة لشجرة البنية التجريدية (AST)، لإجراء تقييم فعّال على الجهاز في رسالة MetricsConfig النهائية بتنسيق protobuf.

عوامل التشغيل والدوال

تتيح التعبيرات مجموعة عوامل التشغيل والدوال التالية:

  • حسابي: يتيح الجمع والطرح (الثنائي والأحادي) والضرب والقسمة والباقي والأس.
  • منطقي: يتيح عوامل التشغيل AND وOR وNOT وXOR.
  • علائقي: يتيح التحقّق من المساواة والمقارنة بين أكبر من وأصغر من.
  • القائمة: يتحقّق مما إذا كانت القائمة تحتوي على قيمة معيّنة أو لا تحتوي عليها.
  • الطابع الزمني: يعرض الطابع الزمني في وقت التقييم بالميكروثانية. يمكن أن يكون نوع الساعة ساعة الوقت الفعلي أو الوقت الرتيب منذ بدء التشغيل (بما في ذلك وقت الإيقاف المؤقت) أو الوقت الرتيب منذ بدء التشغيل أو آخر استئناف.
  • القيمة المطلقة: يعرض القيمة المطلقة لعدد.
  • التقريب: يقرّب إلى أقرب عدد صحيح (round) أو يعرض أكبر عدد صحيح أقل من عدد أو يساويه (floor) أو يعرض أصغر عدد صحيح أكبر من عدد أو يساويه (ceil).

في ما يلي مثال على تعبير يقرأ من مصدرَي بيانات ويقيّم على أنّه true إذا كانت سرعة السيارة تتجاوز 100 كم/س ولم يكن هناك تحذير بشأن ضغط الإطارات:

(vehicle_speed.speed_value * 3.6) > 100 && tire_pressure.warning == false

التحكّم في تدفق التنفيذ باستخدام المشغّلات

المشغّلات هي منسّقات إعدادات المقاييس، وهي تتحكّم في وقت معالجة البيانات ووقت إنشاء التقارير. يجب أن يكون لكل مشغّل اسم فريد.

هناك ثلاثة أنواع من المشغّلات:

  • مشغّلات البيانات: يتم تنشيطها عندما ينشر مصدر بيانات يتضمّن اتصال اشتراك رسالة جديدة (بعد جمع عيّنات جزئية، إذا تم ضبط ذلك).
  • المشغّلات الدورية: يتم تشغيلها على فواصل زمنية ثابتة.
  • المشغّلات الشرطية: يتم تشغيلها عند استيفاء شرط منطقي محدّد.

المشغّلات الشرطية

تستمع المشغّلات الشرطية إلى المشغّلات الأخرى (مشغّلات البيانات أو المشغّلات الدورية أو المشغّلات الشرطية الأخرى)، وعند تشغيل أحد هذه المشغّلات، يتم تقييم تعبير. لا يتم تشغيل المشغّل الشرطي إلا إذا كانت نتيجة التعبير تستوفي شرطًا معيّنًا.

يمكنك ضبط مشغّل شرطي ليتم تشغيله استنادًا إلى عدة أنواع من الشروط:

  • القيمة: عندما يتم تقييم التعبير على أنّه true (أو غير صفري) أو false (أو صفري).
  • الارتفاع: عندما يتغيّر تعبير منطقي من false إلى true أو تزداد قيمة رقمية.
  • الانخفاض: عندما يتغيّر تعبير منطقي من true إلى false أو تنخفض قيمة رقمية.
  • عند التغيير: كلما كانت نتيجة التعبير مختلفة عن قيمته السابقة.
فلترة التغييرات الصاخبة في الحالة

بالنسبة إلى المشغّلات المستندة إلى الجهاز أو المشغّلات التي يتم تشغيلها عند التغيير، يمكنك فلترة التغييرات القصيرة أو الصاخبة في الحالة (الأخطاء) من خلال اشتراط بقاء الشرط في الحالة الجديدة لمدة دنيا قبل تشغيل المشغّل.

مثلاً، يمكنك ضبط مشغّل ليتم تشغيله فقط إذا أصبحت vehicle_speed > 100 تساوي true وظلّت true لمدة 5 ثوانٍ على الأقل. يمنع ذلك تشغيل المشغّل بسبب ارتفاع مؤقت في قراءة السرعة. يمكنك أيضًا اشتراط أن تكون جميع القيم التي يتم رصدها خلال مدة الانتظار هذه متساوية تمامًا.

إنشاء تقارير المقاييس

بعد معالجة البيانات، يمكنك تحديد كيفية تجميعها في تقارير ووقت ذلك.

يتم تحديد التقارير باستخدام إعدادات تقارير المقاييس، التي تستخدم أدوات إنشاء الرسائل لتحديد بنية محتواها ونتائجها. عند تشغيل أحد مشغّلات التقرير، تقيّم أداة إنشاء الرسائل عمليات تعيين الحقول لإنشاء حمولة بيانات التقرير.

كل تقرير يتم إنشاؤه هو مثال على رسالة MetricsReport بتنسيق Protobuf، والتي تغلّف ناتج أداة إنشاء الرسائل في حقل payload وتضيف بيانات وصفية. تضيف "خدمة القياس عن بُعد" تلقائيًا البيانات الوصفية التالية إلى كل MetricsReport:

  • معرّف فريد عالمي (UUID) للتقرير
  • رقم تقرير تسلسلي، يزداد لكل تقرير يتم إنشاؤه من خلال إعدادات التقارير هذه
  • الطابع الزمني لوقت إنشاء التقرير
  • سبب الإنشاء (مثلاً، تم تشغيله بواسطة قاعدة أو تم إنشاؤه عند الإيقاف)
  • رقم تعريف UUID وإصدار إعدادات المقاييس التي أنشأت التقرير
  • اسم إعدادات تقارير المقاييس

التحكّم في إنشاء التقارير

على الرغم من أنّ التقارير يتم إنشاؤها عادةً استجابةً للمشغّلات، يمكنك أيضًا ضبطها ليتم إنشاؤها في لحظات معيّنة من دورة حياة إعدادات المقاييس:

  • التقرير عند التفعيل: إذا تم تفعيل هذا الخيار، ينشئ النظام تقريرًا أوليًا على الفور عند تفعيل إعدادات المقاييس.
  • التقرير النهائي: إذا تم تفعيل هذا الخيار، ينشئ النظام تقريرًا نهائيًا عند إيقاف جمع البيانات مؤقتًا أو إيقافه أو عند إيقاف "خدمة القياس عن بُعد". يحتوي هذا التقرير على البيانات التي تم تجميعها حتى تلك اللحظة، ما يساعد في ضمان عدم فقدان أي بيانات في نهاية الجلسة.

إدارة دورة حياة جمع البيانات

تلقائيًا، تبدأ إعدادات المقاييس جمع البيانات ومعالجتها فور تفعيلها من قِبل العميل وتستمر حتى يتم إيقافها من قِبل العميل. ومع ذلك، يمكنك التحكّم في دورة الحياة هذه بشكلٍ أكثر دقةً من خلال تحديد المشغّلات التي تبدأ جمع البيانات أو إعدادات المقاييس أو توقفهما:

  • مشغّل البدء: إذا تم تحديده، لا يبدأ جمع البيانات إلا عند تشغيل هذا المشغّل. إذا تم إيقاف عملية الجمع مؤقتًا من خلال مشغّل الإيقاف، فإنّ مشغّل البدء يستأنفها.
  • مشغّل الإيقاف: إذا تم تحديده، يوقف هذا المشغّل جمع البيانات مؤقتًا. تتوقف عمليات التجميع وإنشاء التقارير إلى أن يتم تشغيل مشغّل البدء مرة أخرى.
  • مشغّل الإيقاف: يوقف هذا المشغّل إعدادات المقاييس بالطريقة نفسها التي يتم بها إجراء طلب deactivate_metrics_config من العميل.

مثلاً، يمكنك تحديد مشغّل شرطي يتم تشغيله عندما تتغيّر vehicle_state إلى DRIVING كمشغّل البدء، ومشغّل آخر يتم تشغيله عندما تتغيّر vehicle_state إلى PARKED كمشغّل الإيقاف. يساعد ذلك في ضمان جمع البيانات فقط أثناء تحرّك السيارة.