अपने एपीआई अनुरोधों और जवाबों को लॉग करें

Fleet Engine एक आसान लॉगिंग सेवा है. इसकी मदद से, अपने एपीआई अनुरोधों और रिस्पॉन्स पेलोड को सेव किया जा सकता है. इन लॉग की मदद से, इंटिग्रेशन को डीबग किया जा सकता है, मॉनिटर करने वाली मेट्रिक बनाई जा सकती हैं, और ट्रैफ़िक के पैटर्न का विश्लेषण किया जा सकता है.

Fleet Engine, Cloud Logging को प्लैटफ़ॉर्म लॉग के रूप में लॉग भेजता है, ताकि आप उन्हें ऐक्सेस करने के लिए Cloud Logging टूल का इस्तेमाल कर सकें.

फ़्लीट इंजन कौनसा लॉग करता है

फ़्लीट इंजन, Cloud Logging को कई तरह की जानकारी भेजता है, जैसे:

  • पुष्टि किए गए सभी REST और gRPC अनुरोध और उनके जवाब
  • गड़बड़ी के जवाब
  • ड्राइवर SDK टूल से फ़्लीट इंजन को भेजे गए कॉल के अनुरोध, उनके जवाब, और गड़बड़ी के मैसेज.
  • इस्तेमाल किए जा सकने वाले लॉग टाइप के लिए लॉग को बांटें:

लॉगिंग रेफ़रंस में, उपलब्ध लॉग मैसेज और स्कीमा के लिए दस्तावेज़ देखें.

डेटा के रखरखाव की नीतियों का पालन करने के लिए, प्रतिबंधित और डिफ़ॉल्ट लॉग बकेट का इस्तेमाल करें

"पाबंदी" और "डिफ़ॉल्ट" बकेट का इस्तेमाल करने से, यह पक्का होता है कि आपके डेटा के सीमित और बिना पाबंदी के इस्तेमाल की जा रही है. फ़्लीट इंजन जो Google Maps Platform को फ़्लीट इंजन भेजता है उसमें से कुछ लॉग डेटा को मोबिलिटी सेवा की खास शर्तों के मुताबिक सिर्फ़ सीमित समय के लिए सेव रखा जा सकता है. यह पक्का करने के लिए कि आप सीमित समय के लिए प्रतिबंधित डेटा को बनाए रखें, आपको इस तरह के डेटा को TOS_RESTRICTED (Fleet Engine पहले से ही ऐसा करता है) के तौर पर लेबल करना चाहिए और "पाबंदी" नाम वाली एक खास बकेट में लॉग करना चाहिए.

यहां से, यह मैनेज किया जा सकता है कि यह कब तक सेव रहे. साथ ही, क्लाउड लॉगिंग सेटिंग का इस्तेमाल करके, समय खत्म होने के बाद इसे अपने-आप पूरी तरह मिटा दिया जा सकता है. उदाहरण के लिए, पाबंदी वाले लॉग को सिर्फ़ 30 दिनों के लिए सेव रखा जाना चाहिए.

बाकी बचे सभी बिना पाबंदी वाले डेटा को "डिफ़ॉल्ट" बकेट में लॉग करें, जहां इसे ज़्यादा अवधि के लिए रखा जा सकता है. इस बारे में मोबिलिटी सेवा की खास शर्तों (आम तौर पर एक साल के लिए) में बताया गया है. "पाबंदी" और "डिफ़ॉल्ट" बकेट का इस्तेमाल करने से, यह पक्का किया जाता है कि आपके ऐप्लिकेशन के सीमित और बिना पाबंदी वाले डेटा खर्च की जानकारी साफ़ तौर पर दी गई हो.

बाकी बचे सभी बिना पाबंदी वाले लॉग डेटा को "डिफ़ॉल्ट" बकेट में भेजें, जहां वह हमेशा के लिए रह सके.

प्रतिबंधित और बिना पाबंदी वाले लॉग को मर्ज करके, पूरी जानकारी पाएं

