Eventarc की मदद से, Dataडॉग के निगरानी से जुड़ी सूचनाओं को Google Cloud पर रूट करना (पार्ट 1)

1. परिचय

cb762f29e9183a3f.png 3c7ca8629bc25d9c.png

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

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

इस पहले कोडलैब में, आपको Eventarc की मदद से Data Dog निगरानी करने की आसान चेतावनी को Google Cloud पर भेजने का तरीका बताया जाएगा.

आपको क्या सीखने को मिलेगा

  • डेटाडॉग कंपनी का पता लगाने का तरीका.
  • Dataडॉग प्रोवाइडर के लिए चैनल सेट अप करने का तरीका.
  • इवेंट लॉग करने के लिए वर्कफ़्लो बनाने का तरीका.
  • चैनल के साथ Eventarc ट्रिगर बनाने का तरीका.
  • Dataडॉग मॉनिटर बनाने का तरीका.
  • Dataडॉग मॉनिटर, Eventarc ट्रिगर, और वर्कफ़्लो की जांच करने का तरीका.

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

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

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

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

bd84a6d3004737c5.png

  • प्रोजेक्ट का नाम, इस प्रोजेक्ट में हिस्सा लेने वाले लोगों का डिसप्ले नेम होता है. यह एक वर्ण स्ट्रिंग है, जिसका इस्तेमाल Google API नहीं करता. इसे कभी भी अपडेट किया जा सकता है.
  • प्रोजेक्ट आईडी, Google Cloud के सभी प्रोजेक्ट के लिए यूनीक होना चाहिए. साथ ही, आईडी को बदला नहीं जा सकता. सेट अप के बाद इसे बदला नहीं जा सकता. Cloud Console, एक यूनीक स्ट्रिंग अपने-आप जनरेट करता है; आम तौर पर, आपको उसके होने की कोई परवाह नहीं होती. ज़्यादातर कोडलैब में, आपको प्रोजेक्ट आईडी का रेफ़रंस देना होगा. आम तौर पर, इसे PROJECT_ID के तौर पर पहचाना जाता है. अगर आपको जनरेट किया गया आईडी पसंद नहीं है, तो किसी भी क्रम में एक और आईडी जनरेट किया जा सकता है. इसके अलावा, खुद भी आज़माया जा सकता है और देखें कि वह उपलब्ध है या नहीं. इस चरण के बाद इसे बदला नहीं जा सकता और प्रोजेक्ट के कुल समय तक बना रहेगा.
  • आपकी जानकारी के लिए, एक तीसरी वैल्यू यानी प्रोजेक्ट नंबर है. इसका इस्तेमाल कुछ एपीआई करते हैं. दस्तावेज़ में इन तीनों वैल्यू के बारे में ज़्यादा जानें.
  1. इसके बाद, आपको क्लाउड संसाधनों/एपीआई का इस्तेमाल करने के लिए, Cloud Console में बिलिंग चालू करनी होगी. इस कोडलैब का इस्तेमाल करने पर, आपको ज़्यादा पैसे नहीं चुकाने होंगे. इस ट्यूटोरियल के अलावा, संसाधनों को बंद करने के लिए कि आपको बिलिंग न करनी पड़े. इसके लिए, अपने बनाए गए संसाधनों को मिटाएं या पूरा प्रोजेक्ट मिटाएं. Google Cloud के नए उपयोगकर्ता, 300 डॉलर के मुफ़्त ट्रायल वाले प्रोग्राम में हिस्सा ले सकते हैं.

Cloud Shell शुरू करना

Google Cloud को आपके लैपटॉप से, कहीं से भी ऑपरेट किया जा सकता है. हालांकि, इस कोडलैब में Google Cloud Shell का इस्तेमाल किया जा रहा है. यह क्लाउड में चलने वाला कमांड लाइन एनवायरमेंट है.

Google Cloud Console में जाकर, सबसे ऊपर दाईं ओर मौजूद टूलबार पर क्लाउड शेल आइकॉन पर क्लिक करें:

55efc1aaa7a4d3ad.png

प्रावधान करने और एनवायरमेंट से कनेक्ट होने में कुछ ही समय लगेगा. उसके पूरा हो जाने पर, आपको कुछ ऐसा दिखाई देगा:

7ffe5cbb04455448.png

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

gcloud सेट अप करें

Cloud Shell में, अपना प्रोजेक्ट आईडी सेट करें और उसे PROJECT_ID वैरिएबल के तौर पर सेव करें.

