AWS Lambda函数,可将指标发送到CloudWatch

时间:2019-03-25 11:00:32

标签: amazon-web-services aws-lambda prometheus

我需要使用AWS lambda函数监视我的AWS EFS大小。如何将指标推向:

  • 普罗米修斯?
  • CloudWatch?

我已经创建了Lambda脚本,该脚本将需要监视的值输出到日志中。

import boto3

client = boto3.client('efs')
response = client.describe_file_systems()

def lambda_handler(event, context):
    for index, (key, value) in enumerate(response.items()):
        print(response['FileSystems'][index]['Name'] + ": " + str(response['FileSystems'][index]['SizeInBytes']['Value']))

在输出中,我收到EFS名称和EFS大小:

Function Logs:
START RequestId: be212482-3af7-44d10-97ba-60a66m0fa431 Version: $LATEST
EFS1: 3243905849
EFS2: 9823974308

如何将其包装成metrica的格式并将其推送到Cloudwatch或Prometheus?

谢谢。

1 个答案:

答案 0 :(得分:0)

要将指标发送到Cloudwatch,请执行以下步骤:
创建具有适当角色的Lambda函数。该角色应包含以下策略:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": "*"
        }
    ]
}

将上述策略附加到该函数后,lambda函数应具有Cloudwatch和Cloudwatch Logs的权限。

将代码部署到Lambda Function并保存。

单击“测试”按钮以测试lambda函数。

转到Cloudwatch指标页面以查看指标是否可用。
指标可能需要5到20分钟才能显示在Cloudwatch控制台中。
您应该看到在Cloudwatch控制台中显示的代码中指定的名称空间。


谢谢