Получение конкретных показателей из AWS Cloudwatch с помощью boto3Python

Программы на Python
Ответить
Anonymous
 Получение конкретных показателей из AWS Cloudwatch с помощью boto3

Сообщение Anonymous »

У меня есть бессерверное приложение, состоящее из множества лямбда-функций. Каждая лямбда-функция имеет тег «STAGE», для которого установлено значение «производство» или «постановка». Сейчас мне нужно получить данные об общем количестве вызовов для каждой производственной лямбда-функции за последний календарный месяц (30 дней или 4 недели) с периодом в 1 день. Мне удалось добиться этого в консоли AWS (Cloudwatch > Explorer), как показано на снимке экрана ниже:
[img]https:// i.sstatic.net/M640unSp.png[/img]

Но дело в том, что мне нужно получить эти данные программно, чтобы передать их в своего рода конвейер ETL, который сгенерирует отчет. с определенным форматом. Я придумал следующий скрипт для получения этих данных:

Код: Выделить всё

import datetime
import boto3

client = boto3.client("cloudwatch", region_name="eu-west-1")
from_date = datetime.date.today()
month_ago = from_date - datetime.timedelta(days=30)

response = client.get_metric_data(
MetricDataQueries=[{
"Id": "test",
"MetricStat": {
"Metric": {
"Namespace": "AWS/Lambda",
"MetricName": "Invocations",
"Dimensions": [{
"Name": "STAGE",
"Value": "production"
}]
},
"Period": 86400,
"Stat": "Sum"
},
"ReturnData": True,
}],
StartTime=month_ago.strftime("%Y-%m-%dT00:00:00Z"),
EndTime=from_date.strftime("%Y-%m-%dT00:00:00Z")
)

Но все, что он возвращает мне с этими параметрами, — это пустой набор данных: { 'MetricDataResults': [{'Id': 'test', 'Label': 'Вызовы', 'Timestamps' : [], 'Values': [], 'StatusCode': 'Complete'}] ...
И пытаюсь выполнить следующее выражение "SELECT SUM(Вызовы) FROM SCHEMA(\"AWS/Lambda\") WHERE \"STAGE\" = 'production' GROUP BY FunctionName" вместо dict MetricStat вызывает исключение MaxQueryTimeRangeExceed, поскольку мы разрешено ВЫБРАТЬ данные только за последние 3 часа.
Как мне правильно построить запрос, чтобы получить те же данные с теми же фильтрами, что и я делать в консоли AWS в этом случае? Заранее спасибо!

Подробнее здесь: https://stackoverflow.com/questions/792 ... with-boto3
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»