Cloud SQL के लिए क्वेरी इनसाइट के बारे में जानकारी

1. शुरू करने से पहले

Cloud SQL के लिए क्वेरी इनसाइट की मदद से, Cloud SQL डेटाबेस की क्वेरी की परफ़ॉर्मेंस से जुड़ी समस्याओं का पता लगाया जा सकता है. साथ ही, उनका विश्लेषण करके उन्हें ठीक किया जा सकता है और उन्हें होने से रोका जा सकता है. यह टूल, खुद से सेवा पाने, आसानी से मॉनिटर करने, और डाइग्नोस्टिक्स की जानकारी पाने की सुविधा देता है. यह सिर्फ़ समस्याओं का पता लगाने से आगे बढ़कर, परफ़ॉर्मेंस से जुड़ी समस्याओं की मूल वजहों का पता लगाने में आपकी मदद करता है.

इस कोडलैब में, आपको Cloud SQL for PostgreSQL इंस्टेंस को सेट अप करने, Cloud SQL इंस्टेंस को बैकएंड स्टोरेज के तौर पर इस्तेमाल करने के लिए Node.js ऐप्लिकेशन को डिप्लॉय करने, और फिर क्वेरी देखने और मॉनिटर करने के लिए क्वेरी इनसाइट का इस्तेमाल करने का तरीका बताया जाएगा.

ज़रूरी शर्तें

  • Node.js प्रोग्रामिंग लैंग्वेज और टूल के बारे में बुनियादी जानकारी

आपको क्या करना होगा

  • Node.js ऐप्लिकेशन में Cloud SQL का इस्तेमाल करना.
  • Node.js ऐप्लिकेशन में SQL Commenter चालू करना.
  • क्वेरी की परफ़ॉर्मेंस को मॉनिटर करने और उसकी जांच करने के लिए, Cloud SQL के लिए क्वेरी की अहम जानकारी का इस्तेमाल करें.

आपको इन चीज़ों की ज़रूरत होगी

  • आपके पास ऐसा Google Cloud खाता होना चाहिए जिसमें एपीआई चालू करने और सेवाएं बनाने की अनुमतियां हों

2. सेटअप और ज़रूरी शर्तें

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

  1. Cloud Console में साइन इन करें. इसके बाद, नया प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट का फिर से इस्तेमाल करें. (अगर आपके पास पहले से Gmail या Google Workspace खाता नहीं है, तो आपको एक खाता बनाना होगा.)

उस प्रोजेक्ट का आईडी याद रखें जिसका इस्तेमाल किया जा रहा है. इस कोड लैब में इसे बाद में PROJECT-ID के तौर पर दिखाया जाएगा.

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

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

Cloud Shell चालू करें

  1. Cloud Console में, Cloud Shell चालू करें पर क्लिक करें.

Cloud Shell चालू करें

अगर आपने पहले कभी Cloud Shell का इस्तेमाल नहीं किया है, तो आपको एक इंटरमीडिएट स्क्रीन दिखेगी. इसमें Cloud Shell के बारे में जानकारी दी गई होगी. अगर ऐसा होता है, तो जारी रखें पर क्लिक करें. इसके बाद, आपको यह स्क्रीन कभी नहीं दिखेगी. एक बार दिखने वाली स्क्रीन ऐसी दिखती है:

Cloud Shell की डायलॉग विंडो

Cloud Shell से कनेक्ट होने में कुछ ही सेकंड लगेंगे.

Cloud Shell टर्मिनल

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

  1. Cloud Shell में यह कमांड चलाकर पुष्टि करें कि आपने सही प्रोजेक्ट का इस्तेमाल किया है:

Cloud Shell से कनेक्ट होने के बाद, आपको दिखेगा कि आपकी पुष्टि पहले ही हो चुकी है और प्रोजेक्ट को आपके प्रोजेक्ट आईडी पर पहले ही सेट कर दिया गया है.

पुष्टि करें कि आपने सही प्रोजेक्ट का इस्तेमाल किया है. इसके लिए, यह कमांड चलाएं.

