1. مقدمة
تاريخ آخر تعديل: 28 تموز (يوليو) 2023
ما هي Google Cloud Operations Suite؟
Google Cloud Operations Suite هي منصة تتيح لك مراقبة أداء التطبيقات وتحديد المشاكل وحلّها وتحسينها في بيئة Google Cloud. تشمل الركائز الرئيسية لحزمة Cloud Operations ما يلي: مراقبة السحابة الإلكترونية وتسجيل السحابة الإلكترونية وتتبُّع السحابة الإلكترونية.
يمكنك مشاهدة هذا الفيديو للحصول على نظرة عامة وشاملة عن عمليات Google Cloud.
التطبيق الذي ستصممه
في هذا الدرس التطبيقي حول الترميز، سيتم نشر نموذج لواجهة برمجة تطبيقات على Google Cloud. بعد ذلك، ستستكشف ميزات متعدّدة في "مراقبة السحابة الإلكترونية" في ما يتعلّق بواجهة برمجة التطبيقات، وسيتم ضبطها.
ما ستتعرّف عليه
- استخدام Cloud Shell في Google Cloud لنشر نموذج تطبيق في Cloud Run
- استخدام ميزات مراقبة Google Cloud، مثل لوحات البيانات والتنبيهات وعمليات التحقّق من وقت التشغيل ومراقبة SLI/SLO والمزيد
المتطلبات
- إصدار حديث من Chrome (الإصدار 74 أو الإصدارات الأحدث)
- حساب Google Cloud ومشروع Google Cloud
2. الإعداد والمتطلبات
إعداد البيئة ذاتيًا
إذا لم يكن لديك حساب على Google (Gmail أو Google Apps)، عليك إنشاء حساب. سجِّل الدخول إلى وحدة تحكُّم Google Cloud Platform ( console.cloud.google.com) وأنشِئ مشروعًا جديدًا.
- اسم المشروع هو الاسم المعروض للمشاركين في هذا المشروع. وهي سلسلة أحرف لا تستخدمها Google APIs. ويمكنك تعديله في أي وقت.
- يجب أن يكون معرّف المشروع فريدًا في جميع مشاريع Google Cloud وأن يكون ثابتًا (لا يمكن تغييره بعد ضبطه). تنشئ Cloud Console سلسلة فريدة تلقائيًا، ولا يهمّك عادةً ما هي. في معظم الدروس التطبيقية حول الترميز، يجب الرجوع إلى رقم تعريف المشروع (يتم تحديده عادةً على أنّه PROJECT_ID). إذا لم يعجبك رقم التعريف الذي تم إنشاؤه، يمكنك إنشاء رقم آخر عشوائي. ويمكنك بدلاً من ذلك تجربة طلبك الخاص ومعرفة ما إذا كان متوفّرًا. ولا يمكن تغييره بعد هذه الخطوة وسيظلّ ساريًا طوال مدة المشروع.
- لمعلوماتك، هناك قيمة ثالثة، وهي رقم المشروع الذي تستخدمه بعض واجهات برمجة التطبيقات. اطّلِع على مزيد من المعلومات عن كلّ من هذه القيم الثلاث في المستندات.
تنبيه: يجب أن يكون رقم تعريف المشروع فريدًا على مستوى العالم ولا يمكن لأي مستخدم آخر استخدامه بعد اختياره. أن تكون أنت المستخدم الوحيد لهذا المعرّف حتى إذا تم حذف مشروع، لا يمكن استخدام رقم التعريف مرة أخرى.
- بعد ذلك، عليك تفعيل الفوترة في Cloud Console لاستخدام موارد/واجهات برمجة تطبيقات Cloud. من المفترض ألا تتطلّب المشاركة في هذا الدليل التعليمي البرمجي أي تكلفة، أو تكلفة قليلة جدًا. لإيقاف الموارد كي لا يتم تحصيل رسوم منك بعد انتهاء هذا الدليل التعليمي، يمكنك حذف الموارد التي أنشأتها أو حذف المشروع بأكمله. يكون مستخدمو Google Cloud الجدد مؤهَّلون للانضمام إلى برنامج فترة تجريبية مجانية بقيمة 300 دولار أمريكي.
إعداد Google Cloud Shell
يمكن إدارة Google Cloud وGoogle Cloud Trace عن بُعد من الكمبيوتر المحمول، ولكن في هذا الدرس التطبيقي حول الترميز، سنستخدم Google Cloud Shell، وهي بيئة سطر أوامر يتم تشغيلها في السحابة الإلكترونية.
لتفعيل Cloud Shell من Cloud Console، ما عليك سوى النقر على "تفعيل Cloud Shell" (من المفترض ألا تستغرق عملية توفير البيئة والربط بها سوى بضع ثوانٍ).
إذا لم يسبق لك بدء Cloud Shell، ستظهر لك شاشة وسيطة (الجزء السفلي غير المرئي من الصفحة) تصف ما هي عليه. في هذه الحالة، انقر على "متابعة" (ولن تراها مرة أخرى). في ما يلي شكل الشاشة التي تظهر لمرة واحدة:
من المفترض ألا تستغرق عملية توفير Cloud Shell والاتصال بها سوى بضع لحظات.
يتم تحميل هذا الجهاز الافتراضي مع جميع أدوات التطوير التي تحتاجها. ويقدّم هذا الدليل دليلاً منزليًا دائمًا بسعة 5 غيغابايت ويتم تشغيله في Google Cloud، ما يُحسِّن بشكل كبير أداء الشبكة والمصادقة. يمكنك تنفيذ معظم عملك، إن لم يكن كلّه، في هذا الدرس التطبيقي حول الترميز باستخدام متصفّح أو جهاز Chromebook.
بعد الاتصال بخدمة Cloud Shell، من المفترض أن تظهر لك رسالة تفيد بأنّه سبق أن تم مصادقة حسابك وأنّه سبق ضبط المشروع على معرّف مشروعك.
نفِّذ الأمر التالي في Cloud Shell لتأكيد مصادقة حسابك:
بعد الاتصال بخدمة Cloud Shell، من المفترض أن تظهر لك رسالة تفيد بأنّه سبق أن تم مصادقة حسابك وأنّه سبق ضبط المشروع على 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>
تضبط Cloud Shell أيضًا بعض متغيّرات البيئة تلقائيًا، ما قد يكون مفيدًا عند تنفيذ الأوامر المستقبلية.
echo $GOOGLE_CLOUD_PROJECT
ناتج الأمر
<PROJECT_ID>
تطبيقات نموذجية
لقد وضعنا كل ما تحتاجه لهذا المشروع في مستودع Git. يحتوي المستودع على اثنين من نماذج التطبيقات ويمكنك اختيار استخدام أي منها في هذا التمرين.
رابط مستودع Git: https://github.com/rominirani/cloud-code-sample-repository
3- نشر تطبيق واجهة برمجة التطبيقات
ما هو الغرض من نموذج التطبيق أو واجهة برمجة التطبيقات؟
تطبيقنا هو تطبيق بسيط لواجهة برمجة التطبيقات Inventory API يعرِض نقطة نهاية لواجهة برمجة التطبيقات REST API مع بضع عمليات لعرض سلع المستودع والحصول على عدد سلع مستودع محدّد.
بعد نشر واجهة برمجة التطبيقات بافتراض أنّها مستضافة على https://<somehost>، يمكننا الوصول إلى نقاط نهاية واجهة برمجة التطبيقات على النحو التالي:
- https://<somehost>/inventory
سيؤدّي ذلك إلى سرد كل سلع المنتجات التي تتضمّن مستويات المستودع المتوفّرة.
- https://<somehost>/inventory/{productid}
سيؤدي ذلك إلى توفير سجلّ واحد يتضمّن معرّف المنتج ومستوى المستودع المتوفّر لهذا المنتج.
تكون بيانات الاستجابة المعروضة بتنسيق JSON.
عيّنة من البيانات وطلب/ردّ واجهة برمجة التطبيقات
لا يستند التطبيق إلى قاعدة بيانات في الخلفية للحفاظ على البساطة. يحتوي على 3 نماذج لمعرّفات المنتجات ومستويات المستودع المتوفّر منها.
معرّف المنتج | مستوى المستودع الفعلي |
I-1 | 10 |
I-2 | 20 |
I-3 | 30 |
في ما يلي نموذجان لطلب البيانات من واجهة برمجة التطبيقات والاستجابة:
طلب بيانات من واجهة برمجة التطبيقات | استجابة واجهة برمجة التطبيقات |
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} |
استنساخ المستودع
مع أنّه يمكن إدارة Google Cloud عن بُعد من الكمبيوتر المحمول، ستستخدم في هذا الدرس التطبيقي Google Cloud Shell، وهي بيئة سطر أوامر يتم تشغيلها في السحابة الإلكترونية.
من وحدة تحكّم Google Cloud Platform، انقر على رمز Cloud Shell في شريط الأدوات العلوي الأيسر:
من المفترض ألا تستغرق عملية توفير البيئة والاتصال بها سوى بضع لحظات. عند الانتهاء، من المفترض أن يظهر لك ما يلي:
يتم تحميل هذه الآلة الافتراضية مزوّدة بكل أدوات التطوير التي ستحتاج إليها. ويقدّم هذا الدليل دليلاً منزليًا دائمًا بسعة 5 غيغابايت، ويتم تشغيله على Google Cloud، ما يُحسِّن بشكل كبير أداء الشبكة والمصادقة. يمكنك تنفيذ جميع أعمالك في هذا البرنامج باستخدام متصفّح فقط.
إعداد gcloud
في Cloud Shell، اضبط رقم تعريف مشروعك واحفظه كمتغيّر PROJECT_ID.
PROJECT_ID=[YOUR-PROJECT-ID]
gcloud config set project $PROJECT_ID
الآن، نفِّذ الأمر التالي:
$ git clone https://github.com/rominirani/cloud-code-sample-repository.git
سيؤدي ذلك إلى إنشاء مجلد بعنوان cloud-code-sample-repository في هذا المجلد.
(اختياري) تشغيل التطبيق على Cloud Shell
يمكنك تشغيل التطبيق محليًا باتّباع الخطوات التالية:
- من الوحدة الطرفية، انتقل إلى إصدار بايثون من واجهة برمجة التطبيقات باستخدام الأمر التالي:
$ cd cloud-code-sample-repository
$ cd python-flask-api
- في المحطة الطرفية، أدخِل الأمر التالي (في وقت كتابة هذه المقالة، تأتي Cloud Shell مزوّدة بإصدار Python 3.9.x المثبَّت وسنستخدم الإصدار التلقائي. فإذا كنت تخطط لتشغيله محليًا على الكمبيوتر المحمول، فيمكنك استخدام Python 3.8+) :
$ python app.py
- يمكنك تنفيذ الأمر التالي لبدء خادم Python محليًا.
- سيؤدي ذلك إلى تشغيل خادم على المنفذ 8080 ويمكنك اختباره محليًا من خلال ميزة "معاينة الويب" في Cloud Shell. انقر على الزر معاينة الويب كما هو موضّح أدناه:
انقر على "معاينة" على المنفذ 8080.
- سيؤدي ذلك إلى فتح نافذة متصفّح. ستظهر لك رسالة الخطأ 404، وهذا أمر طبيعي. عدِّل عنوان URL وأضِف /inventory بعد اسم المضيف.
على سبيل المثال، يظهر الجهاز على النحو التالي:
https://8080-cs-557561579860-default.cs-asia-southeast1-yelo.cloudshell.dev/inventory
سيؤدّي ذلك إلى عرض قائمة بالسلع المتوفّرة في المستودع كما هو موضّح سابقًا:
- يمكنك إيقاف الخادم الآن من خلال الانتقال إلى الوحدة الطرفية والضغط على Ctrl-C
نشر التطبيق
سننشر الآن تطبيق واجهة برمجة التطبيقات هذا في Cloud Run. تضمّنت العملية استخدام عميل سطر الأوامر glcoud من أجل تشغيل الأمر الخاص بنشر الرمز في Cloud Run.
من الوحدة الطرفية، أدخِل الأمر gcloud التالي:
$ gcloud run deploy --source .
سيؤدي ذلك إلى طرح عدة أسئلة (إذا طُلب منك التفويض، يُرجى المتابعة) وبعض النقاط مذكورة أدناه. قد تظهر لك جميع الأسئلة أو لا تظهر، وذلك حسب الإعدادات وما إذا سبق لك تفعيل واجهات برمجة تطبيقات معيّنة في مشروعك على Google Cloud.
- اسم الخدمة (python-flask-api): يمكنك استخدام هذا الاسم التلقائي أو اختيار اسم آخر مثل my-inventory-api.
- لم يتم تفعيل واجهة برمجة التطبيقات [run.googleapis.com] في المشروع [project-number]. هل تريد تفعيل الإذن وإعادة المحاولة (سيستغرق ذلك بضع دقائق)؟ (y/N)؟ نعم
- يُرجى تحديد منطقة: اختَر منطقة من اختيارك من خلال إدخال رقم.
- لم يتم تفعيل واجهة برمجة التطبيقات [artifactregistry.googleapis.com] في المشروع [project-number]. هل تريد تفعيل الإذن وإعادة المحاولة (سيستغرق ذلك بضع دقائق)؟ (y/N)؟ نعم
- يتطلب النشر من المصدر مستودع Docker في Artifact Registry لتخزين الحاويات التي تم إنشاؤها. سيتم إنشاء مستودع باسم [cloud-run-source-deploy] في المنطقة [us-west1].
هل تريد المتابعة (نعم/لا)؟ نعم
- هل تريد السماح بطلبات غير مُعتمَدة للوصول إلى [my-inventory-api] (نعم/لا)؟ نعم
في النهاية، سيؤدي ذلك إلى بدء عملية نقل رمز المصدر ووضعه في حاوية ودفعه إلى "مستودع العناصر" ثم نشر خدمة Cloud Run والمراجعة. يُرجى الانتظار إلى أن تكتمل هذه العملية (قد تستغرق من 3 إلى 4 دقائق)، ومن المفترض أن يظهر لك عنوان URL للخدمة.
في ما يلي نموذج لتنفيذ الإجراء:
اختبار التطبيق
بعد أن نشرنا التطبيق على Cloud Run، يمكنك الوصول إلى تطبيق واجهة برمجة التطبيقات على النحو التالي:
- سجِّل عنوان URL للخدمة من الخطوة السابقة. على سبيل المثال، في إعدادي، يظهر على النحو التالي:
https://my-inventory-api-bt2r5243dq-uw.a.run.app
. ولنسم هذا <SERVICE_URL>. - افتح متصفّحًا وانتقِل إلى عناوين URL الثلاثة التالية لنقاط نهاية واجهة برمجة التطبيقات:
- <SERVICE_URL>/inventory
- <SERVICE_URL>/inventory/I-1
- <SERVICE_URL>/inventory/I-100
ويجب أن يكون متوافقًا مع المواصفات التي قدّمناها في قسم سابق يتضمّن نموذج طلب وردّ من واجهة برمجة التطبيقات.
الحصول على تفاصيل الخدمة من Cloud Run
لقد نشرنا خدمة واجهة برمجة التطبيقات في Cloud Run، وهي بيئة حوسبة بدون خادم. ويمكننا الانتقال إلى خدمة Cloud Run في أي وقت من خلال "وحدة تحكُّم Google Cloud".
من القائمة الرئيسية، انتقل إلى Cloud Run. سيؤدي ذلك إلى عرض قائمة الخدمات التي يتم تشغيلها في Cloud Run. من المفترض أن تظهر لك الخدمة التي تم نشرها للتو. بناءً على الاسم الذي حددته، يُفترض أن يظهر لك شيء مثل هذا:
انقر على اسم الخدمة للاطّلاع على التفاصيل. في ما يلي تفاصيل العيّنة:
لاحِظ عنوان URL، وهو عنوان URL للخدمة الذي يمكنك إدخاله في المتصفّح والوصول إلى واجهة برمجة التطبيقات Inventory API التي تم نشرها للتو. يمكنك الاطّلاع على المقاييس والتفاصيل الأخرى.
لنبدأ الآن باستخدام حزمة Google Cloud Operations.
4. إعداد لوحة معلومات
واحدة من الميزات السهلة التي توفّرها Cloud Monitoring هي لوحات البيانات غير الجاهزة (OOTB) على مستوى عدة موارد في Google Cloud. وهذا يجعل الإعداد الأوّلي للوحة البيانات باستخدام المقاييس العادية عملية سريعة ومريحة.
لنلقِ نظرة على كيفية إجراء ذلك في خدمة واجهة برمجة التطبيقات التي نشرناها للتو في Cloud Run.
لوحة بيانات مخصّصة لخدمتنا
وبعد نشر خدمة واجهة برمجة التطبيقات على Cloud Run، سنتعرّف على كيفية إعداد لوحات البيانات التي يمكن أن تساعد في عرض مقاييس مختلفة، ومن بينها وقت استجابة الخدمة.
أولاً، انتقِل من وحدة التحكّم إلى التتبّع → نظرة عامة كما هو موضّح أدناه:
تعرض النظرة العامة العديد من العناصر التي كنت قد ضبطتها في المراقبة، مثل لوحات البيانات والتنبيه وعمليات الفحص في وقت التشغيل وما إلى ذلك.
في الوقت الحالي، لننقر على لوحات البيانات من القائمة الرئيسية الجانبية. سيؤدي ذلك إلى نقلك إلى الشاشة التالية:
انقر على مكتبة النماذج . سيؤدي ذلك إلى عرض قائمة لوحات البيانات الجاهزة (OOTB) المتوفّرة في Google Cloud على مستوى موارد متعدّدة. على وجه التحديد، انتقِل إلى أسفل القائمة واختَر Google Cloud Run كما هو موضّح أدناه.
سيؤدي ذلك إلى عرض قائمة باللوحات البيانات العادية المتاحة لخدمة Google Cloud Run. يهمّنا ذلك لأنّنا نشرنا خدمتنا على Cloud Run.
ستظهر لك لوحة بيانات واحدة لمراقبة Cloud Run. انقر على رابط معاينة لعرض قائمة الرسوم البيانية العادية (المقاييس) المتاحة لميزة "مراقبة Cloud Run". ما عليك سوى النقر على استيراد نموذج لوحة بيانات لاستيراد كل هذه الرسوم البيانية إلى لوحة بيانات مخصّصة. سيؤدي ذلك إلى عرض شاشة لوحة البيانات التي تحتوي على اسم مملوء مسبقًا كما هو موضّح أدناه:
يمكنك الرجوع من خلال النقر على السهم المتّجه لليسار، والذي يظهر على يمين اسم لوحة البيانات في أعلى يمين الصفحة. سيؤدي ذلك إلى الانتقال إلى قائمة لوحات البيانات، ومن المفترض أن تتمكّن من الاطّلاع على لوحة البيانات الجديدة التي أنشأتها للتو.
انقر على رابط لوحة البيانات هذا ويمكنك تتبُّع مقاييس متعددة متوفّرة تلقائيًا. وتشمل هذه المقاييس وقت الاستجابة وعدد الطلبات ومقاييس الحاوية وغير ذلك.
يمكنك أيضًا اختيار وضع علامة على أي من لوحة التحكم كمفضلة، عن طريق تحديد رمز النجمة كما هو موضح أدناه:
سيؤدي ذلك إلى إضافة "لوحة البيانات" إلى شاشة "نظرة عامة" ضمن "المراقبة"، ما يجعلها طريقة سهلة للانتقال إلى لوحات البيانات المستخدَمة بشكل متكرّر.
رائع. لقد أضفت للتو لوحة بيانات مخصصة لمراقبة خدمات تشغيل السحابة الإلكترونية. أحسنت.
5- عمليات التحقّق من مدة التشغيل
في هذا القسم، سنعمل على إعداد عملية التحقّق من وقت تشغيل خدمة واجهة برمجة التطبيقات التي تم نشرها. يمكن أن يُصدر فحص وقت الاستجابة العلني طلبات من مواقع جغرافية متعدّدة في جميع أنحاء العالم إلى عناوين URL متاحة للجميع أو موارد Google Cloud لمعرفة ما إذا كان المورد يستجيب.
سيكون المورد في هذه الحالة خدمة واجهة برمجة التطبيقات التي تم نشرها على Cloud Run. سيكون عنوان URL نقطة نهاية محدّدة تعرضها خدمة واجهة برمجة التطبيقات للإشارة إلى حالة الخدمة.
في نموذج رمز خدمة واجهة برمجة التطبيقات، رصدنا نقطة نهاية /healthy تعرض قيمة سلسلة "All Izz Well". لذا، كل ما علينا فعله هو تحديد عملية التحقّق من وقت التشغيل التي تصل إلى عنوان مثل https://<SERVICE_URL>/healthy وتتحقّق مما إذا كانت السلسلة "All Izz Well" ستظهر أم لا.
إنشاء قناة إشعارات
قبل إنشاء عملية التحقّق من وقت التشغيل، من المهم أولاً ضبط قنوات الإشعارات. قناة الإشعارات هي وسيلة يتم من خلالها تنبيهك في حال وجود حادثة أو مشكلة في أي من مواردنا الخاضعة للمراقبة. من الأمثلة على قنوات الإشعارات البريد الإلكتروني، وستتلقّى رسائل إلكترونية في حال تلقّي تنبيه وما إلى ذلك.
في الوقت الحالي، سنضبط قناة إشعارات عبر البريد الإلكتروني ونضبطها باستخدام عنوان بريدنا الإلكتروني، حتى نتمكّن من تلقّي إشعارات في حال تلقّي أي تنبيهات يُرسلها نظامنا وسنضبطها.
لإنشاء قناة إشعارات، اتّبِع الخطوات التالية:
انتقِل إلى المراقبة ← التنبيه من القائمة الرئيسية في Google Cloud Console، كما هو موضّح أدناه:
سيؤدي ذلك إلى عرض صفحة تتضمّن التنبيهات والسياسات وغير ذلك. في الوقت الحالي، سيظهر لك رابط في أعلى الصفحة بعنوان تعديل قنوات الإشعارات. انقر عليها.
سيؤدي ذلك إلى عرض قائمة بقنوات الإشعارات المختلفة كما هو موضّح أدناه:
حدِّد موقع قسم البريد الإلكتروني وانقر على إضافة بريد إلكتروني جديد لهذا الصف. سيؤدي ذلك إلى عرض تفاصيل إعدادات البريد الإلكتروني كما هو موضّح أدناه:
أدخِل عنوان بريدك الإلكتروني واسمًا معروضًا كما هو موضّح أدناه. انقر على حفظ.
بذلك تكون قد أكملت إنشاء قناة إشعارات البريد الإلكتروني. لنبدأ الآن عملية ضبط عمليات الفحص في وقت التشغيل.
إنشاء عملية تحقّق من وقت التشغيل
انتقِل إلى المراقبة ← عمليات الفحص في وقت التشغيل من القائمة الرئيسية في Google Cloud Console. سيظهر لك الرابط إنشاء فحص وقت الاستجابة في أعلى الصفحة. انقر على ذلك.
يؤدي ذلك إلى عرض سلسلة من الخطوات التي يجب إكمالها لضبط ميزة التحقّق من وقت التشغيل.
الخطوة الأولى هي إعداد تفاصيل الاستهداف، أي معلومات عن خدمة Cloud Run التي تم نشرها. يظهر النموذج المملوء أدناه:
يمكن اختيار القيم المختلفة على النحو التالي:
- البروتوكول : HTTPS
- نوع المورد : اختَر خدمة Cloud Run. لاحظ المصادر الأخرى التي يتوافق معها هذا الإجراء والتي يمكنك أيضًا ضبط عمليات الفحص في وقت التشغيل عليها.
- خدمة Cloud Run : اختَر my-inventory-api أو الاسم المحدّد الذي اخترته لخدمة Cloud Run.
- المسار هو /healthy، لأنّنا سنعرض سلسلة "All Izz Well" ونريد التحقّق من ذلك.
انقر على متابعة للانتقال إلى الخطوة التالية. الخطوة التالية هي خطوة التحقّق من الاستجابة كما هو موضّح أدناه:
يمكنك ملاحظة أنّنا بصدد تفعيل التحقّق من "مطابقة المحتوى"، ثم ضبط الردّ الذي تعرضه نقطة النهاية /healthy على "الكل على ما يرام". انقر على متابعة للانتقال إلى الخطوة التالية التي سنضبط فيها التنبيه وقناة الإشعارات التي يجب أن نتلقّى تنبيهات عليها في حال تعذّر إكمال عملية التحقّق من وقت التشغيل.
في هذه الخطوة، أدخِل اسمًا للتنبيه. لقد اخترت تعذُّر التحقّق من وقت استجابة Inventory API، ولكن يمكنك اختيار اسمك. المهم هنا هو تحديد قناة الإشعارات الصحيحة من القائمة التي ضبطتها سابقًا.
انقر على مراجعة للخطوة الأخيرة لمراجعة عملية التحقّق من وقت التشغيل التي أعددناها.
في هذه الخطوة الأخيرة، أدخِل اسمًا لعملية الفحص في وقت التشغيل (مثل Inventory API Uptime Check (عمليات الفحص في وقت التشغيل لواجهة Indexing API)، ويمكنك أيضًا اختبار ما إذا تم ضبط عملية الفحص بشكل صحيح. انقر على الزر TEST لإجراء ذلك.
يمكنك إكمال العملية (انقر على الزر إنشاء على يمين الصفحة). ستوجه خدمة Google Cloud أسئلة فحص وقت التشغيل التي تم ضبطها في مناطق مختلفة لإرسال إشارة إلى عنوان URL، وسيتم جمع هذه الردود. انتقِل إلى قسم المراقبة → عمليات التحقّق من وقت الاستجابة بعد بضع دقائق، ومن المفترض أن تظهر لك جميع الإشارات الخضراء التي تشير إلى إمكانية الوصول إلى عنوان URL من خلال عمليات الفحص المختلفة.
إذا تعذّر إجراء أيّ من عمليات الفحص لفترة زمنية (يمكن ضبطها)، ستتلقّى إشعار تنبيه على قناة البريد الإلكتروني التي ضبطناها.
وبهذا نكون قد انتهينا من قسم إعداد فحص "وقت الاستجابة". أحسنت.
6- أداة استكشاف المقاييس
تعرِض ميزة "مراقبة السحابة الإلكترونية" آلاف المقاييس العادية من منتجات متعددة في Google Cloud. تتوفّر لك هذه المقاييس للتحقيق فيها وإجراء طلبات بحث بشأنها وتحويلها إلى رسوم بيانية وإضافتها إلى لوحات البيانات وإصدار تنبيهات بشأنها وغير ذلك.
هدفنا في هذا القسم هو:
- تعرّف على كيفية عرض المقاييس المختلفة ثم سنتقصى مقياسًا معيّنًا (وقت الاستجابة) لخدمة واجهة برمجة التطبيقات.
- يمكنك تحويل هذا المقياس إلى رسم بياني ولوحة بيانات مخصّصة يمكننا استخدامها بعد ذلك لعرض المقياس في أي وقت.
استكشاف مقياس وقت الاستجابة لخدمة Inventory API
انتقِل إلى المراقبة ← "مستكشف المقاييس" من القائمة الرئيسية في Google Cloud Console. سينقلك هذا الإجراء إلى شاشة "مستكشف المقاييس". انقر على اختيار مقياس. يمكنك الآن التنقّل في العديد من الموارد النشطة التي تمّ إنشاء مقاييس لها.
بما أنّنا نتعامل مع خدمات Cloud Run، انقر على "مراجعة Cloud Run"، ثم على الفئة والمقياس المحدّد بعنوان وقت استجابة الطلب كما هو موضّح أدناه:
انقر على تطبيق. سيؤدي هذا إلى عرض وقت استجابة الطلب في رسم بياني. يمكنك تغيير نوع التطبيق المصغّر إلى رسم بياني خطي من إعدادات العرض على يسار الصفحة كما هو موضّح أدناه:
سيؤدي هذا إلى عرض مخطط وقت الاستجابة كما هو موضح أدناه:
إنشاء رسم بياني ولوحة بيانات مخصّصة
لنحفظ هذا الرسم البياني. انقر على Save Chart (حفظ المخطط) واستخدِم التفاصيل كما هو موضّح أدناه:
يُرجى العِلم بأنّنا بصدد إنشاء لوحة بيانات جديدة بدلاً من حفظها في لوحة بيانات حالية. انقر على الزر حفظ. سيؤدي ذلك إلى إضافة لوحة البيانات التي تم إنشاؤها حديثًا إلى قائمة لوحات البيانات كما هو موضّح أدناه:
انقر على لوحة البيانات المحدّدة التي أنشأناها للاطّلاع على التفاصيل.
يُكمِل هذا القسم القسم المعنيّ بالتحقيق في المقاييس المختلفة من خلال "مستكشف المقاييس" وكيفية إنشاء لوحات البيانات المخصّصة.
7- Cloud Logging
في هذا القسم، سنستكشف ميزة "تسجيلات السحابة الإلكترونية". تأتي ميزة "تسجيلات السحابة الإلكترونية" مع واجهة "مستكشف السجلات" التي تساعدك في التنقّل في السجلات التي أنشأتها خدمات Google وتطبيقاتك المختلفة والتعمّق فيها.
في هذا القسم، سنتعرّف على "مستكشف السجلّات" ونُنشئ بعض رسائل السجلّات التي يمكننا البحث عنها بعد ذلك وتحويلها إلى مقاييس، وذلك من خلال ميزة تُعرف باسم المقاييس المستندة إلى السجلّات.
مستكشف السجلات
يمكنك الانتقال إلى "مستكشف السجلّات" من خلال التسجيل → مستكشف السجلّات من وحدة تحكّم Google Cloud الرئيسية كما هو موضّح أدناه:
سيؤدي ذلك إلى عرض واجهة سجلّ يمكنك من خلالها اختيار/إلغاء اختيار موارد مختلفة (المشروع، وموارد Google Cloud، وأسماء الخدمات، وما إلى ذلك) بالإضافة إلى مستويات السجلّ لفلترة رسائل السجلّ حسب الحاجة.
تظهر أعلاه قائمة سجلات إصدار Cloud Run، أي خدمات Cloud Run التي تم نشرها. سترى العديد من الطلبات التي تُجري عمليات التحقّق من وقت الاستجابة تصل إلى نقطة النهاية /healthy التي أعددناها.
البحث عن التحذيرات
يمكنك محاكاة بعض الطلبات غير الصالحة إلى خدمة المستودع من خلال تقديم أرقام تعريف منتجات ليست من بين I-1 وI-2 وI-3. على سبيل المثال، الطلب غير الصحيح هو:
https://<SERVICE_URL>/inventory/I-999
سنبحث الآن عن جميع التحذيرات التي تم إنشاؤها بواسطة واجهة برمجة التطبيقات، وذلك عند تقديم معرّف منتج غير صحيح في الطلب.
في مربّع طلب البحث، أدخِل مَعلمات طلب البحث التالية:
المورد.type="cloud_run_revision"
textPayload =~ "Received inventory request for incorrect productid"
من المفترض أن تظهر بشكلٍ مشابه لما يلي:
انقر فوق "Run Query" (تشغيل الاستعلام). سيؤدي ذلك إلى عرض جميع الطلبات التي تمّ إرسالها والتي تتضمّن هذه المشكلة.
المقاييس المستندة إلى السجلّ
لننشئ مقياسًا مخصّصًا للسجلّات لتتبُّع هذه الأخطاء. نريد معرفة ما إذا كان هناك عدد كبير من المكالمات التي يتم إجراؤها باستخدام معرّفات منتجات غير صحيحة.
لتحويل ما سبق إلى مقياس خطأ، انقر على الزر إنشاء مقياس الذي يظهر لك في "مستكشف السجلّات".
سيؤدي ذلك إلى إظهار النموذج لإنشاء تعريف المقياس. انتقِل إلى مقياس "المعدّل" وأدخِل تفاصيل اسم المقياس (inventory_lookup_errors) ووصفه كما هو موضّح أدناه، ثم انقر على إنشاء مقياس.
سيؤدي هذا إلى إنشاء مقياس العدّاد، ومن المفترض أن تظهر لك رسالة كما هو موضّح أدناه:
انتقِل إلى التسجّل → المقاييس المستندة إلى السجلات من القائمة الرئيسية، ومن المفترض أن يظهر لك المقياس المخصّص الذي حدّدناه في قائمة المقاييس التي يحدّدها المستخدم كما هو موضّح أدناه:
في نهاية هذا الإدخال، ستظهر ثلاث نقاط عمودية. انقر عليها للاطّلاع على العمليات التي يمكنك إجراؤها على هذا المقياس المخصّص. من المفترض أن تكون القائمة مشابهة للقائمة التي تظهر لك أدناه. انقر على الخيار عرض في "مستكشف المقاييس".
من المفترض أن يؤدي ذلك إلى نقلنا إلى "مستكشف المقاييس" الذي تعرّفنا عليه في القسم السابق، إلا أنّه تمّت تعبئته مسبقًا نيابةً عنا.
انقر على حفظ الرسم البياني. استخدِم القيم التالية لخيارات "حفظ الرسم البياني":
سيؤدي ذلك الآن إلى إنشاء لوحة بيانات جديدة يمكنك من خلالها الاطّلاع على أخطاء "بحث المستودع"، وستكون متاحة في قائمة لوحات البيانات.
رائع. لقد أنشأت الآن مقياسًا مخصّصًا من سجلاتك، وحوّلته إلى رسم بياني متوفّر في لوحة بيانات مخصّصة. سيساعدنا ذلك في تتبع عدد المكالمات التي تستخدم معرّفات منتجات غير صحيحة.
8. سياسات التنبيه
في هذا القسم، سنستخدم المقياس المخصّص الذي أنشأناه ونراقب بياناته بحثًا عن حدّ معيّن، بمعنى أنه إذا تجاوز عدد الأخطاء حدًّا معيّنًا، سنقدِّم تنبيهًا. بعبارة أخرى، سننشئ سياسة تنبيهات.
إنشاء سياسة تنبيهات
لننتقل إلى لوحة بيانات "البحث في المستودع". سيؤدي ذلك إلى عرض الرسم البياني الذي أنشأناه لتوضيح أخطاء البحث في المستودع كما هو موضّح أدناه:
سيؤدي ذلك إلى عرض بيانات المقياس الحالية. لنعدِّل أولاً المقياس كما هو موضّح أدناه (انقر على زر التعديل):
سيؤدي ذلك إلى عرض تفاصيل المقياس. سنغيّر الرسم البياني من عرض معدّل الأخطاء إلى عرض مجموع الأخطاء. في ما يلي الحقل الذي تريد تغييره:
انقر على تطبيق في أعلى يسار الشاشة، وسنعود إلى شاشة "المقاييس"، ولكن هذه المرة سنتمكن من الاطّلاع على إجمالي عدد الأخطاء في فترة المواءمة مقارنةً بمعدّل الأخطاء.
سننشئ سياسة تنبيهات يمكنها إعلامنا في حال تجاوز عدد الأخطاء حدًا معيّنًا. انقر على النقاط الثلاث في أعلى يسار الرسم البياني، ومن قائمة الخيارات، كما هو موضّح أعلاه، انقر على التحويل إلى رسم بياني للتنبيهات.
من المفترض أن تظهر لك شاشة كما هو موضّح أدناه:
انقر على التالي، سيؤدي ذلك إلى عرض قيمة الحدّ الأدنى التي يمكننا ضبطها. الحدّ الأدنى للعيّنات التي أخذناها هنا هو 5، ولكن يمكنك الاختيار حسب الإعدادات المفضّلة لديك.
انقر على التالي لعرض نموذج الإشعارات.
اخترنا قناة الإشعارات كقناة البريد الإلكتروني التي أنشأناها سابقًا. يمكنك ملء التفاصيل الأخرى، مثل المستندات (التي سيتم تقديمها كجزء من التنبيه الذي يتم رفعه). انقر على التالي للاطّلاع على الملخّص وإكمال العملية.
بعد إنشاء سياسة التنبيهات هذه، ستظهر في قائمة سياسات التنبيهات كما هو موضّح أدناه. يمكنك الوصول إلى قائمة سياسات التنبيهات من خلال الانتقال إلى التتبّع > التنبيه. ابحث عن قسم السياسات في الصفحة للاطّلاع على قائمة السياسات التي ضبطناها حتى الآن.
رائع! لقد أعددت الآن سياسة تنبيه مخصّصة ستُعلمك في حال زيادة معدّل الأخطاء أثناء البحث في Inventory API.
9. مراقبة الخدمة (اختياري)
في هذا القسم، سيتم إعداد SLI/SLO لخدماتنا وفقًا لمبادئ هندسة موثوقية المواقع الإلكترونية (SRE). ستلاحظ أنّ ميزة "مراقبة السحابة الإلكترونية" تسهّل عليك الأمر من خلال اكتشاف الخدمات التي تم نشرها في Cloud Run تلقائيًا، ويمكنها احتساب مؤشرات مستوى الخدمة الرئيسية، مثل مدى التوفّر ووقت الاستجابة، تلقائيًا لك، بالإضافة إلى عمليات احتساب "ميزانية الأخطاء".
لنبدأ في إعداد الحدّ الأدنى لمستوى الخدمة الخاص بالوقت المستغرَق في الاستجابة لخدمة واجهة برمجة التطبيقات.
إعداد حدّ استجابة الخدمة للخدمة المتعلقة بالمستودع
انقر على المراقبة → الخدمات من القائمة الرئيسية في Cloud Console. سيؤدي ذلك إلى عرض قائمة الخدمات التي تم ضبطها لـ "مراقبة الخدمة".
لا تتوفّر لدينا في الوقت الحالي أي خدمات تم إعدادها لمراقبة SLI/SLO، وبالتالي فإن القائمة فارغة. انقر على رابط تحديد الخدمة في أعلى الصفحة لتحديد خدمة أولاً.
سيؤدي ذلك إلى الاكتشاف التلقائي للخدمات المرشحة لميزة "مراقبة هدف مستوى الخدمة". ويمكنه اكتشاف خدمات Cloud Run، وبالتالي ستظهر خدمة Inventory API التي تم نشرها على Cloud Run في القائمة.
قد يكون الاسم المعروض الذي يظهر لك مختلفًا وسيعتمد على ما اخترته في وقت نشر الخدمة على Cloud Run. انقر على الزر إرسال. سيؤدي ذلك إلى ظهور الشاشة الموضَّحة أدناه:
يمكنك النقر على إنشاء مستوى الخدمة. سيتيح لك ذلك الآن الاختيار من بين مؤشرات SLI التي يتم احتسابها تلقائيًا نيابةً عنك.
نختار Latency SLI للبدء. انقر على متابعة. بعد ذلك، ستظهر لك شاشة تعرض الأداء الحالي لهذه الخدمة ووقت الاستجابة النموذجي.
نضع قيمة للحدّ الأدنى، أي 300 ملي ثانية، وهو ما نريد تحقيقه. يمكنك اختيار قيمة مختلفة إذا أردت، ولكن تذكَّر أنّ ذلك سيؤثّر في ميزانية الأخطاء التي تحدّدها وفقًا لذلك. انقر على متابعة.
نضبط الآن هدف مستوى الخدمة (نافذة الاستهداف والقياس) كما هو موضّح أدناه:
وهذا يعني أنّنا نختار فترة القياس كفترة من النوع "متغيّر" ونقيسها على مدار 7 أيام. وبالمثل، بالنسبة إلى الاستهداف، اخترنا هدفًا بنسبة %90. ما نحاول قوله هنا هو أنّه يجب إكمال% 90 من الطلبات إلى خدمة واجهة برمجة التطبيقات في غضون 300 ملي ثانية، ويجب قياس ذلك على مدار 7 أيام.
انقر على متابعة. سيؤدي ذلك إلى ظهور شاشة الملخّص، والتي يمكنك تأكيدها بالنقر على الزر تعديل هدف مستوى الخدمة.
يؤدي ذلك إلى حفظ تعريف مستوى الخدمة واحتساب "ميزانية الأخطاء" تلقائيًا.
إليك بعض الإجراءات التي يمكنك تجربتها:
- استخدِم واجهة برمجة التطبيقات من خلال طلبات متعددة واطّلِع على أداء الخدمة ومدى تأثيرها في "الميزانية المتبقية للأخطاء".
- عدِّل الرمز المصدر لإدخال بعض التأخيرات الإضافية (الاستراحة) بشكل عشوائي في بعض المكالمات. سيؤدي ذلك إلى زيادة وقت الاستجابة لعدد من المكالمات كما من المفترض أن يؤثر سلبًا في ميزانية الخطأ.
10. تهانينا
مبروك، لقد نجحت في نشر نموذج تطبيق على Google Cloud وتعرّفت على كيفية استخدام Google Cloud Operations Suite لمراقبة حالة التطبيق.
المواضيع التي تناولناها
- نشر خدمة في Google Cloud Run
- إعداد لوحة بيانات لخدمة Google Cloud Run
- عمليات الفحص في وقت التشغيل
- إعداد مقاييس السجلّ المخصّصة ولوحة البيانات/الرسم البياني استنادًا إليها
- استكشاف مستكشف المقاييس وإعداد لوحة البيانات/الرسم البياني.
- إعداد سياسات التنبيهات
- إعداد SLI/SLO لمراقبة الخدمة في Google Cloud
ملاحظة: إذا نفّذت دورة codelab باستخدام حسابك ومشروعك على Google Cloud، قد تستمر الموارد المخصّصة في تحمُّل رسوم الفوترة. لذا، عليك حذف المشروع والموارد بعد الانتهاء من الدرس.
الخطوة التالية
اطّلِع على رحلة "تعزيز المهارات في Google Cloud" هذه للتعرّف على مزيد من المعلومات عن Google Cloud Operations Suite.