Administración de costos con Automation

Puede usar Automation de Cost Management para crear un conjunto personalizado de soluciones para recuperar y administrar los datos de costos. En este artículo se describen escenarios comunes de Automation de Cost Management y las opciones disponibles en función de su situación. Para el desarrollo mediante API, se presentan ejemplos de solicitudes de API comunes para ayudar a acelerar el proceso de desarrollo.

Automatización de la recuperación de datos de costos para el análisis sin conexión

Es posible que tenga que descargar los datos de costos de Azure para combinarlos con otros conjuntos de datos. O bien, puede que necesite integrar los datos de costos en sus propios sistemas. Hay distintas opciones disponibles en función de la cantidad de datos implicados. En todo caso, debe tener permisos de Cost Management en el ámbito adecuado para usar las API y las herramientas. Para más información, consulte Asignar el acceso a los datos.

Sugerencias para administrar grandes conjuntos de datos

Si su organización tiene una gran presencia de Azure en muchos recursos o suscripciones, tendrá una gran cantidad de resultados de datos de detalles de uso. Por lo general, Excel no puede cargar estos archivos de gran tamaño. En esta situación, se recomiendan las siguientes opciones:

Power BI

Power BI se usa para ingerir y controlar grandes cantidades de datos. Si es un cliente de Contrato Enterprise, puede usar la aplicación de plantilla de Power BI para analizar los costos de la cuenta de facturación. El informe contiene las principales vistas que usan los clientes. Para más información, consulte Análisis de los costos de Azure con la aplicación de la plantilla de Power BI.

Conector de datos de Power BI

Si desea analizar los datos diariamente, se recomienda usar el conector de datos de Power BI para obtener datos para un análisis detallado. El conector mantendrá actualizados todos los informes que cree a medida que se acumulen más costos.

Exportaciones de Cost Management

Es posible que no sea necesario analizar los datos a diario. Si es así, considere la posibilidad de usar la característica Exportaciones de Cost Management para programar exportaciones de datos a una cuenta de Azure Storage. Después, puede cargar los datos en Power BI según sea necesario o analizarlos en Excel si el archivo es lo suficientemente pequeño. Las exportaciones están disponibles en Azure Portal o puede configurar las exportaciones con Exports API.

Usage Details API:

Considere la posibilidad de usar Usage Details API si tiene un conjunto de datos de costos reducido. A continuación encontrará los procedimientos recomendados:

  • Si desea obtener los datos de costo más recientes, se recomienda consultar como máximo una vez al día. Los informes se actualizan cada cuatro horas. Si llama con más frecuencia, recibirá datos idénticos.
  • Una vez descargados los datos de costos de las facturas históricas, los cargos no cambiarán a menos que se le notifique explícitamente. Recomendamos almacenar en caché los datos de costos en un almacén consultable para evitar que se repitan las llamadas a datos idénticos.
  • Fragmente las llamadas en intervalos de fechas pequeños para obtener archivos más manejables que pueda descargar. Por ejemplo, se recomienda fragmentar por día o por semana si tiene archivos de utilización de Azure de gran tamaño mes a mes.
  • Si tiene ámbitos con una gran cantidad de datos de utilización (por ejemplo, una cuenta de facturación), considere la posibilidad de hacer varias llamadas a ámbitos secundarios para obtener archivos más manejables que pueda descargar.
  • Si el conjunto de datos ocupa más de 2 GB mes a mes, considere la posibilidad de usar exportaciones como una solución más escalable.

Automatización de la recuperación con Usage Details API

Usage Details API proporciona una manera sencilla de obtener datos de costo sin procesar y sin agregar que se correspondan con su factura de Azure. La API es útil cuando su organización necesita una solución de recuperación de datos mediante programación. Considere la posibilidad de usar la API si quiere analizar conjuntos de datos de costos más reducidos. Sin embargo, debe usar otras soluciones identificadas previamente si tiene conjuntos de datos de mayor tamaño. Los datos de los detalles de uso se proporcionan por medidor y por día. Se usan al calcular la factura mensual. La versión de disponibilidad general (GA) de estas API es 2019-10-01. Use 2019-04-01-preview para acceder a la versión preliminar de las compras de reservas y Azure Marketplace con las API.

Si desea obtener grandes cantidades de datos exportados de forma periódica, consulte Recuperación recurrente de conjuntos de datos de costos de gran tamaño con exportaciones.

Sugerencias de Usage Details API

Solicitar programación

Se recomienda no realizar más de una solicitud a Usage Details API por día. Para obtener más información sobre la frecuencia con que se actualizan los datos de costo y cómo se controla el redondeo, consulte Descripción de los datos de Cost Management.

Establecer ámbitos de alto nivel sin filtrado como destino