gcloud config list project

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

gcloud config set project <PROJECT-ID>;

3. क्वेरी इनसाइट की सुविधा के साथ, Cloud SQL for PostgreSQL इंस्टेंस सेट अप करना

  1. Cloud Shell लॉन्च होने के बाद, कमांड लाइन का इस्तेमाल करके, my-instance नाम का नया Cloud SQL इंस्टेंस बनाया जा सकता है. इसमें क्वेरी इनसाइट की सुविधा चालू होती है:
gcloud sql instances create my-instance --tier db-f1-micro --database-version=POSTGRES_12 --region=us-central --root-password=<PASSWORD> --insights-config-query-insights-enabled --insights-config-record-application-tags --insights-config-record-client-address

यहां फ़्लैग और उनके मतलब के बारे में कम शब्दों में जानकारी दी गई है:

  • --tier db-f1-micro फ़्लैग, कम से कम संसाधनों वाला मशीन टाइप तय कर रहा है. ऐसा इसलिए है, क्योंकि यह डेवलपमेंट के लिए है और कोडलैब के लिए आपको ज़्यादा संसाधनों की ज़रूरत नहीं है. टियर के बारे में ज़्यादा जानने के लिए, यहां जाएं.
  • --database-version=POSTGRES_12 फ़्लैग, ऐसा इंस्टेंस बनाता है जो PostgreSQL का वर्शन 12 होगा.
  • --region=us-central फ़्लैग से उस इलाके के बारे में पता चलता है जहां इंस्टेंस बनाया जाएगा.
  • --root-password=<PASSWORD> फ़्लैग की मदद से, रूट postgres उपयोगकर्ता के लिए पासवर्ड सेट किया जा सकता है. <PASSWORD> को अपनी पसंद के पासवर्ड से बदलना न भूलें.
  • --insights-config-query-insights-enabled फ़्लैग की मदद से, अपने इंस्टेंस पर क्वेरी की अहम जानकारी की सुविधा चालू की जा सकती है.
  • --insights-config-record-application-tags फ़्लैग की मदद से, ऐप्लिकेशन टैग रिकॉर्ड किए जा सकते हैं. आपको ऐप्लिकेशन टैग के बारे में बाद के सेक्शन में ज़्यादा जानकारी मिलेगी.
  • --insights-config-record-client-address फ़्लैग की मदद से, Query Insights को क्लाइंट के आईपी पते रिकॉर्ड करने की अनुमति मिलती है.

आपको अपने प्रोजेक्ट के लिए, sqladmin.googleapis.com एपीआई चालू करने के लिए कहा जा सकता है. अगर आपसे कहा जाए, तो एपीआई चालू करने के लिए y को चुनें.

इंस्टेंस बनाने में कुछ मिनट लगेंगे. यह प्रोसेस पूरी होने के बाद, आपका इंस्टेंस इस्तेमाल के लिए तैयार हो जाएगा.

  1. अब एक ऐसा डेटाबेस बनाएं जिसका इस्तेमाल सैंपल ऐप्लिकेशन के लिए किया जाएगा:
gcloud sql databases create votesdb --instance my-instance

Cloud Console के ज़रिए भी इंस्टेंस को ऐक्सेस और कॉन्फ़िगर किया जा सकता है.

  1. यहां दी गई कमांड चलाकर, इंस्टेंस कनेक्शन का नाम PROJECT-ID:ZONE-ID:INSTANCE-ID फ़ॉर्मैट में पाएं. बाद में, इसका इस्तेमाल Node.js ऐप्लिकेशन को कॉन्फ़िगर करने के लिए किया जाएगा.
gcloud sql instances describe my-instance | grep connectionName

4. ऐप्लिकेशन के साथ इस्तेमाल करने के लिए सेवा खाता बनाना

