Gerenciar os custos com a automação

Você pode usar a automação de Gerenciamento de Custos para criar um conjunto personalizado de soluções para recuperar e gerenciar dados de custo. Este artigo aborda cenários comuns de automação de Gerenciamento de Custos e opções disponíveis com base em sua situação. Se você quiser desenvolver usando APIs, exemplos comuns de solicitação de API são apresentados para ajudar a acelerar seu processo de desenvolvimento.

Automatizar a recuperação de dados de custo para análise offline

Talvez seja necessário baixar os dados de custo do Azure para mesclá-los a outros conjuntos de dados. Ou talvez seja necessário integrar os dados de custo a seus próprios sistemas. Há opções diferentes disponíveis, dependendo da quantidade de dados envolvidos. Você deve ter permissões de Gerenciamento de Custos no escopo apropriado para usar APIs e ferramentas em qualquer caso. Para obter mais informações, confira Atribuir acesso a dados.

Sugestões para lidar com grandes conjuntos de dados

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 geralmente não pode carregar arquivos grandes. Nessa situação, recomendamos as seguintes opções:

Power BI

O Power BI é usado para ingerir e lidar com grandes quantidades de dados. Se você for um cliente de Contrato Enterprise, poderá usar o aplicativo de modelo do Power BI para analisar os custos da conta de cobrança. O relatório contém as exibições de chave usadas pelos clientes. Para obter mais informações, confira Analisar os custos do Azure com o aplicativo de modelo do Power BI.

Conector de dados do Power BI

Se você quiser analisar seus dados diariamente, é recomendável usar o conector de dados do Power BI para obter dados para análise detalhada. Todos os relatórios que você criar serão mantidos atualizados pelo conector conforme mais custos forem acumulados.

Exportações de Gerenciamento de Custos

Talvez você não precise analisar os dados diariamente. Nesse caso, considere usar o recurso Exportações do Gerenciamento de Custos para agendar exportações de dados para uma conta de Armazenamento do Azure. Em seguida, você poderá carregar os dados para o Power BI conforme necessário ou analisá-los no Excel, se o arquivo for pequeno o suficiente. As exportações estão disponíveis no portal do Azure ou você pode configurar exportações com a API de Exportações.

API de Detalhes de Uso

Considere usar a API de Detalhes de Uso se você tiver um pequeno conjunto de dados de custo. Aqui estão as melhores práticas recomendadas:

  • Se você quiser obter os dados de custo mais recentes, recomendamos que você consulte no máximo uma vez por dia. Os relatórios são atualizados a cada quatro horas. Se você chamar com mais frequência, receberá dados idênticos.
  • Depois de baixar os dados de custo para faturas históricas, os encargos não serão alterados, a menos que você seja explicitamente notificado. É recomendável armazenar em cache seus dados de custo em um repositório passível de consulta para evitar chamadas repetidas para dados idênticos.
  • Divida suas chamadas em intervalos de datas pequenos para obter arquivos mais gerenciáveis que você pode baixar. Por exemplo, recomendamos o agrupamento 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 colocar várias chamadas para escopos filho para obter arquivos mais gerenciáveis que você pode baixar.
  • Se seu conjunto de informações tiver mais de 2 GB de mês para mês, considere o uso de exportações como uma solução mais escalonável.

Automatizar a recuperação com a API de Detalhes de Uso

A API Detalhes de Uso fornece um modo fácil de obter dados de custo brutos e não agregados que correspondem à sua fatura do Azure. A API é útil quando sua organização precisa de uma solução de recuperação de dados programática. Considere usar a API se você pretende analisar conjuntos de dados de custo menores. No entanto, você deve usar outras soluções identificadas anteriormente se tiver conjuntos de dados maiores. Os dados em Detalhes de Uso são fornecidos por medidor, por dia. Eles são usados ao calcular sua fatura mensal. A versão em GA (disponibilidade geral) das APIs é 2019-10-01. Use 2019-04-01-preview para acessar a versão de prévia para reservas e compras do Azure Marketplace com as APIs.

