লগিং

ফ্লিট ইঞ্জিন একটি সাধারণ লগিং পরিষেবা অফার করে যা আপনাকে এর API অনুরোধ এবং প্রতিক্রিয়া পেলোডগুলি সংরক্ষণ করতে দেয়৷ এই লগগুলির সাহায্যে, আপনি আপনার ইন্টিগ্রেশন ডিবাগ করতে পারেন, মনিটরিং মেট্রিক্স তৈরি করতে পারেন এবং ট্র্যাফিক প্যাটার্নগুলি বিশ্লেষণ করতে পারেন৷

ফ্লিট ইঞ্জিন লগগুলিকে প্লাটফর্ম লগ হিসাবে ক্লাউড লগিং- এ পাঠায়, যাতে আপনি সেগুলি অ্যাক্সেস করতে ক্লাউড লগিং সরঞ্জামগুলি ব্যবহার করতে পারেন।

কি ফ্লিট ইঞ্জিন লগ

ফ্লিট ইঞ্জিন ক্লাউড লগিং -এ একাধিক তথ্য পাঠায়, যেমন:

  • সমস্ত প্রমাণীকৃত REST এবং gRPC অনুরোধ এবং প্রতিক্রিয়া
  • ত্রুটি প্রতিক্রিয়া
  • ফ্লিট ইঞ্জিনে ড্রাইভার SDK দ্বারা শুরু করা কল থেকে অনুরোধ, প্রতিক্রিয়া এবং ত্রুটি বার্তা।
  • সমর্থিত লগ প্রকারের জন্য লগ স্প্লিট করুন:

লগিং রেফারেন্সে উপলব্ধ লগ বার্তা এবং স্কিমার জন্য ডকুমেন্টেশন দেখুন।

ডেটা ধারণ নীতি মেনে চলতে সীমাবদ্ধ এবং ডিফল্ট লগ বাকেট ব্যবহার করুন

"সীমাবদ্ধ" এবং "ডিফল্ট" বালতি ব্যবহার করা আপনার সীমাবদ্ধ এবং অনিয়ন্ত্রিত ডেটা ব্যবহারের একটি পরিষ্কার চিত্র নিশ্চিত করে। ফ্লিট ইঞ্জিন Google মানচিত্র প্ল্যাটফর্মে যে কিছু লগ ডেটা পাঠায় তা কেবলমাত্র সীমিত সময়ের জন্য রাখা যেতে পারে, গতিশীলতা পরিষেবার নির্দিষ্ট শর্তাবলী অনুসারে। আপনি শুধুমাত্র অনুমোদিত সময়ের জন্য সীমাবদ্ধ ডেটা বজায় রাখতে পারেন তা নিশ্চিত করতে, এই জাতীয় ডেটাকে TOS_RESTRICTED (ফ্লিট ইঞ্জিন ইতিমধ্যেই এটি করে) হিসাবে লেবেল করা উচিত এবং "সীমাবদ্ধ" নামক একটি উত্সর্গীকৃত বালতিতে লগ করা উচিত।

সেখান থেকে, আপনি ক্লাউড লগিং সেটিংস ব্যবহার করে এটি কতক্ষণ ধরে রাখা হবে তা নিয়ন্ত্রণ করতে পারেন এবং মেয়াদ শেষ হওয়ার পরে এটি স্বয়ংক্রিয়ভাবে পরিষ্কার করতে পারেন। উদাহরণস্বরূপ, সীমাবদ্ধ-ব্যবহারের লগগুলি শুধুমাত্র 30 দিনের জন্য রাখা উচিত।

"ডিফল্ট" বালতিতে অবশিষ্ট সমস্ত অনিয়ন্ত্রিত ডেটা লগ করুন, যেখানে এটি মোবিলিটি পরিষেবা নির্দিষ্ট শর্তাবলীতে (সাধারণত 1 বছরের জন্য) সংজ্ঞায়িত হিসাবে দীর্ঘ সময়ের জন্য ধরে রাখা যেতে পারে। "সীমাবদ্ধ" এবং "ডিফল্ট" বালতি ব্যবহার করা আপনার সীমাবদ্ধ এবং অনিয়ন্ত্রিত ডেটা ব্যবহারের স্পষ্ট চিত্র নিশ্চিত করে।