Use la API para obtener todos los datos que necesite en el ámbito de nivel más alto disponible. Espere hasta que se ingieran todos los datos necesarios antes de realizar ningún filtrado, agrupación o análisis agregado. La API está optimizada específicamente para proporcionar grandes cantidades de datos de costos sin procesar no agregados. Para más información sobre los ámbitos disponibles en Cost Management, consulte Descripción y uso de ámbitos. Una vez que haya descargado los datos necesarios para un ámbito, use Excel para analizar más datos con filtros y tablas dinámicas.

Notas sobre los precios

Si desea conciliar el uso y los cargos con la hoja de precios o la factura, consulte Comportamiento de precios en detalles de costos.

Un único recurso puede tener varios registros durante un solo día

Los proveedores de recursos de Azure envían el uso y los cargos al sistema de facturación y rellenan el campo Additional Info de los registros de uso. En ocasiones, podrían enviar el uso de un día determinado y marcar los registros con distintos centros de datos en el campo Additional Info de los registros de uso. Esto podría resultar en varios registros de un medidor o recurso en el archivo de uso durante un solo día. En ese caso, no se le sobrecargará. Los distintos registros representan el costo total del medidor para el recurso ese día.

Ejemplo de solicitudes de Usage Details API

Los clientes de Microsoft usan las siguientes solicitudes de ejemplo para abordar escenarios comunes con los que se puede encontrar.

Obtención de detalles de uso de un ámbito durante un intervalo de fechas específico

Los datos que devuelve la solicitud se corresponden con la fecha en la que el sistema de facturación recibió el uso. Podría incluir los costos de varias facturas. La llamada varía según el tipo de suscripción.

Para los clientes heredados con un Contrato Enterprise (EA) o una suscripción de pago por uso, utilice la siguiente llamada:

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 los clientes modernos con Contrato de cliente de Microsoft, use la llamada siguiente:

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

Los contratos de cliente de Microsoft no admiten el parámetro $filter.

Obtención de detalles de costos amortizados

Si necesita los costos reales para mostrar las compras que se han acumulado, cambie metric a ActualCost en la solicitud siguiente. Para usar los costos amortizados y reales, debe usar la versión de 2019-04-01-preview. La versión actual de la API funciona igual que la versión de 2019-10-01, excepto en el nuevo atributo type/metric y los nombres de propiedad modificados. Si tiene un Contrato de cliente de Microsoft, los filtros son startDate y endDate en el ejemplo siguiente.

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

Automatización de alertas y acciones con presupuestos

Hay dos componentes esenciales para maximizar el valor de su inversión en la nube. Uno es la creación automática de presupuestos. Mientras que el otro es la configuración de la orquestación basada en el costo en respuesta a las alertas presupuestarias. Hay diferentes maneras de automatizar la creación de presupuestos. Cuando se superan los umbrales de alerta configurados se producen varias respuestas de alerta.

En las secciones siguientes se tratan las opciones disponibles y se proporcionan solicitudes de API de ejemplo para empezar a trabajar con la automatización de presupuestos.

Evaluación de costos con respecto al umbral del presupuesto

Los costos se evalúan con respecto al umbral del presupuesto una vez al día. Cuando se crea un presupuesto o el día en que se restablece el presupuesto, los costos en comparación con el umbral serán cero o nulos, ya que es posible que no se haya producido la evaluación.

Cuando Azure detecta que los costos han superado el umbral, se desencadena una notificación dentro la hora del período de detección.

Visualización del costo actual

Para ver los costos actuales, es preciso realizar una llamada GET mediante Query API.

Las llamadas GET a Budgets API no devolverán los costos actuales que se muestran en Análisis de costos. En su lugar, la llamada devuelve el último costo evaluado.

Automatización de la creación de presupuestos

Para automatizar la creación de presupuestos, utilice Budgets API. También puede crear un presupuesto con una plantilla de presupuesto. Las plantillas son una forma sencilla de estandarizar las implementaciones de Azure, a la vez que garantizan que el control de costos está correctamente configurado y aplicado.

Configuraciones regionales admitidas para los correos electrónicos de alertas de presupuesto

Recibirá una notificación cuando los costos de un presupuesto superen el umbral establecido. Puede configurar hasta cinco destinatarios de correo electrónico por presupuesto. Los destinatarios reciben las alertas por correo electrónico en un plazo de 24 horas desde que se supere el umbral del presupuesto. Sin embargo, es posible que el destinatario tenga que recibir el correo electrónico en otro idioma. Budgets API se puede usar con los siguientes códigos de referencia cultural. Establezca el código de referencia cultural con el parámetro locale, de forma similar a este ejemplo.

