۱. مقدمه


Eventarc اتصال سرویسهای Google Cloud را با رویدادهایی از منابع مختلف آسان میکند. این به شما امکان میدهد معماریهای مبتنی بر رویداد بسازید که در آنها میکروسرویسها به صورت آزادانه جفت و توزیع شدهاند. همچنین از دریافت، تحویل، امنیت، مجوزدهی و مدیریت خطا برای شما مراقبت میکند که چابکی توسعهدهنده و انعطافپذیری برنامه را بهبود میبخشد.
دیتاداگ یک پلتفرم نظارت و امنیت برای برنامههای ابری است. این پلتفرم، ردیابیها، معیارها و گزارشهای سرتاسری را گرد هم میآورد تا برنامهها، زیرساختها و سرویسهای شخص ثالث شما را قابل مشاهده کند.
در این اولین آزمایشگاه کد، یاد خواهید گرفت که چگونه یک هشدار مانیتورینگ ساده Datadog را با Eventarc به Google Cloud هدایت کنید.
آنچه یاد خواهید گرفت
- چگونه ارائه دهنده Datadog را پیدا کنیم.
- نحوه تنظیم کانال برای ارائه دهنده Datadog.
- نحوه ایجاد گردش کار برای ثبت رویدادها.
- نحوه ایجاد یک تریگر Eventarc با کانال.
- نحوه ایجاد یک مانیتور Datadog.
- نحوه آزمایش مانیتور Datadog، تریگر Eventarc و گردش کار.
۲. تنظیمات و الزامات
تنظیم محیط خودتنظیم
- وارد کنسول گوگل کلود شوید و یک پروژه جدید ایجاد کنید یا از یک پروژه موجود دوباره استفاده کنید. اگر از قبل حساب جیمیل یا گوگل ورک اسپیس ندارید، باید یکی ایجاد کنید .



- نام پروژه ، نام نمایشی برای شرکتکنندگان این پروژه است. این یک رشته کاراکتری است که توسط APIهای گوگل استفاده نمیشود. میتوانید آن را در هر زمانی بهروزرسانی کنید.
- شناسه پروژه باید در تمام پروژههای گوگل کلود منحصر به فرد باشد و تغییرناپذیر است (پس از تنظیم، قابل تغییر نیست). کنسول کلود به طور خودکار یک رشته منحصر به فرد تولید میکند؛ معمولاً برای شما مهم نیست که چیست. در اکثر آزمایشگاههای کد، باید شناسه پروژه را ارجاع دهید (که معمولاً با عنوان
PROJECT_IDشناخته میشود). اگر شناسه تولید شده را دوست ندارید، میتوانید یک شناسه تصادفی دیگر ایجاد کنید. به عنوان یک جایگزین، میتوانید شناسه خودتان را امتحان کنید و ببینید که آیا در دسترس است یا خیر. پس از این مرحله قابل تغییر نیست و در طول پروژه باقی خواهد ماند. - برای اطلاع شما، یک مقدار سوم هم وجود دارد، شماره پروژه که برخی از APIها از آن استفاده میکنند. برای کسب اطلاعات بیشتر در مورد هر سه این مقادیر، به مستندات مراجعه کنید.
- در مرحله بعد، برای استفاده از منابع/API های ابری، باید پرداخت صورتحساب را در کنسول ابری فعال کنید . اجرای این آزمایشگاه کد، اگر اصلاً هزینهای نداشته باشد، هزینه زیادی نخواهد داشت. برای خاموش کردن منابع به طوری که پس از این آموزش متحمل پرداخت صورتحساب نشوید، میتوانید منابعی را که ایجاد کردهاید یا کل پروژه را حذف کنید. کاربران جدید Google Cloud واجد شرایط برنامه آزمایشی رایگان ۳۰۰ دلاری هستند.
شروع پوسته ابری
اگرچه میتوان از راه دور و از طریق لپتاپ، گوگل کلود را مدیریت کرد، اما در این آزمایشگاه کد، از گوگل کلود شل ، یک محیط خط فرمان که در فضای ابری اجرا میشود، استفاده خواهید کرد.
از کنسول گوگل کلود ، روی آیکون Cloud Shell در نوار ابزار بالا سمت راست کلیک کنید:

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

