Google Stackdriver Debug, Trace, Logging, और Logpoints का इस्तेमाल करना

इस ट्यूटोरियल में, आपको Google Stackdriver के बारे में बताया गया है. इसकी मदद से, Google Cloud Platform ऐप्लिकेशन के साथ ये काम किए जा सकते हैं:

  • App Engine, Compute Engine, और Container Engine पर चल रहे ऐप्लिकेशन में डीबग स्नैपशॉट लें.
  • ऐप्लिकेशन लॉग देखें.
  • मेट्रिक सेट अप करें, उन्हें मॉनिटर करें, और सूचनाएं पाएं.
  • अपने एपीआई कॉल को ट्रेस करें और जवाब मिलने में लगने वाले समय और अपने कोड में संभावित रुकावटों के बारे में जानकारी पाएं.
  • चल रहे किसी ऐप्लिकेशन में लॉग पॉइंट जोड़ें. इसके लिए, आपको ऐप्लिकेशन डिप्लॉय करने की ज़रूरत नहीं है. यह एक यूनीक सुविधा है और उम्मीद है कि यह आपके काम आएगी.

इस ट्यूटोरियल में, हम शुरू से ये काम करेंगे:

  1. Google Cloud Platform प्रोजेक्ट बनाना (खास तौर पर App Engine के लिए)
  2. Google Cloud Platform प्रोजेक्ट सोर्स रिपॉज़िटरी सेट अप करना
  3. Github पर उपलब्ध, Guestbook Python ऐप्लिकेशन के स्टैंडर्ड सोर्स का इस्तेमाल करें
  4. कोड डिप्लॉय करना
  5. देखें कि हम चल रहे ऐप्लिकेशन के डीबग स्नैपशॉट कैसे पा सकते हैं
  6. लॉगिंग और ऐप्लिकेशन कॉल ट्रेस देखें
  7. मौजूदा ऐप्लिकेशन में लॉगपॉइंट जोड़ें. इस सुविधा के बारे में, इस ब्लॉग पोस्ट में बताया गया था : Add Application Logs to an application with no restarts

चलिए, शुरू करते हैं।

इस कॉन्टेंट को सबसे पहले रोमिन ईरानी ने बनाया था और इसे यहां पोस्ट किया गया था.

अपने हिसाब से एनवायरमेंट सेट अप करना

अगर आपके पास पहले से कोई Google खाता (Gmail या Google Apps) नहीं है, तो आपको एक खाता बनाना होगा. Google Cloud Platform Console (console.cloud.google.com) में साइन इन करें और एक नया प्रोजेक्ट बनाएं:

2016-02-10 12:45:26.png का स्क्रीनशॉट

प्रोजेक्ट आईडी याद रखें. यह सभी Google Cloud प्रोजेक्ट के लिए एक यूनीक नाम होता है. ऊपर दिया गया नाम पहले ही इस्तेमाल किया जा चुका है. इसलिए, यह आपके लिए काम नहीं करेगा. माफ़ करें! इस कोड लैब में इसे बाद में PROJECT_ID के तौर पर दिखाया जाएगा.

इसके बाद, Google Cloud संसाधनों का इस्तेमाल करने के लिए, आपको Cloud Console में बिलिंग चालू करनी होगी.

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

Google Cloud Platform के नए उपयोगकर्ता, 300 डॉलर के क्रेडिट के साथ मुफ़्त में आज़माने की सुविधा पा सकते हैं.

Google Cloud Shell

इस कोडलैब में, हम Google Cloud Shell का इस्तेमाल करेंगे. यह क्लाउड में चलने वाला कमांड लाइन एनवायरमेंट है.

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

Google Cloud Shell को चालू करने के लिए, डेवलपर कंसोल में सबसे ऊपर दाईं ओर मौजूद बटन पर क्लिक करें. इसे चालू होने और एनवायरमेंट से कनेक्ट होने में कुछ ही समय लगेगा:

activateCloudShell.png

इसके बाद, सेवा की शर्तें स्वीकार करें और "Cloud Shell शुरू करें" लिंक पर क्लिक करें:

x.png

Screen Shot 2017-06-14 at 10.13.43 PM.png

क्लाउड शेल से कनेक्ट होने के बाद, आपको दिखेगा कि आपकी पुष्टि पहले ही हो चुकी है और प्रोजेक्ट पहले से ही आपके PROJECT_ID पर सेट है :

