Gerir os custos com a automatização

Pode utilizar a automatização do Cost Management para criar um conjunto personalizado de soluções para obter e gerir os dados dos custos. Este artigo aborda cenários comuns de automatização do Cost Management e as opções disponíveis em função da sua situação. Se quiser programar com APIs, apresentamos exemplos de pedidos à API comuns para ajudar a acelerar o processo de programação.

Automatizar a obtenção de dados de custos para análise offline

Poderá ter de transferir os dados de custos do Azure para os combinar com outros conjuntos de dados. Ou poderá ter de integrar os dados de custos nos seus próprios sistemas. Existem várias opções disponíveis dependendo da quantidade de dados envolvida. Em qualquer dos casos, tem de ter permissões no âmbito adequado do Cost Management para utilizar as APIs e as ferramentas. Para obter mais informações, veja Atribuir acesso aos dados.

Sugestões para processar conjuntos de dados grandes

Se sua organização tiver uma grande presença do Azure em muitos recursos ou assinaturas, você terá uma grande quantidade de resultados de dados de detalhes de uso. O Excel muitas vezes não consegue carregar ficheiros tão grandes. Nesta situação, recomendamos as seguintes opções:

Power BI

O Power BI é utilizado para ingerir e processar grandes quantidades de dados. Se for cliente do Contrato Enterprise, poderá utilizar a aplicação de modelo do Power BI para analisar os custos da sua conta de faturação. O relatório contém as principais vistas utilizadas pelos clientes. Para obter mais informações, veja Analisar os custos do Azure com a aplicação de modelo do Power BI.

Conector de dados do Power BI

Se quiser analisar os dados diariamente, recomendamos que utilize o conector de dados do Power BI para obter os dados para a análise detalhada. Qualquer relatório que criar será mantido atualizado pelo conector à medida que são acumulados mais custos.

Exportações do Cost Management

Pode não precisar de analisar os dados diariamente. Se assim for, pondere utilizar a funcionalidade Exportações do Cost Management para agendar exportações de dados para uma Conta de armazenamento do Azure. Em seguida, pode carregar os dados no Power BI, se necessário, ou analisá-los no Excel se o ficheiro for suficientemente pequeno. As exportações estão disponíveis no portal do Azure ou pode configurá-las com a API de Exportações.

API de Detalhes de Utilização

Pondere utilizar a API de Detalhes de Utilização se tiver um conjunto de dados de custos pequeno. Aqui estão as práticas recomendadas recomendadas:

  • Se quiser obter os dados de custos mais recentes, recomendamos que consulte no máximo uma vez por dia. Os relatórios são atualizados a cada quatro horas. Se ligar com mais frequência, receberá dados idênticos.
  • Depois de baixar os dados de custo das faturas históricas, as cobranças não serão alteradas, a menos que você seja explicitamente notificado. Recomendamos armazenar em cache seus dados de custo em um armazenamento consultável para evitar chamadas repetidas para dados idênticos.
  • Divida suas chamadas em pequenos intervalos de datas para obter arquivos mais gerenciáveis que você pode baixar. Por exemplo, recomendamos dividir por dia ou por semana se você tiver grandes arquivos de uso do Azure mês a mês.
  • Se você tiver escopos com uma grande quantidade de dados de uso (por exemplo, uma Conta de Cobrança), considere fazer várias chamadas para escopos filho para obter arquivos mais gerenciáveis que possam ser baixados.
  • Se o conjunto de dados tiver mais de 2 GB mensais, considere usar as exportações como uma solução mais escalável.

Automatizar a obtenção com a API de Detalhes de Utilização

A API de Detalhes de Utilização proporciona uma forma fácil de obter dados de custos não processados nem agregados que correspondam à sua fatura do Azure. A API é útil quando a sua organização precisa de uma solução de obtenção de dados através de programação. Pondere utilizar a API se quiser analisar conjuntos de dados de custos mais pequenos. No entanto, caso tenha conjuntos de dados maiores, deve utilizar as outras soluções identificadas anteriormente. Os dados dos Detalhes de Utilização são disponibilizados por medidor e por dia. São utilizados no cálculo da fatura mensal. A versão de disponibilidade geral destas APIs é 2019-10-01. Utilize a 2019-04-01-preview para aceder à versão de pré-visualização para reserva e compras do Azure Marketplace com as APIs.

Se você quiser obter grandes quantidades de dados exportados regularmente, consulte Recuperar grandes conjuntos de dados de custo recorrentemente com exportações.