این ماشین مجازی با تمام ابزارهای توسعهای که نیاز دارید، مجهز شده است. این ماشین مجازی یک دایرکتوری خانگی پایدار ۵ گیگابایتی ارائه میدهد و روی فضای ابری گوگل اجرا میشود که عملکرد شبکه و احراز هویت را تا حد زیادی بهبود میبخشد. تمام کارهای شما در این آزمایشگاه کد را میتوان در یک مرورگر انجام داد. نیازی به نصب چیزی ندارید.
جی کلود را تنظیم کنید
در Cloud Shell، شناسه پروژه خود را تنظیم کرده و آن را به عنوان متغیر PROJECT_ID ذخیره کنید.
همچنین، متغیر REGION را روی us-central1 تنظیم کنید. این منطقهای است که بعداً منابع را در آن ایجاد خواهید کرد.
PROJECT_ID=[YOUR-PROJECT-ID] REGION=us-central1 gcloud config set core/project $PROJECT_ID
فعال کردن APIها
فعال کردن تمام سرویسهای لازم:
gcloud services enable \ eventarc.googleapis.com \ eventarcpublishing.googleapis.com \ workflows.googleapis.com \ workflowexecutions.googleapis.com
۳. ارائه دهنده Datadog را کشف کنید
ارائهدهنده Eventarc سرویس یا نهادی است که میتواند رویدادها را مستقیماً به Google Cloud ارسال کند و سپس به پروژه شما هدایت شود. ارائهدهندگان شخص ثالث، مانند Datadog، ارائهدهندگان غیر 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*'
شما باید Datadog را در لیست ببینید:
NAME: datadog LOCATION: us-central1
همچنین میتوانید ارائهدهندهی Datadog را برای مشاهدهی رویدادهایی که پشتیبانی میکند، توصیف کنید:
gcloud eventarc providers describe datadog --location $REGION displayName: Datadog eventTypes: - type: datadog.v1.alert name: projects/project-id/locations/us-central1/providers/datadog
۴. یک کانال راهاندازی کنید
شما باید یک کانال برای ادغام پروژه خود با یک ارائه دهنده تنظیم کنید. این شامل ایجاد یک کانال، بازیابی جزئیات کانال و ارسال آن جزئیات به ارائه دهنده است. پس از اینکه ارائه دهنده اتصال به کانال را آغاز کرد، ارائه دهنده میتواند شروع به ارسال رویدادها به پروژه شما کند.
ایجاد کانال
شما میتوانید با استفاده از gcloud یک کانال برای ارائهدهنده Datadog ایجاد کنید:
CHANNEL_NAME=datadog-channel gcloud eventarc channels create $CHANNEL_NAME \ --provider datadog \ --location $REGION
همچنین میتوانید آن را از بخش کانالها در صفحه Eventarc در کنسول ابری گوگل ایجاد کنید:

جزئیات کانال را بازیابی کنید
پس از ایجاد کانال، جزئیات کانال را از 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'
به طور مشابه، میتوانید کانال را از کنسول ابری گوگل مشاهده کنید:

وضعیت کانال، وضعیت کانال را نشان میدهد و میتواند یکی از موارد زیر باشد:
-
PENDING— کانال با موفقیت ایجاد شده است و یک توکن فعالسازی برای ایجاد ارتباط با ارائهدهنده در دسترس است. برای تغییر وضعیت کانال ازPENDINGبهACTIVE، توکن باید ظرف ۲۴ ساعت پس از ایجاد کانال به ارائهدهنده داده شود و برای اتصال کانال استفاده شود. -
ACTIVE— کانال با موفقیت به ارائهدهنده متصل شده است. یک کانالACTIVEآماده دریافت و هدایت رویدادها از ارائهدهنده است. -
INACTIVE— کانال نمیتواند رویدادها را دریافت کند و دوباره فعال نمیشود. ارائهدهنده یا از این کانال جدا شده است یا توکن فعالسازی کانال منقضی شده و ارائهدهنده متصل نیست. برای برقراری مجدد ارتباط با یک ارائهدهنده، باید یک کانال جدید برای ارائهدهنده ایجاد کنید.
توکن فعالسازی، یک توکن یکبار مصرف و با محدودیت زمانی است که برای ایجاد ارتباط بین یک ارائهدهنده و پروژه یک مشترک استفاده میشود. فقط یک ارائهدهنده خاص که در طول فرآیند ایجاد کانال انتخاب شده است، میتواند از این توکن استفاده کند. این توکن به مدت ۲۴ ساعت پس از ایجاد کانال معتبر است. پس از ۲۴ ساعت، کانال INACTIVE میشود.
جزئیات کانال را برای ارائه دهنده ارسال کنید
شما باید جزئیات کانال زیر را به ارائه دهنده Datadog ارسال کنید:
- نام کانال (مثلاً
projects/project-id/locations/us-central1/channels/datadog-channel) - توکن فعالسازی (مثلاً
so5g4Kdasda7y2MSasdaGn8njB2)
وارد Datadog شوید، به صفحه ادغامها بروید و مطمئن شوید که ادغام Google Eventarc نصب شده است:

در بخش پیکربندی Google Eventarc، نام کامل کانال و توکن فعالسازی را وارد کنید:

اکنون باید کانال را در لیست کانالها مشاهده کنید و پس از چند ثانیه، باید فعال شدن کانال را در کنسول ابری گوگل نیز مشاهده کنید:

حالا، شما آماده استفاده از کانال هستید!
۵. یک گردش کار ایجاد کنید
برای دریافت رویدادها از ارائه دهنده، به یک مقصد در Google Cloud نیاز دارید. Eventarc از تعدادی مقصد رویداد مانند Cloud Run، Workflows و سرویسهای Kubernetes پشتیبانی میکند. در این حالت، یک Workflow برای ثبت رویدادهای دریافتی مستقر کنید.
یک فایل workflow-datadog1.yaml با محتوای زیر ایجاد کنید:
main:
params: [event]
steps:
- logStep:
call: sys.log
args:
data: ${event}
توجه داشته باشید که گردش کار یک رویداد را به عنوان پارامتر دریافت میکند. این رویداد از طریق Eventarc و از طریق مانیتورینگ Datadog ارسال میشود. پس از دریافت رویداد، گردش کار به سادگی رویداد دریافتی را ثبت میکند.
گردش کار را مستقر کنید:
WORKFLOW_NAME=workflow-datadog1 gcloud workflows deploy $WORKFLOW_NAME \ --source workflow-datadog1.yaml \ --location $REGION
گردش کار مستقر شده است اما هنوز اجرا نشده است. این گردش کار توسط یک تریگر Eventarc هنگام دریافت هشدار Datadog اجرا خواهد شد.
۶. یک تریگر Eventarc ایجاد کنید
اکنون آمادهاید تا رویدادها را از ارائهدهنده Datadog به Workflows با یک trigger Eventarc متصل کنید.
پیکربندی حساب سرویس
هنگام ایجاد یک تریگر، به یک حساب کاربری سرویس با نقش 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
یک تریگر ایجاد کنید
یک تریگر با کانال Datadog، نوع رویداد و همچنین یک مقصد گردش کار ایجاد کنید:
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
۷. یک مانیتور Datadog ایجاد کنید
اکنون یک مانیتور Datadog ایجاد کرده و آن را به Eventarc متصل خواهید کرد.
این یک مانیتور از نوع Hello World با مقادیر پیشفرض خواهد بود. شما به صورت دستی آن را فعال میکنید تا هشدارهای نظارتی ایجاد شود که به نوبه خود یک رویداد Eventarc را در Google Cloud ایجاد میکند.
برای ایجاد یک مانیتور در Datadog، وارد Datadog شوید . در منوی اصلی، موس را روی Monitors ببرید و در زیرمنو روی New Monitor کلیک کنید. انواع مانیتور زیادی وجود دارد. نوع مانیتور Metric را انتخاب کنید.
در صفحه New Monitor ، مقادیر پیشفرض را برای مراحل ۱ و ۲ رها کنید.
- در مرحله ۳،
Alert thresholdروی ۱ تنظیم کنید. - در مرحله ۴، نام مانیتور
Test monitor for Eventarcتنظیم کنید وNotify your teamروی@eventarc_<your-project-id>_<your-region>_<your-channel-name>تنظیم کنید.
صفحه مانیتور را برای مرحله بعدی که مانیتور را آزمایش خواهید کرد، باز نگه دارید.
۸. مانیتور و تریگر را آزمایش کنید
برای آزمایش مانیتور Datadog و تریگر Eventarc، مانیتور را به صورت دستی تریگر خواهید کرد.
در پایین صفحه ایجاد مانیتور، روی دکمه Test Notifications کلیک کنید:

سپس، روی دکمه Run Test کلیک کنید:

این باید انتقال حالت را در مانیتور شبیهسازی کند و یک رویداد Eventarc را آغاز کند.
گردش workflow-datadog1 را بررسی کنید. باید ببینید که یک اجرای جدید وجود دارد:

جزئیات اجرا را بررسی کنید. باید نوع رویداد Datadog با نام datadog.v1.alert که از هشدار مانیتورینگ ایجاد شده است را در ورودی گردش کار و همچنین در لاگها مشاهده کنید:

۹. تبریک
تبریک میگویم، شما آزمایشگاه کد را تمام کردید! میتوانید به آزمایشگاه کد دوم بروید تا یاد بگیرید چگونه با Workflows به هشدارهای مانیتورینگ Datadog پاسخ دهید.
آنچه ما پوشش دادهایم
- چگونه ارائه دهنده Datadog را پیدا کنیم.
- نحوه تنظیم کانال برای ارائه دهنده Datadog.
- نحوه ایجاد گردش کار برای ثبت رویدادها.
- نحوه ایجاد یک تریگر Eventarc با کانال.
- نحوه ایجاد یک مانیتور Datadog.
- نحوه آزمایش مانیتور Datadog، تریگر Eventarc و گردش کار.