सेवा खातों का इस्तेमाल, आपके GCP प्रोजेक्ट में अलग-अलग सेवाओं का इस्तेमाल करने की अनुमतियां देने के लिए किया जाता है. इस कोडलैब के लिए, आपको इसकी ज़रूरत होगी, ताकि Cloud SQL प्रॉक्सी को आपके Cloud SQL इंस्टेंस से कनेक्ट करने की अनुमति दी जा सके.

Console में सेवा खाता बनाना

  1. आईएएम सेवा खातों के पेज पर जाएं और पेज पर सबसे ऊपर मौजूद -PCvKR3aQ2zKaUcml8w9lW4JNlmYtN5-r2--mC6kMUp6HOXW8wT1wUvLoYEPU-aA-oGskT3XkAqfNwRAKkZkllwTe6ugdrUVFwaeKT0M9Y1RwHA8JPZeGmCWYBfr8d9TSycNMIRsLw बटन पर क्लिक करें.
  2. अपने सेवा खाते को कोई यूनीक नाम और आईडी दें. इसके बाद, बनाएं पर क्लिक करें.
  3. अगले पेज पर, भूमिका चुनें के लिए ड्रॉप-डाउन पर क्लिक करें. "Cloud SQL" के लिए फ़िल्टर करें और Cloud SQL Client की भूमिका चुनें. जारी रखें पर क्लिक करें. इसके बाद, हो गया पर क्लिक करें.
  4. सेवा खाता बनाने के बाद, अपने नए सेवा खाते के लिए कार्रवाइयां में जाकर तीन बिंदु वाले आइकॉन पर क्लिक करें. इसके बाद, कुंजियां मैनेज करें को चुनें. अगले पेज पर, कुंजी जोड़ें और फिर नई कुंजी बनाएं को चुनें. JSON फ़ाइल फ़ॉर्मैट चुना जाएगा. इसे डिफ़ॉल्ट रूप से चुने हुए रहने दें और बनाएं पर क्लिक करें. इससे .json फ़ॉर्मैट वाली निजी कुंजी फ़ाइल डाउनलोड हो जाएगी. बंद करें पर क्लिक करें.
  5. Cloud Shell में, ज़्यादा मेन्यू के लिए तीन बिंदुओं पर क्लिक करें. इसके बाद, फ़ाइल अपलोड करें चुनें. अपनी लोकल मशीन पर डाउनलोड की गई .json फ़ाइल को ब्राउज़ करें और उसे चुनें. इससे .json फ़ाइल, Cloud Shell में आपकी होम डायरेक्ट्री में अपलोड हो जाएगी.

5. Cloud SQL Proxy को इंस्टॉल और लॉन्च करना

ऐप्लिकेशन और डेटाबेस इंस्टेंस के बीच कम्यूनिकेशन के लिए, Cloud SQL प्रॉक्सी का इस्तेमाल किया जाएगा.

  1. Cloud SQL प्रॉक्सी डाउनलोड करें. Cloud Shell में, ये कमांड चलाई जा सकती हैं:
wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy && chmod +x cloud_sql_proxy
  1. Cloud SQL इंस्टेंस के खास जानकारी वाले पेज से कॉपी किए गए इंस्टेंस कनेक्शन के नाम से <INSTANCE_CONNECTION_NAME> को बदलने के बाद, प्रॉक्सी को इस तरह चलाएं.
./cloud_sql_proxy -instances=<INSTANCE_CONNECTION_NAME>=tcp:5432 &

अगर यह प्रोसेस पूरी हो जाती है, तो आपको आउटपुट की कुछ लाइनें दिखेंगी. इनके आखिर में Ready for new connections मैसेज होगा.

6. ऐप्लिकेशन को क्लोन करना और उसे लोकल लेवल पर टेस्ट करना

  1. सैंपल ऐप्लिकेशन के लिए रेपो को क्लोन करें और ऐप्लिकेशन चलाने के लिए ज़रूरी पैकेज इंस्टॉल करें.
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples/

cd nodejs-docs-samples/cloud-sql/postgres/knex

npm install
  1. इन एनवायरमेंट वैरिएबल को सेट करें:
export INSTANCE_CONNECTION_NAME='<PROJECT-ID>:<ZONE-ID>:<INSTANCE-ID>'
export DB_HOST='127.0.0.1:5432'
export DB_USER='postgres'
export DB_PASS='<PASSWORD>'
export DB_NAME='votesdb'
  1. सैंपल ऐप्लिकेशन शुरू करें.
npm start
  1. Cloud Shell में, वेब प्रीव्यू वेब की झलक दिखाने वाला आइकॉन पर क्लिक करें. इसके बाद, पोर्ट 8080 पर झलक देखें को चुनें.

पोर्ट 8080 मेन्यू आइटम पर झलक देखें

आपको अपने ब्राउज़र में, Tabs vs Spaces वोटिंग ऐप्लिकेशन इस तरह दिखेगा:

टैब बनाम स्पेस में वोटिंग वाले ऐप्लिकेशन का स्क्रीनशॉट

  1. कुछ वोट करने और डेटाबेस में कुछ डेटा सेव करने के लिए, बटन पर क्लिक करें.

7. सभी वोट देखने के लिए, एक पेज जोड़ें

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

  1. सैंपल ऐप्लिकेशन को बंद करने के लिए, Cloud Shell में Ctrl+c डालें.
  2. Cloud Shell Editor लॉन्च करने के लिए, Cloud Shell में &#39;एडिटर खोलें&#39; बटन बटन पर क्लिक करें.
  3. फ़ाइल एक्सप्लोरर में, nodejs-docs-samples/cloud-sql/postgres/knex/server.js ढूंढें और एडिटर में server.js फ़ाइल लोड करने के लिए, इस पर क्लिक करें.

getVotes फ़ंक्शन को जहां तय किया गया है उसके बाद यह कोड जोड़ें:

/**
 * Retrieve all vote records from the database.
 *
 * @param {object} pool The Knex connection object.
 * @returns {Promise}
 */
const getAllVotes = async pool => {
  return await pool
    .select('candidate', 'time_cast')
    .from('votes')
    .orderBy('time_cast', 'desc');
};
  1. '/getAllVotes' के लिए, यहां दिया गया कोड जोड़ें. यह कोड, अन्य रास्तों की परिभाषा के नीचे जोड़ें:
app.get('/getAllVotes', async (req, res) => {
  pool = pool || createPool();
  try {
    // Query all votes from the database.
    const votes = await getAllVotes(pool);

    res.render('allvotes.pug', {
      votes: votes,
    });
  } catch (err) {
    console.error(err);
    res
      .status(500)
      .send('Unable to load page; see logs for more details.')
      .end();
  }
});
  1. nodejs-docs-samples/cloud-sql/postgres/knex/views डायरेक्ट्री में allvotes.pug नाम की नई फ़ाइल बनाएं. यह कोड चिपकाएं:
doctype html
html(lang="en")
  head
    title Tabs VS Spaces

    link(rel="stylesheet", href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css")
    link(rel="stylesheet", href="https://fonts.googleapis.com/icon?family=Material+Icons")
    script(src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js")
  body

    nav(class="red lighten-1")
      div(class="nav-wrapper")
        a(href="#" class="brand-logo center") Tabs VS Spaces

    div(class="section")

      h4(class="header center") Recent Votes
      ul(class="container collection center")
        each vote in votes
          li(class="collection-item avatar")
            if vote.candidate.trim() === 'TABS'
              i(class="material-icons circle green") keyboard_tab
            else
              i(class="material-icons circle blue") space_bar
            span(class="title") A vote for <b>#{vote.candidate}</b>
            p was cast at #{vote.time_cast}.
  1. Cloud Shell पर वापस जाने के लिए, टर्मिनल खोलें बटन बटन पर क्लिक करें और यह कमांड चलाएं:
npm start
  1. वेब प्रीव्यू से ऐप्लिकेशन खोलें और देखें कि वह काम कर रहा है या नहीं. आपने जो नया पेज जोड़ा है उसे देखने के लिए, ब्राउज़र में यूआरएल के आखिर में /getAllVotes जोड़ें.

8. ऐप्लिकेशन में SQL Commenter चालू करना

अब आपको SQL Commenter को इंस्टॉल और चालू करना होगा. यह एक ओपन-सोर्स लाइब्रेरी है. यह ORM को, SQL स्टेटमेंट को एक्ज़ीक्यूट करने से पहले, उनमें टिप्पणियां जोड़ने की सुविधा देती है. SQLcommenter, कई ओआरएम और फ़्रेमवर्क के साथ काम करता है. इनमें वह फ़्रेमवर्क भी शामिल है जिसका इस्तेमाल सैंपल ऐप्लिकेशन करता है: Knex.js. क्वेरी की अहम जानकारी की सुविधा, इन टिप्पणियों में मौजूद जानकारी का इस्तेमाल करके, डेटाबेस की परफ़ॉर्मेंस के बारे में ऐप्लिकेशन के हिसाब से जानकारी देती है. साथ ही, यह पता लगाती है कि किस ऐप्लिकेशन कोड की वजह से समस्याएं आ रही हैं. परफ़ॉर्मेंस पर इसका असर कम पड़ता है. क्वेरी इनसाइट का दस्तावेज़ देखें.

  1. सैंपल ऐप्लिकेशन को बंद करने के लिए, Cloud Shell में Ctrl+c डालें.
  2. SQLcommenter के लिए ज़रूरी पैकेज इंस्टॉल करने के लिए, यह कमांड चलाएं:
  npm install @google-cloud/sqlcommenter-knex @opencensus/nodejs @opencensus/propagation-tracecontext @opentelemetry/api @opentelemetry/core --save
  1. Cloud Shell Editor लॉन्च करने के लिए, Cloud Shell में &#39;एडिटर खोलें&#39; बटन बटन पर क्लिक करें.
  2. फ़ाइल एक्सप्लोरर में, nodejs-docs-samples/cloud-sql/postgres/knex/server.js ढूंढें और एडिटर में server.js फ़ाइल लोड करने के लिए, इस पर क्लिक करें.
  3. फ़ाइल में यह कोड ढूंढें:
const process = require('process');

इसके नीचे, यह कोड जोड़ें:

const {wrapMainKnexAsMiddleware} = require('@google-cloud/sqlcommenter-knex');
  1. फ़ाइल में यह कोड ढूंढें:
// Set Content-Type for all responses for these routes.
app.use((req, res, next) => {
  res.set('Content-Type', 'text/html');
  next();
});

इसके नीचे, यह कोड जोड़ें:

app.use(wrapMainKnexAsMiddleware(Knex, {
    traceparent: true,
    tracestate: true,
    route: true,
    db_driver: true
}));

यह प्रोसेस पूरी होने के बाद, आपका कोड कुछ ऐसा दिखेगा:

...
// Require process, so we can mock environment variables.
const process = require('process');

const {wrapMainKnexAsMiddleware} = require('@google-cloud/sqlcommenter-knex');
const express = require('express');
const Knex = require('knex');
const fs = require('fs');

const app = express();
app.set('view engine', 'pug');
app.enable('trust proxy');

// Automatically parse request body as form data.
app.use(express.urlencoded({extended: false}));
// This middleware is available in Express v4.16.0 onwards
app.use(express.json());

// Set Content-Type for all responses for these routes.
app.use((req, res, next) => {
  res.set('Content-Type', 'text/html');
  next();
});

app.use(wrapMainKnexAsMiddleware(Knex, {
    traceparent: true,
    tracestate: true,
    route: true,
    db_driver: true
}));
...
  1. Cloud Shell पर वापस जाने के लिए, टर्मिनल खोलें बटन बटन पर क्लिक करें और यह कमांड चलाएं:
npm start
  1. Tabs vs Spaces ऐप्लिकेशन में, डेटाबेस में ज़्यादा डेटा जोड़ने के लिए, बटनों पर क्लिक करके कुछ और वोट डालें.

9. क्वेरी की परफ़ॉर्मेंस और एंड-टू-एंड ट्रेसिंग देखने के लिए, इनसाइट का इस्तेमाल करना

क्वेरी की अहम जानकारी वाले डैशबोर्ड की मदद से, Cloud SQL क्वेरी से जुड़ी समस्याओं को हल किया जा सकता है. इससे परफ़ॉर्मेंस से जुड़ी समस्याओं का पता लगाया जा सकता है. अहम जानकारी को ऐक्सेस करने के लिए, अपने Cloud SQL इंस्टेंस के लिए बाईं ओर मौजूद नेविगेशन में क्वेरी की अहम जानकारी चुनें.

डेटाबेस लोड - सभी क्वेरी का ग्राफ़

सबसे ऊपर दिखने वाले क्वेरी की अहम जानकारी वाले डैशबोर्ड में, डेटाबेस लोड - सभी क्वेरी ग्राफ़ दिखता है.

सभी क्वेरी का ग्राफ़

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

कौनसी क्वेरी सबसे ज़्यादा लोड के लिए ज़िम्मेदार हैं?

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

सबसे ज़्यादा खोजी गई क्वेरी की टेबल

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

ऐप्लिकेशन में क्वेरी लोड कहां से शुरू हो रहा है?

कारोबार के लॉजिक के हिसाब से टैग की गई क्वेरी की सूची देखने के लिए, QUERIES टेबल से TAGS टेबल पर टॉगल करें. इससे आपको ऐप्लिकेशन के हिसाब से ज़्यादा जानकारी मिलेगी.

सबसे ज़्यादा इस्तेमाल किए गए टैग की टेबल

TAGS टेबल में, डेटाबेस के लोड को अलग-अलग हिस्सों में बांटा गया है. इससे यह पता चलता है कि किस रूट से लोड जनरेट हुआ है. ऊपर दिए गए स्क्रीनशॉट में, देखा जा सकता है कि '/getAllVotes' रूट को पूरा होने में ज़्यादा समय लगता है और इससे औसतन ज़्यादा पंक्तियां मिलती हैं. इस मामले में, टेबल में दिखने वाला एक्ज़ीक्यूशन टाइम कोई समस्या नहीं है. हालांकि, डेटा के बारे में ज़्यादा जानकारी देखने के लिए, '/getAllVotes' वाली लाइन पर क्लिक करें.

क्वेरी को प्रोसेस होने में सामान्य से ज़्यादा समय क्यों लग रहा है?

क्वेरी प्लान देखने के लिए, क्वेरी प्लान के सैंपल ग्राफ़ में मौजूद बिंदु पर क्लिक करें.

क्वेरी प्लान के सैंपल

क्वेरी प्लान से पता चलता है कि PostgreSQL, क्वेरी को कैसे प्रोसेस करता है. इससे यह पता लगाना आसान हो जाता है कि क्या कोई ऐसी कार्रवाई है जिसकी वजह से क्वेरी को प्रोसेस होने में ज़्यादा समय लग रहा है.

कौनसा ऐप्लिकेशन कोड, परफ़ॉर्मेंस को धीमा कर रहा है?

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

कॉन्टेक्स्ट में मौजूद ट्रेस देखने के लिए, एंड टू एंड टैब पर क्लिक करें.

एंड-टू-एंड ट्रेस

10. स्टोरेज खाली करना और इसके बारे में ज़्यादा जानना

आपने Node.js ऐप्लिकेशन और Cloud SQL PostgreSQL डेटाबेस की मदद से, क्वेरी की परफ़ॉर्मेंस को मॉनिटर करने और उसकी जांच करने के लिए, क्वेरी की अहम जानकारी का इस्तेमाल करने का तरीका सीखा!

सफ़ाई

अगर आपको Cloud SQL इंस्टेंस को चालू नहीं रखना है, तो इसे अभी मिटाया जा सकता है.

gcloud sql instances delete my-instance

ज़्यादा जानें