সীমাবদ্ধ এবং অনিয়ন্ত্রিত লগ মার্জ করে একটি সম্পূর্ণ ভিউ পান

সীমাবদ্ধ-ব্যবহারের লগগুলিতে সীমাবদ্ধ-ব্যবহারের ডেটা এবং ডিফল্ট লগের একটি রেফারেন্স থাকে যাতে সেগুলি একসাথে বিবেচনা করা যায়। সীমাবদ্ধ-ব্যবহারের লগে parent_insert_id ক্ষেত্রে রেফারেন্স হিসাবে ডিফল্ট লগের insertId থাকে। আপনি উভয় লগ থেকে ডেটা যোগ দিতে এবং সম্পূর্ণ ছবি পেতে এই ক্ষেত্রটি ব্যবহার করতে পারেন।

লগিং রেফারেন্সে সমস্ত উপলব্ধ লগ বার্তা এবং স্কিমার জন্য ডকুমেন্টেশন দেখুন।

ক্লাউড লগিং সক্ষম করা হচ্ছে

ফ্লিট ইঞ্জিন স্বয়ংক্রিয়ভাবে নতুন মোবিলিটি গ্রাহকদের জন্য ডিফল্ট লগ সক্ষম করে, ফেব্রুয়ারী 10, 2022-এ তৈরি করা প্রকল্পগুলির সাথে শুরু করে ৷ লগস এক্সপ্লোরারে নিম্নলিখিত ক্যোয়ারী ব্যবহার করে লগিং সক্ষম হয়েছে কিনা তা আপনি নিশ্চিত করতে পারেন:

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

আপনি যদি সেই প্রশ্নের জন্য কোনো লগ দেখতে না পান, তাহলে ক্লাউড লগিং আপনার প্রকল্পের জন্য সক্ষম নাও থাকতে পারে। আপনি যদি বৈশিষ্ট্যটি সক্ষম করতে চান তবে সহায়তার সাথে যোগাযোগ করুন

সীমাবদ্ধ-ব্যবহার লগ সক্রিয় করুন

অনুরোধে সীমাবদ্ধ-ব্যবহারের লগগুলি সক্ষম করা হয়েছে৷ আপনার Google ক্লাউড প্রকল্পের জন্য এই লগগুলি সক্ষম করতে, নিম্নলিখিত পদক্ষেপগুলি সম্পূর্ণ করুন:

সীমাবদ্ধ-ব্যবহারের লগগুলি পেতে আপনার প্রকল্প প্রস্তুত করুন

  1. Google ক্লাউড কনসোলে, লগ রাউটার পৃষ্ঠাটি খুলুন।
  2. সীমাবদ্ধ-ব্যবহারের লগগুলি বাদ দিতে _ডিফল্ট লগিং বাকেট আপডেট করুন।
    1. _ডিফল্ট লগিং বালতি নির্বাচন করুন এবং তারপরে সিঙ্ক সম্পাদনা করুন নির্বাচন করুন।
    2. "সিঙ্ক থেকে ফিল্টার করার জন্য লগগুলি চয়ন করুন" বিভাগে, "বাদ যোগ করুন" বোতামে ক্লিক করুন:
      1. বর্জন ফিল্টারের নাম: ExcludeRestrictedLogs
      2. বর্জন ফিল্টার: labels.restriction="TOS_RESTRICTED"
    3. "আপডেট সিঙ্ক" এ ক্লিক করুন।
  3. সীমাবদ্ধ-ব্যবহারের লগগুলি সংরক্ষণ করতে সীমাবদ্ধ লগিং বালতি আপডেট করুন।
    1. লগ রাউটার পৃষ্ঠা থেকে, "সিঙ্ক তৈরি করুন" নির্বাচন করুন।
    2. নিম্নলিখিত সেটিংস সহ একটি সিঙ্ক তৈরি করুন:
      1. সিঙ্ক বিবরণ:
        1. নাম: RestrictedLogs
        2. বর্ণনা: রুট ফ্লিট ইঞ্জিন সীমাবদ্ধ-ব্যবহারের লগ
      2. সিঙ্ক গন্তব্য:
        1. সিঙ্ক পরিষেবা: লগিং বালতি
        2. লগ বালতি নির্বাচন করুন: নতুন লগ বালতি তৈরি করুন
          1. নাম: সীমাবদ্ধ
          2. বর্ণনা: ফ্লিট ইঞ্জিন সীমাবদ্ধ-ব্যবহারের লগ রয়েছে
        3. ধরে রাখার সময়কাল: 30 দিন
          1. দ্রষ্টব্য: ধরে রাখার সময়কাল 30 দিনের বেশি হওয়া উচিত নয়।
      3. সিঙ্কে অন্তর্ভুক্ত করার জন্য লগগুলি: খালি ছেড়ে দিন
      4. সিঙ্ক থেকে ফিল্টার করার জন্য লগগুলি: "এড এক্সক্লুশন" এ ক্লিক করুন
        1. বর্জন ফিল্টারের নাম: ExcludeNonRestrictedLogs
        2. এক্সক্লুশন ফিল্টার: NOT (resource.type = "fleetengine.googleapis.com/Fleet" OR resource.type = "fleetengine.googleapis.com/DeliveryFleet") না (labels.restriction = "TOS_RESTRICTED")
      5. "সিঙ্ক তৈরি করুন" ক্লিক করুন

