רישום

Fleet Engine מציע שירות פשוט לרישום ביומן המאפשר לשמור בקשות API ומטענים ייעודיים (payloads) של תגובות. עם היומנים האלה אפשר לנפות באגים שילוב, ליצור מדדי מעקב ולנתח דפוסי תנועה.

Fleet Engine שולח את היומנים כ-platform יומנים ל-Cloud רישום ביומן, כדי שתוכלו להשתמש בענן כלי רישום ביומן כדי לגשת אליהם.

אילו יומנים של Fleet Engine

Fleet Engine שולח מספר פריטי מידע אל Cloud רישום ביומן, למשל:

  • כל הבקשות והתגובות של REST ו-gRPC מאומתים
  • תגובות לשגיאות
  • בקשות, תשובות והודעות שגיאה משיחות שהנהג יזמה SDK ל-Fleet Engine.
  • פיצול יומנים לסוגי היומנים הנתמכים:

מסמכי התיעוד בנושא הודעות יומן וסכימה זמינים בקטע Logging הפניה.

שימוש בקטגוריות יומן מוגבלות ובקטגוריות יומן כברירת מחדל כדי לעמוד בדרישות מדיניות שמירת הנתונים

שימוש במילה 'מוגבל' ו'ברירת מחדל' כדי לקבל תמונה ברורה של שימוש מוגבל ולא מוגבל בנתונים. חלק מנתוני היומנים ש-Fleet Engine שולחים לפלטפורמה של מפות Google יכולים להישמר רק למשך פרק זמן מוגבל, בהתאם לספציפי לשירות ניידות תנאים כדי להבטיח שהנתונים המוגבלים יישמרו רק לפרק הזמן המותר, יש לתייג נתונים כאלו כ-TOS_LimitED (Fleet Engine כבר עושה זאת) והם נרשמו לקטגוריה ייעודית בשם 'מוגבל'.

משם אפשר לקבוע כמה זמן הוא יישמר ולמחוק אותו באופן אוטומטי באמצעות ההגדרות של Cloud Logging. לדוגמה, יומנים לשימוש מוגבל יישמרו למשך 30 ימים בלבד.

רישום כל הנתונים הלא מוגבלים שנותרו בתור "ברירת המחדל" בקטגוריה הזו, שבו הוא יכול להיות נשמרים לפרקי זמן ארוכים יותר, כפי שמוגדר בסעיף ספציפי לשירות ניידות" תנאים (בדרך כלל למשך שנה). שימוש במילה 'מוגבל' ו'ברירת מחדל' כדי שהקטגוריות יהיו ברורות תמונה של השימוש המוגבל והבלתי מוגבל בנתונים שלך.

אפשר לקבל תצוגה מלאה על ידי מיזוג בין יומנים מוגבלים לבין יומנים לא מוגבלים

יומנים לשימוש מוגבל מכילים את הנתונים לשימוש מוגבל והפניה את יומן ברירת המחדל, כדי שאפשר יהיה להתייחס אליהם יחד. היומן לשימוש מוגבל מכיל את ה-insertId של היומן שמוגדר כברירת מחדל כהפניה ב-parent_insert_id השדה הזה. אפשר להשתמש בשדה הזה כדי לאחד את הנתונים משני היומנים ולקבל את תמונה מלאה.

מסמכי התיעוד לכל הודעות היומן והסכימה הזמינות בקטע Logging הפניה.

הפעלת Cloud Logging

Fleet Engine מפעיל באופן אוטומטי יומני ברירת מחדל עבור לקוחות Mobility חדשים, החל בפרויקטים שנוצרו ב-10 בפברואר 2022. אפשר לאשר הרישום ביומן מופעל באמצעות השאילתה הבאה בקטע יומנים Explorer:

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

אם לא מופיעים יומנים עבור השאילתה הזו, יכול להיות ש-Cloud Logging לא בוצע מופעל בפרויקט שלכם. יצירת קשר תמיכה, אם רוצים כדי להפעיל את התכונה.

הפעלת יומנים לשימוש מוגבל

יומנים לשימוש מוגבל מופעלים לפי בקשה. כדי להפעיל את היומנים האלה בחשבון Google כך מבצעים את השלבים הבאים:

הכנת הפרויקט לקבלת יומנים לשימוש מוגבל

  1. במסוף Google Cloud, פותחים את הדף Log Router.
  2. מעדכנים את הקטגוריה _Default רישום ביומן כדי להחריג יומנים לשימוש מוגבל.
    1. בוחרים בקטגוריה _Default לרישום ביומן ואז בוחרים באפשרות Edit sink.
    2. בקטע 'בחירת יומנים לסינון מ-sink' לוחצים על החרגה" לחצן:
      1. שם מסנן ההחרגה: ExcludeRestrictedLogs
      2. מסנן החרגה: labels.restriction="TOS_restrictionED"
    3. לוחצים על 'עדכון sink'.
  3. מעדכנים את קטגוריית הרישום ביומן המוגבל כדי לאחסן את היומנים לשימוש מוגבל.
    1. בדף Log Router, בוחרים באפשרות Create sink.
    2. יוצרים sink עם ההגדרות הבאות:
      1. פרטי Sink:
        1. שם: RestrictedLogs
        2. תיאור: יומנים לשימוש מוגבל של Fleet Engine
      2. יעד ה-Sink:
        1. שירות Sink: קטגוריית רישום ביומן
        2. בחירת קטגוריית יומן: יצירת קטגוריית יומן חדשה
          1. שם: מוגבל
          2. תיאור: מכילה יומנים לשימוש מוגבל של Fleet Engine
        3. תקופת שמירה: 30 ימים
          1. הערה: תקופת השמירה לא יכולה לחרוג מ-30 ימים.
      3. יומנים להכללה ב-sink: משאירים ריק
      4. יומנים לסינון מה-sink: לוחצים על 'הוספת החרגה'
        1. שם מסנן ההחרגה: ExcludeNonRestrictedLogs
        2. מסנן החרגה: NOT (resource.type = "fleetengine.googleapis.com/Fleet" OR resource.type = 'fleetengine.googleapis.com/DeliveryFleet') NOT (labels.restriction = "TOS_restrictionED")
      5. לוחצים על 'יצירת sink'

כדי להפעיל יומנים לשימוש מוגבל צריך לפנות לתמיכה

לאחר מכן, צרו קשר עם תמיכה ולספק את הפרטים הבאים בבקשת התמיכה:

  1. מזהי פרויקטים להפעלה:
  2. כתובת האימייל של האדם שמבקש את השינוי:
    1. הערה: לאדם הזה צריכה להיות גישת עריכה לפרויקטים ב-Google Cloud רשום.
  3. הפעלת תוכן לשימוש מוגבל במפות Google ב-Cloud Logging מבטאת את הסכמתך לפעול בהתאם לפלטפורמה של מפות Google תנאים ושירות ניידות ספציפי תנאים, כולל דרישות לגבי שמירה במטמון ושימוש מותר בהקשר של Google תוכן במפות Google. כן / לא

לאחר שצוות התמיכה מקבל את הבקשה שלכם, הוא שולח אישור לכך שרישום ביומן הופעל עבור הפרויקט שלך

יומני Cloud מפוצלים

Cloud Logging מגביל את הגודל של יומנים נכנסים ל-256KB. השירות משחרר יומנים מעבר לסף הזה. כדי לוודא ש-Cloud Logging שומר יומנים גדולים, Fleet המנוע יכול לפצל אותם לסדרה של יומנים מתחת לסף של 256KB. יומנים כאלה יש insertId תחילית כדי לציין את הסדר שבו השירות מפצל את היומן הקטן יותר יומן גדול במיוחד. לאחר מכן אפשר להצטרף אליהם מחדש יחד בהתאם ל insertId.

כדי לגשת ליומן הלא מפוצל המקורי, ממזגים את היומנים המפוצלים לפי insertIds בסדר המקורי שבו הם פוצלו, כפי שניתן לראות באינדקס שלהם ביומן בענן.

המבנה של היומן המפוצל זהה למבנה שמצוין בביקורת המפוצלת מדריך לרשומות ביומן עבור יומני ביקורת של Cloud. ההבדל העיקרי בין יומנים מפוצלים ב-Fleet Logging הוא הפיצול מתבצע בשדה jsonPayload במקום ב-protoPayload השדה הזה. ניתן לעיין בפיצול לדוגמה שמוצג בקטע הבא.

סוגי היומנים הנתמכים

Fleet Engine תומך בפיצול יומנים רק לסוגי היומנים הבאים שגודל היומן שלו חורג מ-256KB:

דוגמה למבנה של יומן מפוצל

// 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
  }
}

גישה ליומנים

יומני Cloud בנויים סביב LogEntry הפורמט. Fleet Engine שולח יומנים ל-Cloud Logging באמצעות resource.type הוגדרה לערך fleetengine.googleapis.com. אפשר להשתמש ביומנים Explorer ל- לכתוב שאילתות לצפייה ביומנים שלכם.

לדוגמה, כדי להציג את כל ה-RPCs ל-Fleet Engine שהחזירו שגיאה, אפשר להשתמש ב- השאילתה הבאה ב-Logs Explorer:

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

כדי לצפות ביומנים של RPCs שבוצעו ל-method UpdateDeliveryVehicle עבור project 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 יומני המנוע.

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 החרגות והחרגה יומנים. Cloud Logging ייצוא וייצוא יומנים

שימוש ב-Logs Explorer

