क्लाउड लॉगिंग से अपनी साइट के वेब अनुरोध लॉग देखें, खोजें और फ़िल्टर करें

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

Cloud Logging लॉग की मदद से ये काम किए जा सकते हैं. ज़्यादा जानकारी के लिए, इस पेज के हर सेक्शन पर जाएं.

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

  1. Firebase कंसोल में, Cloud Logging इंटिग्रेशन कार्ड में जाकर, लिंक करें पर क्लिक करें.

    Cloud Logging को लिंक या अनलिंक करने के लिए, आपके पास इनमें से किसी भी भूमिका के लिए ज़रूरी अनुमतियां होनी चाहिए: प्रोजेक्ट का मालिक या एडिटर या Firebase का एडमिन.

  2. स्क्रीन पर दिए गए निर्देशों का पालन करके, यह चुनें कि आपकी किन Hosting साइटों को Cloud Logging में लॉग एक्सपोर्ट करने चाहिए.

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

Cloud Logging से लिंक करने के बाद, आपकी Hosting साइटों पर किए गए किसी भी नए अनुरोध के लॉग, अनुरोध किए जाने के 30 मिनट के अंदर दिख जाएंगे.

आपके पास Cloud Logging से अनलिंक करने Firebase Hosting का विकल्प भी है. इससे वेब अनुरोध लॉग को Cloud Logging पर एक्सपोर्ट करना बंद हो जाता है.

लॉग के लिए डेटा के इस्तेमाल पर नज़र रखना

Cloud Logging से लिंक करने के बाद, Hosting साइटों के लॉग के लिए, डेटा इस्तेमाल करने का लेवल देखा जा सकता है:

अपनी साइट को बेहतर तरीके से समझना

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

  • आपकी साइट पर ट्रैफ़िक कहां से आ रहा है?
    हर अनुरोध के बारे में जानकारी देखी जा सकती है. इसमें सोर्स आईपी, रेफ़रर, शहर, और स्टेटस शामिल है.

  • उपयोगकर्ता आपकी साइट पर कब आते हैं?
    किसी खास समयावधि के हिसाब से डिस्ट्रिब्यूशन देखने के लिए, हिस्टोग्राम पैनल का इस्तेमाल किया जा सकता है. इससे आपको अपने ऐप्लिकेशन के इस्तेमाल में होने वाले सामान्य उतार-चढ़ाव के बारे में अहम जानकारी मिल सकती है. साथ ही, ट्रैफ़िक में अचानक होने वाली बढ़ोतरी के बारे में भी पता चल सकता है.

  • असली उपयोगकर्ता के अनुरोधों के लिए, स्टेटस डिस्ट्रिब्यूशन क्या है?
    हर अनुरोध का स्टेटस देखा जा सकता है. साथ ही, गड़बड़ी वाले अनुरोधों का विश्लेषण भी किया जा सकता है. अपने लॉग को Critical, Error या Warning के हिसाब से फ़िल्टर किया जा सकता है.

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

  • क्या आपकी साइट पर कॉन्टेंट कैश मेमोरी का इस्तेमाल किया जा रहा है?
    हर लॉग में एक cacheHit फ़ील्ड होता है. इससे पता चलता है कि आपकी साइट के संसाधन को Hosting के सीडीएन कैश से तुरंत परोसा गया था या उसे Hosting के बैकएंड तक पूरा सफ़र तय करना पड़ा था. इससे आपको Firebase के ग्लोबल सीडीएन का ज़्यादा से ज़्यादा फ़ायदा उठाकर, अपनी वेबसाइट की परफ़ॉर्मेंस को बेहतर बनाने में मदद मिल सकती है. उदाहरण के लिए, इस डेटा का इस्तेमाल करके, स्टैटिक ऐसेट और डाइनैमिक कॉन्टेंट की कैश मेमोरी को बेहतर बनाया जा सकता है.

  • आपके अलग-अलग डोमेन पर ट्रैफ़िक का डिस्ट्रिब्यूशन क्या है?
    अगर आपके पास एक से ज़्यादा डोमेन या Hosting साइटें हैं, तो डोमेन या साइट के हिसाब से अपने लॉग फ़िल्टर किए जा सकते हैं. इससे यह देखा जा सकता है कि आपका ट्रैफ़िक कैसे डिस्ट्रिब्यूट किया गया है. डोमेन के हिसाब से फ़िल्टर करने पर, यह ट्रैक किया जा सकता है कि किस डोमेन पर सबसे ज़्यादा बार जाया गया.

क्वेरी की मदद से लॉग फ़िल्टर करना

क्वेरी की मदद से लॉग फ़िल्टर करने का तरीका जानने के लिए, Logs Viewer का इस्तेमाल करके सैंपल क्वेरी और लॉग क्वेरी बनाना लेख पढ़ें. यहां दी गई टेबल में, उन क्वेरी के लिए उपलब्ध फ़ील्ड के बारे में बताया गया है.

Hosting के लिए, यहां क्वेरी के कुछ शुरुआती फ़िल्टर दिए गए हैं:

  • संसाधन (resource.type) — firebase_domain (Firebase Hosting साइट का डोमेन)
  • लॉग का नाम (logName) — webrequests (Firebase Hosting)

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