पाबंदी वाले इस्तेमाल के लॉग में, इस्तेमाल पर पाबंदी वाला डेटा और डिफ़ॉल्ट लॉग का रेफ़रंस होता है, ताकि सभी लॉग को एक साथ इस्तेमाल किया जा सके. प्रतिबंधित इस्तेमाल के लॉग में, parent_insert_id फ़ील्ड में रेफ़रंस के तौर पर डिफ़ॉल्ट लॉग का InsertId शामिल होता है. इस फ़ील्ड का इस्तेमाल, दोनों लॉग का डेटा जोड़ने और पूरी जानकारी पाने के लिए किया जा सकता है.

लॉगिंग रेफ़रंस में, सभी उपलब्ध लॉग मैसेज और स्कीमा के दस्तावेज़ देखें.

क्लाउड लॉगिंग सक्षम करें

Fleet Engine ने नए मोबिलिटी ग्राहकों के लिए डिफ़ॉल्ट लॉग को अपने-आप चालू कर दिया है. इसकी शुरुआत 10 फ़रवरी, 2022 को बनाए गए प्रोजेक्ट से हुई है. लॉग एक्सप्लोरर में इस क्वेरी का इस्तेमाल करके, पुष्टि की जा सकती है कि लॉगिंग चालू है या नहीं :

resource.type:"fleetengine.googleapis.com"

अगर आपको उस क्वेरी के लिए कोई लॉग नहीं दिखता है, तो हो सकता है कि आपके प्रोजेक्ट के लिए क्लाउड लॉगिंग चालू न हो. इस सुविधा को चालू करने के लिए, सहायता टीम से संपर्क करें.

पाबंदी वाले इस्तेमाल के लॉग चालू करें

अनुरोध करने पर, पाबंदी वाले इस्तेमाल के लॉग चालू किए जाते हैं. अपने Google Cloud प्रोजेक्ट के लिए इन लॉग को चालू करने के लिए, यह तरीका अपनाएं:

सीमित इस्तेमाल के लिए लॉग पाने के लिए अपना प्रोजेक्ट तैयार करें

  1. Google Cloud Console में, 'लॉग राऊटर' पेज खोलें.
  2. प्रतिबंधित इस्तेमाल वाले लॉग शामिल न करने के लिए, _Default लॉगिंग बकेट को अपडेट करें.
    1. _Default लॉगिंग बकेट चुनें और फिर सिंक में बदलाव करें चुनें.
    2. "सिंक को फ़िल्टर करने के लिए लॉग चुनें" सेक्शन में, "बाहर रखने की सुविधा जोड़ें" बटन पर क्लिक करें:
      1. बाहर रखे गए कॉन्टेंट वाले फ़िल्टर का नाम: Include RestrictedLogs
      2. एक्सक्लूज़न फ़िल्टर: labels.restriction="TOS_RESTRICTED"
    3. "सिंक अपडेट करें" पर क्लिक करें.
  3. सीमित इस्तेमाल के लिए लॉग को सेव करने के लिए, प्रतिबंधित लॉगिंग बकेट को अपडेट करें.
    1. लॉग राऊटर पेज पर जाकर, "सिंक बनाएं" को चुनें.
    2. इन सेटिंग की मदद से सिंक बनाएं:
      1. सिंक की जानकारी:
        1. नाम: प्रतिबंधित लॉग
        2. ब्यौरा: रूट फ़्लीट इंजन के प्रतिबंधित-इस्तेमाल के लॉग
      2. सिंक डेस्टिनेशन:
        1. सिंक सेवा: लॉगिंग बकेट
        2. लॉग बकेट चुनें: नया लॉग बकेट बनाएं
          1. नाम: प्रतिबंधित
          2. ब्यौरा: इसमें फ़्लीट इंजन के प्रतिबंधित इस्तेमाल के लॉग शामिल हैं
        3. निजी डेटा के रखरखाव की अवधि: 30 दिन
          1. ध्यान दें: डेटा के रखरखाव की अवधि 30 दिनों से ज़्यादा नहीं होनी चाहिए.
      3. सिंक में शामिल करने के लिए लॉग: खाली छोड़ें
      4. सिंक को फ़िल्टर करने के लिए लॉग: "शामिल न करने की सूची जोड़ें" पर क्लिक करें
        1. बाहर रखने के लिए बनाए गए फ़िल्टर का नाम: ExitNon RestrictedLogs
        2. एक्सक्लूज़न फ़िल्टर: NOT (resource.type = "fleetengine.googleapis.com/Fleet" OR source.type = "fleetengine.googleapis.com/DeliveryFleet") NOT (labels.restriction = "TOS_RESTRICTED")
      5. "सिंक बनाएं" पर क्लिक करें