সীমাবদ্ধ-ব্যবহার লগ সক্রিয় করতে সহায়তার সাথে যোগাযোগ করুন

তারপর, সমর্থনের সাথে যোগাযোগ করুন এবং আপনার সমর্থন অনুরোধে নিম্নলিখিত তথ্য প্রদান করুন:

  1. সক্ষম করতে প্রকল্প আইডি(গুলি):
  2. পরিবর্তনের অনুরোধকারী ব্যক্তির ইমেল ঠিকানা:
    1. দ্রষ্টব্য: এই ব্যক্তির তালিকাভুক্ত Google ক্লাউড প্রকল্পগুলিতে সম্পাদনা অ্যাক্সেস থাকা উচিত৷
  3. ক্লাউড লগিং-এ সীমাবদ্ধ-ব্যবহারের Google মানচিত্র সামগ্রী সক্ষম করে, আপনি Google মানচিত্র প্ল্যাটফর্মের শর্তাবলী এবং গতিশীলতা পরিষেবার নির্দিষ্ট শর্তাবলী মেনে চলতে সম্মত হন, ক্যাশিং এবং অনুমোদিত ব্যবহারের প্রয়োজনীয়তাগুলি সহ, কারণ সেগুলি Google মানচিত্র সামগ্রীর সাথে সম্পর্কিত৷ হ্যাঁ না

একবার সমর্থন দল আপনার অনুরোধ গ্রহণ করলে, এটি নিশ্চিতকরণ পাঠায় যে আপনার প্রকল্পের জন্য লগিং সক্ষম করা হয়েছে

বিভক্ত মেঘ লগ

ক্লাউড লগিং ইনকামিং লগের আকার 256KB এ সীমাবদ্ধ করে। পরিষেবা সেই থ্রেশহোল্ড অতিক্রম লগ ড্রপ. ক্লাউড লগিং বড় লগ ধরে রাখে তা নিশ্চিত করার জন্য, ফ্লিট ইঞ্জিন সেগুলিকে 256KB থ্রেশহোল্ডের অধীনে লগের একটি সিরিজে বিভক্ত করতে পারে। এই ধরনের লগগুলিতে একটি সাধারণ insertId উপসর্গ থাকে যা নির্দেশ করে যে পরিষেবাটি মূল বড় আকারের লগ থেকে ছোট লগকে বিভক্ত করে। তারপর আপনি তাদের insertId এর উপর ভিত্তি করে তাদের একসাথে পুনরায় যোগ দিতে পারেন।

মূল আনস্প্লিট লগ অ্যাক্সেস করতে, ক্লাউড লগ এন্ট্রিতে তাদের সূচী দ্বারা নির্দেশিত হিসাবে বিভক্ত লগগুলিকে তাদের insertId দ্বারা মূল ক্রমে মার্জ করুন।

স্প্লিট লগ স্ট্রাকচার ক্লাউড অডিট লগের জন্য স্প্লিট অডিট লগ এন্ট্রি গাইডে উল্লিখিত কাঠামোর মতোই। ফ্লিট লগিং-এ বিভক্ত লগগুলির প্রধান পার্থক্য হল যে বিভাজনটি protoPayload ক্ষেত্রের পরিবর্তে jsonPayload ক্ষেত্রে ঘটে। পরবর্তী বিভাগে দেখানো উদাহরণ বিভক্ত দেখুন.