Se você quiser exportar grandes volumes de dados regularmente, confira Recuperar conjuntos de dados grandes de custo de modo recorrente com exportações.

Sugestões da API de Detalhes de Uso

Agenda de solicitação

Recomendamos que você faça não mais de uma solicitação à API de Detalhes de Uso por dia. Para obter mais informações sobre a frequência com que os dados de custo são atualizados e como o arredondamento é tratado, confira Entender dados de gerenciamento de custos.

Direcionar escopos de nível superior sem filtragem

Use a API para obter todos os dados necessários no escopo de nível mais alto disponível. Aguarde até que todos os dados necessários sejam ingeridos antes de fazer qualquer filtragem, agrupamento ou análise agregada. A API é otimizada especificamente para fornecer grandes quantidades de dados de custo bruto não agregados. Para saber mais sobre escopos disponíveis no Gerenciamento de Custos, confira Entender e trabalhar com escopos. Depois de baixar os dados necessários para um escopo, use o Excel para analisar ainda mais os dados com filtros e tabelas dinâmicas.

Observações sobre preço

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

Um só recurso pode ter vários registros para um só dia

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

Exemplos de solicitações de API de Detalhes de Uso

As solicitações de exemplo a seguir são usadas pelos clientes da Microsoft para abordar os cenários comuns que você pode encontrar.

Obter os Detalhes de Uso para um escopo durante um intervalo de datas específico

Os dados retornados pela solicitação correspondem à data em que o uso foi recebido pelo sistema de cobrança. Ele pode incluir custos de várias notas fiscais. A chamada a ser usada varia de acordo com seu tipo de assinatura.

Para clientes herdados com uma assinatura EA (Contrato Enterprise) ou paga conforme o uso, use a seguinte chamada:

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

Para clientes modernos com um Contrato de Cliente da Microsoft, use a seguinte chamada:

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

Observação

O parâmetro $filter não tem suporte nos Contratos de Cliente da Microsoft.

Obter detalhes de custo amortizado

Se você precisa que os custos reais mostrem as compras conforme elas são efetuadas, altere a métrica para ActualCost na solicitação a seguir. Para usar os custos amortizados e reais, use a versão 2019-04-01-preview. A versão atual da API funciona da mesma forma que a versão 2019-10-01, exceto pelo novo tipo/atributo de métrica e pelos nomes de propriedade alterados. Se você tiver um Contrato de Cliente da Microsoft, seus filtros serão startDate e endDate no exemplo a seguir.

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

Automatizar alertas e ações com orçamentos

Há dois componentes críticos para maximizar o valor do seu investimento na nuvem. Um deles é a criação automática de orçamento. O outro é a configuração da orquestração baseada em custo em resposta aos alertas de orçamento. Há diferentes maneiras de automatizar a criação de orçamentos. Várias respostas de alerta ocorrem quando os limites de alerta configurados são excedidos.

As seções a seguir abordam as opções disponíveis e fornecem exemplos de solicitações de API para você começar a usar a automação de orçamento.

Como os custos são avaliados em relação ao limite de orçamento

Seus custos são avaliados em relação ao limite de orçamento uma vez por dia. Quando você cria um orçamento ou no dia de redefinição do orçamento, os custos comparados com o limite são zero/nulos, pois a avaliação pode não ter ocorrido.

Quando o Azure detecta que os custos excederam o limite, uma notificação é disparada dentro da hora do período de detecção.

Ver os custos atuais

Para ver os custos atuais, você precisa fazer uma chamada GET usando a API de Consulta.

Uma chamada GET à API de Orçamentos não retornará os custos atuais mostrados na análise de custo. Em vez disso, a chamada retorna o último custo avaliado.

Automatizar a criação de orçamento

Você pode automatizar a criação de orçamento usando a API de Orçamentos. Você também pode criar um orçamento com um modelo de orçamento. Os modelos são uma forma fácil de padronizar as implantações do Azure, garantindo que o controle de custos seja configurado e imposto corretamente.

Localidades com suporte para alertas de orçamento por email