gcloud auth list

कमांड आउटपुट

Credentialed accounts:
 - <myaccount>@<mydomain>.com (active)
gcloud config list project

कमांड आउटपुट

[core]
project = <PROJECT_ID>

अगर किसी वजह से प्रोजेक्ट सेट नहीं किया गया है, तो यह कमांड दें :

gcloud config set project <PROJECT_ID>

क्या आपको PROJECT_ID ढूंढना है? देखें कि आपने सेटअप के दौरान किस आईडी का इस्तेमाल किया था. इसके अलावा, इसे कंसोल के डैशबोर्ड में भी देखा जा सकता है:

Project_ID.png

अहम जानकारी: आखिर में, डिफ़ॉल्ट ज़ोन और प्रोजेक्ट का कॉन्फ़िगरेशन सेट करें:

gcloud config set compute/zone us-central1-f

आपके पास अलग-अलग ज़ोन चुनने का विकल्प होता है. ज़्यादा जानने के लिए, क्षेत्र और ज़ोन से जुड़े दस्तावेज़ पढ़ें.

चालू किए गए StackDriver API देखें

आइए, उन एपीआई पर एक नज़र डालें जिन्हें आपके प्रोजेक्ट के लिए चालू किया गया है. नीचे दिए गए तरीके से, एपीआई डैशबोर्ड ढूंढने के लिए खोज बार का इस्तेमाल करें.

उन एपीआई पर नज़र रखें जिन्हें आपके प्रोजेक्ट के लिए चालू किया गया है :

हर Google Cloud Platform प्रोजेक्ट में, Git को निजी तौर पर होस्ट करने की सुविधा मिलती है. हालांकि, इसके लिए हमें पहले एक डिफ़ॉल्ट रिपॉज़िटरी बनानी होगी. कंसोल के खोज बॉक्स का इस्तेमाल करके, सोर्स रिपॉज़िटरी पर जाएं :

"डिफ़ॉल्ट" नाम की नई कोड रिपॉज़िटरी बनाने के लिए, "रिपॉज़िटरी बनाएं" पर क्लिक करें :

Cloud Shell का इस्तेमाल करके, अब हम इस डायरेक्ट्री को अपने Google Cloud Shell इंस्टेंस में क्लोन करने जा रहे हैं. इसके लिए, सबसे पहले हम अपने Google Cloud Shell इंस्टेंस में एक डायरेक्ट्री बनाएंगे और उसमें नेविगेट करेंगे. इसे यहां दिखाया गया है (सैंपल आउटपुट):

mkdir stackdriver-demo
cd stackdriver-demo/

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

gcloud source repos clone default

आपको कंसोल में यह आउटपुट दिखेगा :

Cloning into '/home/gcp123_student/default'...
warning: You appear to have cloned an empty repository.
Project [qwiklabs-gcp-1234abc1234] repository [default] was cloned to [/home/gcp123_student/default].

बढ़िया! आइए, सेट अप किए गए git रिमोट के बारे में थोड़ी और जानकारी लेते हैं. यह ज़रूरी नहीं है, लेकिन इससे आपको यह समझने में मदद मिलेगी कि पर्दे के पीछे क्या हुआ है.

बनाई गई डिफ़ॉल्ट डायरेक्ट्री पर जाएं और नीचे दिखाए गए तरीके से git remote -v कमांड चलाएं

cd default
git remote -v

यह कंसोल आउटपुट है. आपको कुछ ऐसा दिखना चाहिए:

origin https://source.developers.google.com/p/qwiklabs-gcp-1234abc1234/r/default (fetch)
origin https://source.developers.google.com/p/qwiklabs-gcp-1234abc1234/r/default (push)

आपको दिखेगा कि यह Git Repository की ओर सही तरीके से पॉइंट करता है, जो हमारे GCP प्रोजेक्ट से जुड़ी है.

Github से Guestbook ऐप्लिकेशन को पुल करें

हम जिस ऐप्लिकेशन का इस्तेमाल करने जा रहे हैं वह एक स्टैंडर्ड App Engine ऐप्लिकेशन है. इसका नाम Guestbook है. यह Google Cloud Platform की आधिकारिक Github रिपॉज़िटरी में उपलब्ध है. शुरू करने के लिए, यह ऐप्लिकेशन आधिकारिक दस्तावेज़ का भी हिस्सा है. Github प्रोजेक्ट यहां उपलब्ध है : https://github.com/GoogleCloudPlatform/appengine-guestbook-python