सीमित इस्तेमाल के लिए लॉग की सुविधा चालू करने के लिए, सहायता टीम से संपर्क करें

इसके बाद, सहायता टीम से संपर्क करें और अपने सहायता अनुरोध में यह जानकारी दें:

  1. जिन प्रोजेक्ट आईडी को चालू करना है:
  2. बदलाव का अनुरोध करने वाले व्यक्ति का ईमेल पता:
    1. ध्यान दें: इस व्यक्ति के पास, सूची में शामिल Google Cloud प्रोजेक्ट में बदलाव करने का ऐक्सेस होना चाहिए.
  3. 'क्लाउड लॉगिंग' में इस्तेमाल के लिए प्रतिबंधित Google Maps सामग्री को चालू करके, आप Google Maps Platform की शर्तों और मोबिलिटी सेवा की खास शर्तों का पालन करने के लिए सहमत होते हैं. इनमें कैश मेमोरी और इस्तेमाल की अनुमति दी गई शर्तें शामिल हैं, क्योंकि ये 'Google मैप' सामग्री से संबंधित हैं. हां / नहीं

सहायता टीम को आपका अनुरोध मिलने के बाद, यह पुष्टि की जाती है कि आपके प्रोजेक्ट के लिए, लॉग इन करने की सुविधा चालू कर दी गई है

क्लाउड लॉग को बांटें

क्लाउड में लॉग करने की सुविधा का इस्तेमाल करने पर, आने वाले लॉग का साइज़ 256 केबी तक सीमित होता है. सेवा उस सीमा से आगे के लॉग को छोड़ देती है. यह पक्का करने के लिए कि क्लाउड लॉगिंग बड़े लॉग में रहे, फ़्लीट इंजन उन्हें 256 केबी थ्रेशोल्ड के तहत लॉग की सीरीज़ में बांट सकता है. ऐसे लॉग में एक insertId प्रीफ़िक्स होता है. इससे पता चलता है कि सेवा, छोटे लॉग को ओरिजनल बड़े साइज़ के लॉग से अलग किस क्रम में लगाती है. इसके बाद, उनके insertId के हिसाब से, उन ग्रुप में फिर से शामिल हुआ जा सकता है.

ओरिजनल लॉग को ऐक्सेस करने के लिए, स्प्लिट लॉग को insertId के हिसाब से उसी क्रम में मर्ज करें जिस क्रम में वे बंटे हुए थे. ऐसा क्लाउड लॉग एंट्री में उनके इंडेक्स से पता चलता है.

स्प्लिट लॉग का स्ट्रक्चर, क्लाउड ऑडिट लॉग के लिए स्प्लिट ऑडिट लॉग एंट्री गाइड में बताए गए स्ट्रक्चर जैसा ही है. फ़्लीट लॉगिंग में स्प्लिट लॉग के लिए सबसे बड़ा अंतर यह है कि स्प्लिट protoPayload फ़ील्ड के बजाय, jsonPayload फ़ील्ड में होता है. अगले सेक्शन में, बांटी गई जानकारी देखें.

इस्तेमाल किए जा सकने वाले लॉग टाइप

फ़्लीट इंजन, सिर्फ़ इन लॉग टाइप के लिए लॉग को बांटने की सुविधा देता है जिनका लॉग साइज़ 256 केबी से ज़्यादा है:

स्प्लिट लॉग स्ट्रक्चर का उदाहरण