साथ ही, REGION वैरिएबल को us-central1 पर सेट करें. इस इलाके में आपको बाद में संसाधन मिलेंगे.

PROJECT_ID=[YOUR-PROJECT-ID]
REGION=us-central1
gcloud config set core/project $PROJECT_ID

एपीआई चालू करें

सभी ज़रूरी सेवाएं चालू करना:

gcloud services enable \
  eventarc.googleapis.com \
  eventarcpublishing.googleapis.com \
  workflows.googleapis.com \
  workflowexecutions.googleapis.com

3. Dataडॉग की सेवा देने वाली कंपनी के बारे में जानें

Eventarc सेवा देने वाली कंपनी ऐसी सेवा या इकाई है जो सीधे Google Cloud पर इवेंट भेज सकती है. इसके बाद, ये इवेंट आपके प्रोजेक्ट पर भेज दिए जाते हैं. Dataडॉग जैसी तीसरे पक्ष की कंपनियां, Google Cloud की सेवा नहीं देने वाली ऐसी कंपनियां हैं जिन्हें Eventarc की मदद से Google Cloud के साथ इंटिग्रेट किया गया है.

Cloud Shell में, Google Cloud और तीसरे पक्ष की सेवा देने वाली कंपनियों की सूची देखने के लिए, यह कमांड चलाएं:

gcloud eventarc providers list

इसमें Google Cloud और तीसरे पक्ष की सेवा देने वाली कंपनियों की सूची दी गई है. साथ ही, उन जगहों की जानकारी भी दी गई है जहां ये उपलब्ध हैं:

NAME: storage.googleapis.com
LOCATION: asia

NAME: cloudaudit.googleapis.com
LOCATION: asia

NAME: pubsub.googleapis.com
LOCATION: asia

...

आप इस आदेश से सूची को तीसरे पक्ष की सेवा देने वाली कंपनियों के लिए छोटा कर सकते हैं:

gcloud eventarc providers list --filter='eventTypes.type!~^google*'

आपको सूची में Dataडॉग दिखेगा:

NAME: datadog
LOCATION: us-central1

डेटाडॉग कंपनी के बारे में बताने से भी पता चल सकता है कि वह किन इवेंट को सपोर्ट करता है:

gcloud eventarc providers describe datadog --location $REGION

displayName: Datadog
eventTypes:
- type: datadog.v1.alert
name: projects/project-id/locations/us-central1/providers/datadog

4. चैनल सेट अप करना

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

चैनल बनाना

gcloud का इस्तेमाल करके, Datafood की सेवा देने वाली कंपनी के लिए चैनल बनाया जा सकता है:

CHANNEL_NAME=datadog-channel
gcloud eventarc channels create $CHANNEL_NAME \
   --provider datadog \
   --location $REGION

Google Cloud Console में, Eventarc पेज के चैनल सेक्शन से भी इसे बनाया जा सकता है:

d03a7173b25e5ea6.png

चैनल की जानकारी वापस पाना

चैनल बनाने के बाद, gcloud से चैनल की जानकारी पाएं:

gcloud eventarc channels describe $CHANNEL_NAME --location $REGION

आउटपुट इससे मिलता-जुलता होना चाहिए:

activationToken: so5g4Kdasda7y2MSasdaGn8njB2
createTime: '2022-03-09T09:53:42.428978603Z'
name: projects/project-id/locations/us-central1/channels/datadog-channel
provider: projects/project-id/locations/us-central1/providers/datadog
pubsubTopic: projects/project-id/topics/eventarc-channel-us-central1-datadog-channel-077
state: PENDING
uid: 183d3323-8cas-4e95-8d72-7d8c8b27cf9e
updateTime: '2022-03-09T09:53:48.290217299Z'

इसी तरह, Google Cloud Console में जाकर चैनल देखा जा सकता है:

80d8b2b6a46cb4c5.png