{
  "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 admitidos por un código de referencia cultural:

Código de referencia cultural Lenguaje
es-es Spanish (Traditional Sort) - Spain
ja-jp Japonés (Japón)
zh-CN Chino (simplificado, China)
de-de Alemán (Alemania)
es-es Español (España, internacional)
fr-fr Francés (Francia)
it-it Italiano (Italia)
ko-kr Coreano (Corea)
pt-br Portugués (Brasil)
ru-ru Ruso (Rusia)
zh-tw Chino (tradicional, Taiwán)
cs-cz Checo (República Checa)
pl-pl Polaco (Polonia)
tr-tr Turco (Turquía)
da-dk Danés (Dinamarca)
en-gb Inglés (Reino Unido)
hu-HU Húngaro (Hungría)
nb-no Noruego Bokmal (Noruega)
nl-nl Neerlandés (Países Bajos)
pt-pt Portugués (Portugal)
sv-se Sueco (Suecia)

Configuraciones comunes de Budgets API

Hay muchas formas de configurar presupuestos en el entorno de Azure. Para hacerlo, en primer lugar debe tener en cuenta el escenario y, después, identificar las opciones de configuración que lo habilitan. Examine las siguientes opciones:

  • Intervalo de agregación: representa el período recurrente que utiliza el presupuesto para acumular y evaluar los costos. Las opciones más comunes son: Mensual, Trimestral y Anual.
  • Período de tiempo: representa el plazo de validez de un presupuesto. El presupuesto supervisa activamente y le alerta solo mientras sigue siendo válido.
  • Notificaciones
    • Correos electrónicos de contacto: las direcciones de correo electrónico reciben alertas cuando un presupuesto acumula costos y supera los umbrales definidos.
    • Roles de contacto: todos los usuarios que tienen un rol de Azure que coincida en el ámbito dado reciben alertas por correo electrónico con esta opción. Por ejemplo, los propietarios de suscripciones podrían recibir una alerta de un presupuesto creado en el ámbito de la suscripción.
    • Grupos de contactos: el presupuesto llama a los grupos de acciones configurados cuando se supera un umbral de alerta.
  • Filtros de dimensión de costo : el mismo filtro que puede realizar en Análisis de costos o en Query API también se puede realizar en el presupuesto. Este filtro se usa para reducir el rango de costos que se supervisan con el presupuesto.

Una vez que haya identificado las opciones de creación de presupuesto que satisfagan sus necesidades, cree el presupuesto mediante la API. El ejemplo siguiente le ayudará a comenzar con una configuración de presupuesto común.

Creación de un presupuesto con filtros para varios recursos y etiquetas

Dirección URL de la solicitud: 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"
      }
    }
  }
}

Configuración de orquestación basada en costos para las alertas presupuestarias

Puede configurar presupuestos para iniciar acciones automatizadas mediante los grupos de acciones de Azure. Para más información sobre la automatización de acciones mediante presupuestos, consulte Automatización con los presupuestos.

Latencia de datos y límites de frecuencia

Se recomienda llamar a las API no más de una vez al día. Los datos de Cost Management se actualizan cada cuatro horas a medida que se reciben nuevos datos de uso de los proveedores de recursos de Azure. Una frecuencia mayor de llamada no proporciona más datos, sino que crea un aumento de la carga.

Unidades de procesamiento de consultas de Query API

Además de los procesos de limitación de velocidad existentes, Query API también limita el procesamiento en función del coste de las llamadas API. El coste de una llamada API se expresa como unidades de procesamiento de consultas (QPU). QPU es una moneda de rendimiento, como las RU de Cosmos DB. Son una abstracción de recursos del sistema como la CPU y la memoria.

Cálculo de QPU

Actualmente, por cada mes de datos consultados, se deduce una QPU de las cuotas asignadas. Esta lógica podría cambiar sin previo aviso.

Factores de QPU

El siguiente factor afecta al número de QPU que consume una solicitud de API.

  • Intervalo de fechas: a medida que aumenta el intervalo de fechas de la solicitud, aumenta el número de QPU consumidas.

Es posible que se agreguen otros factores de QPU sin previo aviso.

Cuotas de QPU

Las cuotas siguientes se configuran por inquilino. Las solicitudes se limitan cuando se agota alguna de las cuotas siguientes.

  • 12 QPU por cada 10 segundos
  • 60 QPU por 1 minuto
  • 600 QPU por 1 hora

Es posible que las cuotas se cambien según sea necesario y se puedan agregar más cuotas.

Encabezados de respuesta

Puede examinar los encabezados de respuesta para realizar un seguimiento del número de QPU que consume una solicitud de API y el número de QPU restantes.

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

Indica el tiempo de interrupción en segundos. Cuando se limita una solicitud con 429, espere el tiempo especificado en este encabezado antes de volver a intentar la solicitud.

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

QPU que consume una llamada API.

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

Lista de cuotas restantes.

Pasos siguientes