// First Split Log
{
  // insertId appended with an increasing number
  "insertId": "ABCDE-1",
  "jsonPayload": {
    "response": {
      "matches": [
        {
          // ...
          "vehicle": {
            "name": "providers/test-123/vehicles/test-vehicle-0",
            // ...
          }
        },
        {
          // ...
          "vehicle": {
            "name": "providers/test-123/vehicles/test-vehicle-1",
            // ...
            }
        }
      ]
    },
    "@type": "type.googleapis.com/maps.fleetengine.v1.SearchVehiclesLog",
    "request": {
      "searchTripTypes": [
        "EXCLUSIVE_TRIP"
      ],
      "pickupPoint": {},
      "count": 50,
      "pickupRadiusMeters": 400,
      "minimumCapacity": 1,
      "matchOrderBy": "PICKUP_POINT_ETA",
      "vehicleTypes": [
        {
          "vehicleCategory": "TAXI"
        }
      ]
    }
  },
  "resource": {
    "type": "fleetengine.googleapis.com/Fleet",
    "labels": {
      "resource_container": "projects/test-123",
      "location": "global"
    }
  },
  // Same timestamp
  "timestamp": "2024-02-06T22:48:50.620713Z",
  "logName": "projects/test-123/logs/fleetengine.googleapis.com%2Fsearch_vehicles",
  "receiveTimestamp": "2024-02-06T22:48:52.006308491Z",
  "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": {
    "response": {
      "matches": [
        {},{} // Previous matches appear as empty objects
        {
          // ...
          "vehicle": {
            "name": "providers/test-123/vehicles/test-vehicle-2",
            // ...
          },
        }
      ]
    },
    "@type": "type.googleapis.com/maps.fleetengine.v1.SearchVehiclesLog",
    "request": {
      "searchTripTypes": [
        "EXCLUSIVE_TRIP"
      ],
      "pickupPoint": {},
      "count": 50,
      "pickupRadiusMeters": 400,
      "minimumCapacity": 1,
      "matchOrderBy": "PICKUP_POINT_ETA",
      "vehicleTypes": [
        {
          "vehicleCategory": "TAXI"
        }
      ]
    }
  },
  "resource": {
    "type": "fleetengine.googleapis.com/Fleet",
    "labels": {
      "resource_container": "projects/test-123",
      "location": "global"
    }
  },
  // Same timestamp
  "timestamp": "2024-02-06T22:48:50.620713Z",
  "logName": "projects/test-123/logs/fleetengine.googleapis.com%2Fsearch_vehicles",
  "receiveTimestamp": "2024-02-06T22:48:52.006308491Z",
  "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 फ़ॉर्मैट के हिसाब से बनाया जाता है. फ़्लीट इंजन, LogEntry के resource.type को fleetengine.googleapis.com पर सेट करके Cloud Logging को लॉग भेजता है. अपने लॉग देखने के लिए क्वेरी लिखने के लिए, लॉग एक्सप्लोरर का इस्तेमाल किया जा सकता है.

उदाहरण के लिए, गड़बड़ी दिखाने वाले फ़्लीट इंजन के सभी RPC देखने के लिए, यहां दी गई लॉग एक्सप्लोरर क्वेरी का इस्तेमाल करें:

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

प्रोजेक्ट के उदाहरण-प्रोजेक्ट आईडी के लिए, UpdateVehicle तरीके से बनाए गए RPC के लॉग देखने के लिए, इस लॉग एक्सप्लोरर क्वेरी का इस्तेमाल करें:

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

इस उदाहरण में, UpdateVehicle लॉग के लिए LogEntry दिखाया गया है. आरपीसी अनुरोध और उसके जवाब, 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.UpdateVehicleLog"
      },
      "resource": {
        "type": "fleetengine.googleapis.com/Fleet",
        "labels": {2}
      },
      "timestamp": "2021-01-01T00:00:00.000000000Z",
      "labels": {2},
      "logName": "projects/example-project-id/logs/fleetengine.googleapis.com%2Fupdate_vehicle",
      "receiveTimestamp": "2021-01-01T00:00:00.000000000Z"
    }

