Compartir a través de


Supervisión del costo del proceso sin servidor

En este artículo, se explica cómo usar la tabla del sistema de uso facturable (versión preliminar pública) para supervisar el costo del uso de procesos sin servidor.

Puede supervisar el uso del proceso sin servidor para cuadernos y trabajos consultando la tabla del sistema de uso facturable (system.billing.usage), que incluye atributos de usuario y carga de trabajo relacionados con los costos de proceso sin servidor. Los campos aplicables incluyen:

  • La columna identity_metadata incluye el campo run_as, que muestra el usuario o la entidad de servicio cuyas credenciales se usaron para ejecutar la carga de trabajo.
  • La columna usage_metadata tiene campos que describen la carga de trabajo: job_run_id, job_name, notebook_id y notebook_path.

Consideraciones para los registros de uso sin servidor

Al analizar el uso sin servidor, tenga en cuenta lo siguiente:

  • Es posible que vea varios registros asociados a una carga de trabajo de proceso sin servidor determinada en una hora determinada. Por ejemplo, puede ver varios registros con el mismo job_id, job_run_id o job_name, pero con valores de consumo de DBU diferentes para cada uno. La suma de estas DBU representa colectivamente el consumo de DBU por hora para una ejecución de trabajo determinada.

Nota:

Para una actualización sobre la atribución de cargas de trabajo nulas, consulte ¿Cuáles son las próximas novedades?.

Uso de presupuestos para supervisar los gastos

Los administradores de cuentas pueden configurar presupuestos para agrupar los costes y configurar alertas. Vea Uso de presupuestos para supervisar los gastos en la cuenta.

Importación de un panel de uso

Los administradores de cuentas pueden importar paneles de gestión de costes a cualquier área de trabajo habilitada para Unity Catalog en su cuenta. Vea Importación de un panel de uso.

Búsqueda de un trabajo o cuaderno en la interfaz de usuario

Para buscar un trabajo o cuaderno en la interfaz de usuario en función de un registro de facturación, copie el valor usage_metadata.job_id o usage_metadata.notebook_id del registro de uso. Estos identificadores son inmutables y se pueden usar incluso si cambia el nombre del trabajo o la ruta de acceso del cuaderno.

Para buscar un trabajo en la interfaz de usuario en función de su job_id:

  1. Copie el job_id del registro de uso. En este ejemplo, supongamos que el identificador es 700809544510906.
  2. Vaya a la interfaz de usuario flujos de trabajo en el mismo área de trabajo de Azure Databricks que el trabajo.
  3. Asegúrese de que los Trabajos solo propiedad de mí filtro está desactivado.
  4. Pegue el identificador (700809544510906) en la barra de búsqueda Filtrar trabajos.

Para buscar un cuaderno en la interfaz de usuario en función de su notebook_id, siga estas instrucciones:

  1. Copie el notebook_id del registro de uso. En este ejemplo, supongamos que el identificador es 700809544510906.
  2. Vaya a la interfaz de usuario de Áreas de trabajo en el mismo área de trabajo de Azure Databricks que el cuaderno.
  3. Haga clic sobre cualquier cuaderno de la lista.
  4. Después de abrir el cuaderno, examine la dirección URL en la barra de direcciones del explorador. Debería ser parecido a este: https://<account-console-url>/?o=<workspace ID>#notebook/<notebook ID>/command/<command ID>.
  5. En la barra de direcciones del explorador, reemplace el identificador del cuaderno por el identificador que copió en el primer paso y, a continuación, elimine todo después del identificador del cuaderno. Debería ser parecido a este: https://<account-console-url>/?o=<workspace ID>#notebook/700809544510906.
  6. Después de abrir el cuaderno, puede hacer clic en el botón Compartir para ver el propietario del cuaderno.

Uso de alertas para realizar un seguimiento del gasto de procesos sin servidor

Las alertas son una manera eficaz de mantenerse informados sobre el gasto sin servidor. Con las alertas, puede recibir notificaciones cuando se cumplan determinadas condiciones en los resultados de la consulta. Para obtener información sobre cómo crear alertas, consulte Creación de una alerta.

Puede agregar alertas a las siguientes consultas para supervisar los presupuestos. En cada consulta, reemplace {budget} por el presupuesto elegido.

Alerta cuando cualquier gasto de área de trabajo supera un umbral en los últimos 30 días

Puede establecer una alerta para que se desencadene cada vez que esta consulta devuelva una fila. Reemplace {budget} por el presupuesto elegido.

SELECT
   t1.workspace_id,
   SUM(t1.usage_quantity * list_prices.pricing.default) as list_cost
FROM system.billing.usage t1
INNER JOIN system.billing.list_prices on
   t1.cloud = list_prices.cloud and
   t1.sku_name = list_prices.sku_name and
   t1.usage_start_time >= list_prices.price_start_time and
   (t1.usage_end_time <= list_prices.price_end_time or list_prices.price_end_time is null)
WHERE
   t1.sku_name LIKE '%SERVERLESS%'
   AND billing_origin_product IN ("JOBS", "INTERACTIVE")
   AND t1.usage_date >= CURRENT_DATE() - INTERVAL 30 DAYS
