هشدارها: بررسی Uptime برای موضوعات Pub/Sub

هشدارها:
بررسی Uptime برای موضوعات Pub/Sub

درباره این codelab

subjectآخرین به‌روزرسانی: ژوئیه ۷, ۲۰۲۳
account_circleنویسنده: Aron Eidelman

1. معرفی

آخرین به روز رسانی: 21 ژوئن 2023

هشدار در مورد بررسی های Uptime برای در دسترس بودن

هشدار در مورد بررسی های زمان به کار به شما این امکان را می دهد تا به سرعت مسائلی را که ممکن است بر خدمات شما تأثیر بگذارد شناسایی و حل کنید. با هشدار در مورد قطعی، می توانید اقداماتی را برای به حداقل رساندن تأثیر بر کاربران و مشتریان خود انجام دهید.

بررسی های آپتایم در فواصل زمانی انجام می شود که کوتاه ترین آن 60 ثانیه است. در صورت نیاز به جزئیات بیشتر از 60 ثانیه، نظارت بر کدهای خطا به عنوان رویدادهای پویا از طریق هشدارهای مبتنی بر گزارش به عنوان یک نشانگر اضافی در دسترس نبودن ممکن است مفید باشد. اگر فاصله زمانی 60 ثانیه یا بیشتر قابل قبول است، بررسی های Uptime راهی آسان برای اندازه گیری سرویس شما با پیکربندی کمی اضافی است.

اگر سرویسی در دسترس نباشد، بررسی آپتایم مشکل را تشخیص می دهد حتی اگر ترافیکی وجود نداشته باشد. از سوی دیگر، ترافیک می تواند تحت تأثیر عواملی مانند تعمیر و نگهداری، ارتقاء و حتی عوامل خارجی سیستم، مانند آب و هوای بد یا رویدادهای ورزشی که استفاده را منحرف می کند، قرار گیرد.

برای اطلاعات بیشتر در مورد زمان استفاده از بررسی‌های آپتایم، لطفاً به اطمینان از زمان کار منابع Google Cloud خود مراجعه کنید.

موضوعات میخانه / فرعی به عنوان یک کانال اعلان هشدار

یک موضوع Pub/Sub را می توان به عنوان یک کانال اعلان Google Cloud Monitoring برای ارسال هشدارها به اشتراک Pub/Sub استفاده کرد. این به شما امکان می دهد تا هشدارهای Cloud Monitoring خود را با سیستم های دیگر، از جمله خدمات اطلاع رسانی شخص ثالث، ادغام کنید.

برای استفاده از موضوع Pub/Sub به عنوان کانال اطلاع رسانی، ابتدا باید یک موضوع Pub/Sub و یک اشتراک Pub/Sub ایجاد کنید. سپس، باید یک کانال اطلاع رسانی Cloud Monitoring ایجاد کنید که از موضوع Pub/Sub به عنوان مقصد استفاده می کند.

هنگامی که یک هشدار فعال می شود، Cloud Monitoring پیامی به موضوع Pub/Sub ارسال می کند. پس از آن، مشترک اشتراک Pub/Sub می تواند پیام را پردازش کرده و اقدام مناسب را انجام دهد.

چیزی که خواهی ساخت

در این کد لبه، شما قصد دارید یک برنامه را مستقر کنید، یک موضوع Pub/Sub ایجاد کنید، و یک هشدار بررسی آپتایم برای اپلیکیشنی ایجاد کنید که از موضوع Pub/Sub به عنوان کانال اطلاع رسانی استفاده می کند.

چیزی که یاد خواهید گرفت

  • چگونه یک موضوع Pub/Sub ایجاد کنیم
  • نحوه ایجاد یک بررسی و هشدار در زمان کار

این کد لبه روی ایجاد یک هشدار برای بررسی آپتایم متمرکز شده است. مفاهیم غیر مرتبط و کد برنامه حذف شده و برای شما ارائه شده است تا به سادگی کپی و جایگذاری کنید.

آنچه شما نیاز دارید

  • یک حساب Google Cloud با مجوزهای زیر:
  • استقرار برنامه های Cloud Run
  • موضوعات Pub/Sub ایجاد کنید
  • چک های آپتایم ایجاد کنید
  • ایجاد هشدار

2. در حال راه اندازی

یک پروژه Google Cloud را انتخاب یا ایجاد کنید

برای انتخاب یک پروژه موجود، از منوی کشویی استفاده کنید:

b35bf95b8bf3d5d8.png

برای ایجاد یک پروژه جدید در Google Cloud، می توانید این مراحل را دنبال کنید:

  1. به کنسول Google Cloud Platform بروید.
  2. روی دکمه Create Project کلیک کنید.
  3. یک نام برای پروژه خود وارد کنید.
  4. یک حساب صورتحساب برای پروژه خود انتخاب کنید.
  5. روی دکمه Create کلیک کنید.