अगर कोई RPC गड़बड़ी मिलती है, तो responseVehicle फ़ील्ड को हटा दिया जाता है और errorResponse फ़ील्ड को सेट कर दिया जाता है. साथ ही, इसे jsonPayload में अपने-आप भर दिया जाता है:

    {
      "insertId": "c6b85fbc927343fc8a85338c57a65733",
      "jsonPayload": {
        "errorResponse": {
          "httpStatusCode": 404,
          "code": "NOT_FOUND",
          "message": "No entity with id invalidVehicleId exists"
        },
        "@type": "type.googleapis.com/maps.fleetengine.v1.UpdateVehicleLog",
        "request": {
          "vehicle": {3},
          "updateMask": "deviceSettings",
          "vehicleId": "fakeVehicleId",
          "header": {4}
        }
      },
      "resource": {
        "type": "fleetengine.googleapis.com/Fleet",
        "labels": {2}
      },
      "timestamp": "2021-01-01T00:00:00.000000000Z",
      "severity": "ERROR",
      "labels": {2}
      "logName": "projects/example-project-id/logs/fleetengine.googleapis.com%2Fupdate_vehicle",
      "receiveTimestamp": "2021-01-01T00:00:00.000000000Z"
    }

लॉगिंग क्वेरी भाषा के बारे में ज़्यादा जानकारी के लिए, लॉगिंग क्वेरी भाषा देखें . मेट्रिक बनाने के लिए, लॉग का इस्तेमाल कैसे किया जा सकता है, इस बारे में जानने के लिए लॉग पर आधारित मेट्रिक की खास जानकारी देखें.

लॉगिंग लागत प्रबंधित करें

लॉग इन करने की सुविधा चालू होने के बाद, यह सेट अप करने की ज़िम्मेदारी आपकी है कि लॉग को कैसे रूट किया जाए, सेव किया जाए, और उनका रखरखाव किया जाए. अगर बिना किसी शुल्क के, ऐप्लिकेशन का इस्तेमाल और रखरखाव की सीमाओं को पार कर लिया जाता है, तो लॉग डेटा डालने और उसका रखरखाव करने के लिए, Google Cloud पर आपसे अतिरिक्त शुल्क लिए जा सकते हैं. हालांकि, इनमें से कोई एक तरीका अपनाकर, डेटा इकट्ठा करने की लागत को कंट्रोल किया जा सकता है:

डेटा लॉग का इस्तेमाल कम करें

कुछ लॉग एंट्री को हटाकर, लॉग डेटा के जोड़े जाने की संख्या को सीमित किया जा सकता है.

लॉग एक्सपोर्ट या रूट करें

डेटा डालने और स्टोरेज के लिए डिफ़ॉल्ट रूप से होने वाले शुल्क से बचने के लिए, लॉग को अन्य Google Cloud या बाहरी डेस्टिनेशन पर भेजा जा सकता है. पक्का करें कि आपने डेटा डालने की लागत से बचने के लिए, अगले सेक्शन में बताया गया लॉग डेटा डालने की सुविधा बंद कर दी हो.

शुल्क से बचने के लिए, लॉग डेटा डालने की सुविधा बंद करें

लॉग डेटा डालने की सुविधा बंद करने के बजाय, लॉग का इस्तेमाल कम करना या लॉग को एक्सपोर्ट या रूट करना बेहतर माना जाता है. हालांकि, अगर आपको फ़्लीट इंजन के लॉग इस्तेमाल नहीं करने हैं, तो डेटा डालने की सुविधा बंद करके, क्लाउड लॉगिंग के शुल्क से बचा जा सकता है. डिफ़ॉल्ट रूप से, Fleet Engine लॉग को _Default लॉग बकेट पर रूट किया जाता है.

यह निर्देश _Default लॉगिंग बकेट को अपडेट करता है, ताकि फ़्लीट इंजन लॉग में डेटा न डाला जा सके.

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 एक्सपोर्ट और लॉग एक्सपोर्ट करना

लॉग एक्सप्लोरर का इस्तेमाल करना