GROUP BY
   t1.workspace_id
HAVING
   list_cost > {budget}

Alerta cuando un usuario supera el umbral en los últimos 30 días

Puede establecer una alerta para que se desencadene cada vez que esta consulta devuelva una fila. Reemplace {budget} por el presupuesto elegido.

SELECT
   t1.identity_metadata.run_as,
   SUM(t1.usage_quantity * list_prices.pricing.default) as list_cost
FROM system.billing.usage t1
INNER JOIN system.billing.list_prices on
   t1.cloud = list_prices.cloud and
   t1.sku_name = list_prices.sku_name and
   t1.usage_start_time >= list_prices.price_start_time and
   (t1.usage_end_time <= list_prices.price_end_time or list_prices.price_end_time is null)
WHERE
   t1.sku_name LIKE '%SERVERLESS%'
   AND billing_origin_product IN ("JOBS", "INTERACTIVE")
   AND t1.usage_date >= CURRENT_DATE() - INTERVAL 30 DAYS
GROUP BY
   t1.identity_metadata.run_as
HAVING
   list_cost > {budget}

Alerta cuando un trabajo supera el umbral en los últimos 30 días

Puede establecer una alerta para que se desencadene cada vez que esta consulta devuelva una fila. Reemplace {budget} por el presupuesto elegido.

SELECT
   t1.workspace_id,
   t1.usage_metadata.job_id,
   SUM(t1.usage_quantity * list_prices.pricing.default) as list_cost
FROM system.billing.usage t1
INNER JOIN system.billing.list_prices on
   t1.cloud = list_prices.cloud and
   t1.sku_name = list_prices.sku_name and
   t1.usage_start_time >= list_prices.price_start_time and
   (t1.usage_end_time <= list_prices.price_end_time or list_prices.price_end_time is null)
WHERE
   t1.sku_name LIKE '%SERVERLESS%'
   AND billing_origin_product IN ("JOBS")
   AND t1.usage_date >= CURRENT_DATE() - INTERVAL 30 DAYS
GROUP BY
   t1.workspace_id, t1.usage_metadata.job_id,
HAVING
   list_cost > {budget}

Consultas de ejemplo

Use las siguientes consultas para obtener información sobre el uso sin servidor en su cuenta:

Identificación de cuadernos de proceso sin servidor costosos

Esta consulta devuelve una lista de cuadernos y cuántas DBU consume cada cuaderno, en orden descendente por consumo de DBU:

SELECT
  usage_metadata.notebook_id,
  SUM(usage_quantity) as total_dbu
FROM
  system.billing.usage
WHERE
  usage_metadata.notebook_id is not null
  and billing_origin_product = 'INTERACTIVE'
  and product_features.is_serverless
  and usage_unit = 'DBU'
  and usage_date >= DATEADD(day, -30, current_date)
GROUP BY
  1
ORDER BY
  total_dbu DESC

Identificación de trabajos de proceso sin servidor costosos

Esta consulta devuelve una lista de trabajos y el número de DBU que consume cada trabajo, en orden descendente por consumo de DBU:

SELECT
  usage_metadata.job_id,
  SUM(usage_quantity) as total_dbu
FROM
  system.billing.usage
WHERE
  usage_metadata.job_id is not null
  and billing_origin_product = 'JOBS'
  and product_features.is_serverless
  and usage_unit = 'DBU'
  and usage_date >= DATEADD(day, -30, current_date)
GROUP BY
  1
ORDER BY
  total_dbu DESC

Informe sobre las DTU consumidas por un usuario determinado

Esta consulta devuelve una lista de cuadernos y trabajos que usan un proceso sin servidor ejecutado por un usuario o entidad de servicio determinado y el número de DTU consumidas por cada carga de trabajo:

SELECT
  usage_metadata.job_id,
  usage_metadata.notebook_id,
  SUM(usage_quantity) as total_dbu
FROM
  system.billing.usage
WHERE
  identity_metadata.run_as = '<emailaddress@domain.com>'
  and billing_origin_product in ('JOBS','INTERACTIVE')
  and product_features.is_serverless
  and usage_unit = 'DBU'
  and usage_date >= DATEADD(day, -30, current_date)
GROUP BY
  1,2
ORDER BY
  total_dbu DESC

Informe de las DTU de proceso sin servidor consumidas por cargas de trabajo que comparten una etiqueta personalizada

Esta consulta devuelve una lista de trabajos que usan un proceso sin servidor que comparten la misma etiqueta personalizada y el número de DTU consumidas por cada carga de trabajo:

SELECT
  usage_metadata.job_id,
  usage_metadata.notebook_id,
  SUM(usage_quantity) as total_dbu
FROM
  system.billing.usage
WHERE
  custom_tags.<key> = '<value>'
  and billing_origin_product in ('JOBS','INTERACTIVE')
  and product_features.is_serverless
  and usage_unit = 'DBU'
  and usage_date >= DATEADD(day, -30, current_date)
GROUP BY
  1,2
ORDER BY
  total_dbu DESC