ورود به سیستم

Fleet Engine یک سرویس ورود به سیستم ساده ارائه می دهد که به شما امکان می دهد درخواست های API و بارهای پاسخ را ذخیره کنید. با استفاده از این گزارش‌ها، می‌توانید ادغام خود را اشکال زدایی کنید، معیارهای نظارتی ایجاد کنید و الگوهای ترافیک را تجزیه و تحلیل کنید.

Fleet Engine گزارش‌ها را به‌عنوان گزارش‌های پلتفرم به Cloud Logging ارسال می‌کند تا بتوانید از ابزارهای Cloud Logging برای دسترسی به آنها استفاده کنید.

چه اطلاعاتی از موتور ناوگان ثبت می شود

Fleet Engine چندین اطلاعات را به Cloud Logging ارسال می کند، مانند:

  • همه درخواست‌ها و پاسخ‌های REST و gRPC تأیید شده
  • پاسخ های خطا
  • درخواست‌ها، پاسخ‌ها و پیام‌های خطا از تماس‌های آغاز شده توسط Driver SDK به Fleet Engine.
  • تقسیم گزارش‌ها برای انواع گزارش‌های پشتیبانی شده:

اسناد مربوط به پیام‌های گزارش موجود و طرحواره را در مرجع ثبت گزارش مشاهده کنید.

از سطل های گزارش محدود و پیش فرض برای مطابقت با سیاست های حفظ داده ها استفاده کنید

استفاده از سطل‌های "محدود" و "پیش‌فرض" تصویر واضحی از مصرف محدود و نامحدود داده شما را تضمین می‌کند. برخی از داده‌های گزارشی که Fleet Engine به پلتفرم نقشه‌های Google ارسال می‌کند، طبق شرایط خاص سرویس Mobility، ممکن است فقط برای مدت زمان محدودی نگهداری شوند. برای اطمینان از اینکه داده‌های محدود شده را فقط برای مدت زمان مجاز حفظ می‌کنید، چنین داده‌هایی باید با برچسب TOS_RESTRICTED (موتور Fleet این کار را قبلا انجام می‌دهد) و در یک سطل اختصاصی به نام "محدود" ثبت شوند.

از آنجا، می‌توانید مدت زمان نگهداری آن را کنترل کنید و در زمان انقضا با استفاده از تنظیمات Cloud Logging آن را به‌طور خودکار پاک کنید. برای مثال، گزارش‌های استفاده محدود باید فقط به مدت 30 روز نگهداری شوند.

همه داده‌های نامحدود باقی‌مانده را در سطل «پیش‌فرض» ثبت کنید، جایی که می‌توان آن‌ها را برای مدت‌های طولانی‌تری همانطور که در شرایط خاص سرویس تحرک تعریف شده (معمولاً برای 1 سال) نگهداری کرد. استفاده از سطل های "محدود" و "پیش فرض" تصویر واضحی از استفاده محدود و نامحدود داده شما را تضمین می کند.

با ادغام گزارش های محدود و نامحدود، یک نمای کامل دریافت کنید

گزارش‌های استفاده محدود حاوی داده‌های استفاده محدود و ارجاعی به گزارش پیش‌فرض هستند تا بتوان آنها را با هم در نظر گرفت. گزارش با استفاده محدود حاوی insertId گزارش پیش‌فرض به عنوان مرجع در قسمت parent_insert_id است. می توانید از این فیلد برای پیوستن داده ها از هر دو لاگ و دریافت تصویر کامل استفاده کنید.

مستندات مربوط به همه پیام‌های گزارش موجود و طرحواره را در مرجع ثبت گزارش مشاهده کنید.

فعال کردن Cloud Logging

Fleet Engine به‌طور خودکار گزارش‌های پیش‌فرض را برای مشتریان جدید Mobility فعال می‌کند، با پروژه‌هایی که در 10 فوریه 2022 ایجاد شده‌اند. می‌توانید با استفاده از عبارت جستجوی زیر در Logs Explorer فعال بودن گزارش‌گیری را تأیید کنید:

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

اگر هیچ گزارشی برای آن عبارت جستجو نمی‌بینید، ممکن است Cloud Logging برای پروژه شما فعال نشده باشد. اگر می خواهید این ویژگی را فعال کنید با پشتیبانی تماس بگیرید .

گزارش‌های استفاده محدود را فعال کنید

گزارش‌های استفاده محدود در صورت درخواست فعال می‌شوند. برای فعال کردن این گزارش‌ها برای پروژه Google Cloud خود، مراحل زیر را انجام دهید:

