از API تشخیص ناهنجاری استفاده کنید

شما در حال مشاهده مستندات 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

رویدادها را بر اساس آستانه مشخص‌شده فیلتر کنید: slight ، moderate ​​یا severe .

فقط زمانی مجاز است که type=anomaly را تنظیم کنید.

همه شدت‌ها
type رویدادها را بر اساس نوع مشخص شده فیلتر کنید: alert یا anomaly . چندین مقدار را به صورت لیستی که با کاما از هم جدا شده‌اند، مشخص کنید. همه انواع