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

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

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

इस कोडलैब में, आपको PostgreSQL के लिए Cloud SQL इंस्टेंस सेट अप करने का तरीका बताया जाएगा. साथ ही, 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 प्रॉक्सी इंस्टॉल करना और लॉन्च करना

ऐप्लिकेशन और डेटाबेस इंस्टेंस के बीच कम्यूनिकेशन के लिए, 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/index.js ढूंढें. इसके बाद, एडिटर में index.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 कई ORM और फ़्रेमवर्क के साथ काम करता है. इनमें वह फ़्रेमवर्क भी शामिल है जिसका इस्तेमाल सैंपल ऐप्लिकेशन करता है: 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 इंस्टेंस के लिए बाईं ओर मौजूद नेविगेशन में, क्वेरी इनसाइट चुनें.

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

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

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

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

कौनसी क्वेरी की वजह से सबसे ज़्यादा लोड पड़ता है?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

सफ़ाई

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

gcloud sql instances delete my-instance

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