التسجيل

يوفر Fleet Engine خدمة تسجيل بسيطة تتيح لك حفظ طلبات واجهة برمجة التطبيقات وحمولات الاستجابة. ويمكنك من خلال هذه السجلات تصحيح أخطاء الدمج وإنشاء مقاييس مراقبة وتحليل أنماط الزيارات.

يرسل Fleet Engine السجلات كـ سجلات للنظام الأساسي إلى Cloud Logging، لتتمكن من استخدام أدوات التسجيل في السحابة الإلكترونية للوصول إليها.

البيانات التي يسجّلها Fleet Engine

يرسل Fleet Engine عدة معلومات إلى تسجيل السحابة الإلكترونية، مثل:

  • جميع طلبات وردود REST وgRPC التي تمت مصادقتها
  • الردود على الأخطاء
  • الطلبات والردود ورسائل الخطأ من المكالمات التي بدأتها "حزمة تطوير البرامج (SDK) لبرنامج التشغيل" إلى Fleet Engine.
  • تقسيم السجلات لأنواع السجلّات المتوافقة:

اطّلِع على وثائق ورسائل السجلّ المتوفّرة في مرجع التسجيل.

استخدام حِزم السجلّات التلقائية والمقيَّدة للامتثال لسياسات الاحتفاظ بالبيانات

يضمن استخدام الحِزم "المحدودة" و "التلقائية" الحصول على صورة واضحة عن الاستخدام المحدود وغير المحدود للبيانات. قد يتم الاحتفاظ ببعض بيانات السجلّ التي يرسلها Fleet Engine إلى "منصة خرائط Google" لفترة محدودة فقط، وذلك وفقًا للبنود الخاصة بخدمة التنقّل. للتأكد من احتفاظك بالبيانات المقيدة خلال الفترة الزمنية فقط المسموح بها، يجب تصنيف هذه البيانات على أنها TOS_RESTRICTED (يجري Fleet Engine هذا بالفعل) وتسجيل الدخول إلى حزمة مخصصة تسمى "restricted" (مقيّد).

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

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

الحصول على عرض كامل من خلال دمج السجلات المشروطة وغير المشروطة

وتحتوي السجلات ذات الاستخدام المحدود على البيانات ذات الاستخدام المحدود ومرجعًا للسجلّ التلقائي بهدف أخذها في الاعتبار معًا. يتضمّن السجلّ المحدود الاستخدام InsertId للسجلّ التلقائي كمرجع في الحقل parent_insert_id. يمكنك استخدام هذا الحقل لدمج البيانات من كلا السجلين والحصول على الصورة الكاملة.

راجِع المستندات المتعلّقة بجميع رسائل السجلّ والمخطط المتاحة في مرجع التسجيل.

تفعيل التسجيل في السحابة الإلكترونية

يفعّل Fleet Engine تلقائيًا السجلّات التلقائية لعملاء الجوّال الجُدد، بدءًا من المشاريع التي تم إنشاؤها في 10 شباط (فبراير) 2022. يمكنك التأكد مما إذا كان تسجيل الدخول مُفعَّلاً أم لا باستخدام طلب البحث التالي في مستكشف السجلات :

resource.type:"fleetengine.googleapis.com/DeliveryFleet"

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

تفعيل السجلّات ذات الاستخدام المحدود

يتم تفعيل السجلّات ذات الاستخدام المحدود عند الطلب. لتفعيل هذه السجلّات لمشروعك على Google Cloud، عليك إكمال الخطوات التالية:

