يوفر Fleet Engine خدمة تسجيل بسيطة تتيح لك حفظ طلبات البيانات من واجهة برمجة التطبيقات وحمولات الاستجابة باستخدام هذه السجلات، يمكنك تصحيح أخطاء والتكامل وإنشاء مقاييس المراقبة وتحليل أنماط الزيارات.
يرسل Fleet Engine السجلات كـ نظام أساسي السجلّات إلى Cloud التسجيل، لتتمكّن من استخدام السحابة الإلكترونية أدوات التسجيل للوصول إليها.
البيانات التي يسجّلها Fleet Engine
يرسل Fleet Engine أجزاء متعددة من المعلومات إلى السحابة الإلكترونية التسجيل، مثل:
- جميع طلبات وردود REST وgRPC التي تمت مصادقتها
- الردود على الأخطاء
- الطلبات والردود ورسائل الخطأ من المكالمات التي أجراها السائق SDK لـ Fleet Engine.
تقسيم السجلات لأنواع السجلّات المتوافقة:
راجِع وثائق رسائل السجلّ المتوفّرة والمخطّط في قسم التسجيل المرجع:
استخدام حِزم السجلّات التلقائية والمقيَّدة للامتثال لسياسات الاحتفاظ بالبيانات
استخدام المصطلح "محظور" و"الافتراضي" البيانات صورة واضحة الاستخدام المقيد وغير المقيد للبيانات. تتضمن بعض بيانات السجل التي تستخدمها Fleet Engine التي يتم إرسالها إلى "منصة خرائط Google" لفترة محدودة فقط وفقًا للمواصفات الخاصة بخدمة التنقّل بنود الخدمة. للتأكّد من احتفاظك بالبيانات المحظورة فقط خلال الفترة الزمنية المسموح بها، يجب تصنيف هذه البيانات على أنها TOS_RESTRICTED (يجري Fleet Engine ذلك بالفعل) وتسجيلها في حزمة مخصَّصة تُسمى "مقيَّدة".
ومن هناك، يمكنك التحكم في مدة الاحتفاظ ببياناتها وإزالتها نهائيًا تلقائيًا انتهاء الصلاحية باستخدام إعدادات التسجيل عبر السحابة الإلكترونية. على سبيل المثال، يجب أن تكون السجلات ذات الاستخدام المحدود للاحتفاظ بها لمدة 30 يومًا فقط.
تسجيل جميع البيانات غير المقيدة المتبقية بالوضع "الافتراضي" حيث يمكن يتم الاحتفاظ بها لفترات أطول على النحو المحدّد في الإعدادات الخاصة بخدمة التنقّل بنود الخدمة (لمدة عام واحد عادةً). استخدام المصطلح "محظور" و"الافتراضي" تضمن الحزم واضحة حول استخدامك المحدود وغير المحدود للبيانات.
الحصول على عرض كامل من خلال دمج السجلات المشروطة وغير المشروطة
وتحتوي السجلات ذات الاستخدام المحدود على البيانات ذات الاستخدام المحدود وإشارة إلى
سجل الإعداد الافتراضي بحيث يمكن اعتبارها معًا. يشير هذا المصطلح إلى السجلّ المحظور الاستخدام.
يحتوي على InsertId للسجلّ التلقائي كمرجع في parent_insert_id
.
. يمكنك استخدام هذا الحقل لدمج البيانات من كلا السجلين والحصول على
كاملة.
يمكنك الاطّلاع على وثائق لجميع رسائل السجل المتاحة والمخطط في قسم التسجيل المرجع:
تفعيل التسجيل في السحابة الإلكترونية
تعمل Fleet Engine تلقائيًا على تفعيل السجلّات التلقائية لعملاء الجوّال الجُدد، بدءًا من المشاريع التي تم إنشاؤها في 10 فبراير 2022. يمكنك التأكد مما إذا كان تمكين التسجيل باستخدام طلب البحث التالي في قسم سجلات المستكشف :
resource.type:"fleetengine.googleapis.com/DeliveryFleet"
في حال لم تظهر لك أي سجلات لطلب البحث هذا، يُحتمل ألا يكون تسجيل الدخول إلى السحابة الإلكترونية حقًا لمشروعك. معلومات الاتصال الحصول على الدعم إذا أردت لتفعيل الميزة.
تفعيل السجلّات ذات الاستخدام المحدود
يتم تفعيل السجلّات ذات الاستخدام المحدود عند الطلب. لتفعيل هذه السجلّات لـ Google مشروعك على Google Cloud، أكمِل الخطوات التالية:
إعداد مشروعك لتلقّي السجلات ذات الاستخدام المحدود
- في "وحدة تحكُّم Google Cloud"، افتح صفحة Log Router.
- عدِّل حزمة التسجيل _Default لاستبعاد السجلّات ذات الاستخدام المحدود.
- اختَر حزمة التسجيل _Default، ثم اختَر تعديل الحوض.
- في قسم "اختيار السجلات المطلوب تصفيتها من الحوض" انقر فوق الزر "إضافة
استبعاد" الزر:
- اسم فلتر الاستبعاد: excludedRestrictedLogs
- فلتر الاستبعاد: segmentation.restriction="TOS_RESTRICTED"
- انقر على "تعديل الحوض".
- عدِّل حزمة التسجيل المحدود لتخزين السجلّات ذات الاستخدام المحدود.
- من صفحة Log Router، اختَر "إنشاء حوض".
- أنشِئ حوضًا يحتوي على الإعدادات التالية:
- تفاصيل الحوض:
- الاسم: RestrictedLogs
- الوصف: سجلّات الاستخدام المحدود التي تستخدمها Routes Fleet Engine
- وجهة الحوض:
- خدمة الحوض: حزمة التسجيل
- اختيار حزمة السجلّ: إنشاء حزمة سجلّ جديدة
- الاسم: مقيّد
- الوصف: يحتوي على سجلّات الاستخدام المحدود التي توفّرها Fleet Engine
- فترة الاحتفاظ بالبيانات: 30 يومًا
- ملاحظة: يجب ألا تتجاوز فترة الاحتفاظ 30 يومًا.
- السجلّات المطلوب تضمينها في الحوض: اتركها فارغة
- السجلات المطلوب تصفيتها من الحوض: انقر على "إضافة استبعاد"
- اسم فلتر الاستبعاد: ExceptionNonRestrictedLogs
- فلتر الاستبعاد: NOT (resource.type = "fleetengine.googleapis.com/Fleet" ORsource.type = "fleetengine.googleapis.com/DeliveryFleet") ليس (labels.restriction = "TOS_RESTRICTED")
- انقر على "إنشاء حوض"
- تفاصيل الحوض:
يمكنك التواصل مع فريق الدعم لتفعيل السجلات ذات الاستخدام المحدود.
ثم، تواصل والدعم وتوفير توفير المعلومات التالية في طلب الدعم:
- أرقام تعريف المشاريع المطلوب تفعيلها:
- عنوان البريد الإلكتروني للشخص الذي يطلب التغيير:
- ملاحظة: يجب أن يكون لدى هذا المستخدم الإذن بتعديل المحتوى في مشاريع Google Cloud. مدرج.
- أنت توافق على تفعيل "محتوى خرائط Google" ذي الاستخدام المحدود في "تسجيل الدخول إلى السحابة الإلكترونية" بما يتوافق مع منصة خرائط Google البنود وخدمة التنقّل محددة البنود، بما في ذلك التخزين المؤقت ومتطلبات الاستخدام المسموح به من حيث صلتها بـ Google محتوى "خرائط Google" نعم / لا
وبعد أن يتلقى فريق الدعم طلبك، يرسل تأكيدًا بأن تسجيل الدخول تم تفعيل لمشروعك
تقسيم سجلات السحابة الإلكترونية
يضع تسجيل الدخول في السحابة الإلكترونية حدًا أقصى لحجم السجلّات الواردة يبلغ 256 كيلوبايت. تطرح الخدمة السجلّات خارج هذا الحد. وللتأكّد من احتفاظ ميزة "التسجيل في السحابة الإلكترونية" بالسجلات الكبيرة، يحتاج Fleet إلى يمكن لمحرك البحث تقسيمها إلى سلسلة من السجلات ضمن الحد الأدنى الذي يبلغ 256 كيلوبايت. مثل هذه السجلات لديهما مشتركان insertId للإشارة إلى الترتيب الذي تقسم به الخدمة السجل الأصغر من الخشب الأصلي الكبير الحجم. يمكنك بعد ذلك إعادة الانضمام إليهم على أساس insertId.
للوصول إلى السجل الأصلي غير المنقسم، ادمج السجلات المقسمة حسب insertIds بالترتيب الأصلي الذي تم تقسيمها، كما هو موضح في الفهرس الخاص بها في إدخال سجل السحابة.
تكون بنية السجلّ المقسّم هي نفسها البنية المذكورة في قسم تدقيق التقسيم.
دليل الإدخالات في السجلّ
سجلّات تدقيق السحابة الإلكترونية يتمثل الاختلاف الرئيسي في السجلات المقسّمة في تسجيل مجموعة الأجهزة في أنه
يحدث التقسيم في الحقل jsonPayload
، بدلاً من protoPayload
. اطّلِع على مثال التقسيم المعروض في القسم التالي.
أنواع السجلّات المتوافقة
يتيح Fleet Engine تقسيم السجلّات لأنواع السجلّات التالية فقط. الذي يتجاوز حجم السجل 256 كيلوبايت:
مثال على بنية السجلّ المقسَّم
// First Split Log
{
// insertId appended with an increasing number
"insertId": "ABCDE-1",
"jsonPayload": {
"request": {
"filter": "tracking_id=tracking-test-splitting-task"
},
"@type": "type.googleapis.com/maps.fleetengine.delivery.log.v1.ListTasksLog",
"response": {
"tasks": [
{
"name": "providers/providers-123/tasks/test-splitting-task-id-0",
// ...
},
{
"name": "providers/providers-123/tasks/test-splitting-task-id-1",
// ...
},
{
"name": "providers/providers-123/tasks/test-splitting-task-id-2"
// ...
},
{
"name": "providers/providers-123/tasks/test-splitting-task-id-3",
// ...
},
]
},
"header": {}
},
"resource": {
"type": "fleetengine.googleapis.com/DeliveryFleet",
"labels": {
"resource_container": "projects/providers-123",
"location": "global"
}
},
// Same timestamp
"timestamp": "2024-01-29T23:35:58.076515Z",
"labels": {
},
"logName": "projects/providers-123/logs/fleetengine.googleapis.com%2Flist_tasks",
"receiveTimestamp": "2024-01-29T23:35:59.278858322Z",
"split": {
// UID for this logical log entry (same across splits)
"uid": "ABCDE",
"totalSplits": 2
}
}
// Second Split Log
{
// insertId appended with an increasing number
"insertId": "ABCDE-2",
"jsonPayload": {
"request": {
"filter": "tracking_id=tracking-test-splitting-task"
},
"@type": "type.googleapis.com/maps.fleetengine.delivery.log.v1.ListTasksLog",
"response": {
"tasks": [
// Previous tasks appear as empty objects in subsequent splits
{}, {}, {}, {},
{
"name": "providers/providers-123/tasks/test-splitting-task-id-4",
// ...
}
]
},
"header": {}
},
"resource": {
"type": "fleetengine.googleapis.com/DeliveryFleet",
"labels": {
"resource_container": "projects/providers-123",
"location": "global"
}
},
// Same timestamp
"timestamp": "2024-01-29T23:35:58.076515Z",
"labels": {
},
"logName": "projects/providers-123/logs/fleetengine.googleapis.com%2Flist_tasks",
"receiveTimestamp": "2024-01-29T23:35:59.278858322Z",
"split": {
// UID for this logical log entry (same across splits)
"uid": "ABCDE",
// Subsequent logs after the original will have a zero based index
"index": 1,
"totalSplits": 2
}
}
الوصول إلى سجلاتك
يتم هيكلة سجلات السحابة الإلكترونية حول
LogEntry
. يرسل Fleet Engine السجلات إلى Cloud Logging باستخدام
تم ضبط resource.type
على fleetengine.googleapis.com
. يمكنك استخدام سجلات
Explorer (المستكشف) إلى
وكتابة استعلامات لعرض سجلاتك.
على سبيل المثال، لعرض جميع استدعاءات عن بُعد (RPC) لـ Fleet Engine التي عرضت خطأ، استخدم استعلام مستكشف السجلات التالي:
resource.type:"fleetengine.googleapis.com/DeliveryFleet"
severity=ERROR
للاطّلاع على سجلات استدعاء إجراء عن بُعد التي تم إجراؤها على طريقة UpdateDeliveryVehicle
مشروع example-project-id، استخدم استعلام مستكشف السجلات التالي:
logName="projects/project-id/logs/fleetengine.googleapis.com%2Fupdate_delivery_vehicle"
يعرض المثال التالي إدخال LogEntry لـ UpdateDeliveryVehicle
السجل. يمكنك العثور على طلب استدعاء إجراء عن بُعد (RPC) والردّ في الحقل jsonPayload
:
{
"insertId": "c6b85fbc927343fc8a85338c57a65733",
"jsonPayload": {
"request": {
"header": {4},
"updateMask": "deviceSettings",
"vehicleId": "uniqueVehicleId",
"vehicle": {2}
},
"response": {
"name": "providers/example-project-id/vehicles/uniqueVehicleId",
"availableCapacity": 2,
"state": "VEHICLE_STATE_OFFLINE",
"maximumCapacity": 2,
"vehicleType": {1},
"supportedTrips": {1}
},
"@type": "type.googleapis.com/maps.fleetengine.v1.UpdateDeliveryVehicleLog"
},
"resource": {
"type": "fleetengine.googleapis.com/DeliveryFleet",
"labels": {2}
},
"timestamp": "2021-01-01T00:00:00.000000000Z",
"labels": {2},
"logName": "projects/example-project-id/logs/fleetengine.googleapis.com%2Fupdate_delivery_vehicle",
"receiveTimestamp": "2021-01-01T00:00:00.000000000Z"
}
في حال ظهور خطأ في استدعاء إجراء عن بُعد (RPC)، سيتم تغيير الحقل responseDeliveryVehicle
وتم ضبط الحقل errorResponse
وتعبئته خلال jsonPayload
:
{
"insertId": "2ead60bdec561836a1bb84a90e9915cd",
"jsonPayload": {
"@type": "type.googleapis.com/maps.fleetengine.delivery.log.v1.UpdateDeliveryVehicleLog",
"header": {
"languageCode": "en",
"osVersion": "11",
"platform": "PLATFORM_LOG_ANDROID",
"regionCode": "US",
"sdkType": "SDK_TYPE_LOG_DRIVER",
"sdkVersion": "4.4.3"
},
"request": {
"deliveryVehicle": {4},
"deliveryVehicleId": "uniqueDeliveryVehicleId",
"updateMask": "lastLocation"
},
"response": {
"lastLocation": {14},
"name": "providers/example-project-id/deliveryVehicles/uniqueDeliveryVehicleId",
"navigationStatus": "NAVIGATION_STATUS_ARRIVED_AT_DESTINATION",
"remainingDistanceMeters": "430",
"remainingDuration": "10s"
}
},
"labels": {
"delivery_vehicle_id": "uniqueDeliveryVehicleId"
},
"logName": "projects/example-project-id/logs/fleetengine.googleapis.com%2Fupdate_delivery_vehicle",
"receiveTimestamp": "2023-07-14T22:57:51.156515110Z",
"resource": {
"labels": {2},
"type": "fleetengine.googleapis.com/DeliveryFleet"
},
"timestamp": "2023-07-14T22:57:51.018045Z"
}
للحصول على مزيد من المعلومات حول لغة طلب التسجيل، راجِع القسم طلب بحث التسجيل. . للحصول على معلومات عن كيفية استخدام سجلّاتك لإنشاء مقاييس، يُرجى الاطّلاع على نظرة عامة. من السجلات القائمة على والمقاييس.
إدارة تكاليف التسجيل
بعد تفعيل تسجيل الدخول، تصبح مسؤولاً عن إعداد الطريقة التي تريد استخدامها لتوجيه السجلات وتخزينها والاحتفاظ بها. قد يتم تحصيل رسوم إضافية من Google Cloud رسوم للسجلّ النقل والاحتفاظ بالبيانات في حال تجاوز الحدّ الأقصى المسموح به للاستخدام والاحتفاظ بالبيانات الشحن. ومع ذلك، يمكنك التحكم في تكاليف التسجيل من خلال تنفيذ أحد الإجراءات التالية:
تقليل استخدام التسجيل
ويمكنك الحد من مقدار نقل بيانات السجلّ عن طريق استبعاد إدخالات معيّنة في السجلّ.
تصدير السجلّات أو توجيهها
يمكنك توجيه السجلّات إلى وجهات أخرى في Google Cloud أو إلى وجهات خارجية لتجنُّب التكاليف الافتراضية للنقل والتخزين. تأكَّد من إيقاف عرض السجلّ، الموضحة في القسم التالي، لتجنُّب تكاليف العرض.
إيقاف نقل السجلّ لتجنُّب تحصيل رسوم
يُفضل تقليل استخدام التسجيل أو تصدير السجلات أو توجيهها على تحويل إيقاف نقل السجل. ومع ذلك، إذا كنت لا تنوي استخدام سجلات Fleet Engine، من خلال إيقاف العرض لتجنُّب تحصيل رسوم محتملة من خلال "تسجيل الدخول إلى السحابة الإلكترونية" بشكل افتراضي، يتم توجيه سجلات Fleet Engine إلى حزمة السجلّات _Default.
يحدِّث الأمر التالي حزمة التسجيل _Default ليُسمح بعرض بيانات Fleet. سجلّات المحرّك
gcloud logging sinks update _Default \
--log-filter='NOT LOG_ID("cloudaudit.googleapis.com/activity") \
AND NOT LOG_ID("externalaudit.googleapis.com/activity") \
AND NOT LOG_ID("cloudaudit.googleapis.com/system_event") \
AND NOT LOG_ID("externalaudit.googleapis.com/system_event") \
AND NOT LOG_ID(" cloudaudit.googleapis.com/access_transparency") \
AND NOT LOG_ID("externalaudit.googleapis.com/access_transparency") \
AND NOT resource.type:"fleetengine.googleapis.com"''
لمزيد من المعلومات، يُرجى الاطّلاع على: التسجيل في السحابة الإلكترونية الاستثناءات والاستبعاد السجلّات التسجيل في السحابة الإلكترونية التصدير والتصدير السجلّات
استخدام مستكشف السجلات
لاستخدام مستكشف السجلات، افتح Cloud Console واختَر التسجيل ثم مستكشف السجلات: لمشاهدة قائمة بجميع سجلات Fleet Engine المتاحة، انقر على نوع مورد Fleet Engine يتم تصنيف بعض سجلات واجهة برمجة تطبيقات Delivery API باستخدام معرّف المهمة ومعرّف مركبة التسليم. يمكنك استخدام هذه التصنيفات لتحديد سجلات المهام أو المركبات التي تهمك.
فلترة السجلّات حسب رقم تعريف مركبة التسليم
في مستكشف السجلات، يمكنك استخدام الاستعلام التالي لتقييد السجلات على المركبة المحددة:
resource.type="fleetengine.googleapis.com/DeliveryFleet"
labels.delivery_vehicle_id="delivery_vehicle_id"
فلترة السجلّات حسب معرّف المهمة
في مستكشف السجلات، يمكنك استخدام الاستعلام التالي لتقييد السجلات على بمهمة محددة وهي:
resource.type="fleetengine.googleapis.com/DeliveryFleet"
labels.task_id=~"task_id"
فلترة السجلّات لمركبة خلال فترة زمنية محدّدة
في مستكشف السجلات، يمكنك استخدام الاستعلام التالي لتقييد السجلات بتلك لمركبة خلال فترة زمنية محددة:
resource.type="fleetengine.googleapis.com/DeliveryFleet"
labels.delivery_vehicle_id="delivery_vehicle_id"
timestamp>="2020-09-24T20:00:00.000Z"
timestamp<"2020-09-24T21:00:00.000Z"
مثال على المقاييس المستنِدة إلى السجلّ
يوضح المثال التالي كيفية استخدام المقاييس القائمة على السجل لتتبع عدد المهام التي تم إنشاؤها بمرور الوقت.
في Cloud Console، اختَر Logging (التسجيل) ثم Logs Explorer (مستكشف السجلات) لفتحها. مستكشف السجلات. وبعد ذلك، طبِّق الفلتر التالي:
resource.type="fleetengine.googleapis.com/DeliveryFleet" resource.labels.location="global" logName="projects/ProjectID/logs/fleetengine.googleapis.com%2Fupdate_task" jsonPayload.request.task.taskOutcome="TASK_OUTCOME_LOG_SUCCEEDED" jsonPayload.request.updateMask="taskOutcome" jsonPayload.response.type= ("TASK_TYPE_LOG_PICKUP" OR "TASK_TYPE_LOG_DELIVERY")
في جزء "نتائج طلب البحث"، اختَر القائمة المنسدلة الإجراءات ثم اختَر إنشاء مقياس.
في مربّع الحوار "محرِّر المقاييس":
- حدِّد اسم مقياس (مثل billable_tasks).
- حدِّد وصفًا للمقياس (على سبيل المثال، عدد الوحدات القابلة للفوترة) المهام).
- اترك خيار الوحدات فارغًا. _ اترك الخيار النوع كما هو عرض مضاد:
بعد ذلك، انقر على الزر إنشاء مقياس.
في صفحة المقاييس المستندة إلى السجلات، ستشاهد رسالة تؤكد أن تم إنشاء المقياس بنجاح، ومن المفترض أن يظهر المقياس الجديد في قسم مقاييس تحديد المستخدم. ستتم الآن تعبئة المقياس على أنّه مطابق. يتم إنشاء السجلات.
اختَر القائمة المنسدلة العمودية على الجانب الأيسر من المقياس الجديد ثم اختَر عرض في "مستكشف المقاييس".
في الجزء الأيمن ضمن "Create Your Query" (إنشاء الاستعلام)، اضبط نوع المورد على Fleet استخدِم محرك البحث وابحث عن مقياس billable_tasks.
يعرض الرسم البياني على اليسار معدّل مكالمات billable_tasks.
استخدام BigQuery
BigQuery أداة قوية لإجراء التحليلات. يمكن استخدامها لتخزين السجلات طويلة المدى وإجراء استعلامات مخصصة تشبه SQL (لغة الاستعلام البنيوية) مقابل البيانات.
سجلات التوجيه إلى BigQuery
للاستفادة من BigQuery، يجب توجيه السجلات إلى مخزن بيانات BigQuery، التالي:
في Cloud Console، اختَر التسجيل ثم مستكشف السجلات.
يمكنك إنشاء فلتر يعزل سجلات Fleet Engine. في مستكشف السجلات الميدانية، حدد نوع المورد Fleetengine.googleapis.com/DeliveryFleet.
في جزء نتائج الاستعلام، انقر فوق القائمة المنسدلة "الإجراءات" واختر إنشاء الحوض.
في مربّع الحوار "اختيار خدمة الحوض"، اختَر مجموعة بيانات BigQuery.
في مربع الحوار "تعديل الحوض"، حدد الخيارات التالية:
- حدِّد اسم مصدر (مثل FleetEngineLogsSink).
- اترك Sink Service مثل BigQuery.
- حدِّد الخيار استخدام جداول مقسَّمة. سيؤدي ذلك إلى تعزيز الاستعلام أدائه.
- ضمن وجهة الحوض، اختَر إنشاء مجموعة بيانات BigQuery جديدة، ثم تحديد اسم لمجموعة بيانات BigQuery (على سبيل المثال، FleetEngineLogs)
- انقر على الزر إنشاء حوض.
يجب أن تبدأ سجلاتك الآن في تعبئة مجموعة بيانات BigQuery. يمكنك الاطّلاع على البيانات في قسم BigQuery في Cloud Console.
ستتم تعبئة عدة جداول ضمن مجموعة بيانات FleetEngineLogs تلقائيًا، خيار لكل نوع سجل:
- CreateDeliveryVehicle
- GetDeliveryVehicle
- ListDeliveryVehicle
- UpdateDeliveryVehicle
- CreateTask
- GetTask
- UpdateTask
- ListTasks
تستخدم أسماء الجداول النمط التالي:
project_id.data_set.log_name
على سبيل المثال، إذا كان المشروع يُسمى test_project وكان اسم مجموعة البيانات هو FleetEngineLogs، يحمل الجدول CreateTask الاسم التالي:
test_project.FleetEngineLogs.fleetengine_googleapis_com_create_task
أمثلة على طلبات البحث
يعرض هذا القسم أمثلة على طلبات البحث التي يمكنك إنشاؤها.
المهام التي تم إنشاؤها في الساعة
يحتسب الاستعلام التالي عدد سجلات CreateTasks ويجمعها حسب ساعة.
SELECT TIMESTAMP_TRUNC(timestamp, HOUR) as hour,
count(*) as num_tasks_created
FROM
`ProjectId.FleetEngineLogs.fleetengine_googleapis_com_create_task`
GROUP BY hour
ORDER by hour
عدد محطات التوقف لكل مركبة في الساعة
يُنشئ الاستعلام التالي عدد المحطات التي خدمتها مركبة معطلة بساعة.
على سبيل المثال، يمكن أن يشير طلب البحث هذا إلى أنه خلال الساعة الماضية:
- تكمل المركبة (أ) 10 محطات في الساعة 12 و8 محطات في الساعة 13.
- أكملت المركبة "ب" 5 محطات في الساعة 11 و7 محطات في الساعة 12.
أكملت المركبة (ج) 12 محطة توقف في الساعة 13 و9 محطات في الساعة 14.
SELECT jsonpayload_v1_updatedeliveryvehiclelog.request.deliveryvehicleid AS vehicle, TIMESTAMP_TRUNC(timestamp, HOUR) AS hour, COUNT(*) AS num_stops FROM `ProjectId.FleetEngineLogs.fleetengine_googleapis_com_update_delivery_vehicle` WHERE ARRAY_LENGTH(jsonpayload_v1_updatedeliveryvehiclelog.request.deliveryvehicle.remainingvehiclejourneysegments) > 0 AND jsonpayload_v1_updatedeliveryvehiclelog.request.deliveryvehicle.remainingvehiclejourneysegments[ OFFSET (0)].stop.state = 'VEHICLE_STOP_STATE_LOG_ARRIVED' GROUP BY 1, 2 ORDER BY 2
معدل نجاح التسليم الأول
الاستعلام التالي الذي يوضح النسبة المئوية للنجاح في التسليم الأول معدل المحاولات.
SELECT
vehicle_id,
COUNTIF(outcome = "TASK_OUTCOME_LOG_SUCCEEDED") AS num_success,
COUNT(*) AS total_deliveries,
COUNTIF(outcome = "TASK_OUTCOME_LOG_SUCCEEDED") * 100/ COUNT(*) AS success_rate
FROM (
SELECT
labels.delivery_vehicle_id AS vehicle_id,
jsonpayload_v1_updatetasklog.response.trackingid AS trackingid,
ARRAY_AGG(jsonpayload_v1_updatetasklog.response.taskoutcome
ORDER BY
timestamp ASC)[ORDINAL(1)] AS outcome,
FROM
`ProjectId.FleetEngineLogsfleetengine_googleapis_com_update_task`
WHERE
jsonpayload_v1_updatetasklog.response.type = "TASK_TYPE_LOG_DELIVERY"
GROUP BY 1, 2
ORDER BY 1, 2)
GROUP BY 1
ORDER BY 1
لوحات بيانات استوديو البيانات
يمكن دمج BigQuery مع أدوات ذكاء الأعمال ولوحات البيانات إنشاؤه لتحليلات الأعمال.
يوضح المثال التالي كيفية إنشاء لوحة معلومات المهام والمركبة يمكن تصور الحركات على الخريطة.
ابدأ تشغيل لوحة بيانات جديدة في Datastudio واختر BigQuery كبيانات. الاتصال.
اختَر "طلب بحث مخصَّص" واختَر المشروع على Google Cloud الذي يجب أن يكون الطلب عليه. الفوترة.
أدخل الاستعلام التالي في مربع الاستعلام.
SELECT
timestamp,
labels.delivery_vehicle_id,
jsonpayload_v1_updatedeliveryvehiclelog.response.lastlocation.rawlocation.latitude AS lat,
jsonpayload_v1_updatedeliveryvehiclelog.response.lastlocation.rawlocation.longitude AS lng
FROM
`ProjectId.FleetEngineLogs.fleetengine_googleapis_com_update_delivery_vehicle`
اختَر نوع الرسم البياني باعتباره خريطة فقاعية، ثم اختَر حقل الموقع الجغرافي.
اختَر إنشاء حقل.
أدخِل اسمًا للحقل وأضِف الصيغة التالية: CONCAT(lat, ",", lng).
ثم اضبط type على Geo->Latitude، خط الطول.
يمكنك إضافة عناصر تحكّم إلى لوحة البيانات لفلترة البيانات. على سبيل المثال، اختَر عامل تصفية النطاق الزمني.
عدِّل مربّع النطاق الزمني لاختيار نطاق زمني تلقائي.
يمكنك إضافة عناصر تحكّم إضافية في القائمة المنسدلة لـ delivery_vehicle_id.
باستخدام عناصر التحكم هذه، يمكنك عرض حركة المركبة أو والحركة داخل عملية تسليم.