پروژه شما ایجاد می شود و به داشبورد پروژه منتقل می شوید. از آنجا می توانید استفاده از سرویس های Google Cloud را شروع کنید.

در اینجا برخی از جزئیات اضافی در مورد هر مرحله آورده شده است:

  • نام: نام پروژه شما باید در سازمان شما منحصر به فرد باشد.
  • حساب صورت‌حساب: می‌توانید از یک حساب صورت‌حساب موجود استفاده کنید یا یک حساب جدید ایجاد کنید.
  • ایجاد: پس از وارد کردن تمام اطلاعات مورد نیاز، روی دکمه Create کلیک کنید تا پروژه شما ایجاد شود.

برای اطلاعات بیشتر، لطفاً به مستندات Google Cloud درباره ایجاد پروژه‌ها مراجعه کنید.

3. برنامه API را مستقر کنید

نمونه برنامه یا API در مورد چیست؟

برنامه ما یک برنامه ساده Inventory API است که یک نقطه پایانی REST API را با چند عملیات برای فهرست کردن اقلام موجودی و دریافت تعداد موجودی اقلام خاص نشان می دهد.

هنگامی که API را مستقر می کنیم و فرض می کنیم که در https://<somehost> میزبانی می شود، می توانیم به صورت زیر به نقاط انتهایی API دسترسی پیدا کنیم:

https://<somehost>/inventory

این همه اقلام محصول را با سطوح موجودی موجود فهرست می کند.

https://<somehost>/inventory/{productid}

این یک رکورد واحد با سطح موجودی محصول و موجودی آن محصول را فراهم می کند.

داده های پاسخ برگشتی فرمت JSON هستند.

توجه : این برنامه API فقط برای اهداف آزمایشی است و اجرای API ایمن و قوی را نشان نمی دهد. منظور این است که یک برنامه کاربردی سریع در دسترس ما باشد تا هدف کلیدی آزمایشگاه، یعنی عملیات Google Cloud را بررسی کنیم.

داده های نمونه و درخواست/پاسخ API

این برنامه برای ساده نگه داشتن کارها توسط یک پایگاه داده در باطن ارائه نمی شود. این شامل 3 شناسه محصول نمونه و سطح موجودی موجود آنها است.

شناسه محصول

سطح موجودی در دست

I-1

10

I-2

20

I-3

30

نمونه درخواست و پاسخ API در زیر نشان داده شده است:

درخواست API

پاسخ API

https://<somehost>/inventory

[ { "I-1": 10، "I-2": 20، "I-3": 30 }]

https://<somehost>/inventory/I-1

{ "productid": "I-1", "qty": 10}

https://<somehost>/inventory/I-2

{ "productid": "I-2", "qty": 20}

https://<somehost>/inventory/I-200

{ "productid": I-200، "qty": -1}

Repository را شبیه سازی کنید

در حالی که Google Cloud را می توان از راه دور از لپ تاپ شما کار کرد، در این کد لبه از Google Cloud Shell استفاده خواهید کرد، یک محیط خط فرمان که در Cloud اجرا می شود.

از کنسول GCP روی نماد Cloud Shell در نوار ابزار بالا سمت راست کلیک کنید:

bce75f34b2c53987.png

تهیه و اتصال به محیط فقط چند لحظه طول می کشد. وقتی تمام شد، باید چیزی شبیه به این را ببینید:

f6ef2b5f13479f3a.png

این ماشین مجازی با تمام ابزارهای توسعه مورد نیاز شما بارگذاری شده است. این یک فهرست اصلی 5 گیگابایتی دائمی را ارائه می دهد و در Google Cloud اجرا می شود و عملکرد و احراز هویت شبکه را تا حد زیادی افزایش می دهد. تمام کارهای شما در این آزمایشگاه به سادگی با یک مرورگر قابل انجام است.

gcloud را راه اندازی کنید

در Cloud Shell، ID پروژه خود را تنظیم کرده و آن را به عنوان متغیر PROJECT_ID ذخیره کنید.

PROJECT_ID=[YOUR-PROJECT-ID]

project config set gcloud $PROJECT_ID

حال دستور زیر را اجرا کنید:

clone git $ https://github.com/rominirani/cloud-code-sample-repository.git

با این کار یک پوشه با عنوان cloud-code-sample-repository در این پوشه ایجاد می شود.

(اختیاری) برنامه را در Cloud Shell اجرا کنید