Sugestões da API de Detalhes de Utilização

Agendamento do pedido

Recomendamos que não faça mais do que um pedido à API de Detalhes de Utilização por dia. Para obter mais informações sobre a frequência com que os dados de custos são atualizados e como se processa o arredondamento, veja Compreender os dados do Cost Management.

Estabelecer âmbitos de nível superior sem filtragem

Utilize a API para obter todos os dados de que precisa no âmbito mais alto disponível. Aguarde até que todos os dados necessários sejam ingeridos antes de utilizar a filtragem, o agrupamento ou a análise agregada. A API está otimizada especificamente para proporcionar grandes quantidades de dados de custos não processados nem agregados. Para obter mais informações sobre os âmbitos disponíveis no Cost Management, veja Compreender e trabalhar com âmbitos. Assim que tiver transferido os dados necessários para um âmbito, utilize o Excel para analisar melhor os dados com filtros e tabelas dinâmicas.

Notas sobre os preços

Se você quiser reconciliar o uso e os encargos com sua planilha de preços ou fatura, consulte Comportamento de preços em detalhes de custo.

Um único recurso pode ter vários registros para um único dia

Os provedores de recursos do Azure emitem uso e cobranças para o sistema de cobrança e preenchem o Additional Info campo dos registros de uso. Ocasionalmente, os provedores de recursos podem emitir uso para um determinado dia e carimbar os registros com diferentes datacenters no Additional Info campo dos registros de uso. Ele pode fazer com que vários registros para um medidor/recurso estejam presentes em seu arquivo de uso por um único dia. Nessa situação, você não é cobrado a mais. Os registros múltiplos representam o custo total do medidor para o recurso naquele dia.

Exemplo de pedidos à API de Detalhes de Utilização

Os exemplos seguintes de pedidos são utilizados pelos clientes da Microsoft para lidar com cenários comuns que poderá encontrar.

Obter os Detalhes de Utilização de um âmbito para um intervalo de datas específico

Os dados devolvidos pelo pedido correspondem à data em que o sistema de faturação recebeu a utilização. Poderão incluir custos de várias faturas. A chamada a utilizar varia de acordo com o seu tipo de subscrição.

Relativamente a clientes legados com Contrato Enterprise (EA) ou uma subscrição pay as you go, utilize a chamada seguinte:

GET https://management.azure.com/{scope}/providers/Microsoft.Consumption/usageDetails?$filter=properties%2FusageStart%20ge%20'2020-02-01'%20and%20properties%2FusageEnd%20le%20'2020-02-29'&$top=1000&api-version=2019-10-01

Relativamente aos clientes com um Contrato de Cliente Microsoft, utilize a chamada seguinte:

GET https://management.azure.com/{scope}/providers/Microsoft.Consumption/usageDetails?startDate=2020-08-01&endDate=2020-08-05&$top=1000&api-version=2019-10-01

Nota

O $filter parâmetro não é suportado pelos Contratos de Cliente da Microsoft.

Obter detalhes de custos amortizados

Se precisar que os custos reais mostrem as compras à medida que são acumulados, altere a métrica para ActualCost no pedido seguinte. Para utilizar custos amortizados e reais, tem de utilizar a versão 2019-04-01-preview. A versão atual da API funciona da mesma maneira que a versão 2019-10-01, com exceção do novo atributo tipo/métrica e os nomes de propriedade alterados. Se tiver um Contrato de Cliente Microsoft, os filtros são startDate e endDate no exemplo seguinte.

GET https://management.azure.com/{scope}/providers/Microsoft.Consumption/usageDetails?metric=AmortizedCost&$filter=properties/usageStart+ge+'2019-04-01'+AND+properties/usageEnd+le+'2019-04-30'&api-version=2019-04-01-preview

Automatize alertas e ações com orçamentos

Existem dois componentes essenciais para maximizar o valor do seu investimento na cloud. Um reporta à criação automática de orçamentos. O outro diz respeito à configuração da orquestração com base nos custos em resposta aos alertas de orçamento. Existem diferentes maneiras de automatizar a criação de orçamento. São emitidas várias respostas de alerta quando os limites de alerta configurados são excedidos.

As secções que se seguem abordam as opções disponíveis e fornecem exemplos de pedidos de API para poder começar a explorar a automatização de orçamentos.

Método de avaliação dos custos face ao limite de orçamento