پروژه خود را برای دریافت گزارش های استفاده محدود آماده کنید

  1. در کنسول Google Cloud، صفحه Log Router را باز کنید.
  2. برای حذف گزارش‌های استفاده محدود، سطل گزارش پیش‌فرض را به‌روزرسانی کنید.
    1. سطل _Default logging را انتخاب کنید و سپس Edit sink را انتخاب کنید.
    2. در بخش «انتخاب گزارش‌ها برای فیلتر کردن سینک»، روی دکمه «افزودن استثنا» کلیک کنید:
      1. نام فیلتر خروج: ExcludeRestrictedLogs
      2. فیلتر حذف: labels.restriction="TOS_RESTRICTED"
    3. روی "به روز رسانی سینک" کلیک کنید.
  3. برای ذخیره گزارش‌های استفاده محدود، سطل ورود به سیستم محدود را به‌روزرسانی کنید.
    1. از صفحه Log Router، "Create sink" را انتخاب کنید.
    2. یک سینک با تنظیمات زیر ایجاد کنید:
      1. جزئیات سینک:
        1. نام: RestrictedLogs
        2. توضیحات: سیاهههای مربوط به استفاده محدود Routes Fleet Engine
      2. مقصد سینک:
        1. سرویس سینک: سطل ورود به سیستم
        2. سطل گزارش را انتخاب کنید: سطل گزارش جدید ایجاد کنید
          1. نام: محدود
          2. توضیحات: شامل سیاهههای مربوط به استفاده محدود از موتور ناوگان است
        3. مدت نگهداری: 30 روز
          1. توجه: مدت نگهداری نباید بیش از 30 روز باشد.
      3. سیاهههای مربوط به سینک: خالی بگذارید
      4. گزارش‌ها برای فیلتر کردن سینک: روی «افزودن استثنا» کلیک کنید
        1. نام فیلتر حذف: ExcludeNonRestrictedLogs
        2. فیلتر حذف: نه (resource.type = "fleetengine.googleapis.com/Fleet" OR resource.type = "fleetengine.googleapis.com/DeliveryFleet") نه (labels.restriction = "TOS_RESTRICTED")
      5. روی "ایجاد سینک" کلیک کنید

برای فعال کردن گزارش‌های استفاده محدود با پشتیبانی تماس بگیرید

سپس، با پشتیبانی تماس بگیرید و اطلاعات زیر را در درخواست پشتیبانی خود ارائه دهید:

  1. شناسه(های) پروژه برای فعال کردن:
  2. آدرس ایمیل شخص درخواست کننده تغییر:
    1. توجه: این شخص باید به پروژه‌های Google Cloud فهرست شده دسترسی ویرایش داشته باشد.
  3. با فعال کردن محتوای Google Maps با استفاده محدود در Cloud Logging، موافقت می‌کنید که به شرایط پلتفرم Google Maps و شرایط خاص سرویس Mobility ، از جمله الزامات ذخیره‌سازی پنهان و استفاده مجاز در ارتباط با محتوای Google Maps پایبند باشید. بله خیر

هنگامی که تیم پشتیبانی درخواست شما را دریافت کرد، تأییدیه ای را ارسال می کند که ثبت گزارش برای پروژه شما فعال شده است

تقسیم گزارش‌های ابری

Cloud Logging اندازه گزارش‌های ورودی را به 256 کیلوبایت محدود می‌کند. این سرویس گزارش‌ها را فراتر از این آستانه حذف می‌کند. برای اطمینان از اینکه Cloud Logging لاگ‌های بزرگ را حفظ می‌کند، Fleet Engine می‌تواند آنها را به مجموعه‌ای از گزارش‌های زیر آستانه ۲۵۶ کیلوبایت تقسیم کند. چنین گزارش‌هایی دارای یک پیشوند insertId مشترک هستند تا ترتیبی را نشان دهد که سرویس گزارش کوچک‌تر را از گزارش بزرگ‌تر اصلی جدا می‌کند. سپس می توانید آنها را بر اساس insertId آنها دوباره به هم بپیوندید.

برای دسترسی به گزارش تقسیم‌نشده اصلی، گزارش‌های تقسیم‌شده را بر اساس insertId آن‌ها به ترتیبی که تقسیم شده‌اند، ادغام کنید، همانطور که با نمایه آنها در ورودی گزارش ابری نشان داده شده است.

