Saltar al contenido

El producto

Entiende el alza. Decide con contexto.

Alertas de gasto inesperado y oportunidades de ahorro, en tus canales habituales. Revisa qué detectamos, cómo lo evaluamos y sus límites antes de conectar AWS.

Conectar AWS en 5 minutos
Un día es anomalía sólo si pasa las dos

Compuerta 1 · relativa

robustZ >= 3.5
  OR
deltaPct >= 40%

¿Es esto inusual para este servicio, estadística o proporcionalmente? Con una de las dos basta.

Compuerta 2 · absoluta

deltaUsd >= max(
  $10,
  1% de la boleta total del día
)

¿Mueve plata de verdad? Esto es lo que evita que 300% sobre $2 despierte a alguien igual que 300% sobre $2.000.

Explorar la metodología, los umbrales y los límites

El normal

Un miércoles sólo se compara contra otros miércoles.

La estacionalidad entre semana y fin de semana es la mayor fuente de falsos positivos en monitoreo de costos. Una flota que escala con el tráfico cuesta un tercio menos un domingo, así que cualquier detector que compare lunes contra domingo o grita todos los fines de semana o está sordo toda la semana.

Mediana, no promedio

El normal es la mediana de las 4 muestras anteriores del mismo día de la semana, y la dispersión es la desviación absoluta mediana en torno a ella. Ambas son robustas: un alza que ya está dentro de la ventana no puede arrastrar el normal hacia arriba para alcanzar a la siguiente, que es exactamente cómo una fuga se escapa de la detección al tercer día.

Un piso bajo la dispersión

Un servicio casi plano tiene una MAD cercana a cero, y dividir por ella puntuaría cada error de redondeo como infinitamente sorprendente. La dispersión efectiva es por eso max(mad, 0.05 × mediana).

4 semanas antes de juzgar nada

Un día en que el servicio no corrió es ausencia, no un cero, así que queda fuera de la línea base en vez de promediarse dentro. Con menos de 3 muestras del mismo día de la semana en las que efectivamente corrió, el servicio no se evalúa ese día: sin línea base, sin alerta. La alternativa es inventar un normal con días que nunca ocurrieron, y eso reporta como cambiado un servicio que no cambió. Una cuenta joven es callada por diseño, no por veredicto.

Configuración por defectobalanced
baselineWeeks
4
minSameWeekdaySamples
3
robustZThreshold
3.5
relativeIncreaseThreshold
40%
absoluteFloorUsd
$10
totalShareFloor
1%
madFloorFraction
5%

Publicada porque un umbral que no puedes ver es un umbral con el que no puedes discutir. Tres presets los mueven todos juntos — mira más abajo.

Severidad

Dos ejes, para que ni la sorpresa ni el tamaño ganen solos.

La sorpresa estadística dice qué tan inusual es esto para el servicio. El impacto dice si mueve la boleta completa. Cada uno aporta un tramo, los tramos se suman, y la suma es la severidad.

Sorpresa · z robusto

z >= 16  +3
z >= 12  +2
z >= 8   +1
below    +0

Impacto · parte de la boleta del día

>= 25%   +3
>= 10%   +2
>=  3%   +1
below    +0

Suma · 0 a 6

5 – 6   critical
3 – 4   high
1 – 2   medium
0       low

Los límites, dichos en vez de descubiertos.

Cada uno es una decisión en el código, no un hueco esperando que lo llenen. Conocerlos antes de conectar es la diferencia entre una herramienta en la que confías y una que dejas de leer.

deltaUsd <= 0 → se salta

Sólo se marcan aumentos. Un servicio que salió más barato no es un incidente, y un detector que reporta en las dos direcciones es un detector que nadie lee.

observedUsd <= 0 → se salta

Un servicio sin gasto ese día no se evalúa, así que un servicio que se apaga nunca dispara una alerta sobre sí mismo.

Menos de 3 muestras del mismo día → no se evalúa

Menos de 3 días en que el servicio efectivamente corrió significa que no hay distribución contra la cual sorprenderse. Se saltea en vez de juzgarse — lo que también implica que un cargo que aparece por primera vez no alerta el día que aparece.

Unit !== USD → el scan se niega

Cost Explorer devuelve la moneda de facturación de la cuenta, y una cuenta facturada en CLP comparada contra un piso de $10 marcaría prácticamente todo. Negarse es la respuesta honesta — convertir necesitaría un tipo de cambio histórico por día y renderizaría el movimiento cambiario como anomalías de gasto.

Ningún permiso de escritura, nunca

El rol otorga 5 acciones de lectura y nada más. CostWarden no puede redimensionar la instancia sobre la que te está avisando, y ese es un techo deliberado sobre lo que tienes que confiar.

