我需要使用AWS lambda函数监视我的AWS EFS大小。如何将指标推向:
我已经创建了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?
谢谢。
答案 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控制台中显示的代码中指定的名称空间。
谢谢