Tạo custome metric

CloudWatch metric cung cấp sẵn một vài metric cho Lambda function như:

  • Số lần function được thực thi
  • Thời gian thực thi của mỗi lần, error rates
  • Throttle count.

Chúng ta sẽ tạo một metric mới tổng hợp số lần truy cập vào DynamoDB bị lỗi.

  1. Tại bảng điều khiển của hàm upload_docs, chọn tab Code và thêm dòng code sau ở đầu hàm.
client_cloudwatch = boto3.client('cloudwatch')
  • Thêm đoạn code sau vào except block của put_item vào bảng DynamoDB trước khi trả về kết quả
        client_cloudwatch.put_metric_data(
            Namespace='UploadDocs_Lambda',
            MetricData=[
                {
                    'MetricName': 'FailedConnectToDynamoDB',
                    'Dimensions': [
                        {
                            'Name': 'env',
                            'Value': 'staging'
                        },
                    ],
                    'Value': 1.0,
                    'Unit': 'Seconds'
                },
            ]
        )
  • Đoạn code giúp bạn tạo một metric mới và đẩy dữ liệu vào đó mỗi lần kết nối với DynamoDB bị lỗi

CreateRepository

  1. Cấp quyền cho function được phép truy cập vào đẩy dữ liệu vào metric:
    • Chọn tab Configuration và chọn Permissions ở menu phía bên trái
    • Chọn role mà hàm đang thực thi

CreateRepository

  1. Mở rộng policy và ấn Edit

CreateRepository

  1. Thêm đoạn dưới đây vào tab JSON và ấn Review policy
,
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "cloudwatch:PutMetricData",
            "Resource": "*"
        }

CreateRepository

  1. Ấn Save changes

CreateRepository

  1. Kiểm tra POST API lần nữa với API Gateway
  2. Mở bảng điều khiển của CloudWatch
  3. Ấn vào Mectrics ở menu phía bên trái, sau đó ấn All metrics
  4. Trong mục Custom namespaces xuất hiện metric mà bạn tạo - UploadDocs_Lambda. Chọn metric đó.

CreateRepository

  1. Ấn env

CreateRepository

  1. Chọn staging, biểu đồ hiện thị dữ liệu

CreateRepository

  1. Bạn có thể tuỳ chọn các thông số hiện thị theo thời gian 1 ngày hay 1 tuần, kiểu hiện thị dòng hay số ở phía bên trên đồ thị

Vậy là chúng ta đã tạo xong một custom metric. Bước tiếp theo chúng ta sẽ sử dụng nó để tạo một CloudWatch Alarm