إعداد مشروعك لتلقّي السجلات ذات الاستخدام المحدود

  1. في "وحدة تحكُّم Google Cloud"، افتح صفحة Log Router.
  2. عدِّل حزمة التسجيل _Default لاستبعاد السجلّات ذات الاستخدام المحدود.
    1. اختَر حزمة التسجيل _Default، ثم اختَر تعديل الحوض.
    2. ضمن قسم "اختيار السجلّات المراد فلترتها من الحوض"، انقر على الزرّ "إضافة استبعاد":
      1. اسم فلتر الاستبعاد: ExceptionRestrictedLogs
      2. فلتر الاستبعاد: segmentation.restriction="TOS_RESTRICTED"
    3. انقر على "تعديل الحوض".
  3. عدِّل حزمة التسجيل المحدود لتخزين السجلّات ذات الاستخدام المحدود.
    1. من صفحة Log Router، اختَر "إنشاء حوض".
    2. أنشئ حوضًا باستخدام الإعدادات التالية:
      1. تفاصيل الحوض:
        1. الاسم: RestrictedLogs
        2. الوصف: سجلّات الاستخدام المحدود التي تستخدمها Routes Fleet Engine
      2. وجهة الحوض:
        1. خدمة الحوض: حزمة التسجيل
        2. اختيار حزمة السجلّ: إنشاء حزمة سجلّ جديدة
          1. الاسم: مقيّد
          2. الوصف: يحتوي على سجلّات الاستخدام المحدود التي توفّرها Fleet Engine
        3. فترة الاحتفاظ بالبيانات: 30 يومًا
          1. ملاحظة: يجب ألا تتجاوز فترة الاحتفاظ 30 يومًا.
      3. السجلّات المطلوب تضمينها في الحوض: اتركها فارغة
      4. السجلّات المطلوب فلترتها من الحوض: انقر على "إضافة استبعاد"
        1. اسم فلتر الاستبعاد: ExceptionNonRestrictedLogs
        2. فلتر الاستبعاد: NOT (resource.type = "fleetengine.googleapis.com/Fleet" OR resources.type = "fleetengine.googleapis.com/DeliveryFleet") NOT (labels.restriction = "TOS_RESTRICTED")
      5. انقر على "إنشاء حوض"

يمكنك التواصل مع فريق الدعم لتفعيل السجلات ذات الاستخدام المحدود.

يمكنك بعد ذلك التواصل مع فريق الدعم وتقديم المعلومات التالية في طلب الدعم:

  1. أرقام تعريف المشاريع المطلوب تفعيلها:
  2. عنوان البريد الإلكتروني للشخص الذي يطلب التغيير:
    1. ملاحظة: يجب أن يكون لدى هذا الشخص الإذن بتعديل المحتوى في مشاريع Google Cloud المدرجة.
  3. من خلال تفعيل محتوى "خرائط Google" المحدود الاستخدام في تسجيل الدخول إلى السحابة الإلكترونية، أنت توافق على الالتزام بأحكام "منصة خرائط Google" والأحكام الخاصة بخدمة التنقّل، بما في ذلك التخزين المؤقت ومتطلبات الاستخدام المسموح به من حيث صلتها بمحتوى "خرائط Google". نعم / لا

بمجرد أن يتلقى فريق الدعم طلبك، يرسل تأكيدًا بأن التسجيل قد تم تفعيله لمشروعك

تقسيم سجلات السحابة الإلكترونية

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

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

تكون بنية السجلّ المقسّمة هي نفسها البنية المذكورة في دليل إدخالات سجلّ التدقيق في التقسيم لسجلات تدقيق Cloud. يتمثل الاختلاف الرئيسي في السجلات المقسّمة في تسجيل مجموعة الأجهزة في أن التقسيم يحدث في الحقل 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 في LogEntry على القيمة fleetengine.googleapis.com. يمكنك استخدام مستكشف السجلات لكتابة طلبات بحث لعرض سجلاتك.