با دنبال کردن مراحل زیر می توانید برنامه را به صورت محلی اجرا کنید:

  1. از ترمینال، با دستور زیر به نسخه Python API بروید:

$ cd cloud-code-sample-repository

$ cd python-flask-api

  1. در ترمینال دستور زیر را ارائه دهید (در زمان نگارش، Cloud Shell با Python 3.9.x نصب شده است و ما از نسخه پیش فرض استفاده می کنیم. اگر قصد دارید آن را به صورت محلی روی لپ تاپ خود اجرا کنید، می توانید با Python 3.8+ استفاده کنید. ) :

$ python app.py

  1. می توانید دستور زیر را برای راه اندازی سرور پایتون به صورت محلی اجرا کنید.

1f798fbddfdc2c8e.png46edf454cc70c5a6.png

روی Preview در پورت 8080 کلیک کنید. 5. با این کار یک پنجره مرورگر باز می شود. خطای 404 را خواهید دید و این مشکلی ندارد. URL را تغییر دهید و آن را به داشتن /inventory بعد از نام میزبان تغییر دهید.

به عنوان مثال در دستگاه من، به نظر می رسد این است:

https://8080-cs-557561579860-default.cs-asia-southeast1-yelo.cloudshell.dev/inventory

با این کار لیست اقلام موجودی همانطور که قبلا توضیح داده شد نمایش داده می شود:

709d57ee2f0137e4.png

  1. اکنون می توانید با رفتن به ترمینال و فشار دادن Ctrl-C سرور را متوقف کنید

برنامه را مستقر کنید

اکنون این برنامه API را در Cloud Run مستقر خواهیم کرد. این فرآیند شامل استفاده از سرویس گیرنده خط فرمان gcloud برای اجرای فرمان استقرار کد در Cloud Run بود.

از ترمینال دستور gcloud زیر را بدهید:

$ gcloud run deploy --source .

با این کار چندین سوال از شما پرسیده می شود که در زیر به برخی از آنها اشاره می شود:

  1. نام سرویس (python-flask-api): یا با این پیش فرض بروید یا چیزی مانند my-inventory-api را انتخاب کنید
  2. API [run.googleapis.com] در پروژه [613162942481] فعال نیست. آیا می‌خواهید فعال کنید و دوباره امتحان کنید (چند دقیقه طول می‌کشد)؟ (y/N)؟ Y
  3. لطفاً یک منطقه را مشخص کنید: 31 را انتخاب کنید (us-west-1)
  4. API [artifactregistry.googleapis.com] در پروژه [613162942481] فعال نیست. آیا می‌خواهید فعال کنید و دوباره امتحان کنید (چند دقیقه طول می‌کشد)؟ (y/N)؟ Y
  5. استقرار از منبع به یک مخزن Artifact Registry Docker برای ذخیره کانتینرهای ساخته شده نیاز دارد. یک مخزن به نام [cloud-run-source-deploy] در منطقه [us-west1] ایجاد خواهد شد.
  6. آیا می خواهید ادامه دهید (Y/n)؟ Y
  7. فراخوان‌های احراز هویت نشده به [my-inventory-api] (y/N) اجازه داده شود؟ Y

در نهایت، این فرآیند دریافت کد منبع شما، ذخیره سازی آن، فشار دادن آن به رجیستری Artifact و سپس استقرار سرویس Cloud Run + ویرایش را آغاز می کند. شما باید در این فرآیند صبور باشید (3-4 دقیقه طول می کشد) و باید مشاهده کنید که با نشانی اینترنتی سرویس به شما نشان داده شده است.

یک نمونه اجرا در زیر نشان داده شده است:

87ba8dbf88e8cfa4.png

برنامه را تست کنید

اکنون که برنامه را در Cloud Run مستقر کرده ایم، می توانید به صورت زیر به برنامه API دسترسی داشته باشید:

  1. به آدرس سرویس مربوط به مرحله قبل توجه کنید. به عنوان مثال، در تنظیمات من، به صورت https://my-inventory-api-bt2r5243dq-uw.a.run.app نشان داده می شود. بیایید این را <SERVICE_URL> بنامیم.
  2. یک مرورگر باز کنید و به 3 URL زیر برای نقاط پایانی API دسترسی پیدا کنید:
  3. <SERVICE_URL>/inventory
  4. <SERVICE_URL>/inventory/I-1
  5. <SERVICE_URL>/inventory/I-100

باید مطابق مشخصاتی باشد که در بخش قبلی با نمونه درخواست و پاسخ API ارائه کرده بودیم.

جزئیات خدمات را از Cloud Run دریافت کنید

ما سرویس API خود را در Cloud Run، یک محیط محاسباتی بدون سرور، مستقر کردیم. ما می‌توانیم در هر زمانی از سرویس Cloud Run از طریق کنسول Google Cloud بازدید کنیم.