Os custos são avaliados face ao limite de orçamento uma vez por dia. Quando cria um novo orçamento ou no dia de reposição do orçamento, a comparação dos custos com o limite será equivalente a zero ou nula porque a avaliação pode não ter ocorrido.

Quando o Azure deteta que os custos excederam o limite, é acionada uma notificação no espaço de uma hora após o período de deteção.

Ver o custo atual

Para ver os custos atuais, precisa de executar uma chamada GET através da API de Consulta.

Uma chamada GET para a API de Orçamentos não devolve os custos atuais mostrados na Análise de Custos. Em vez disso, a chamada devolve o último custo avaliado.

Automatizar a criação de orçamentos

Pode automatizar a criação de orçamentos com a API de Orçamentos. Também pode criar um orçamento com um modelo de orçamento. Os modelos são uma maneira fácil de uniformizar as implementações do Azure, ao mesmo tempo que garantem uma configuração e imposição corretas do controlo de custos.

Regiões suportadas para e-mails de alerta de orçamento

Com os orçamentos, será alertado quando os custos ultrapassarem um limiar definido. Pode configurar até cinco destinatários de e-mail por orçamento. Os destinatários recebem os alertas de e-mail no prazo de 24 horas depois de os custos ultrapassarem o limiar do orçamento. No entanto, o destinatário poderá precisar de receber um e-mail num idioma diferente. Pode utilizar os seguintes códigos de cultura de idioma com a API de Orçamentos. Defina o código de cultura com o parâmetro locale conforme ilustrado no exemplo a seguir.

{
  "eTag": "\"1d681a8fc67f77a\"",
  "properties": {
    "timePeriod": {
      "startDate": "2020-07-24T00:00:00Z",
      "endDate": "2022-07-23T00:00:00Z"
    },
    "timeGrain": "BillingMonth",
    "amount": 1,
    "currentSpend": {
      "amount": 0,
      "unit": "USD"
    },
    "category": "Cost",
    "notifications": {
      "actual_GreaterThan_10_Percent": {
        "enabled": true,
        "operator": "GreaterThan",
        "threshold": 20,
        "locale": "en-us",
        "contactEmails": [
          "user@contoso.com"
        ],
        "contactRoles": [],
        "contactGroups": [],
        "thresholdType": "Actual"
      }
    }
  }
}

Idiomas suportados por um código de cultura:

Código de cultura Linguagem
en-us Inglês (Estados Unidos)
ja-jp Japonês (Japão)
zh-cn Chinês (Simplificado, China)
de-de Alemão (Alemanha)
ES-ES Espanhol (Espanha, Internacional)
fr-fr Francês (França)
it-it Italiano (Itália)
Ko-KR Coreano (Coreia do Sul)
pt-br Português (Brasil)
Ru-RU Russo (Rússia)
zh-tw Chinês (Tradicional, Taiwan)
CS-CZ Checo (República Checa)
PL-PL Polaco (Polónia)
tr-tr Turco (Türkiye)
DA-DK Dinamarquês (Dinamarca)
pt-GB Inglês (Reino Unido)
hu-hu Húngaro (Hungria)
nb-no Norueguês Bokmål (Noruega)
Países Baixos-Países Baixos Neerlandês (Países Baixos)
pt-pt Português (Portugal)
SV-SE Sueco (Suécia)

Configurações comuns da API de Orçamentos

Existem várias maneiras de configurar um orçamento no ambiente do Azure. Reflita sobre o seu cenário primeiro e, em seguida, identifique as opções de configuração que o tornam possível. Analise as seguintes opções:

  • Intervalo de Agregação - Representa o período de periodicidade utilizado pelo seu orçamento para acumular e avaliar os custos. As opções mais comuns são Mensal, Trimestral e Anual.
  • Período de Tempo – Representa o período de validade do orçamento. O orçamento monitoriza e alerta ativamente o utilizador apenas enquanto é válido.
  • Notificações
    • E-mails de Contacto – Os endereços de e-mail recebem alertas quando um orçamento acumula custos e excede os limites definidos.
    • Funções de Contacto – todos os utilizadores com uma função do Azure correspondente no âmbito especificado recebem alertas por e-mail com esta opção. Por exemplo, os Proprietários de Subscrições podem receber um alerta relativo a um orçamento criado no âmbito das subscrições.
    • Grupos de Contacto – O orçamento chama os grupos de ações configurados quando o limite de um alerta é excedido.
  • Filtros de dimensão de custo – A mesma filtragem que é possível fazer na Análise de Custos ou na API de Consulta também pode ser feita no seu orçamento. Utilize este filtro para reduzir o intervalo de custos que monitoriza com o orçamento.