लॉग एक्सप्लोरर का इस्तेमाल करने के लिए, Cloud Console खोलें. इसके बाद, लॉगिंग चुनें और फिर लॉग एक्सप्लोरर चुनें. सभी उपलब्ध फ़्लीट इंजन लॉग की सूची देखने के लिए, फ़्लीट इंजन के संसाधन टाइप पर क्लिक करें. कुछ एपीआई लॉग पर यात्रा आईडी और वाहन आईडी का लेबल होता है. इन लेबल का इस्तेमाल, अपनी पसंद की यात्राओं या वाहनों के लॉग चुनने के लिए किया जा सकता है.

लॉग लेबल

वाहन के आईडी के हिसाब से लॉग फ़िल्टर करें

लॉग एक्सप्लोरर में, किसी खास वाहन के लॉग को सीमित करने के लिए, इस क्वेरी का इस्तेमाल किया जा सकता है:

    resource.type="fleetengine.googleapis.com/Fleet"
    labels.vehicle_id="vehicle_id"

वाहन के हिसाब से फ़िल्टर करें

यात्रा के आईडी के हिसाब से लॉग फ़िल्टर करें

लॉग एक्सप्लोरर में, किसी खास यात्रा के लॉग पर पाबंदी लगाने के लिए, इस क्वेरी का इस्तेमाल किया जा सकता है:

    resource.type="fleetengine.googleapis.com/Fleet"
    labels.trip_id=~"trip_id"

किसी खास समयावधि में किसी वाहन के लिए फ़िल्टर लॉग

लॉग एक्सप्लोरर में, किसी खास समयावधि के दौरान आने वाले वाहन के लॉग को सीमित करने के लिए, इस क्वेरी का इस्तेमाल किया जा सकता है:

    resource.type="fleetengine.googleapis.com/Fleet"
    labels.vehicle_id="vehicle_id"
    timestamp>="2020-09-24T20:00:00.000Z"
    timestamp<"2020-09-24T21:00:00.000Z"

लॉग पर आधारित मेट्रिक का उदाहरण

नीचे दिए गए उदाहरण में समय के साथ बनाई गई ट्रिप की संख्या को ट्रैक करने के लिए लॉग-आधारित मेट्रिक का इस्तेमाल करने का तरीका बताया गया है.

  1. Cloud Console में, लॉग एक्सप्लोरर खोलने के लिए लॉगिंग चुनें और फिर लॉग एक्सप्लोरर चुनें. इसके बाद, यह फ़िल्टर लगाएं:

    resource.type="audited_resource"
    resource.labels.method="maps.fleetengine.v1.TripService.ReportBillableTrip"
    
  2. क्वेरी के नतीजों वाले पैनल में, कार्रवाइयां ड्रॉप-डाउन चुनें और फिर मेट्रिक बनाएं चुनें.

    मेट्रिक बनाएं

  3. मेट्रिक एडिटर डायलॉग में:

    • मेट्रिक को कोई नाम दें (उदाहरण के लिए, billable_trips).
    • मेट्रिक की जानकारी दें (उदाहरण के लिए, बिल करने लायक यात्रा कॉल की संख्या).
    • यूनिट विकल्प को खाली छोड़ दें. _ टाइप विकल्प को काउंटर के तौर पर छोड़ें.

    इसके बाद, मेट्रिक बनाएं बटन चुनें.

  4. लॉग पर आधारित मेट्रिक के पेज पर, आपको यह पुष्टि करने वाला मैसेज दिखेगा कि मेट्रिक बनाई गई है या नहीं. साथ ही, उपयोगकर्ता की ओर से तय की गई मेट्रिक वाले सेक्शन में नई मेट्रिक दिखेगी. अब मिलते-जुलते लॉग जनरेट होने पर, मेट्रिक की जानकारी अपने-आप भर जाएगी.

  5. नई मेट्रिक की दाईं ओर मौजूद वर्टिकल ड्रॉप-डाउन चुनें. इसके बाद, मेट्रिक्स एक्सप्लोरर में देखें विकल्प चुनें.

    मेट्रिक देखें

  6. 'अपनी क्वेरी बनाएं' सेक्शन में बाईं ओर मौजूद पैनल में, संसाधन टाइप को फ़्लीट इंजन पर सेट करें और Billable_trips मेट्रिक खोजें.

    खोज मीट्रिक

    दाईं ओर दिया गया ग्राफ़ बिल करने लायक_ट्रिप वाले कॉल की दर दिखाता है.

