Giám sát với X-ray
Trong phần này chúng ta sẽ kích hoạt X-ray cho Lambda function để track incoming và outgoing requests tới function, biết được từng đoạn của function tốn bao nhiêu thời gian. Khi đó chúng ta sẽ biết được function bị chậm ở chỗ nào và từ đó dễ dàng tối ưu hoá nó.
- Mở bảng điều khiển của AWS Lambda
- Ấn vào function list_docs
- Ấn tab Configure
- Ấn Monitoring and operations tools ở menu phía bên trái
- Ấn Edit

- Ấn Active tracing ở mục AWS X-Ray
- Ấn Save

- Mở bảng điều khiển của Amazon DynamoDB
- Chọn Explore items ở menu phía bên trái và chọn bảng Documents
- Sao chép user id.

- Chuyển hướng sang bảng điều khiển của API Gateway
- Chọn method GET của /{id}
- Ấn Test

- Dán user id vào mục {id} và ấn Test


- Mở bảng điều khiển của CloudWatch
- Mở rộng X-Ray traces
- Ấn Traces
- Kéo xuống cuối ấn vào trace đang hiện thị



- Initialization subsegment: đại diện cho giai đoạn init của vòng đời môi trường thực thi của Lambda. Trong giai đoạn này, Lambda tạo hoặc mở moi trường thực thi với các tài nguyên đã được cấu hình, tải xuống mã hàm và tất cả cá lớp, chạy runtime và khởi tạo hàm.
- Invocation subsegment: đại diện cho giai đoạn Lambda gọi trình xử lý hàm. Điều này bắt đầu với thời gian chạy và đăng ký tiện ích mở rộng và nó kết thúc khi thời gian chạy đã sẵn sàng để gửi phản hồi.
- Overhead subsegment: đại diện cho giai đoạn xảy ra giữa thời gian mà runtime gửi phản hồi và tín hiệu cho lần gọi tiếp theo. Trong thời gian này, runtime kết thúc tất cả các tác vụ liên quan đến một lệnh gọi và chuẩn bị đóng băng hộp cát.
- Để patch tất cả các thư viện được sử dụng trong function chúng ta thêm đoạn code sau vào đầu hàm list_docs trong máy của bạn
from aws_xray_sdk.core import xray_recorder
from aws_xray_sdk.core import patch_all
patch_all()

- Chạy các câu lệnh sau tại thư mục list_docs
pip install --target ./package aws_xray_sdk
cd package
zip -r ../deployment-package.zip .
cd ..
zip -g deployment-package.zip list_docs.py
- Quay lại với bảng điều khiển của function book_delete
- Ấn tab Code
- Ấn Upload from, chọn .zip file

- Ấn Upload, sau đó chọn tệp deployment-package.zip mà bạn vừa tạo
- Ấn Save

- Gọi GET API bằng bảng điều khiển của API Gateway

- Điều hướng đến bảng điều khiển của CloudWatch
- Ấn vào trace mới nhất

- Bạn sẽ thấy các thông tin cụ thể hơn so với trace trước