সমর্থিত লগ প্রকার

ফ্লিট ইঞ্জিন শুধুমাত্র নিম্নলিখিত লগ ধরনের জন্য লগ বিভাজন সমর্থন করে যার লগের আকার 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
  }
}

আপনার লগ অ্যাক্সেস

ক্লাউড লগগুলি LogEntry ফর্ম্যাটের চারপাশে গঠন করা হয়। fleetengine.googleapis.com এ LogEntry-এর resource.type সেট করে ফ্লিট ইঞ্জিন ক্লাউড লগিং-এ লগ পাঠায়। আপনি আপনার লগ দেখার জন্য প্রশ্ন লিখতে লগ এক্সপ্লোরার ব্যবহার করতে পারেন.

উদাহরণস্বরূপ, ফ্লিট ইঞ্জিনে সমস্ত RPC দেখতে যা একটি ত্রুটি ফিরিয়ে দিয়েছে, নিম্নলিখিত লগ এক্সপ্লোরার ক্যোয়ারীটি ব্যবহার করুন:

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

প্রকল্পের উদাহরণ-প্রকল্প-আইডি-র জন্য UpdateDeliveryVehicle পদ্ধতিতে তৈরি RPC-এর লগগুলি দেখতে, নিম্নলিখিত লগ এক্সপ্লোরার ক্যোয়ারী ব্যবহার করুন:

logName="projects/project-id/logs/fleetengine.googleapis.com%2Fupdate_delivery_vehicle"

নিম্নলিখিত উদাহরণটি UpdateDeliveryVehicle লগের জন্য একটি LogEntry দেখায়। 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 ক্লাউড চার্জ দিতে পারেন যদি আপনি কোনো চার্জ ছাড়াই ব্যবহার এবং ধরে রাখার সীমা অতিক্রম করেন। যাইহোক, আপনি নিম্নলিখিতগুলির মধ্যে একটি করে লগিং খরচ নিয়ন্ত্রণ করতে পারেন:

লগিং ব্যবহার কমান

আপনি নির্দিষ্ট লগ এন্ট্রি বাদ দিয়ে লগ ডেটা ইনজেশনের পরিমাণ সীমিত করতে পারেন।

রপ্তানি বা রুট লগ

ডিফল্ট ইনজেশন এবং স্টোরেজ খরচ এড়াতে আপনি লগগুলিকে অন্য Google ক্লাউড বা বাহ্যিক গন্তব্যে রুট করতে পারেন। নিশ্চিত করুন যে আপনি লগ ইনজেশন বন্ধ করেছেন, যেমনটি পরবর্তী বিভাগে বর্ণিত হয়েছে, ইনজেশন খরচ এড়াতে।

চার্জ এড়াতে লগ ইনজেশন বন্ধ করুন

লগ ইনজেশন বন্ধ করার চেয়ে লগিং ব্যবহার কমানো, বা রপ্তানি বা রাউটিং লগগুলিকে অগ্রাধিকার দেওয়া হয়৷ যাইহোক, আপনি যদি ফ্লিট ইঞ্জিন লগ ব্যবহার করতে না চান, তাহলে ইনজেশন বন্ধ করে আপনি সম্ভাব্য ক্লাউড লগিং চার্জ এড়াতে পারেন। ডিফল্টরূপে, ফ্লিট ইঞ্জিন লগগুলিকে _ডিফল্ট লগ বাকেটে রাউট করা হয়।

নিম্নোক্ত কমান্ডটি _ডিফল্ট লগিং বাকেট আপডেট করে যাতে ফ্লিট ইঞ্জিন লগ ইনজেস্ট না হয়।

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"''

আরও তথ্যের জন্য, দেখুন: ক্লাউড লগিং এক্সক্লুশন এবং এক্সক্লুডিং লগক্লাউড লগিং এক্সপোর্ট এবং এক্সপোর্টিং লগ

লগ এক্সপ্লোরার ব্যবহার করুন

