AWS Cost Dashboard на ELK - PullRequest
       43

AWS Cost Dashboard на ELK

0 голосов
/ 26 сентября 2018

Постановка проблемы: Я хочу получить показатели затрат, отфильтрованные по связанной учетной записи и сгруппированные по услугам, для моей учетной записи 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"]
}
...