Con la adopción de la IA, la atribución de uso y los casos de uso de contracargos van en aumento. Las empresas modernas también están ansiosas por recopilar y asignar datos de uso a sus clientes y departamentos internos, para impulsar la facturación, las ventas, el desarrollo de productos y el análisis de costos de la nube.
La Fundación FinOps también presentó recientemente el borrador inicial de su FOCUS (Open Cost & Usage Specification). ¿Por qué los datos de uso pueden ser complejos y qué diferencia la medición de eventos de las métricas de series temporales?
Antes de profundizar en las complejidades de los casos de uso de facturación, análisis y monitoreo, definamos qué entendemos por datos de uso. El uso describe a alguien que consume un bien en un período de tiempo. Por ejemplo, entre la 1 p. m. y las 2 p. m., Alice envió 100 SMS a través de la API de Twillio.
El uso generalmente se describe para un período de tiempo en lugar de una sola fecha porque las computadoras son rápidas, pero los humanos son lentos. Veamos algunos de los casos de uso comunes que requieren datos de uso:
Facturación: esto requiere datos de uso precisos, ya que a los clientes se les cobra según los términos del contrato legalmente vinculantes. Si bien las dimensiones de los datos suelen ser limitadas, la cardinalidad es alta, ya que se debe realizar un seguimiento de los datos de uso de cada cliente.
Los datos en tiempo real son opcionales, pero se requieren notificaciones rápidas cuando un usuario alcanza un umbral de facturación. La retención de datos es crucial para validar facturas, aunque pierde importancia una vez que se liquida la factura.
Monitoreo: esto requiere datos de uso en tiempo real para fines de alerta. La precisión es importante pero es más flexible que la facturación. Los sistemas de monitoreo a menudo están limitados en torno a la cardinalidad.
La retención de datos suele ser corta debido a los costos de almacenamiento de grandes volúmenes de datos de monitoreo, que rara vez se utilizan después de algunas semanas.
Análisis: los casos de uso típicos, como el costo de la nube, el análisis de márgenes y los precios, requieren datos históricos precisos de los últimos tres a cinco años para entrenar modelos e identificar tendencias de manera efectiva. El análisis rara vez es en tiempo real.
Resumido en una tabla:
Caso de uso | Exactitud | Cardinalidad | Tiempo real | Retención |
---|---|---|---|---|
Facturación | Alto | Alto | Moderado | 1-2 años |
Supervisión | Moderado | Bajo | Alto | Semanas |
Analítica | Alto | Moderado | Bajo | 3+ Años |
Como puede ver, cada caso de uso tiene necesidades diferentes, lo que puede resultar confuso cuando se analizan los datos de uso.
El concepto de clasificar los datos como auditables u operativos me llamó la atención por primera vez en 2018 a través de un tuit de Charity Majors, cofundadora de Honeycomb.io .
Los datos auditables se clasifican como tales cuando la pérdida de cualquier registro de datos es intolerable y es necesaria la conservación total de los registros. Cuando se utiliza un conjunto de datos auditable, se espera que sea integral y completo.
Los ejemplos de datos auditables incluyen registros de transacciones, registros de replicación y eventos de facturación/finanzas.
Los datos operativos , por el contrario, no requieren una integridad estricta. Para mantener costos manejables, a menudo se emplea el muestreo y es aceptable cierto grado de pérdida de datos.
Las herramientas diseñadas para administrar datos operativos a menudo priorizan la eficiencia del esfuerzo, evitando los reintentos y las costosas garantías de exactamente una entrega. Los ejemplos de datos operativos incluyen telemetría, métricas y datos contextuales que describen cada solicitud y componente del sistema.
Antes de decidir la metodología para recopilar, procesar y almacenar sus datos de uso, es importante determinar si sus datos deben ser auditables u operativos.
En la siguiente sección, compararemos dos estrategias de recopilación de datos: medición basada en eventos, generalmente más adecuada para casos de uso auditables, y monitoreo de series de tiempo, el método preferido para recopilar datos de uso operativo.
Hay dos formas principales de recopilar datos de uso:
medición basada en eventos y
sistemas de seguimiento de series temporales .
Así es como se comparan:
Medición basada en eventos: las empresas de facturación basadas en el uso favorecen este enfoque, ya que es auditable debido a su consistencia inherente en el manejo de eventos únicos. Los eventos pueden entregarse dos veces en sistemas distribuidos y deduplicarse utilizando identificadores únicos para evitar la facturación excesiva o insuficiente.
La medición se adapta bien a la alta cardinalidad, que es necesaria para realizar un seguimiento del uso de cada cliente. El desafío, sin embargo, radica en la recopilación de datos. La industria tiene colectores de infraestructura robustos para el monitoreo, pero estos fueron diseñados con algo más que eventos en mente.
La mayoría de los proveedores proporcionan una API POST para el envío de eventos, dejando el proceso de recopilación en manos del usuario.
Monitoreo de series de tiempo: los sistemas de monitoreo como Prometheus extraen contadores e histogramas para almacenar y suministrar métricas como datos operativos de series de tiempo.
Se recomienda mantener la cardinalidad baja, lo que dificulta el seguimiento del consumo de recursos de usuarios individuales a gran escala. La recopilación de métricas es un camino bien pavimentado en la industria, con extractores de métricas listos para usar disponibles para la mayoría de los componentes de infraestructura.
Los proveedores de APM han invertido significativamente en estándares como OpenTelemetry para agilizar la recopilación de datos. El desafío radica en las garantías limitadas del recopilador de métricas en cuanto a la entrega y la deduplicación, ya que se diseñaron teniendo en cuenta los casos de uso de datos operativos.
Los colaboradores de Prometheus comparten aquí algunas ideas sobre la precisión. Si desea profundizar más, también puede encontrar un debate sobre cómo ajustar el raspado para aumentar la precisión del contador aquí .
Resumido en una tabla:
Recopilación de uso | Auditable | Consistencia | Colectores y Estándares |
---|---|---|---|
Medición de eventos | Sí | Alto | Bajo |
Métricas de series temporales | No | Moderado | Alto |
El desafío actual radica en recopilar e integrar datos de uso. Estas tareas son complejas porque la recopilación de uso debe equilibrar la precisión, la cardinalidad y los aspectos en tiempo real de manera diferente según el caso de uso (como se ilustra en la comparación entre eventos y métricas), mientras que la integración requiere mucho tiempo debido a la necesidad de un estándar de especificación de uso.
Solo piense en todas las API de proveedores personalizados o en la interfaz genérica de PromQL. Esta falta de consolidación crea dificultades para integrar los datos de uso en los casos de uso de facturación, contracargo y análisis de costos, lo que a menudo da como resultado sistemas separados para la recopilación de datos de uso en lugar de compartirlos entre sí.
FOCUS (Open Cost & Usage Specification) de FinOps tiene como objetivo abordar los desafíos de integración de los datos de uso. FOCUS describe una especificación para producir y consumir el uso normalizado y los datos de facturación de los proveedores de la nube y los proveedores de SaaS.
FOCUS le permitirá integrar sin problemas los datos de uso entre proveedores, para facturación y casos de uso de análisis de costos en la nube.
La especificación FOCUS está actualmente en desarrollo; la versión de vista previa 0.5 se lanzó a fines de junio de 2023, y la especificación actualmente se enfoca más en la facturación que en los datos de uso.
Puede seguir o unirse al grupo de trabajo FOCUS aquí .
No anticipo una convergencia de la medición de eventos y los sistemas de métricas, ya que cada uno equilibra distintas compensaciones comerciales y de ingeniería para satisfacer sus casos de uso. Solo piense en las diferencias entre los datos auditables y operativos.
Pero espero una convergencia en los estándares en torno a la integración de datos de uso entre proveedores como FOCUS de FinOps.
Necesitamos su entrada. ¿Debería OpenMeter ingerir métricas e integrarse con Prometheus para agilizar los casos de uso de facturación y contracargos?
Háganos saber en nuestro repositorio de código abierto: https://github.com/openmeterio/openmeter