লগ এক্সপ্লোরার ব্যবহার করতে, ক্লাউড কনসোল খুলুন, লগিং নির্বাচন করুন এবং তারপরে লগ এক্সপ্লোরার নির্বাচন করুন । উপলব্ধ সমস্ত ফ্লিট ইঞ্জিন লগগুলির একটি তালিকা দেখতে, ফ্লিট ইঞ্জিন রিসোর্স টাইপ ক্লিক করুন৷ কিছু ডেলিভারি 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"

লগ-ভিত্তিক মেট্রিক্স উদাহরণ

নিম্নলিখিত উদাহরণ দেখায় কিভাবে লগ-ভিত্তিক মেট্রিক্স ব্যবহার করে সময়ের সাথে তৈরি করা কাজের সংখ্যা ট্র্যাক করতে হয়।

  1. ক্লাউড কনসোলে, লগ এক্সপ্লোরার খুলতে লগিং এবং তারপর লগ এক্সপ্লোরার নির্বাচন করুন। তারপর নিম্নলিখিত ফিল্টার প্রয়োগ করুন:

    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 )।
    • একটি মেট্রিক বিবরণ নির্দিষ্ট করুন (উদাহরণস্বরূপ, বিলযোগ্য কাজের সংখ্যা )।
    • ইউনিট বিকল্পটি ফাঁকা রাখুন। _ কাউন্টার হিসাবে টাইপ বিকল্পটি ছেড়ে দিন।

    তারপর Create Metric বাটন সিলেক্ট করুন।

  4. লগ-ভিত্তিক মেট্রিক্স পৃষ্ঠায়, আপনি একটি বার্তা দেখতে পাবেন যা নিশ্চিত করে যে মেট্রিকটি সফলভাবে তৈরি করা হয়েছে, এবং নতুন মেট্রিকটি ব্যবহারকারী-সংজ্ঞায়িত মেট্রিক্স বিভাগে উপস্থিত হওয়া উচিত। মেট্রিক এখন পপুলেট করা হবে কারণ মিলে যাওয়া লগগুলি তৈরি করা হয়েছে৷

  5. নতুন মেট্রিকের ডানদিকে উল্লম্ব ড্রপ ডাউন নির্বাচন করুন এবং তারপরে মেট্রিক্স এক্সপ্লোরারে দেখুন নির্বাচন করুন।

    মেট্রিক দেখুন

  6. আপনার ক্যোয়ারী তৈরি করুন এর অধীনে বাম ফলকে, ফ্লিট ইঞ্জিনে রিসোর্স টাইপ সেট করুন এবং বিলযোগ্য_টাস্ক মেট্রিক অনুসন্ধান করুন।

    সার্চ মেট্রিক

    ডানদিকের গ্রাফটি বিলযোগ্য_টাস্ক কলের হার দেখায়।

BigQuery ব্যবহার করা হচ্ছে

BigQuery হল অ্যানালিটিক্স করার জন্য একটি শক্তিশালী টুল। এটি দীর্ঘমেয়াদী লগ সংরক্ষণ করতে এবং ডেটার বিরুদ্ধে অ্যাডহক এসকিউএল-এর মতো প্রশ্নগুলি সম্পাদন করতে ব্যবহার করা যেতে পারে।

BigQuery-এ লগ রাউটিং করা হচ্ছে