از منوی اصلی به Cloud Run بروید. با این کار لیست سرویس هایی که در Cloud Run اجرا می کنید نمایش داده می شود. باید سرویسی را که به تازگی مستقر کرده اید ببینید. بسته به نامی که انتخاب کرده اید، باید چیزی شبیه به این ببینید:

2633965c4bc957cc.png

برای مشاهده جزئیات روی نام سرویس کلیک کنید. جزئیات نمونه در زیر نشان داده شده است:

33042ae64322ce07.png

به URL توجه کنید، که چیزی نیست جز نشانی اینترنتی سرویس که می توانید آن را به مرورگر وارد کنید و به Inventory API که ما به تازگی راه اندازی کرده ایم، دسترسی پیدا کنید. معیارها و جزئیات دیگر را بررسی کنید.

بیایید اکنون با Google Cloud Operations Suite شروع کنیم.

4. یک Pub/Sub Topic برای دریافت اعلان هشدار ایجاد کنید

برای ایجاد یک موضوع Pub/Sub، می‌توانید این مراحل را در Google Cloud Console دنبال کنید:

  1. Pub/Sub را در کادر جستجو جستجو کنید و به Pub/Sub بروید. 935028bd8f6328ef.png
  2. اگر قبلاً آنجا نیستید، روی تب Topics کلیک کنید. 7fd8bf91386a88fd.png
  3. روی دکمه Create Topic کلیک کنید. cd9d197f9023c41b.png
  4. یک نام برای موضوع خود وارد کنید.

173f313b4a3c4934.png

  1. روی دکمه Create کلیک کنید. ca9a02477da21a44.png
  2. نام موضوع را با استفاده از دکمه نماد کپی کپی کنید. برای بخش بعدی به آن نیاز خواهید داشت.

20848252ee83df93.png

5. یک چک آپتایم ایجاد کنید

برای ایجاد بررسی آپتایم برای یک برنامه Google Cloud Run:

  1. به کنسول Google Cloud Platform بروید.
  2. روی تب Monitoring کلیک کنید.
  3. روی تب Uptime Checks کلیک کنید.
  4. نزدیک بالای صفحه، روی دکمه Create Uptime Check کلیک کنید.

96561799ca500777.png

  1. از مقادیر زیر استفاده کنید:
  2. پروتکل: HTTPS
  3. نوع منبع: URL
  4. نام میزبان: بخش URL سرویس Cloud Run را بدون https وارد کنید. یک نمونه در صفحه زیر است. اگر مطمئن نیستید که URL سرویس چیست، از Google Cloud Console اصلی به Cloud Run بروید و همانطور که قبلا توضیح داده شد به جزئیات سرویس Cloud Run بروید تا URL Service را دریافت کنید.
  5. مسیر: سالم
  6. فرکانس بررسی: 1 دقیقه

342865c6d921ff41.png

  1. روی Continue کلیک کنید
  2. روشن کردن مطابقت محتوا فعال است
  3. "All Izz Well" را در قسمت Response Content وارد کنید. این رشته از قبل در برنامه زمانی که پاسخ های کامل را ارسال می کند، موجود است.
  4. نگاه داشتن

6c9ad336b5479478.png

  1. کد پاسخ HTTP قابل قبول را روی کلاس های کد پاسخ و 2xx به عنوان تنها کلاس کد پاسخ تنظیم کنید. به این ترتیب، فقط کدهای پاسخ با 2xx برای رشته ارزیابی می شوند و هر چیز دیگری به طور خودکار به عنوان یک بررسی ناموفق محسوب می شود. 5a75d8a9e8a11dd4.png
  2. روی Continue کلیک کنید
  3. موضوع Cloud Pub/Sub را به عنوان کانال اعلان انتخاب کنید و روی OK کلیک کنید

d00db9f6ac56d07c.png

  1. روی Continue کلیک کنید
  2. یک عنوان قابل تشخیص اضافه کنید d639135da780cce3.png
  3. روی دکمه Test کلیک کنید

968753a66ed43a75.png

  1. پس از آماده شدن روی دکمه Create کلیک کنید 72e5e2081a36d902.png

بررسی آپتایم شما ایجاد می شود و شروع به نظارت بر برنامه Cloud Run شما می کند. می‌توانید وضعیت چک آپ‌تایم خود را در برگه بررسی‌های زمان کار مشاهده کنید.

3fd026b0c07ef4ec.png

6. تبریک می گویم

تبریک می‌گوییم، شما با موفقیت بررسی Uptime خود را برای ارسال هشدار به Pub/Sub پیکربندی کردید!