على سبيل المثال، لعرض جميع استدعاءات إجراء عن بُعد (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 لاستيعاب سجلات FleetEngine.

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. يتم تصنيف بعض سجلات واجهة برمجة تطبيقات التسليم باستخدام معرّف المهمة ومعرّف مركبة التسليم. يمكنك استخدام هذه التسميات لتحديد السجلات للمهام أو المركبات التي تهمك.

تصنيفات السجلّات

فلترة السجلّات حسب رقم تعريف مركبة التسليم

في مستكشف السجلات، يمكنك استخدام الاستعلام التالي لتقييد السجلات بمركبة معينة:

    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"

مثال على المقاييس المستنِدة إلى السجلّ

يوضح المثال التالي كيفية استخدام المقاييس المستندة إلى السجلّ لتتبّع عدد المهام التي تم إنشاؤها بمرور الوقت.

  1. في Cloud Console، اختَر التسجيل ثم مستكشف السجلات لفتح "مستكشف السجلات". وبعد ذلك، طبِّق الفلتر التالي:

    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")
    
  2. في لوحة "نتائج طلب البحث"، اختَر القائمة المنسدلة الإجراءات ثم اختَر إنشاء مقياس.

    إنشاء مقياس

  3. في مربّع الحوار "محرِّر المقاييس":

    • حدِّد اسم مقياس (مثل billable_tasks).
    • حدِّد وصفًا للمقياس (على سبيل المثال، عدد المهام القابلة للفوترة).
    • اترك خيار الوحدات فارغًا. _ اترك الخيار النوع على رد.

    بعد ذلك، انقر على الزر إنشاء مقياس.

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

  5. اختَر القائمة المنسدلة العمودية على يسار المقياس الجديد، ثم اختَر العرض في "مستكشف المقاييس".

    عرض المقياس

  6. في الجزء الأيمن ضمن "Create Your Query" (إنشاء طلب البحث)، اضبط نوع المورد على Fleet Engine وابحث عن مقياس billable_tasks.

    بحث المقاييس

    يعرض الرسم البياني على اليسار معدّل مكالمات billable_tasks.

استخدام BigQuery

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

سجلات التوجيه إلى BigQuery

للاستفادة من BigQuery، يجب توجيه السجلات إلى مخزن بيانات BigQuery، على النحو التالي:

  1. في Cloud Console، اختَر التسجيل ثم مستكشف السجلات.

  2. يمكنك إنشاء فلتر يعزل سجلات Fleet Engine. في Logs Field Explorer (مستكشف حقل السجلات)، اختَر نوع المورد Fleetengine.googleapis.com/deliveryyFleet.

    إنشاء
فلتر

  3. في جزء "نتائج طلب البحث"، انقر على القائمة المنسدلة "الإجراءات" واختر إنشاء مستودع.

    إنشاء حوض

  4. في مربّع الحوار "اختيار خدمة الحوض"، اختَر مجموعة بيانات BigQuery.

    اختَر الحوض

  5. في مربع الحوار "تعديل الحوض"، حدد الخيارات التالية:

    • حدِّد اسم مصدر (مثل FleetEngineLogsSink).
    • اترك Sink Service مثل BigQuery.
    • حدِّد الخيار استخدام جداول مقسَّمة. سيؤدي ذلك إلى تعزيز أداء الاستعلام.
    • ضمن Sink Destination (وجهة مستودع)، اختَر Create New BigQuery Dataset (إنشاء مجموعة بيانات BigQuery جديدة)، ثم حدِّد اسمًا لمجموعة بيانات BigQuery (على سبيل المثال، FleetEngineLogs).
    • انقر على الزر إنشاء حوض.

    تعديل
    الحوض

يجب أن تبدأ سجلاتك الآن في تعبئة مجموعة بيانات BigQuery. يمكنك الاطّلاع على البيانات في قسم BigQuery في Cloud Console

قسم
BigQuery

ستتم تعبئة عدة جداول ضمن مجموعة بيانات 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 مع أدوات ذكاء الأعمال ولوحات البيانات لتحليلات الأعمال.

يوضح المثال التالي كيفية إنشاء لوحة معلومات على المهام وحركات المركبة التي يمكن تصورها على خريطة.

  1. ابدأ تشغيل لوحة معلومات استوديو البيانات الجديدة وحدد BigQuery كاتصال البيانات.

    اتصال
البيانات

  2. اختَر "طلب بحث مخصَّص" واختَر المشروع على السحابة الإلكترونية الذي يجب إرسال الفواتير إليه.

    اختيار
مشروع

  3. أدخل الاستعلام التالي في مربع الاستعلام.

    أدخل
استعلامًا

    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`
  1. اختَر نوع الرسم البياني باعتباره خريطة فقاعية، ثم اختَر حقل الموقع الجغرافي.

    نوع
الرسم البياني

  2. اختَر إنشاء حقل.

    إنشاء
حقل

  3. أدخِل اسمًا للحقل وأضِف الصيغة التالية: CONCAT(lat, ",", lng).

    ثم اضبط type على Geo->Latitude، خط الطول.

    ضبط النوع

  4. يمكنك إضافة عناصر تحكّم إلى لوحة البيانات لفلترة البيانات. على سبيل المثال، حدد عامل تصفية النطاق الزمني.

    يمكنك إضافة
عناصر تحكُّم

  5. عدِّل مربّع النطاق الزمني لاختيار نطاق زمني تلقائي.

    نطاق
التاريخ

  6. يمكنك إضافة عناصر تحكّم إضافية في القائمة المنسدلة لـ delivery_vehicle_id.

    القائمة المنسدلة

باستخدام عناصر التحكّم هذه، يمكنك الاطّلاع على حركة المركبة أو الحركة ضمن عملية تسليم.