API Logging and Gateway Monitoring
Ghi Nhận API
Khi chính sách "stdout-log" được áp dụng và triển khai cho mỗi API trong bảng điều khiển APIM, các ghi nhận API được lưu trữ trong kho ghi nhận ZCP.
Cách xem Ghi Nhận API
- Đăng nhập vào bảng điều khiển Cloud ZCP > đi đến màn hình [Quản trị hệ thống] > nhấp vào menu [Ghi nhận]
- Trong Kibana, nhấp vào biểu tượng người dùng ở góc trên bên phải, nhấp vào Drop Down > Chuyển đổi người thuê > Chọn từ tùy chỉnh > apim_tenant
- Menu [Khám Phá]: Tìm kiếm dữ liệu Ghi Nhận API (chọn chỉ mục xxxx.apim*) và sử dụng + Thêm Bộ Lọc:
- kubernetes.container_name: proxy
- api_id: tồn tại
- Bộ lọc để phân biệt các cụm: kubernetes.namespace_labels.cluster: xxxxxx-prd (tùy chọn)
- Menu [Khám Phá]: Kiểm tra chi tiết Ghi Nhận API
{
"_index": "xxxx.apim.xxxxx-prd.apim-xxxx.xx.xx",
"_id": "xxxxxxxxxxxxxx",
"_score": 1,
"_source": {
"@timestamp": "dd mm yyyy hh:mm:ss.sssZ",
"log": "{\"space_name\":\"xxxxxxx\",\"request_uri\":\"/path/to/api\",\"request_method\":\"POST\",\"duration\":xx,\"api_id\":\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\"response_status\":200,\"api_name\":\"xxxxxx\",\"response_size\":xxx,\"request_size\":xxx,\"start_at\":xxxxxxxxxxxxxxx,\"duration_kong\":0,\"duration_proxy\":xx,\"space_id\":\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"}",
"logtag": "F",
"stream": "stdout",
"time": "dd mm yyyy hh:mm:ss.sss+hh:mm",
"topic": "kube.var.log.containers.xxxxx-apim.xxxx-xxxx-yyyyy.log",
"space_name": "xxxxxxx",
"request_uri": "/path/to/api",
"request_method": "POST",
"duration": xx,
"api_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"response_status": 200,
"api_name": "xxxxxx",
"response_size": xxx,
"request_size": xxx,
"start_at": xxxxxxxxxxxxxxx,
"duration_kong": 0,
"duration_proxy": xx,
"space_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"kubernetes": {
"container_name": "xxxx",
"namespace_name": "xxxx",
"pod_name": "xxxx-xxxx-xxxx-xxxx",
"container_image": "xxxxxx",
"container_image_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"pod_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"pod_ip": "xxx.xxx.xxx.xxx",
"host": "xxxxxx",
"labels": {
"app": "xxxxxx",
"app_kubernetes_io/component": "xxxx",
"app_kubernetes_io/instance": "xxxxxx",
"app_kubernetes_io/managed-by": "Helm",
"app_kubernetes_io/name": "xxxx",
"app_kubernetes_io/version": "x.x",
"helm_sh/chart": "xxxx-x.x.x",
"pod-template-hash": "xxxxxxxx",
"security_istio_io/tlsMode": "istio",
"service_istio_io/canonical-name": "xxxx",
"service_istio_io/canonical-revision": "x.x",
"version": "x.x"
},
"master_url": "https://xxx.xxx.xxx.xxx:xxx/api",
"namespace_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"namespace_labels": {
"cloudzcp_io/deploygroup": "xxxxxx",
"cloudzcp_io/deploygroup-cluster": "xxxxxx-prd",
"cloudzcp_io/managed-by": "xxxx",
"cloudzcp_io/project": "xxxx",
"cloudzcp_io/realm": "xxxxxx",
"cloudzdb_io/zdb-system": "true",
"cluster": "xxxxxx-prd",
"istio-injection": "enabled",
"kubernetes_io/metadata_name": "xxxx",
"project": "xxxx",
"realm": "xxxxxx"
}
},
"docker": {
"container_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
},
"tag": "projectPlain.project.kube.var.log.containers.xxxxx-apim.xxxx-xxxx-yyyyy.log"
},
"fields": {
"@timestamp": [
"dd mm yyyy hh:mm:ss.sssZ"
],
"time": [
"dd mm yyyy hh:mm:ss.sssZ"
]
}
}
- Menu [Bảng Điều Khiển]: Kiểm tra Bảng Điều Khiển APIM, phân loại theo môi trường (DEV, STG, PRD).
Mô Tả Bảng Điều Khiển
- Tổng số Gọi API, Tổng số Gọi Thành Công, Tổng số Gọi Thất Bại, và Trạng Thái Thành Công/Thất Bại:
Số lượng thất bại có thể bao gồm các lỗi không nghiêm trọng như 401, 499, mà không nhất thiết là lỗi nghiêm trọng từ ứng dụng thực tế. Do đó, điều quan trọng là cũng phải kiểm tra mã trạng thái (Trạng Thái Thành Công/Thất Bại).
- 5 Gọi API Hàng Đầu - Biểu Đồ Cột, Bảng:
Bạn có thể xem trạng thái của các API được gọi chủ yếu trong quá trình kiểm tra hiệu suất
- 5 Độ Trễ Phản Hồi API Hàng Đầu:
- Hiển thị các API có độ trễ phản hồi chậm khi được gọi.
- Độ Trễ Phản Hồi Cổng: Độ trễ xảy ra tại cổng.
- Độ Trễ Phản Hồi Backend: Độ trễ trong phản hồi từ ứng dụng backend.
- Độ Trễ Phản Hồi API: Tổng độ trễ, kết hợp độ trễ phản hồi cổng và backend.
- Vì tất cả các giá trị độ trễ phản hồi được đo bằng mili giây (ms), một độ trễ 100ms chỉ là 0.1 giây, điều này không phải là chậm đáng kể. Thông thường, thời gian phản hồi khoảng 1000ms (1 giây) hoặc hơn được coi là chậm.
- Kiểm tra nhật ký thất bại:
Người dùng có thể kiểm tra nhật ký của các cuộc gọi API mà mã trạng thái không phải là 200.
- Nhật Ký Lỗi Cổng Kong:
Bạn có thể kiểm tra nhật ký lỗi xảy ra trong Cổng Kong. Sử dụng lỗi, redis làm bộ lọc nhật ký.
Menu [Hình Ảnh]: Biểu Đồ Tùy Chỉnh APIM có thể được quản lý
Giám Sát Cổng API
- Đăng nhập vào bảng điều khiển Cloud ZCP > Đi đến màn hình [Quản trị hệ thống] > nhấp vào menu [Giám sát] > nhấp vào nút [Giám sát Nâng Cao]
- Grafana > ID người dùng ở góc trên bên trái > chọn admin@localhost
- Bảng Điều Khiển > Duyệt > Bảng Điều Khiển APIM
Chỉ Số Tài Nguyên Cổng API
- Trang Chủ > Bảng Điều Khiển > Bảng Điều Khiển APIM > CỔNG APIM
- Cụm, Tên Kong, Dịch Vụ Kong, Đường Dẫn Kong
Chỉ Số Tài Nguyên Cổng API. v2
Phiên bản với các chỉ số chi tiết hơn của cổng.
- Trang Chủ > Bảng Điều Khiển > Bảng Điều Khiển APIM > APIM > CỔNG V2
- Cụm, Tên Kong, Dịch Vụ Kong, Đường Dẫn Kong, Triển Khai, Pod
Hướng Dẫn Mẫu Phương Trình Tích Lũy Dữ Liệu Ghi Nhận/Giám Sát APIM
Số Lượng Dữ Liệu Ghi Nhận APIM
Ghi Nhận API APIM:
- Tần suất: Bất cứ lúc nào.
- Số lượng dữ liệu đơn: 2KB + Kích thước Thân HTTP.
- Quy mô thu thập dữ liệu hàng tháng:
- Ghi Nhận Với Thân: Khi được đặt thành Đúng
- Giả định: Kích thước Thân Trung Bình Assuming 10KB với 3000 cuộc gọi mỗi phút (50 cuộc gọi mỗi giây)
- (2 KB + 10 KB) * 3000 cuộc gọi * 60 phút * 24 giờ * 30 ngày = 1555 GB
- Ghi Nhận Với Thân: Khi đặt thành Sai
- Giả định: Với kích thước thân trung bình là 0 KB và 3000 cuộc gọi mỗi phút (50 cuộc gọi mỗi giây)
- (2 KB + 0 KB) * 3000 cuộc gọi * 60 phút * 24 giờ * 30 ngày = 259 GB
- Ghi Nhận Với Thân: Khi được đặt thành Đúng
Số Lượng Dữ Liệu Giám Sát APIM
Chỉ Số GW Kong (Độ trễ, Kết nối, v.v.)
- Chu kỳ: 15s (mặc định)
- Số lượng dữ liệu đơn: 20KB
- Quy mô thu thập dữ liệu hàng tháng: 20KB * 4 (4 lần mỗi phút) * 60 phút * 24 giờ * 30 ngày = 3.5 GB