चैनल की स्थिति से चैनल की स्थिति का पता चलता है. यह इनमें से कोई एक हो सकता है:

  • PENDING—चैनल बना दिया गया है और सेवा देने वाली कंपनी के साथ कनेक्शन बनाने के लिए, एक ऐक्टिवेशन टोकन उपलब्ध है. चैनल की स्थिति PENDING से बदलकर ACTIVE करने के लिए, सेवा देने वाले व्यक्ति या कंपनी को यह टोकन देना ज़रूरी है. साथ ही, चैनल बनाने के 24 घंटे के अंदर इसे कनेक्ट करने के लिए, इसका इस्तेमाल किया जाना चाहिए.
  • ACTIVE—चैनल को सेवा देने वाली कंपनी से कनेक्ट कर दिया गया है. सेवा देने वाली कंपनी से इवेंट पाने और उन्हें रूट करने के लिए, ACTIVE चैनल तैयार है.
  • INACTIVE—चैनल को न तो इवेंट मिल सकते हैं और न ही उसे फिर से चालू किया जा सकता है. सेवा देने वाली कंपनी को या तो इस चैनल से डिसकनेक्ट कर दिया गया है या चैनल ऐक्टिवेशन टोकन की समयसीमा खत्म हो गई है और सेवा देने वाली कंपनी कनेक्ट नहीं है. सेवा देने वाली किसी कंपनी के साथ फिर से संबंध बनाने के लिए, आपको उसका नया चैनल बनाना होगा.

ऐक्टिवेशन टोकन, एक बार इस्तेमाल किया जा सकने वाला और समय की पाबंदी वाला टोकन होता है. इसका इस्तेमाल सेवा देने वाली कंपनी और सदस्य के प्रोजेक्ट के बीच कनेक्शन बनाने के लिए किया जाता है. चैनल बनाते समय चुना गया कोई व्यक्ति ही टोकन का इस्तेमाल कर सकता है. यह टोकन, चैनल बनाने के 24 घंटे बाद तक मान्य होता है. 24 घंटे के बाद, चैनल INACTIVE हो जाता है.

सेवा देने वाली कंपनी को चैनल की जानकारी भेजना

आपको डेटाडॉग की सेवा देने वाली कंपनी को चैनल की यह जानकारी भेजनी होगी:

  • चैनल का नाम (उदाहरण projects/project-id/locations/us-central1/channels/datadog-channel)
  • ऐक्टिवेशन टोकन (उदाहरण के लिए, so5g4Kdasda7y2MSasdaGn8njB2)

Dataडॉग में लॉगिन करें. इसके बाद, इंटिग्रेशन पेज पर जाएं और पक्का करें कि Google Eventarc इंटिग्रेशन इंस्टॉल किया गया हो:

9736bd517e1fa19a.png

Google Eventarc के कॉन्फ़िगरेशन सेक्शन में, चैनल का पूरा नाम और ऐक्टिवेशन टोकन डालें:

a17f522075cdd92e.png

अब आपको चैनलों की सूची में चैनल दिखने लगेगा. कुछ सेकंड के बाद, Google Cloud Console में भी चैनल चालू हो जाएगा:

8399d528ccbd4c20.png

अब आप चैनल इस्तेमाल करने के लिए तैयार हैं!

5. वर्कफ़्लो बनाएं

सेवा देने वाली कंपनी से इवेंट की जानकारी पाने के लिए, आपको Google Cloud में एक डेस्टिनेशन की ज़रूरत होगी. Eventarc में इवेंट के कई डेस्टिनेशन इस्तेमाल किए जा सकते हैं. जैसे, Cloud Run, Workflows, Kubernetes सेवाएं. ऐसी स्थिति में, सिर्फ़ मिले इवेंट को लॉग करने के लिए वर्कफ़्लो डिप्लॉय करें.

इस कॉन्टेंट वाली workflow-datadog1.yaml फ़ाइल बनाएं:

main:
  params: [event]
  steps:
  - logStep:
      call: sys.log
      args:
        data: ${event}

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

वर्कफ़्लो को डिप्लॉय करें:

WORKFLOW_NAME=workflow-datadog1
gcloud workflows deploy $WORKFLOW_NAME \
  --source workflow-datadog1.yaml \
  --location $REGION

वर्कफ़्लो लागू हो गया है, लेकिन यह अब तक नहीं चल रहा है. Dataडॉग की चेतावनी मिलने पर, यह Eventarc ट्रिगर की मदद से लागू होगा.

6. Eventarc ट्रिगर बनाएं

अब आप Eventarc ट्रिगर की मदद से Dataडॉग प्रोवाइडर के इवेंट को Workflows के साथ कनेक्ट करने के लिए तैयार हैं.

सेवा खाता कॉन्फ़िगर करना

ट्रिगर बनाते समय, आपके पास eventarc.eventReceiver भूमिका वाला सेवा खाता होना चाहिए. इसके लिए, खास सेवा खाता बनाएं या डिफ़ॉल्ट कंप्यूट सेवा खाते का इस्तेमाल करें.

