Sử dụng API phát hiện hoạt động bất thường

Bạn đang xem tài liệu về Apigee Edge.
Truy cập vào tài liệu Apigee X.
thông tin

Hầu hết các API mà bạn dùng để tạo và quản lý cảnh báo bất thường cũng như thu thập chỉ số bất thường đều giống với các API mà bạn dùng với cảnh báo cố định. Các API cảnh báo sau đây hoạt động theo cách tương tự cho cả cảnh báo cố định và cảnh báo bất thường:

Tuy nhiên, một số API có các thuộc tính bổ sung được dùng để hỗ trợ cảnh báo bất thường, bao gồm:

  • Nhận cảnh báo – Liệt kê tất cả cảnh báo, bao gồm cả cảnh báo cố định và cảnh báo bất thường.
  • Tạo cảnh báo – Tạo cảnh báo cố định hoặc cảnh báo bất thường.
  • Cập nhật cảnh báo – Cập nhật định nghĩa cảnh báo cố định hoặc cảnh báo bất thường.

Thiết lập $ACCESS_TOKEN

Tất cả lệnh gọi API xuất hiện bên dưới đều truyền thông tin đăng nhập của bạn trong một biến môi trường có tên là $ACCESS_TOKEN. Đặt $ACCESS_TOKEN thành mã truy cập OAuth 2.0, như mô tả trong phần Lấy mã truy cập OAuth 2.0. Để biết thông tin về các lựa chọn cURL được dùng trong những ví dụ này, hãy xem phần Sử dụng cURL.

Nhận thông báo

Theo mặc định, API Nhận cảnh báo sẽ trả về thông tin về tất cả cảnh báo đã xác định. API này hiện sử dụng các tham số truy vấn để cho phép bạn lọc kết quả:

  • enabled – Nếu true chỉ định chỉ trả về các cảnh báo đã bật. Giá trị mặc định là false.
  • alertType – Chỉ định loại cảnh báo cần trả về. Các giá trị được phép là runtime (mặc định), cert.
  • alertSubType – Chỉ định loại cảnh báo phụ cần trả về. Giá trị mặc định là chưa đặt, nghĩa là trả về tất cả các loại cảnh báo phụ. Chỉ định anomaly để trả về cảnh báo bất thường.

Ví dụ: sử dụng lệnh gọi API sau đây để chỉ trả về các cảnh báo đã bật cho tổ chức có tên là myorg:

curl -H "Authorization: Bearer $ACCESS_TOKEN" \
'https://apimonitoring.enterprise.apigee.com/alerts?org=myorg&enabled=true'

Lệnh gọi sau đây chỉ trả về các cảnh báo bất thường, cả đã bật và đã tắt:

curl -H "Authorization: Bearer $ACCESS_TOKEN" \
'https://apimonitoring.enterprise.apigee.com/alerts?org=myorg&alertType=runtime&alertSubType=anomaly'

Tạo hoặc cập nhật cảnh báo bất thường

Sử dụng cùng các API để tạo hoặc cập nhật một cảnh báo bất thường như bạn hiện đang làm đối với cảnh báo cố định. Nội dung của lệnh gọi API để tạo hoặc cập nhật cảnh báo bất thường giống như nội dung được dùng cho cảnh báo cố định, với những thay đổi sau:

  • Bạn phải thêm các thuộc tính mới sau đây để chỉ định rằng cảnh báo là cảnh báo bất thường:

    "alertType": "runtime"
    "alertSubType": "anomaly"

    Giá trị mặc định của các thuộc tính này là:

    "alertType": "runtime"
    "alertSubType": "fixed"
  • Trong mảng conditions:

    • Thuộc tính metrics chỉ nhận các giá trị sau:

      • count – Đưa ra cảnh báo về số lượng lỗi HTTP.
      • totalLatency – Đưa ra cảnh báo về độ trễ.
    • Thuộc tính threshold nhận một chuỗi thay vì một số. Các giá trị được hỗ trợ bao gồm: slight, moderate và severe.
    • Thuộc tính durationSeconds và comparator không được hỗ trợ.
  • Trong phần tử dimensions của mảng conditions:

    • Bạn phải đặt giá trị của thuộc tính proxy thành ALL.
    • Thuộc tính statusCode chỉ hỗ trợ giá trị 4xx, 503, 504, and 5xx.
    • Các thuộc tính developerApp, collection, faultCodeCategory, faultCodeSubCategory, faultCodeName không được hỗ trợ.
  • Thuộc tính reportEnabled không được hỗ trợ cho cảnh báo bất thường.

Lệnh gọi API ví dụ sau đây sẽ tạo một cảnh báo bất thường được kích hoạt khi mã trạng thái 5xx xuất hiện ở mức độ vừa phải cho tất cả các proxy API trong môi trường prod cho mọi khu vực. Thông báo sẽ được gửi đến địa chỉ email đã chỉ định khi cảnh báo được kích hoạt:

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
    }'

Sử dụng API sự kiện với các điểm bất thường

Sử dụng API /metrics/events để nhận tất cả sự kiện trong một tổ chức trong một khoảng thời gian cụ thể. Danh sách sự kiện bao gồm các điểm bất thường mà Edge phát hiện được và mọi cảnh báo đã được kích hoạt. Cảnh báo có thể bao gồm cả cảnh báo cố định và cảnh báo bất thường.

Theo mặc định, API này trả về tất cả sự kiện trong giờ trước đó. Sử dụng các tham số truy vấn from và to để chỉ định một khoảng thời gian khác. Giá trị tham số truy vấn from và to để chỉ định một khoảng thời gian khác.

Ví dụ: lệnh gọi API sau đây trả về tất cả sự kiện trong tổ chức myorg trong 12 giờ trước đó:

curl -H "Authorization: Bearer $ACCESS_TOKEN" \
"https://apimonitoring.enterprise.apigee.com/metrics/events?org=myorg&from=-12h&to=now"

Đặt $ACCESS_TOKEN thành mã truy cập OAuth 2.0, như mô tả trong phần Lấy mã truy cập OAuth 2.0. Để biết thông tin về các tuỳ chọn cURL được dùng trong ví dụ này, hãy xem phần Sử dụng cURL.

Lệnh gọi tiếp theo sẽ trả về tất cả các sự kiện bất thường có ngưỡng trung bình trong 24 giờ qua:

curl -H "Authorization: Bearer $ACCESS_TOKEN" \
"https://apimonitoring.enterprise.apigee.com/metrics/events?org=myorg&type=anomaly&threshold=moderate&from=-24h&to=now"

API này chỉ yêu cầu tham số truy vấn org. Cùng với các tham số truy vấn được mô tả trong tài liệu API tại /metrics/events, API này hỗ trợ các lựa chọn sau để hỗ trợ tính năng phát hiện điểm bất thường:

Tên Mô tả Mặc định
threshold

Lọc các sự kiện theo ngưỡng được chỉ định: slight, moderate hoặc severe.

Chỉ được phép khi bạn đặt type=anomaly.

Tất cả mức độ nghiêm trọng
type Lọc sự kiện theo loại đã chỉ định: alert hoặc anomaly. Chỉ định nhiều giá trị dưới dạng danh sách được phân tách bằng dấu phẩy. Tất cả các loại