अब हम इस कोड को अपने Cloud Shell इंस्टेंस में पुल करेंगे. कमांड और उसका आउटपुट यहां दिखाया गया है :

git pull https://github.com/GoogleCloudPlatform/appengine-guestbook-python

आपको कंसोल में यह आउटपुट दिखेगा :

remote: Counting objects: 485, done.
remote: Total 485 (delta 0), reused 0 (delta 0), pack-reused 485
Receiving objects: 100% (485/485), 436.42 KiB | 163.00 KiB/s, done.
Resolving deltas: 100% (195/195), done.
From https://github.com/GoogleCloudPlatform/appengine-guestbook-python
* branch HEAD -> FETCH_HEAD

अब हमारे पास सभी कोड, Google Cloud Shell इंस्टेंस में स्थानीय तौर पर मौजूद हैं. आपको वे सभी फ़ाइलें दिखेंगी जिन्हें Github प्रोजेक्ट से लिया गया है.

Cloud Shell का इस्तेमाल करके, मौजूदा कोड को प्रोजेक्ट Git रिपॉज़िटरी में पुश करें

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

हालांकि, यहां हम इस कोड को GCP प्रोजेक्ट की Git रिपॉज़िटरी में पुश करेंगे. यह काम, git push के स्टैंडर्ड कमांड के ज़रिए किया जाता है. इसे यहां दिखाया गया है:

git push origin master

आपको कंसोल में यह आउटपुट दिखेगा :

Counting objects: 485, done.
Compressing objects: 100% (280/280), done.
Writing objects: 100% (485/485), 436.42 KiB | 0 bytes/s, done.
Total 485 (delta 195), reused 485 (delta 195)
remote: Storing objects: 100% (485/485), done.
remote: Processing commits: 100% (152/152), done.
To https://source.developers.google.com/p/qwiklabs-gcp-1234abc1234/r/default
* [new branch] master -> master

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

अब हम Guestbook App Engine ऐप्लिकेशन को डिप्लॉय करने के लिए तैयार हैं. ऐप्लिकेशन को डिप्लॉय करने के लिए, पक्का करें कि आप Google Cloud Shell में हों और डिफ़ॉल्ट डायरेक्ट्री में हों. gcloud app deploy कमांड का इस्तेमाल करें, जैसा कि यहां दिखाया गया है:

gcloud app deploy --version 1

जब आपसे कोई क्षेत्र चुनने के लिए कहा जाए, तो [1] us-east1 चुनें.

आपको कंसोल में यह आउटपुट दिखेगा :