Rightsizing

El desperdicio que nunca genera un alza, y nunca despierta a nadie.

Las anomalías capturan lo que cambió. El rightsizing captura lo que viene mal desde siempre — la instancia sobredimensionada, el volumen que nadie tiene conectado hace seis semanas. Esto viene de AWS Compute Optimizer, no de nosotros.

Los hallazgos del propio AWS, no nuestro modelo

Compute Optimizer ya mira gratis la utilización de cada instancia. Nuestro valor es poner sus hallazgos al lado de los datos de gasto, no competirle en modelado.

Sólo sobredimensionadas, en EC2

Las instancias subdimensionadas son un tema de rendimiento, no de ahorro, así que nunca se convierten en recomendaciones acá. Para EBS la lista cubre además volúmenes ociosos y sin conectar.

Una foto, no un historial

Cada sync reemplaza las recomendaciones guardadas por completo. Una fila rancia de “ahorra $120/mes” para una instancia que redimensionaste la semana pasada es activamente engañosa, así que se borra en vez de conservarse.

Necesita unas dos semanas, y un opt-in

Compute Optimizer es opt-in por cuenta de AWS y quiere unos 14 días de métricas antes de decir algo. Hasta entonces el panel lo dice, en vez de mostrar una lista vacía como si no pasara nada.

Rightsizing · cuenta de ejemplo−$312/mes
  • i-0a91c4e2f7b3d8051m6i.2xlargem6i.xlarge−$138
  • i-04f7b2a9c1e6d3327r6i.xlarger6i.large−$94
  • vol-0c72e19b4a5f8d6e3gp2 · unattached 41 daysdelete−$46
  • i-0d38e5c7a92b1f460c6i.4xlargec6i.2xlarge−$34

Las cifras de ahorro son estimaciones del propio AWS, pasadas sin modificar. Cuenta de ejemplo.

Episodios y entrega

Una fuga de nueve días es una historia, no nueve alertas.

Los días consecutivos son un episodio

El detector marca cada día que rompe el normal; el agrupamiento decide de cuáles de esos días te enteras. Cada día marcado se guarda igual, así que el dashboard muestra un evento largo como activo mientras el canal se entera una sola vez.

episode_key por servicio episode_day 1, 2, 3 …

Inicio, y después sólo escalada

El primer día de un episodio es una alerta. Después hay un cooldown de 3 días, y un evento largo se vuelve a levantar sólo si escala a la mitad de nuevo o una vez pasados 14 días. Cada mensaje dice contra qué se mide: el último día de este episodio del que efectivamente te avisaron.

cooldown 3 días re-raise +50% o 14 días

Cada mensaje lleva el total acumulado

No sólo el sobregasto de hoy sino el delta acumulado del episodio y el día en que empezó, armados desde la propia historia del episodio y no desde un número escrito en una plantilla.

cumulativeDeltaUsd episodeStartDate

Un tope duro por scan

Ninguna corrida puede mandar más de 5 notificaciones, así que un mal día para tu infraestructura no puede volverse una inundación en tu canal.

MAX_PER_RUN 5

El backfill nunca se anuncia

Sólo el gasto dentro de 3 días del dato más nuevo puede notificar. Eso es lo que evita que el primer sync anuncie 90 días de historia de una sola vez — las filas más viejas simplemente no se mandan nunca.

ventana de frescura 3 días

Reclamado antes de enviarse

Un update atómico marca una notificación como enviada y sólo salen las filas que efectivamente reclamó, así que un scan programado que se superpone con tu sync manual no puede mandar doble. Si fallan todos los canales, el reclamo se libera y la corrida siguiente reintenta.

notified_at reclamo → envío salud por canal registrada

Sensibilidad

Un dial, tres posiciones, siete números detrás.

Demasiado ruidoso o demasiado callado debería ser una decisión, no siete umbrales que aprender. Cada preset mueve todas las compuertas en la misma dirección a la vez, así que el resultado se mantiene estadísticamente coherente. balanced es el default, y es exactamente la configuración de arriba.

quietbalanced · defaultsensitive
robustZThreshold4.53.52.75
relativeIncreaseThreshold+60%+40%+30%
absoluteFloorUsd$25$10$5
totalShareFloor2%1%0.5%
notifica desdehighmediummedium

También puedes fijar tu propio delta mínimo en dólares, que anula el piso del preset. Settings nombra la cifra vigente, leída de la misma tabla con la que corre el detector, así que el número en pantalla es por construcción el número que filtra tus alertas.

Córrelo contra 90 días que ya pagaste.

El primer sync trae tu historia y la escanea entera, así que puedes ver qué habría dicho el detector el mes pasado antes de decidir si vale US$79 al mes.

Tus preferencias de privacidad