Com os Orçamentos, você recebe um alerta quando os custos ultrapassam um limite definido. É possível configurar até cinco destinatários de email por orçamento. Eles recebem os alertas por email nas 24 horas seguintes ao estouro do limite de orçamento. No entanto, talvez o destinatário precise receber um email em um idioma diferente. Use os códigos de cultura do idioma a seguir com a API de Orçamentos. Defina o código de cultura com o parâmetro locale, como 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 compatíveis com um código de cultura:

Código de cultura Idioma
pt-br 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 Tcheco (República Tcheca)
pl-pl Polonês (Polônia)
tr-tr Turco (Turquia)
da-dk Dinamarquês (Dinamarca)
en-gb Inglês (Reino Unido)
hu-hu Húngaro (Hungria)
nb-no Norueguês Bokmal (Noruega)
nl-nl Holandês (Países Baixos)
pt-pt Português (Portugal)
sv-se Sueco (Suécia)

Configurações comuns da API de Orçamentos

Há várias maneiras de configurar um orçamento no seu ambiente do Azure. Considere seu cenário primeiro e identifique as opções de configuração que o habilitam. Examine as seguintes opções:

  • Intervalo de agregação: representa o período recorrente usado pelo orçamento para acumular e avaliar os custos. As opções mais comuns são Mensal, Trimestral e Anual.
  • Período: representa por quanto tempo o orçamento será válido. O orçamento monitora e alerta você ativamente apenas enquanto ele permanece válido.
  • Notificações
    • Emails de Contato: os endereços de email recebem alertas quando um orçamento acumula custos e excede os limites definidos.
    • Funções de Contato: todos os usuários que têm uma função do Azure correspondente no escopo fornecido recebem alertas por email com essa opção. Por exemplo, os Proprietários da Assinatura podem receber um alerta para um orçamento criado no escopo da assinatura.
    • Grupos de Contatos: o orçamento chama os grupos de ações configurados quando um limite de alerta é excedido.
  • Filtros de dimensão de custo: a mesma filtragem que você pode fazer na análise de custo ou na API de Consulta também pode ser feita no seu orçamento. Use esse filtro para reduzir o intervalo de custos que você está monitorando com o orçamento.

Depois de identificar as opções de criação de orçamento que atendem às suas necessidades, crie o orçamento usando a API. O exemplo abaixo ajuda você a começar com uma configuração comum de orçamento.

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

URL da solicitação: 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 baseada em custo para alertas de orçamento

Você pode configurar orçamentos para iniciar ações automatizadas usando grupos de ações do Azure. Para saber mais sobre como automatizar ações usando orçamentos, confira Automação com orçamentos.

Latência de dados e limites de taxa

Recomendamos que você chame as APIs não mais do que uma vez por dia. Os dados de gerenciamento de custos são atualizados a cada quatro horas à medida que novos dados de uso são recebidos dos provedores de recursos do Azure. Chamar com mais frequência não fornece mais dados. Em vez disso, 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 à API. O custo de uma chamada à API é expresso como QPUs (unidades de processamento de consulta). A QPU é uma moeda de desempenho, como as RUs do Cosmos DB. Elas abstraem recursos do sistema, como CPU e memória.

Cálculo da QPU

Atualmente, uma QPU é deduzida para um mês de dados consultados das cotas alocadas. Essa lógica pode mudar sem aviso prévio.

Fatores da QPU

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

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

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

Cotas de QPU

As cotas a seguir são configuradas por locatário. As solicitações são limitadas quando qualquer uma das cotas a seguir é esgotada.

  • 12 QPUs por 10 segundos
  • 60 QPUs por 1 minuto
  • 600 QPUs por 1 hora

As cotas talvez sejam alteradas conforme necessário, sendo que mais cotas podem ser adicionadas.

Cabeçalhos de resposta

Você pode examinar os cabeçalhos de resposta para acompanhar o número de QPUs consumidas 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 retirada em segundos. Quando uma solicitação é limitada com 429, recue pelo tempo especificado nesse cabeçalho antes de tentar a solicitação novamente.

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

QPUs consumidas por uma chamada à API.

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

Lista de cotas restantes.