BigQuery का इस्तेमाल करें

विश्लेषण करने के लिए BigQuery एक बेहतरीन टूल है. इसका इस्तेमाल लंबे समय तक चलने वाले लॉग को सेव करने और डेटा के लिए ज़रूरत के हिसाब से एसक्यूएल जैसी क्वेरी करने के लिए किया जा सकता है.

BigQuery पर लॉग रूट करें

BigQuery का फ़ायदा उठाने के लिए, लॉग को BigQuery डेटास्टोर पर रूट करने के लिए, यहां दिया गया तरीका अपनाएं:

  1. Cloud Console में, लॉगिंग चुनें. इसके बाद, लॉग एक्सप्लोरर चुनें.

  2. ऐसा फ़िल्टर बनाएं जो फ़्लीट इंजन के लॉग को अलग करता हो. लॉग फ़ील्ड एक्सप्लोरर में, Fleetengine.googleapis.com/Fleet संसाधन टाइप चुनें.

    फ़िल्टर
बनाएं

  3. क्वेरी नतीजे वाले पैनल में, कार्रवाइयां ड्रॉप-डाउन पर क्लिक करें और सिंक करें चुनें.

    सिंक बनाएं

  4. सिंक सेवा चुनने के डायलॉग बॉक्स में, BigQuery डेटासेट चुनें.

    चुनें
सिंक

  5. सिंक में बदलाव करें डायलॉग में, नीचे दिए गए विकल्पों के बारे में बताएं:

    • सिंक को कोई नाम दें (उदाहरण के लिए, FleetEngineLogsSink).
    • सिंक सेवा को BigQuery के तौर पर छोड़ें.
    • सेगमेंट में बांटी गई टेबल इस्तेमाल करें विकल्प चुनें. इससे क्वेरी की परफ़ॉर्मेंस बेहतर होगी.
    • सिंक डेस्टिनेशन में जाकर, नया BigQuery डेटासेट बनाएं चुनें और फिर BigQuery डेटासेट का नाम बताएं (उदाहरण के लिए, FleetEngineLogs).
    • सिंक बनाएं बटन पर क्लिक करें.

    सिंक में बदलाव करें

अब आपके लॉग, BigQuery डेटासेट में जानकारी भरने शुरू हो जाएंगे. Cloud Console के BigQuery सेक्शन में डेटा देखा जा सकता है.

BigQuery
सेक्शन

FleetEngineLogs डेटासेट में मौजूद कई टेबल अपने-आप भर जाएंगी. हर लॉग टाइप के लिए एक टेबल होती है:

  • CreateVehicle
  • GetVehicle
  • ListVehicles
  • SearchVehicles
  • UpdateVehicle
  • CreateTrip
  • GetTrip
  • UpdateTrip
  • ListTrips

टेबल के नाम इस पैटर्न का इस्तेमाल करते हैं:

project_id.data_set.log_name

उदाहरण के लिए, अगर प्रोजेक्ट को test_project कहा जाता है और डेटासेट का नाम FleetEngineLogs है, तो CreateTrip टेबल में यह नाम होगा:

test_project.FleetEngineLogs.fleetengine_googleapis_com_create_trip

क्वेरी के उदाहरण

इस सेक्शन में ऐसी क्वेरी के उदाहरण दिए गए हैं जिन्हें बनाया जा सकता है.

हर घंटे बनाई गई यात्राएं

नीचे दी गई क्वेरी में CreateTrips के लॉग की संख्या गिनी जाती है और यह घंटों के हिसाब से ग्रुप में बांटती है.

    SELECT TIMESTAMP_TRUNC(timestamp, HOUR) as hour,
           count(*) as num_trips_created
    FROM
    `ProjectId.FleetEngineLogs.fleetengine_googleapis_com_create_trip`
    GROUP BY hour
    ORDER by hour

हर वाहन के लिए, एक घंटे में स्टॉप की संख्या

नीचे दी गई क्वेरी उन स्टॉप की संख्या जनरेट करती है जो वाहन चलाते हैं. इन स्टॉप की संख्या हर घंटे के हिसाब से अलग-अलग होती है.