ساختار گزارش تقسیم شده همان ساختاری است که در راهنمای ورودی‌های گزارش حسابرسی تقسیم شده برای گزارش‌های حسابرسی ابری ذکر شده است. تفاوت عمده برای گزارش های تقسیم در Fleet Logging این است که تقسیم در فیلد 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 با تنظیم resource.type LogEntry به fleetengine.googleapis.com گزارش‌ها را به Cloud Logging ارسال می‌کند. می توانید از Logs Explorer برای نوشتن پرس و جو برای مشاهده گزارش های خود استفاده کنید.

به عنوان مثال، برای مشاهده تمام RPCها به Fleet Engine که خطا را برگردانده اند، از عبارت Logs Explorer زیر استفاده کنید:

resource.type:"fleetengine.googleapis.com/DeliveryFleet"
severity=ERROR

برای مشاهده گزارش‌های RPC ساخته شده به روش UpdateDeliveryVehicle برای پروژه example-project-id، از عبارت Logs Explorer زیر استفاده کنید:

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 را ندارید، می‌توانید با خاموش کردن انتقال از هزینه‌های بالقوه Cloud Logging جلوگیری کنید. به طور پیش‌فرض، گزارش‌های Fleet Engine به سطل گزارش _Default هدایت می‌شوند.

دستور زیر سطل گزارش گیری _Default را به روز می کند تا لاگ های Fleet Engine را وارد نکند.

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 Logging صادرات و صادرات سیاهههای مربوط

از Logs Explorer استفاده کنید

برای استفاده از Logs Explorer، Cloud Console را باز کنید، Logging و سپس Logs Explorer را انتخاب کنید. برای مشاهده لیستی از تمام گزارش های موجود در Fleet Engine، روی Fleet Engine Resource Type کلیک کنید. برخی از گزارش‌های API تحویل با یک شناسه وظیفه و یک شناسه وسیله نقلیه تحویل برچسب‌گذاری شده‌اند. می توانید از این برچسب ها برای انتخاب سیاهه های مربوط به وظایف یا وسایل نقلیه مورد علاقه خود استفاده کنید.

برچسب های لاگ

سیاهههای مربوط را با شناسه خودروی تحویل فیلتر کنید

در Logs Explorer، می‌توانید از عبارت زیر برای محدود کردن گزارش‌ها به یک وسیله نقلیه خاص استفاده کنید:

    resource.type="fleetengine.googleapis.com/DeliveryFleet"
    labels.delivery_vehicle_id="delivery_vehicle_id"

فیلتر خودرو

سیاهههای مربوط را با شناسه وظیفه فیلتر کنید

در Logs Explorer، می توانید از پرس و جوی زیر برای محدود کردن گزارش ها به یک کار خاص استفاده کنید:

    resource.type="fleetengine.googleapis.com/DeliveryFleet"
    labels.task_id=~"task_id"

سیاهههای مربوط به یک وسیله نقلیه در یک دوره زمانی خاص را فیلتر کنید

در Logs Explorer، می‌توانید از عبارت زیر برای محدود کردن گزارش‌ها به گزارش‌های مربوط به یک وسیله نقلیه در یک دوره زمانی خاص استفاده کنید:

    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، Logging و سپس Logs Explorer را انتخاب کنید تا 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")
    
  2. در قسمت Query Results، منوی کشویی Actions و سپس Create Metric را انتخاب کنید.

    متریک ایجاد کنید

  3. در گفتگوی ویرایشگر متریک:

    • یک نام متریک (به عنوان مثال، billable_tasks ) را مشخص کنید.
    • یک توصیف متریک را مشخص کنید (به عنوان مثال، تعداد وظایف قابل پرداخت ).
    • گزینه Units را خالی بگذارید. _ گزینه Type را به عنوان Counter بگذارید.

    سپس دکمه Create Metric را انتخاب کنید.

  4. در صفحه سنجه‌های مبتنی بر گزارش‌ها، باید پیامی را ببینید که تأیید می‌کند معیار با موفقیت ایجاد شده است و معیار جدید باید در بخش معیارهای تعریف کاربر ظاهر شود. اکنون با ایجاد گزارش‌های منطبق، متریک تکمیل می‌شود.

  5. کشویی عمودی را در سمت راست معیار جدید انتخاب کنید و سپس View in Metrics Explorer را انتخاب کنید.

    مشاهده متریک

  6. در قسمت سمت چپ زیر Build Your Query، نوع منبع را روی Fleet Engine قرار دهید و متریک billable_tasks را جستجو کنید.

    متریک جستجو

    نمودار سمت راست میزان تماس‌های billable_tasks را نشان می‌دهد.