BigQuery-এর সুবিধা নিতে, লগগুলিকে একটি BigQuery ডেটাস্টোরে রাউট করতে হবে, নিম্নরূপ:

  1. ক্লাউড কনসোলে, লগিং এবং তারপরে লগ এক্সপ্লোরার নির্বাচন করুন।

  2. একটি ফিল্টার তৈরি করুন যা ফ্লিট ইঞ্জিন লগগুলিকে বিচ্ছিন্ন করে। লগ ফিল্ড এক্সপ্লোরারে, Fleetengine.googleapis.com/DeliveryFleet রিসোর্স টাইপ নির্বাচন করুন।

    ফিল্টার তৈরি করুন

  3. কোয়েরি ফলাফল ফলকে, অ্যাকশন ড্রপ-ডাউনে ক্লিক করুন এবং সিঙ্ক তৈরি করুন নির্বাচন করুন।

    সিঙ্ক তৈরি করুন

  4. সিঙ্ক পরিষেবা নির্বাচন করুন ডায়ালগে, BigQuery ডেটাসেট নির্বাচন করুন।

    সিঙ্ক নির্বাচন করুন

  5. সিঙ্ক সম্পাদনা ডায়ালগে, নিম্নলিখিত বিকল্পগুলি নির্দিষ্ট করুন:

    • একটি সিঙ্কের নাম উল্লেখ করুন (উদাহরণস্বরূপ, FleetEngineLogsSink )।
    • BigQuery হিসাবে সিঙ্ক পরিষেবা ছেড়ে দিন।
    • পার্টিশন করা টেবিল ব্যবহার করুন বিকল্পটি নির্বাচন করুন। এটি ক্যোয়ারী কর্মক্ষমতা বৃদ্ধি করবে।
    • সিঙ্ক গন্তব্যের অধীনে, নতুন BigQuery ডেটাসেট তৈরি করুন নির্বাচন করুন এবং তারপরে একটি BigQuery ডেটাসেটের নাম নির্দিষ্ট করুন (উদাহরণস্বরূপ, FleetEngineLogs )।
    • সিঙ্ক তৈরি করুন বোতামে ক্লিক করুন।

    সিঙ্ক সম্পাদনা করুন

আপনার লগগুলি এখন BigQuery ডেটাসেট পূরণ করতে শুরু করবে। আপনি ক্লাউড কনসোলের BigQuery বিভাগে ডেটা দেখতে পাবেন।

BigQuery বিভাগ

FleetEngineLogs ডেটাসেটের অধীনে বেশ কয়েকটি টেবিল স্বয়ংক্রিয়ভাবে পপুলেট হবে, প্রতিটি লগ টাইপের জন্য একটি:

  • ডেলিভারি যান তৈরি করুন
  • ডেলিভারি যানবাহন পান
  • ডেলিভারি যানবাহনের তালিকা
  • ডেলিভারি যানবাহন আপডেট করুন
  • টাস্ক তৈরি করুন
  • GetTask
  • আপডেট টাস্ক
  • তালিকা টাস্ক
  • সার্চ টাস্ক

টেবিলের নাম নিম্নলিখিত প্যাটার্ন ব্যবহার করে:

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 12 ঘন্টায় 10টি স্টপ এবং 13 ঘন্টায় 8টি স্টপ সম্পন্ন করেছে।
  • যানবাহন B 11 ঘন্টায় 5টি স্টপ এবং 12 ঘন্টায় 7টি স্টপ সম্পন্ন করেছে৷
  • যানবাহন সি 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

ডেটাস্টুডিও ড্যাশবোর্ড

BigQuery-কে বিজনেস ইন্টেলিজেন্স টুলের সাথে একীভূত করা যেতে পারে এবং ব্যবসা বিশ্লেষণের জন্য ড্যাশবোর্ড তৈরি করা যেতে পারে।

নিম্নলিখিত উদাহরণটি দেখায় কিভাবে একটি ড্যাশবোর্ড তৈরি করতে হয় যার উপর কাজ এবং যানবাহন চলাচল একটি মানচিত্রে কল্পনা করা যেতে পারে।

  1. একটি নতুন Datastudio ড্যাশবোর্ড চালু করুন এবং ডেটা সংযোগ হিসাবে 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)।

    তারপর জিও->অক্ষাংশ, দ্রাঘিমাংশে টাইপ সেট করুন।

    সেট টাইপ

  4. ডেটা ফিল্টার করতে আপনি ড্যাশবোর্ডে নিয়ন্ত্রণ যোগ করতে পারেন। উদাহরণস্বরূপ, তারিখ-পরিসীমা ফিল্টার নির্বাচন করুন।

    নিয়ন্ত্রণ যোগ করুন

  5. একটি ডিফল্ট তারিখ ব্যাপ্তি নির্বাচন করতে তারিখ পরিসর বক্স সম্পাদনা করুন.

    তারিখের পরিসীমা

  6. আপনি Delivery_vehicle_id এর জন্য অতিরিক্ত ড্রপ-ডাউন তালিকা নিয়ন্ত্রণ যোগ করতে পারেন।

    ড্রপ-ডাউন তালিকা

এই নিয়ন্ত্রণগুলির সাহায্যে, আপনি গাড়ির গতিবিধি বা ডেলিভারির মধ্যে গতিবিধি কল্পনা করতে পারেন।