इसे आसानी से समझने के लिए, कंप्यूटर के डिफ़ॉल्ट सेवा खाते का इस्तेमाल करें और eventarc.eventReceiver की भूमिका दें:

PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)')

gcloud projects add-iam-policy-binding $PROJECT_ID \
    --member serviceAccount:$PROJECT_NUMBER-compute@developer.gserviceaccount.com \
    --role roles/eventarc.eventReceiver

ट्रिगर बनाना

Data Dog चैनल, इवेंट टाइप, और वर्कफ़्लो डेस्टिनेशन के साथ एक ट्रिगर बनाएं:

gcloud eventarc triggers create datadog-trigger1 \
  --location $REGION \
  --destination-workflow $WORKFLOW_NAME \
  --destination-workflow-location $REGION \
  --channel $CHANNEL_NAME \
  --event-filters type=datadog.v1.alert \
  --service-account $PROJECT_NUMBER-compute@developer.gserviceaccount.com

ट्रिगर की सूची बनाकर, यह देखा जा सकता है कि बनाया गया नया ट्रिगर चालू है या नहीं:

gcloud eventarc triggers list --location $REGION

NAME: datadog-trigger1
TYPE: datadog.v1.alert
DESTINATION: Workflows: workflow-datadog1
ACTIVE: Yes

7. Datadogfood मॉनिटर बनाना

अब आपको Dataडॉग मॉनिटर बनाना होगा और उसे Eventarc से कनेक्ट करना होगा.

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

Datadogfood में मॉनिटर बनाने के लिए, Datafood में लॉग इन करें. मुख्य मेन्यू में Monitors पर कर्सर घुमाएं और सब-मेन्यू में New Monitor पर क्लिक करें. मॉनिटर कई तरह के होते हैं. Metric मॉनिटर टाइप चुनें.

New Monitor पेज में, पहले और दूसरे चरण के लिए डिफ़ॉल्ट सेटिंग छोड़ें.

  • तीसरे चरण में, Alert threshold को 1 पर सेट करें
  • चौथे चरण में, Test monitor for Eventarc को मॉनिटर के नाम के तौर पर सेट करें. साथ ही, Notify your team को @eventarc_<your-project-id>_<your-region>_<your-channel-name> पर सेट करें

अगले चरण में मॉनिटर की जांच करने के लिए, मॉनिटर पेज को खुला रखें.

8. मॉनिटर और ट्रिगर की जांच करें

Dataडॉग मॉनिटर और Eventarc ट्रिगर की जांच करने के लिए, मॉनिटर को मैन्युअल तरीके से ट्रिगर करें.

मॉनिटर बनाने वाले पेज में सबसे नीचे, Test Notifications बटन पर क्लिक करें:

32ccf1cc47b01150.png

इसके बाद, Run Test बटन पर क्लिक करें:

7f2ff70ec673007b.png

इसे मॉनिटर में स्टेट ट्रांज़िशन की तरह सिम्युलेट करना चाहिए और Eventarc इवेंट को ट्रिगर करना चाहिए.

workflow-datadog1 का वर्कफ़्लो देखें. आपको दिखेगा कि नया कोड लागू है:

adf7cd97ca2e8da7.png

स्क्रिप्ट चलाने की जानकारी देखें. आपको वर्कफ़्लो के इनपुट और लॉग में, मॉनिटरिंग की सूचना से जनरेट किया गया Datafood इवेंट टाइप datadog.v1.alert दिखेगा:

dc78fd8460e5fc0e.png

9. बधाई हो

बधाई हो, आपने कोडलैब पूरा कर लिया है! वर्कफ़्लो की मदद से Datadogfood की निगरानी से जुड़ी सूचनाओं का जवाब देने का तरीका जानने के लिए, दूसरे कोडलैब पर जाएं.

हमने इन विषयों के बारे में बताया

  • डेटाडॉग कंपनी का पता लगाने का तरीका.
  • Dataडॉग प्रोवाइडर के लिए चैनल सेट अप करने का तरीका.
  • इवेंट लॉग करने के लिए वर्कफ़्लो बनाने का तरीका.
  • चैनल के साथ Eventarc ट्रिगर बनाने का तरीका.
  • Dataडॉग मॉनिटर बनाने का तरीका.
  • Dataडॉग मॉनिटर, Eventarc ट्रिगर, और वर्कफ़्लो की जांच करने का तरीका.