फ़ील्ड ब्यौरा
Firebase Hosting, लॉग एंट्री के httpRequest ऑब्जेक्ट में ये फ़ील्ड सेव करता है.
इन फ़ील्ड को एचटीटीपी स्पेसिफ़िकेशन में तय किया गया है.
cacheHit Hosting सीडीएन के पास, कैश मेमोरी में जवाब का संसाधन था या नहीं
latency अनुरोध की अवधि, सेकंड में. इसमें s पोस्टफ़िक्स होता है (उदाहरण के लिए, 1.256s)
protocol अनुरोध के लिए इस्तेमाल किया गया प्रोटोकॉल (उदाहरण के लिए, HTTP/1.1, HTTP/2, websocket)
referer उस पिछले वेब पेज का पता जहां से मौजूदा अनुरोध किए गए पेज का लिंक फ़ॉलो किया गया था (अगर मौजूद है)
remoteIp अनुरोध के लिए, क्लाइंट का ओरिजनल आईपी पता
requestMethod अनुरोध का तरीका (GET, POST, PUT वगैरह)
requestSize अनुरोध का साइज़, बाइट में
requestUrl अनुरोध का पूरा यूआरएल (उदाहरण के लिए,
https://foo.web.app/bar या https://custom.domain.com?query=param)
responseSize एचटीटीपी रिस्पॉन्स का साइज़, बाइट में
serverIp not populated
status एचटीटीपी रिस्पॉन्स स्टेटस (उदाहरण के लिए, 200 या 404)
userAgent अनुरोध का उपयोगकर्ता-एजेंट हेडर
Firebase Hosting, लॉग एंट्री के jsonPayload ऑब्जेक्ट में अतिरिक्त फ़ील्ड सेव करता है.
acceptEncoding (एचटीटीपी अनुरोध से) क्लाइंट किस कॉन्टेंट एन्कोडिंग का इस्तेमाल कर सकता है. आम तौर पर, यह एक कंप्रेस करने वाला एल्गोरिदम होता है. उदाहरण के लिए, gzip या compress
billable अनुरोध के लिए, आपके प्रोजेक्ट को बिल भेजा गया है या नहीं
customDomain अनुरोध किसी कस्टम डोमेन के ख़िलाफ़ किया गया था या नहीं
hostname वह होस्टनेम जिसके ख़िलाफ़ अनुरोध किया गया था
remoteIpCountry अनुरोध करने वाले व्यक्ति का देश
remoteIpCity अनुरोध करने वाले व्यक्ति का शहर

लॉग पर आधारित मेट्रिक का इस्तेमाल करना

लॉग पर आधारित मेट्रिक देखी और बनाई जा सकती हैं. इसके बाद, इन मेट्रिक का इस्तेमाल Cloud Monitoring में चार्ट बनाने और सूचना पाने की नीतियां बनाने के लिए किया जा सकता है.

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

  • अपने प्रोजेक्ट के लिए, उपयोगकर्ता के हिसाब से तय की गई मेट्रिक बनाएं. दी गई क्वेरी से मेल खाने वाली लॉग एंट्री की संख्या गिनी जा सकती है. इसके अलावा, मेल खाने वाली लॉग एंट्री की मदद से, खास वैल्यू को ट्रैक किया जा सकता है. रेगुलर एक्सप्रेशन का इस्तेमाल करके फ़िल्टर किया जा सकता है.

  • Cloud Monitoring का इस्तेमाल करके, खास मैसेज वाली लॉग एंट्री की संख्या रिकॉर्ड करें या लॉग एंट्री में रिपोर्ट की गई लेटेन्सी की जानकारी निकालें. इसके बाद, इन मेट्रिक का इस्तेमाल चार्ट और सूचना देने वाली नीतियों में किया जा सकता है.

Firebase Hosting, Hosting से जुड़ी इन लॉगिंग मेट्रिक को भी जनरेट करता है. ये मेट्रिक, किसी लॉग एंट्री के लिए नहीं होती हैं. बल्कि, ये पूरी Hosting साइट के लिए होती हैं.

  • log_bytes: हर साइट के लिए, डेटा इस्तेमाल करने की कुल बाइट

  • response_count: साइट के लिए लिखे गए जवाबों की कुल संख्या

    इस मेट्रिक में एचटीटीपी स्टेटस का फ़ील्ड शामिल होता है. इसलिए, स्टेटस के हिसाब से एचटीटीपी रिस्पॉन्स को प्लॉट किया जा सकता है. उदाहरण के लिए, ऐसा किया जा सकता है.

लॉग को अन्य Google Cloud टूल में एक्सपोर्ट करना

अपनी साइट के लॉग को अन्य Google Cloud टूल में भी एक्सपोर्ट किया जा सकता है. जैसे, Cloud Monitoring या BigQuery. उदाहरण के लिए:

  • Cloud Monitoring का इस्तेमाल करके, लॉग पर आधारित मेट्रिक बनाई जा सकती हैं. इनका इस्तेमाल चार्ट और सूचना पाने से जुड़ी नीतियों में किया जा सकता है.

  • BigQuery का इस्तेमाल करके, इनमें से कोई भी काम किया जा सकता है:

    • अपने Hosting डेटा के डैशबोर्ड जनरेट करने के लिए, Data Studio का इस्तेमाल करें.
    • अपने अनुरोधों के बारे में ज़्यादा जानकारी पाने के लिए क्वेरी चलाएं. जैसे, जवाब का औसत साइज़, कैश हिट बनाम मिस वगैरह.
    • जानें कि आपके उपयोगकर्ता किन यूआरएल का अनुरोध करते हैं.
    • अपने Hosting डेटा को BigQuery में एक्सपोर्ट किए गए अन्य Firebase डेटा के साथ जोड़ें और उसकी नई तरह से क्वेरी करें.