כדי להשתמש ב-Logs Explorer, פותחים את מסוף Cloud, בוחרים באפשרות Logging, ואז Logs Explorer. כדי לראות רשימה של כל יומני Fleet Engine זמינים, לוחצים על סוג המשאב Fleet Engine. חלק מהיומנים של Delivery 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, בוחרים באפשרות 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. בחלונית 'תוצאות של שאילתות', לוחצים על התפריט הנפתח פעולות ואז בוחרים יצירת מדד.

    יצירת מדד

  3. בתיבת הדו-שיח 'עורך המדדים':

    • מציינים את שם המדד (לדוגמה, billable_tasks).
    • מציינים את תיאור המדד (לדוגמה, מספר הנכסים לחיוב) Google Tasks).
    • ניתן להשאיר את האפשרות יחידות ריקה. _ משאירים את האפשרות סוג בתור מונה.

    לאחר מכן לוחצים על הלחצן יצירת מדד.

  4. בדף 'מדדים מבוססי-יומנים' אמורה להופיע הודעה שמאשרת המדד נוצר בהצלחה, והמדד החדש אמור להופיע קטע בנושא מדדים בהגדרת משתמש. המדד יאוכלס עכשיו כתואם נוצרים יומנים.

  5. לוחצים על התפריט הנפתח האנכי בצד שמאל של המדד החדש ואז בוחרים באפשרות הצגה ב-Metrics Explorer.

    הצגת המדד

  6. בחלונית השמאלית, בקטע Build Your Query, מגדירים את Resource Type כ-Fleet מנוע ומחפשים את המדד billing_tasks.

    מדד חיפוש

    בתרשים שמימין מוצג שיעור השיחות לחיוב_tasks.

שימוש ב-BigQuery

BigQuery הוא כלי אפקטיבי לביצוע ניתוח נתונים. אפשר להשתמש בו כדי לאחסן יומנים לטווח ארוך יותר ולבצע שאילתות אד-הוק דמויות SQL על הנתונים.

ניתוב יומנים ל-BigQuery

כדי לנצל את היתרונות של BigQuery, צריך לנתב את היומנים למאגר נתונים של BigQuery, כמו ככה:

  1. במסוף Cloud, בוחרים באפשרות Logging ואז באפשרות Logs Explorer.

  2. יצירת מסנן לבידוד יומנים של Fleet Engine. ב-Logs Field Explorer (סייר השדות של היומנים), בוחרים את סוג המשאב Fleetengine.googleapis.com/DeliveryFleet.

    הוספת פרטי חיוב
לסנן

  3. בחלונית 'תוצאות שאילתה', לוחצים על התפריט הנפתח 'פעולות' ובוחרים באפשרות יצירה כיור.

    הוספת פרטי חיוב
כיור

  4. בתיבת הדו-שיח Select sink Service, בוחרים את BigQuery dataset.

    יש לבחור באחת מהאפשרויות הבאות
כיור

  5. בתיבת הדו-שיח 'עריכת Sink', מציינים את האפשרויות הבאות:

    • מציינים שם sink (לדוגמה, FleetEngineLogsSink).
    • משאירים את שירות Sink בתור BigQuery.
    • בוחרים באפשרות שימוש בטבלאות מחולקות למחיצות. זה ישפר את השאילתה או של ביצועים.
    • בקטע Sink Destination (יעד Sink), בוחרים באפשרות Create New BigQuery Dataset (יצירת מערך נתונים חדש של BigQuery) ולאחר מכן. לציין שם של מערך נתונים ב-BigQuery (לדוגמה, FleetEngineLogs).
    • לוחצים על הלחצן Create Sink.

    ערוך
    כיור

עכשיו היומנים שלכם אמורים להתחיל לאכלס את מערך הנתונים ב-BigQuery. אפשר לראות בקטע BigQuery במסוף Cloud.

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.
  • רכב C הושלמו 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

מרכזי בקרה של Datastudio

אפשר לשלב את BigQuery עם כלים ולוחות בקרה של בינה עסקית (BI) שמיועד לניתוח נתונים עסקיים.

בדוגמה הבאה אפשר לראות איך ליצור מרכז בקרה שבו מפורטים המשימות והרכב כדי להציג את התנועות במפה.

  1. מפעילים מרכז בקרה חדש של Datastudio ובוחרים ב-BigQuery בתור הנתונים חיבור כזה.

    נתונים
חיבור

  2. בוחרים באפשרות Custom Query (שאילתה בהתאמה אישית) ובוחרים את הפרויקט ב-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. בוחרים באפשרות Create Field (יצירת שדה).

    הוספת פרטי חיוב
שדה

  3. נותנים שם לשדה ומוסיפים את הנוסחה הבאה: CONCAT(lat, ",", lng).

    לאחר מכן מגדירים את סוג הפורמט גיאו->קו רוחב, קו אורך.

    סיום
ההמרה

  4. אפשר להוסיף פקדים ללוח הבקרה כדי לסנן נתונים. לדוגמה, בחר את המסנן 'טווח תאריכים'.

    הוסף
אמצעי בקרה

  5. עורכים את תיבת טווח התאריכים ובוחרים טווח תאריכים שיוגדר כברירת מחדל.

    התאריך
טווח

  6. אפשר להוסיף פקדי רשימה נפתחת נוספים עבור delivery_vehicle_id.

    תפריט נפתח
רשימה

הפקדים האלה מאפשרים לראות באופן חזותי את תנועת הרכב תנועה בתוך הצגה.