उदाहरण के लिए, इस क्वेरी से हमें पता चल सकता है कि पिछले एक घंटे में:

  • वाहन A ने 12 घंटे में 10 स्टॉप और 13 घंटे में 8 स्टॉप पूरे किए.
  • वाहन B ने 11 घंटे में पांच स्टॉप और 12 घंटे में 7 स्टॉप पूरे किए हैं.
  • वाहन C ने 13 घंटे में 12 स्टॉप और 14 घंटे में 9 स्टॉप पूरे किए.

    SELECT
      jsonpayload_v1_updatevehiclelog.request.vehicleid AS vehicle,
      TIMESTAMP_TRUNC(timestamp, HOUR) AS hour,
      COUNT(*) AS num_stops
    FROM
      `ProjectId.FleetEngineLogs.fleetengine_googleapis_com_update__vehicle`
    WHERE
    ARRAY_LENGTH(jsonpayload_v1_updatevehiclelog.request.vehicle.remainingvehiclejourneysegments) > 0
    AND jsonpayload_v1_updatevehiclelog.request.vehicle.remainingvehiclejourneysegments[
    OFFSET
    (0)].stop.state = 'VEHICLE_STOP_STATE_LOG_ARRIVED'
    GROUP BY
    1,
    2
    ORDER BY
    2
    

Data Studio के डैशबोर्ड

BigQuery को बिज़नेस इंटेलिजेंस टूल के साथ इंटिग्रेट किया जा सकता है. साथ ही, कारोबार के आंकड़ों के लिए डैशबोर्ड बनाए जा सकते हैं.

नीचे दिए गए उदाहरण में ऐसा डैशबोर्ड बनाने का तरीका बताया गया है जिससे मैप पर ट्राईप और वाहन मूवमेंट विज़ुअलाइज़ किए जा सकते हैं.

  1. नया Datastudio डैशबोर्ड लॉन्च करें और डेटा कनेक्शन के तौर पर BigQuery को चुनें.

    डेटा
कनेक्शन

  2. कस्टम क्वेरी चुनें और वह क्लाउड प्रोजेक्ट चुनें जिसके लिए इसे बिल भेजना है.

    प्रोजेक्ट
चुनें

  3. क्वेरी बॉक्स में यहां दी गई क्वेरी डालें.

    क्वेरी
डालें

    SELECT
     timestamp,
     labels.vehicle_id,
    jsonpayload_v1_updatevehiclelog.response.lastlocation.location.latitude AS lat,
    jsonpayload_v1_updatevehiclelog.response.lastlocation.location.longitude AS lng
    FROM
    `ProjectId.FleetEngineLogs.fleetengine_googleapis_com_update_vehicle`
    
  4. बबल मैप के तौर पर चार्ट टाइप चुनें. इसके बाद, जगह की जानकारी वाला फ़ील्ड चुनें.

    चार्ट का
टाइप

  5. फ़ील्ड बनाएं चुनें.

    फ़ील्ड बनाएं

  6. फ़ील्ड को नाम दें और यह फ़ॉर्मूला जोड़ें: CONCAT(lat, ",", lng).

    इसके बाद, टाइप को भौगोलिक->अक्षांश, देशांतर पर सेट करें.

    टाइप
सेट करें

  7. डेटा फ़िल्टर करने के लिए, डैशबोर्ड में कंट्रोल जोड़े जा सकते हैं. उदाहरण के लिए, तारीख की सीमा वाला फ़िल्टर चुनें.

    कंट्रोल
जोड़ें

  8. तारीख की डिफ़ॉल्ट सीमा चुनने के लिए, तारीख की सीमा वाले बॉक्स में बदलाव करें.

    तारीख
की सीमा

  9. वाहन के आईडी के लिए, ड्रॉप-डाउन सूची के और कंट्रोल जोड़े जा सकते हैं.

    ड्रॉप-डाउन सूची

इन कंट्रोल की मदद से, वाहन की मूवमेंट या यात्रा की मूवमेंट को विज़ुअलाइज़ किया जा सकता है.