Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

Todo o poder da Cloud Analytics na nova API: reports.query()

By Vadim SoloveyJul 14, 20235 min read

Esta página também está disponível em English, Deutsch, Español, Français, Italiano e 日本語.

Enquanto seguimos inovando e crescendo, uma coisa não muda: nosso compromisso em facilitar a vida dos desenvolvedores. Sabemos o quanto é complexo gerenciar serviços de nuvem e, por isso, é com muita satisfação que anunciamos uma novidade no nosso arsenal de analytics — a chamada de API reports.query().

Essa nova funcionalidade foi criada para você gerar relatórios da Cloud Analytics de forma programática, buscando e analisando os dados em uma única chamada de API. É como ter um analista sob demanda no bolso!

Por que você vai adorar o reports.query()

Imagine que você roda aplicações no Google Cloud Platform (GCP) e na Amazon Web Services (AWS) e quer entender quanto gastou na última semana com serviços específicos, como AWS EC2 ou GCP BigQuery. Normalmente, isso exigiria um bom tempo navegando entre dashboards e interfaces separadas para juntar os dados.

Com a nossa API reports.query(), esse processo fica muito mais simples. Veja um exemplo de chamada de API:

curl --request POST \
     --url https://api.doit.com/analytics/v1/reports/query \
     --header 'Authorization: Bearer {{your-api-key}}' \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
{
  "group": [\
    {\
      "id": "service_description",\
      "type": "fixed"\
    }\
  ],
  "timeRange": {
    "unit": "day",
    "amount": 7,
    "includeCurrent": false,
    "mode": "last"
  },
  "timeInterval": "day"
}
'

Com essa requisição simples, você gera um relatório completo de gastos em vários serviços nos últimos sete dias.

Veja um resumo rápido da requisição:

  • group: define como os dados do relatório serão agrupados. Neste caso, agrupamos por service_description. Para obter a lista completa de dimensões disponíveis de forma programática, use o método de API dimensions.list()
  • timeRange: define o intervalo de tempo do relatório. No exemplo, pedimos os dados dos últimos sete dias.
  • timeInterval: define o intervalo de agregação temporal dos dados. Aqui, configuramos a agregação diária.

Veja como podem ser os dados retornados pela API. Por questão de espaço, mostro apenas uma pequena parte da resposta.

