شما در حال مشاهده مستندات Apigee Edge هستید.
به مستندات Apigee X مراجعه کنید . اطلاعات
بیشتر APIهایی که برای ایجاد و مدیریت هشدارهای ناهنجاری و جمعآوری معیارهای ناهنجاری استفاده میکنید، مشابه APIهایی هستند که برای هشدارهای ثابت استفاده میکنید. APIهای هشدار زیر برای هشدارهای ثابت و ناهنجاری به یک شکل کار میکنند:
- دریافت هشدار - تعریف هشدار ثابت یا غیرعادی را دریافت کنید.
- دریافت تاریخچه هشدار - معیارهای تاریخچه هشدار را دریافت کنید.
- حذف هشدار - تعریف هشدار ثابت یا غیرعادی را حذف کنید.
- دریافت نمونه هشدار - اطلاعات مربوط به هشدار فعال شده را دریافت کنید.
- تعداد هشدارها را دریافت کنید - تعداد کل هشدارها را دریافت کنید.
با این حال، برخی از APIها دارای ویژگیهای اضافی هستند که برای پشتیبانی از هشدارهای ناهنجاری استفاده میشوند، از جمله:
- دریافت هشدارها - تمام هشدارها، از جمله هشدارهای ثابت و غیرعادی را فهرست کنید.
- ایجاد هشدار - یک هشدار ثابت یا غیرعادی ایجاد کنید.
- بهروزرسانی هشدار - تعریف هشدار ثابت یا غیرعادی را بهروزرسانی کنید.
تنظیم $ACCESS_TOKEN
تمام فراخوانیهای API که در زیر نشان داده شدهاند، اعتبارنامههای شما را در یک متغیر محیطی به نام $ACCESS_TOKEN منتقل میکنند. $ACCESS_TOKEN مطابق آنچه در بخش «دریافت توکن دسترسی OAuth 2.0» توضیح داده شده است، روی توکن دسترسی OAuth 2.0 خود تنظیم کنید. برای اطلاعات بیشتر در مورد گزینههای cURL مورد استفاده در این مثالها، به بخش «استفاده از cURL» مراجعه کنید.
دریافت هشدارها
به طور پیشفرض، API مربوط به Get alerts اطلاعات مربوط به تمام هشدارهای تعریف شده را برمیگرداند. این API اکنون پارامترهای پرسوجو را دریافت میکند تا به شما امکان فیلتر کردن نتایج را بدهد:
-
enabled- اگرtrueمشخص میکند که فقط هشدارهای فعالشده را برگرداند. مقدار پیشفرضfalseاست. -
alertType- نوع هشداری که باید برگردانده شود را مشخص میکند. مقادیر مجاز عبارتند ازruntime، default وcert. -
alertSubType- زیرنوع هشداری که باید برگردانده شود را مشخص میکند. مقدار پیشفرض تنظیم نشده است، به این معنی که همه زیرنوعهای هشدار را برگرداند. برای برگرداندن هشدارهای ناهنجاری،anomalyرا مشخص کنید.
برای مثال، از فراخوانی API زیر برای بازگرداندن هشدارهای فقط فعال برای سازمانی به نام myorg استفاده کنید:
curl -H "Authorization: Bearer $ACCESS_TOKEN" \ 'https://apimonitoring.enterprise.apigee.com/alerts?org=myorg&enabled=true'
فراخوانی زیر فقط هشدارهای ناهنجاری را، چه فعال و چه غیرفعال، برمیگرداند:
curl -H "Authorization: Bearer $ACCESS_TOKEN" \ 'https://apimonitoring.enterprise.apigee.com/alerts?org=myorg&alertType=runtime&alertSubType=anomaly'
ایجاد یا بهروزرسانی هشدار ناهنجاری
برای ایجاد یا بهروزرسانی هشدار ناهنجاری، از همان APIهایی استفاده کنید که در حال حاضر برای هشدار ثابت استفاده میکنید. بدنه فراخوانی API برای ایجاد یا بهروزرسانی هشدار ناهنجاری، همان چیزی است که برای هشدار ثابت استفاده میشود، با تغییرات زیر:
برای مشخص کردن اینکه هشدار از نوع ناهنجاری است، باید ویژگیهای جدید زیر را اضافه کنید:
"alertType": "runtime" "alertSubType": "anomaly"
مقادیر پیشفرض این ویژگیها عبارتند از:
"alertType": "runtime" "alertSubType": "fixed"
در آرایه
conditions:ویژگی
metricsفقط مقادیر زیر را میپذیرد:-
count- در صورت وجود تعداد خطاهای HTTP، هشدار ایجاد میکند. -
totalLatency- هشدار برای تأخیر را فعال کنید.
-
- ویژگی
thresholdبه جای عدد، یک رشته میگیرد. مقادیر پشتیبانی شده عبارتند از:slight،moderateوsevere. - ویژگیهای
durationSecondsوcomparatorپشتیبانی نمیشوند.
در عنصر
dimensionsآرایهconditions:- شما باید مقدار ویژگی
proxyرا رویALLتنظیم کنید. - ویژگی
statusCodeفقط از مقادیر4xx, 503, 504, and 5xxپشتیبانی میکند. - ویژگیهای
developerApp،collection،faultCodeCategory،faultCodeSubCategoryوfaultCodeNameپشتیبانی نمیشوند.
- شما باید مقدار ویژگی
- ویژگی
reportEnabledبرای هشدارهای ناهنجاری پشتیبانی نمیشود.
مثال زیر یک فراخوانی API ایجاد میکند که وقتی کدهای وضعیت 5xx با نرخ متوسط برای همه پروکسیهای API در محیط تولید برای هر منطقه رخ میدهند، یک هشدار ناهنجاری ایجاد میکند. هنگام فعال شدن هشدار، یک اعلان به آدرس ایمیل مشخص شده ارسال میشود:
curl 'https://apimonitoring.enterprise.apigee.com/alerts' \
-X POST \
-H 'Accept: application/json, text/plain, */*' -H "Content-Type: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-d '{
"organization":"myorg",
"name":"5xx Anomaly Alert",
"description":"My 5xx alert",
"environment":"prod",
"enabled":true,
"alertType": "runtime",
"alertSubType": "anomaly",
"conditions":[
{
"description":"",
"dimensions":{
"org":"myorg",
"env":"prod",
"proxy":"ALL",
"region":"ANY",
"statusCode":"5xx"
},
"metric":"count",
"threshold": "moderate"
}
],
"notifications":[{
"channel":"email",
"destination":"ops@acme.com"
}],
"playbook":"http://acme.com/myplaybook.html",
"throttleIntervalSeconds":3600
}'
استفاده از API رویدادها با ناهنجاریها
از API مربوط به /metrics/events برای دریافت تمام رویدادهای یک سازمان در یک بازه زمانی مشخص استفاده کنید. لیست رویدادها شامل ناهنجاریهای شناسایی شده توسط Edge و هرگونه هشدار فعال شده است. این هشدارها میتوانند شامل هشدارهای ثابت و ناهنجاری باشند.
به طور پیشفرض، API تمام رویدادهای ساعت قبل را برمیگرداند. از پارامترهای query مربوط به from و to برای تعیین مدت زمان متفاوت استفاده کنید. مقادیر پارامترهای query مربوط from و to برای تعیین مدت زمان متفاوت است.
برای مثال، فراخوانی API زیر تمام رویدادهای موجود در سازمان myorg را برای ۱۲ ساعت گذشته برمیگرداند:
curl -H "Authorization: Bearer $ACCESS_TOKEN" \ "https://apimonitoring.enterprise.apigee.com/metrics/events?org=myorg&from=-12h&to=now"
همانطور که در بخش «دریافت توکن دسترسی OAuth 2.0» توضیح داده شده است، $ACCESS_TOKEN را روی توکن دسترسی OAuth 2.0 خود تنظیم کنید. برای اطلاعات بیشتر در مورد گزینههای cURL مورد استفاده در این مثال، به «استفاده از cURL» مراجعه کنید.
فراخوانی بعدی تمام رویدادهای ناهنجاری را با آستانه متوسط برای ۲۴ ساعت گذشته برمیگرداند:
curl -H "Authorization: Bearer $ACCESS_TOKEN" \ "https://apimonitoring.enterprise.apigee.com/metrics/events?org=myorg&type=anomaly&threshold=moderate&from=-24h&to=now"
فقط پارامتر پرسوجوی org برای این API مورد نیاز است. این API علاوه بر پارامترهای پرسوجو که در سند API در /metrics/events شرح داده شده است، از گزینههای زیر برای پشتیبانی از تشخیص ناهنجاری پشتیبانی میکند:
| نام | توضیحات | پیشفرض |
|---|---|---|
threshold | رویدادها را بر اساس آستانه مشخصشده فیلتر کنید: فقط زمانی مجاز است که | همه شدتها |
type | رویدادها را بر اساس نوع مشخص شده فیلتر کنید: alert یا anomaly . چندین مقدار را به صورت لیستی که با کاما از هم جدا شدهاند، مشخص کنید. | همه انواع |