با استفاده از BigQuery

BigQuery یک ابزار قدرتمند برای انجام تجزیه و تحلیل است. می‌توان از آن برای ذخیره‌سازی گزارش‌های طولانی‌مدت و انجام پرس‌وجوهای موردی SQL مانند در برابر داده‌ها استفاده کرد.

مسیریابی گزارش‌ها به BigQuery

برای استفاده از BigQuery، گزارش‌ها باید به صورت زیر به یک داده BigQuery هدایت شوند:

  1. در Cloud Console، Logging و سپس Logs Explorer را انتخاب کنید.

  2. فیلتری ایجاد کنید که گزارش های Fleet Engine را ایزوله کند. در Logs Field Explorer، نوع منبع Fleetengine.googleapis.com/DeliveryFleet را انتخاب کنید.

    فیلتر ایجاد کنید

  3. در قسمت Query Results، روی منوی کشویی Actions کلیک کنید و Create Sink را انتخاب کنید.

    سینک ایجاد کنید

  4. در گفتگوی انتخاب سرویس سینک، مجموعه داده BigQuery را انتخاب کنید.

    سینک را انتخاب کنید

  5. در گفتگوی Edit Sink، گزینه های زیر را مشخص کنید:

    • نام سینک را مشخص کنید (به عنوان مثال FleetEngineLogsSink ).
    • سرویس سینک را به عنوان BigQuery بگذارید.
    • گزینه Use Partitioned Tables را انتخاب کنید. این کار عملکرد پرس و جو را افزایش می دهد.
    • در قسمت Sink Destination، Create New BigQuery Dataset را انتخاب کنید و سپس نام مجموعه داده BigQuery را مشخص کنید (به عنوان مثال FleetEngineLogs ).
    • روی دکمه Create Sink کلیک کنید.

    سینک را ویرایش کنید

گزارش‌های شما اکنون باید شروع به پر کردن مجموعه داده BigQuery کنند. می توانید داده ها را در بخش BigQuery در Cloud Console مشاهده کنید.

بخش BigQuery

چندین جدول زیر مجموعه داده FleetEngineLogs به طور خودکار پر می شوند، یکی برای هر نوع گزارش:

  • CreateDeliveryVehicle
  • GetDeliveryVehicle
  • ListDeliveryVehicle
  • UpdateDelivery Vehicle
  • 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

تعداد توقف در هر وسیله نقلیه در ساعت

پرس و جو زیر تعداد توقف هایی را که یک وسیله نقلیه انجام داده است، به تفکیک ساعت ایجاد می کند.

به عنوان مثال، این پرس و جو می تواند نشان دهد که در آخرین ساعت:

  • وسیله نقلیه A 10 توقف را در ساعت 12 و 8 توقف را در ساعت 13 انجام داد.
  • وسیله نقلیه B 5 توقف در ساعت 11 و 7 توقف در ساعت 12 انجام داد.
  • وسیله نقلیه C در ساعت 13 12 توقف و در ساعت 14 9 توقف انجام داد.

    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

داشبوردهای Datastudio

BigQuery را می توان با ابزارهای هوش تجاری ادغام کرد و داشبوردهایی را برای تجزیه و تحلیل تجاری ایجاد کرد.

مثال زیر نحوه ساخت داشبوردی را نشان می دهد که بر روی آن می توان وظایف و حرکات وسیله نقلیه را روی نقشه تجسم کرد.

  1. یک داشبورد Datastudio جدید راه اندازی کنید و BigQuery را به عنوان اتصال داده انتخاب کنید.

    ارتباط دیتا

  2. درخواست سفارشی را انتخاب کنید و پروژه Cloud را که باید برای آن صورتحساب داده شود انتخاب کنید.

    پروژه را انتخاب کنید

  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) .

    سپس نوع را روی Geo->Latitude, Longitude تنظیم کنید.

    نوع را تنظیم کنید

  4. برای فیلتر کردن داده ها می توانید کنترل هایی را به داشبورد اضافه کنید. به عنوان مثال، فیلتر محدوده تاریخ را انتخاب کنید.

    کنترل ها را اضافه کنید

  5. کادر محدوده تاریخ را برای انتخاب یک محدوده تاریخ پیش فرض ویرایش کنید.

    محدوده زمانی

  6. می‌توانید کنترل‌های فهرست کشویی اضافی برای delivery_vehicle_id اضافه کنید.

    لیست کشویی

با این کنترل ها می توانید حرکت وسیله نقلیه یا حرکت در یک تحویل را تجسم کنید.