{
  "Result": {
    "schema": [\
      {\
        "name": "service_description",\
        "type": "string"\
      },\
      {\
        "name": "year",\
        "type": "string"\
      },\
      {\
        "name": "month",\
        "type": "string"\
      },\
      {\
        "name": "day",\
        "type": "string"\
      },\
      {\
        "name": "cost",\
        "type": "float"\
      },\
      {\
        "name": "timestamp",\
        "type": "timestamp"\
      }\
    ],
    "rows": [\
      [\
        "AWS CloudTrail",\
        "2023",\
        "07",\
        "06",\
        1.5757174094000006,\
        1688601600\
      ],\
      [\
        "AWS CloudTrail",\
        "2023",\
        "07",\
        "07",\
        1.3773117481,\
        1688688000\
      ],\
      [\
        "AWS CloudTrail",\
        "2023",\
        "07",\
        "08",\
        1.3947479550999997,\
        1688774400\
      ],\
      [\
        "AWS CloudTrail",\
        "2023",\
        "07",\
        "09",\
        1.4486706111999998,\
        1688860800\
      ],\
      [\
        "AWS CloudTrail",\
        "2023",\
        "07",\
        "10",\
        1.3961570165000001,\
        1688947200\
      ],\
      [\
        "AWS CloudTrail",\
        "2023",\
        "07",\
        "11",\
        1.4235074821999998,\
        1689033600\
      ],\
      [\
        "AWS CloudTrail",\
        "2023",\
        "07",\
        "12",\
        1.4268483946000001,\
        1689120000\
      ],\
      [\
        "AWS Cost Explorer",\
        "2023",\
        "07",\
        "06",\
        0.07,\
        1688601600\
      ],\
      [\
        "AWS Cost Explorer",\
        "2023",\
        "07",\
        "07",\
        0.07,\
        1688688000\
      ],\
      [\
        "AWS Cost Explorer",\
        "2023",\
        "07",\
        "08",\
        0.07,\
        1688774400\
      ],\
      [\
        "AWS Cost Explorer",\
        "2023",\
        "07",\
        "09",\
        0.08,\
        1688860800\
      ],\
      [\
        "AWS Cost Explorer",\
        "2023",\
        "07",\
        "10",\
        0.07,\
        1688947200\
      ],\
      [\
        "AWS Cost Explorer",\
        "2023",\
        "07",\
        "11",\
        0.06999999999999999,\
        1689033600\
      ],\
      [\
        "AWS Cost Explorer",\
        "2023",\
        "07",\
        "12",\
        0.07,\
        1689120000\
      ],\
      [\
        "AWS Data Pipeline",\
        "2023",\
        "07",\
        "06",\
        0.09677419200000002,\
        1688601600\
      ],\
      [\
        "AWS Data Pipeline",\
        "2023",\
        "07",\
        "07",\
        0.09677419200000002,\
        1688688000\
      ],\
      [\
        "AWS Data Pipeline",\
        "2023",\
        "07",\
        "08",\
        0.09677419200000002,\
        1688774400\
      ],\
      [\
        "AWS Data Pipeline",\
        "2023",\
        "07",\
        "09",\
        0.09677419200000002,\
        1688860800\
      ],\
      [\
        "AWS Data Pipeline",\
        "2023",\
        "07",\
        "10",\
        0.09677419200000004,\
        1688947200\
      ],\
      [\
        "AWS Data Pipeline",\
        "2023",\
        "07",\
        "11",\
        0.09677419200000002,\
        1689033600\
      ],\
      [\
        "AWS Data Pipeline",\
        "2023",\
        "07",\
        "12",\
        0.09677419200000002,\
        1689120000\
      ],\
      [\
        "AWS Directory Service",\
        "2023",\
        "07",\
        "06",\
        1.4365837167000002,\
        1688601600\
      ],\
      [\
        "AWS Directory Service",\
        "2023",\
        "07",\
        "07",\
        1.4837915334,\
        1688688000\
      ],\
      [\
        "AWS Directory Service",\
        "2023",\
        "07",\
        "08",\
        1.4360271,\
        1688774400\
      ],\
      [\
        "AWS Directory Service",\
        "2023",\
        "07",\
        "09",\
        1.4397221999,\
        1688860800\
      ],\
      [\
        "AWS Directory Service",\
        "2023",\
        "07",\
        "10",\
        1.4407052167000003,\
        1688947200\
      ],\
      [\
        "AWS Directory Service",\
        "2023",\
        "07",\
        "11",\
        1.4418464164,\
        1689033600\
      ],\
      [\
        "AWS Directory Service",\
        "2023",\
        "07",\
        "12",\
        1.4447365167000001,\
        1689120000\
      ],\
      [\
        "AWS Glue",\
        "2023",\
        "07",\
        "06",\
        0,\
        1688601600\
      ],\
      [\
        "AWS Glue",\
        "2023",\
        "07",\
        "07",\
        0,\
        1688688000\
      ],\
      [\
        "AWS Glue",\
        "2023",\
        "07",\
        "08",\
        0,\
        1688774400\
      ],\
      [\
        "AWS Glue",\
        "2023",\
        "07",\
        "09",\
        0,\
        1688860800\
      ],\
      [\
        "AWS Glue",\
        "2023",\
        "07",\
        "10",\
        0,\
        1688947200\
      ],\
      [\
        "AWS Glue",\
        "2023",\
        "07",\
        "11",\
        0,\
        1689033600\
      ],\
      [\
        "AWS Glue",\
        "2023",\
        "07",\
        "12",\
        0,\
        1689120000\
      ],\
      [\
        "AWS Key Management Service",\
        "2023",\
        "07",\
        "06",\
        0.09687619200000003,\
        1688601600\
      ],\
      [\
        "AWS Key Management Service",\
        "2023",\
        "07",\
        "07",\
        0.09687619200000003,\
        1688688000\
      ],\
      [\
        "AWS Key Management Service",\
        "2023",\
        "07",\
        "08",\
        0.09687619200000003,\
        1688774400\
      ],\
      [\
        "2023",\
        "07",\
        "12",\
        0,\
        1689120000\
      ]\
    ]
  }
}

Claro, na prática o seu relatório pode ser bem mais elaborado do que este exemplo. Você pode, por exemplo, agrupar custo, uso e até métricas customizadas por várias dimensões (como "cloud", "service", "labels" ou suas próprias atribuições, como "team", "app" etc.) e, ao mesmo tempo, filtrar dados específicos do relatório.

Uma ferramenta poderosa para decisões mais inteligentes

A nova API reports.query() oferece um jeito ágil de gerar relatórios de analytics de forma programática, dando acesso a insights estratégicos com facilidade e rapidez. A ideia é colocar a informação certa na ponta dos seus dedos, para que você tome decisões melhores e mais embasadas.

Agora dá para acompanhar seus custos de nuvem, monitorar o desempenho dos diversos serviços e entender padrões de uso sem sair do ambiente de desenvolvimento.

Comece a usar o reports.query() hoje mesmo

Se você está tão empolgado com essa novidade quanto a gente, pegue sua chave de API e mãos à obra. Pode experimentar à vontade e fale com a gente sempre que tiver dúvidas ou sugestões. Estamos por aqui para ajudar e mal podemos esperar para ver as formas inovadoras com que você vai usar a API reports.query() para otimizar e direcionar a sua estratégia de nuvem.