AWS Cost Dashboard на ELK
Постановка проблемы: я хочу получить показатели затрат, отфильтрованные по связанной учетной записи и сгруппированные по услугам, для моей учетной записи AWS с использованием boto3. Затем я хочу опубликовать эти данные в Elasticsearch (ES) и визуализировать эти данные на Kibana в виде круговой диаграммы, которая показывает разбивку затрат, сгруппированных по услугам (EC2, S3 и т. Д.). Я также хочу иметь возможность фильтровать данные по времени и визуализировать их с помощью гистограммы временных рядов. Эти визуализации должны быть на одной панели. Обратите внимание, что поле timestamp устарело в ELK, что увеличивает сложность. В настоящее время я использую сервис get_cost_and_usage() (boto3) для извлечения данных и вывода их (вызов PUT) в ES с помощью ES API.
get_cost_and_usage() возвращает ответ, сгруппированный по сервису, который нелегко прочитать в ES. Как мне получить его в формате, который можно легко визуализировать в Кибане? Кроме того, мне нужно иметь возможность фильтровать по времени до 6 месяцев назад. Как мне сделать это с полем @timestamp, которое устарело в ES сейчас? Есть ли примеры визуализаций / панелей управления Kibana, которые я могу использовать, не изобретая велосипед? Я знаю, что панель инструментов AWS Cost Billing может быть использована для того же, но мне нужно, чтобы это работало в Кибане.
Полезная нагрузка моего запроса показана ниже:
POST URL: https://ce.us-east-1.amazonaws.com
{
"TimePeriod": {
"Start":"2018-08-01",
"End": "2018-09-01"
},
"Granularity": "MONTHLY",
"Filter": {
"Dimensions": {
"Key": "LINKED_ACCOUNT",
"Values": [
"<aws_account_id>"
]
}
},
"GroupBy":[
{
"Type":"DIMENSION",
"Key":"SERVICE"
},
{
"Type":"TAG",
"Key":"Environment"
}
],
"Metrics":["BlendedCost", "UnblendedCost", "UsageQuantity"]
}