Depois de identificar as opções de criação de orçamentos que satisfazem as suas necessidades, crie o orçamento com a API. Utilize o exemplo fornecido abaixo para começar com uma configuração de orçamento comum.

Criar um orçamento filtrado para vários recursos e etiquetas

URL do Pedido: PUT https://management.azure.com/subscriptions/{SubscriptionId} /providers/Microsoft.Consumption/budgets/{BudgetName}/?api-version=2019-10-01

{
  "eTag": "\"1d34d016a593709\"",
  "properties": {
    "category": "Cost",
    "amount": 100.65,
    "timeGrain": "Monthly",
    "timePeriod": {
      "startDate": "2017-10-01T00:00:00Z",
      "endDate": "2018-10-31T00:00:00Z"
    },
    "filter": {
      "and": [
        {
          "dimensions": {
            "name": "ResourceId",
            "operator": "In",
            "values": [
              "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{meterName}",
              "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{meterName}"
            ]
          }
        },
        {
          "tags": {
            "name": "category",
            "operator": "In",
            "values": [
              "Dev",
              "Prod"
            ]
          }
        },
        {
          "tags": {
            "name": "department",
            "operator": "In",
            "values": [
              "engineering",
              "sales"
            ]
          }
        }
      ]
    },
    "notifications": {
      "Actual_GreaterThan_80_Percent": {
        "enabled": true,
        "operator": "GreaterThan",
        "threshold": 80,
        "contactEmails": [
          "user1@contoso.com",
          "user2@contoso.com"
        ],
        "contactRoles": [
          "Contributor",
          "Reader"
        ],
        "contactGroups": [
          "/subscriptions/{subscriptionID}/resourceGroups/{resourceGroupName}/providers/microsoft.insights/actionGroups/{actionGroupName}
        ],
        "thresholdType": "Actual"
      }
    }
  }
}

Configurar a orquestração com base nos custos para alertas de orçamento

Pode configurar orçamentos para iniciar ações automatizadas através de Grupos de Ações do Azure. Para saber mais sobre como automatizar ações usando orçamentos, consulte Automação com orçamentos.

Latência de dados e limites de velocidade

Recomendamos que as APIs não sejam chamadas mais do que uma vez por dia. Os dados do Cost Management são atualizados a cada quatro horas à medida que são recebidos os novos dados de utilização dos fornecedores de recursos do Azure. Fazer chamadas com mais frequência não fornece mais dados. Pelo contrário, cria uma carga maior.

Unidades de processamento de consulta da API de consulta

Além dos processos de limitação de taxa existentes, a API de consulta também limita o processamento com base no custo das chamadas de API . O custo de uma chamada de API é expresso como unidades de processamento de consulta (QPUs). QPU é uma moeda de desempenho, como Cosmos DB RUs. Eles abstraem recursos do sistema, como CPU e memória.

Cálculo da QPU

Atualmente, um QPU é deduzido por um mês de dados consultados das cotas atribuídas. Essa lógica pode mudar sem aviso prévio.

Fatores QPU

O fator a seguir afeta o número de QPUs consumidos por uma solicitação de API.

  • Intervalo de datas, à medida que o intervalo de datas na solicitação aumenta, o número de QPUs consumidos aumenta.

Outros fatores QPU podem ser adicionados sem aviso prévio.

Quotas QPU

As cotas a seguir são configuradas por locatário. Os pedidos são limitados quando qualquer uma das seguintes quotas se esgota.

  • 12 QPU por 10 segundos
  • 60 QPU por 1 min
  • 600 QPU por 1 hora

As quotas podem ser alteradas conforme necessário e podem ser acrescentadas mais quotas.

Cabeçalhos de resposta

Você pode examinar os cabeçalhos de resposta para controlar o número de QPUs consumidos por uma solicitação de API e o número de QPUs restantes.

x-ms-ratelimit-microsoft.costmanagement-qpu-retry-after

Indica o tempo de recuo em segundos. Quando uma solicitação é limitada com 429, recue pelo tempo especificado neste cabeçalho antes de tentar novamente a solicitação.

x-ms-ratelimit-microsoft.costmanagement-qpu-consumed

QPUs consumidos por uma chamada de API.

x-ms-ratelimit-microsoft.costmanagement-qpu-remaining

Lista das quotas remanescentes.

Próximos passos