Лямбда-функция AWS, которая отправляет метрики в CloudWatch - PullRequest
0 голосов
/ 25 марта 2019

Мне нужно контролировать размер AWS EFS с помощью лямбда-функции AWS. Как можно подтолкнуть метрики к:

  • Prometheus
  • 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

Как мне обернуть его в формат метрики и отправить в Cloudwatch или Prometheus?

Заранее спасибо.

1 Ответ

0 голосов
/ 28 марта 2019

Чтобы отправить метрики в Cloudwatch, выполните следующие действия:
Создайте лямбда-функцию с соответствующей ролью.Роль должна содержать следующую политику:

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

После присоединения вышеуказанной политики к функции лямбда-функция должна иметь разрешения для журналов Cloudwatch и Cloudwatch.

Развертывание вашего кода в функции Lambdaи сохраните его.

Нажмите кнопку «Тест», чтобы проверить лямбда-функцию.

Перейдите на страницу метрик Cloudwatch, чтобы узнать, доступны ли метрики.
Показ метрики в консоли Cloudwatch может занять около 5-20 минут.
Вы должны увидеть пространство имен, которое вы указали в коде, появившееся в консоли Cloudwatch.


Спасибо

...