You are about to deploy the following services:
— qwiklabs-gcp-1234abc1234/default/1 (from [/home/gcp123-student/default/app.yaml])
Deployed URL: [https://qwiklabs-gcp-1234abc1234.appspot.com]
Do you want to continue (Y/n)? Y
Beginning deployment of service [default]...
File upload done.
Updating service [default]...done.
Deployed service [default] to https://qwiklabs-gcp-1234abc1234.appspot.com]

ध्यान दें कि हमने ऐप्लिकेशन डिप्लॉय करने के लिए इस्तेमाल की जाने वाली कमांड में वर्शन पैरामीटर दिया है. हमने इसकी वैल्यू "1" दी है.

Guestbook ऐप्लिकेशन, डेटा को सेव करने के लिए Google Cloud Datastore का इस्तेमाल करता है. इसलिए, हमें Datastore इंडेक्स अपडेट करने होंगे. इंडेक्स, index.yaml फ़ाइल में दिए गए हैं. हम सिर्फ़ gcloud datastore create-indexes कमांड का इस्तेमाल करते हैं, जैसा कि यहां दिखाया गया है:

gcloud datastore create-indexes index.yaml

आपको कंसोल में यह आउटपुट दिखेगा :

You are about to update the following configurations:
— qwiklabs-gcp-1234abc1234/index From: [/home/gcp123_student/default/index.yaml]
Do you want to continue (Y/n)? Y

Datastore इंडेक्स को अपडेट होने में कुछ समय लग सकता है. स्टेटस देखने के लिए, "Datastore इंडेक्स" खोजें और इंडेक्स पर क्लिक करें. इंडेक्स बनने के दौरान, आपको "इंडेक्स किया जा रहा है" वैल्यू वाला स्टेटस दिखेगा. यह स्टेटस यहां दिखाया गया है:

हम यह देख सकते हैं कि हमारा ऐप्लिकेशन, वर्शन 1 के साथ डिप्लॉय किया गया है या नहीं. इसके लिए, Compute → App Engine पर जाएं. इसके बाद, नीचे दिखाए गए तरीके से Versions पर क्लिक करें:

अब सब कुछ ठीक दिखना चाहिए. https://<PROJECT_ID>.appspot.com पर जाकर, अपने प्रोजेक्ट को देखा जा सकता है. डेटास्टोर इंडेक्स तैयार होने में कुछ मिनट लग सकते हैं. इसलिए, अगर ऐप्लिकेशन में कोई गड़बड़ी (उदाहरण के लिए: इंटरनल सर्वर गड़बड़ी) होती है, तो कुछ मिनट बाद फिर से कोशिश करें.

अब ऐप्लिकेशन का इस्तेमाल करने के लिए, लॉग इन करें और मेहमानों के लिए कुछ एंट्री बनाएं. इसके लिए, यहां दिया गया तरीका अपनाएं:

बढ़िया! अब हम Stackdriver की सुविधाओं के बारे में जानने के लिए तैयार हैं.

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

आइए, अब Guestbook ऐप्लिकेशन के लिए ऐसा करते हैं. अगर कोई व्यक्ति होम पेज का स्नैपशॉट मांगता है, तो हम उससे स्नैपशॉट मांगेंगे. खास तौर पर, हमें वह स्नैपशॉट चाहिए जिसमें Datastore में मौजूद अभिवादन की सूची दिखती हो.

इसका कोड guestbook.py फ़ाइल में मौजूद है. खास तौर पर, हमें रनटाइम के दौरान कोड की जांच शुरू करनी है. ऐसा तब किया जाएगा, जब कोड डेटास्टोर से अभिवादन की सूची को वापस पा लेगा. यह काम लाइन #72 पर किया जाता है. इसलिए, हम लाइन 74 पर एक ब्रेकपॉइंट सेट कर सकते हैं, ताकि हमें पता चल सके कि #72 को लागू किया गया है.

इसके लिए, AppEngine के वर्शन व्यू में जाकर "Debug" पर क्लिक करें या Stackdriver → Debug पर जाएं . इससे नीचे दिखाई गई स्क्रीन दिखेगी. आपको बाईं ओर मौजूद फ़ाइल (guestbook.py) को चुनना होगा. इसके बाद, दिखाए गए लाइन नंबर पर क्लिक करें.

इससे आपको ऊपर दिए गए लाल बॉक्स में हाइलाइट किया गया मैसेज दिखेगा. इसमें बताया गया है कि स्नैपशॉट ट्रिगर होने का इंतज़ार किया जा रहा है. अब हमें बस इस पेज पर जाना है

https://<PROJECT_ID>.appspot.com.

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

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

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

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

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

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

यह सुविधा, सभी App Engine ऐप्लिकेशन के लिए डिफ़ॉल्ट रूप से चालू होती है. इससे हमें अपने सभी एंडपॉइंट की परफ़ॉर्मेंस के बारे में बहुत काम की जानकारी मिलती है. साथ ही, अलग-अलग कॉल के हिसाब से जानकारी भी मिलती है.

इस उदाहरण में, हम होम पेज ("/") पर जा रहे हैं और गेस्टबुक की एंट्री देख रहे हैं या जोड़ रहे हैं. इससे ट्रेस को इंतज़ार के समय के बारे में ज़्यादा जानकारी देने में मदद मिलती है. Stackdriver Traces की खास जानकारी पर जाएं. आपको नीचे दिखाया गया स्क्रीनशॉट दिखेगा. हाल के ट्रेस और उनकी लेटेंसी देखें.

अगर हम किसी एक ट्रेस यानी यूआरआई लिंक पर क्लिक करते हैं, तो हमें नीचे दी गई इमेज की तरह पूरी जानकारी दिखेगी:

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

आपके पास अपने ऐप्लिकेशन के लॉग देखने का विकल्प हमेशा होता है. इसके लिए, आपको Stackdriver Logging पर जाना होगा. इसे नीचे दिखाया गया है. यहां कई फ़िल्टर उपलब्ध हैं. जैसे, अलग-अलग GCP सेवाएं → लॉग टाइप → लॉग लेवल → तारीख वगैरह.

यहां दिए गए स्क्रीनशॉट में, हमारे App Engine ऐप्लिकेशन और डिफ़ॉल्ट वर्शन 1 के लॉग दिखाए गए हैं.

logging.png

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

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

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

अब भी Cloud Shell में, आइए हम कॉन्फ़िगर किए गए लॉगपॉइंट की मौजूदा सूची देखें. यह सूची ज़ाहिर तौर पर 0 होनी चाहिए. यह काम, gcloud कमांड के ज़रिए किया जाता है. इसे नीचे दिखाया गया है:

gcloud debug logpoints list

आपको कंसोल में यह आउटपुट दिखेगा :

Debug target not specified. Using default target: default-1
Listed 0 items.

अब हम चालू ऐप्लिकेशन में एक लॉगपॉइंट जोड़ेंगे. लॉगपॉइंट जोड़ने के लिए, हमें ये काम करने होंगे:

  • सोर्स कोड फ़ाइल और लाइन नंबर की पहचान करें, जहां हमें लॉगपॉइंट जोड़ना है.
  • लॉग मैसेज की पहचान करें. यह लॉग मैसेज, हार्डकोड किया गया हो सकता है या कोई एक्सप्रेशन भी हो सकता है.

इस उदाहरण में, हम logpoints create कमांड का इस्तेमाल करके, guestbook.py फ़ाइल की लाइन #74 में एक लॉगपॉइंट जोड़ेंगे. यह नीचे दिखाया गया है:

gcloud debug logpoints create guestbook.py:74 "Fetched greetings from Datastore. Count of greetings : {len(greetings)}"

आपको कंसोल में यह आउटपुट दिखेगा :

Debug target not specified. Using default target: default-1
— id: 53538243519d4-f9a0-bdbce
location: guestbook.py:74
logLevel: INFO
logMessageFormat: Fetched greetings from Datastore. Count of greetings : {len(greetings)}
condition: None
status: ACTIVE

हमने ऊपर filename:linenumber और लॉग मैसेज दिया है. ध्यान दें कि हमारे लॉग मैसेज में एक एक्सप्रेशन भी शामिल है. इससे, डेटास्टोर से फ़ेच की गई शुभकामनाओं की संख्या प्रिंट होगी.

इसके बाद, कमांड से यह मैसेज मिलता है कि लॉगपॉइंट जोड़ दिया गया है. यहां Cloud Shell का एक स्क्रीनशॉट दिखाया गया है:

अब, logpoints list कमांड चलाने पर, आपको यह आउटपुट दिखेगा:

gcloud debug logpoints list

आपको कंसोल में यह आउटपुट दिखेगा :

Debug target not specified. Using default target: default-1
STATUS LOCATION CONDITION LOG_LEVEL LOG_MESSAGE_FORMAT ID
ACTIVE
guestbook.py:74 INFO Fetched greetings from Datastore. Count of greetings : {len(greetings)} 53538243519d4-f9a0-bdbce

इसे ऐक्शन में देखने के लिए, हम एक बार फिर से https://<PROJECT_ID>.appspot.com पर होम पेज पर जा सकते हैं. इससे कोड और बदले में हमारा लॉगपॉइंट चालू हो जाएगा. ध्यान रखें कि यह जानकारी, हमारे ऐप्लिकेशन के लॉग में डिफ़ॉल्ट रूप से सेव हो जाएगी. इसलिए, हमें सिर्फ़ एक बार और Stackdriver Logging पर जाना होगा. जैसा कि यहां दिखाया गया है:

अनुरोध पर क्लिक करें और बस! ज़्यादा जानकारी में, आपको हमारा लॉगपॉइंट ट्रिगर होता हुआ दिखेगा. साथ ही, लॉग मैसेज भी दिखेगा.

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

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

अगर आपको इस कोडलैब के बारे में कोई सुझाव/राय देनी है या इससे जुड़ी किसी समस्या की शिकायत करनी है, तो कृपया इस पेज पर सबसे नीचे बाईं ओर मौजूद "Please find a bug" लिंक का इस्तेमाल करें.