aws.crafter.run

CloudWatch

Amazon CloudWatch

Donde acaban las métricas y los logs de todo lo demás: un almacén que envejece los datos agregándolos, y unas alarmas que solo saben mirar una métrica cada una.

Verificado el
Ver .md

Los tres conceptos

Si no entiendes estos tres, nada de lo demás encaja.

  1. 1

    Las métricas no caducan, se agregan

    Un dato de un minuto vive 15 días con resolución de un minuto. Después sigue existiendo, pero solo se puede leer agregado a 5 minutos; pasados 63 días, a una hora. No pierdes el dato: pierdes el detalle. Por eso una investigación de hace tres meses nunca tendrá el grano que tuvo el incidente.

  2. 2

    Cada combinación de dimensiones es una métrica distinta

    CloudWatch trata cada par nombre/valor como parte de la identidad de la métrica, y solo puedes consultar las combinaciones que publicaste. Añadir una dimensión con muchos valores —un id de usuario, por ejemplo— no enriquece una métrica: crea miles, y cada una se factura.

  3. 3

    Logs y métricas son dos mundos con dos facturas

    Los logs se ingieren, se guardan y se consultan; las métricas se publican y se agregan. El puente son los metric filters, que convierten patrones de log en métricas. Confundirlos es la causa de casi todas las facturas sorpresa de observabilidad.

Los límites

Hard es un muro: no se sube ni con un ticket. Soft se amplía pidiéndolo — antes del pico, no durante.

ConceptoValorTipo
Retención — datos de menos de 60 sSon las métricas personalizadas de alta resolución.3 horashard
Retención — datos de 60 s15 díashard
Retención — datos de 300 s63 díashard
Retención — datos de 3 600 s455 días (15 meses)hard
Caducidad de una métrica sin datos nuevosLas métricas no se pueden borrar. Y sin datos en dos semanas dejan de salir en la consola y en list-metrics.15 meseshard
Dimensiones por métrica30hard
Antigüedad admitida de un timestampUn timestamp fuera de rango deja la alarma en "Insufficient Data".hasta 2 semanas atrás · 2 horas adelantehard
Periodos válidosLos de menos de 60 s solo sirven en métricas de alta resolución.1, 5, 10, 30 o múltiplos de 60 segundoshard
PutMetricData500 por segundosoft
PutMetricAlarmLos despliegues que crean muchas alarmas a la vez se estrangulan aquí.3 por segundosoft
Alarmas de Metrics Insights200 por cuentahard
Reglas de Contributor Insights100soft
Logs · tamaño de un eventoEl límite de 256 KB que circula por ahí está anticuado. El lote de PutLogEvents sigue siendo de 1 MB.1 024 KBhard
Logs · lote de PutLogEvents1 MBhard
Logs · PutLogEvents por segundo5 000soft
Logs · grupos por cuenta1 000 000soft
Logs · filtros de métrica por grupo100hard
Logs · filtros de suscripción por grupoEs el techo real del multi-destino: solo cinco consumidores por grupo de logs.5hard
Logs · FilterLogEvents por segundoFráncfort, Osaka, Yakarta, Calgary y Tel Aviv van a 5.25 en us-east-1 · 10 en la mayoría · 5 en variashard
Logs · Live Tail15 sesiones concurrentes · 10 grupos por sesiónsoft
Logs · políticas de recursos10 por cuenta y regiónhard

Modelo mental

CloudWatch no es un producto: son dos servicios distintos con el mismo nombre, y casi todos los problemas vienen de tratarlos como uno.

Primeros 15 díasResolución de 1 minuto: se ve el picoDe 15 a 63 díasSolo agregado a 5 minutosDe 63 a 455 díasSolo agregado a 1 horamisma ventanamisma ventanamisma ventana
Las métricas no caducan: se agregan. El dato sigue ahí, pero cada vez con menos detalle. El pico de treinta segundos que causó el incidente del trimestre pasado ya no existe: existe la media de su hora, que no dice nada.

Métricas es una serie temporal: publicas números, se agregan por periodos y se leen como estadísticas. Logs es un almacén de texto: ingieres líneas, se guardan y se consultan. Facturan distinto, escalan distinto y se rompen distinto. El único puente entre ambos son los metric filters, que buscan un patrón en los logs y publican una métrica cuando lo encuentran.

Envejecer no es caducar

Es el concepto que más gente descubre tarde, en mitad de una investigación:

Resolución del dato Cuánto vive así
menos de 60 s (alta resolución) 3 horas
60 s 15 días
300 s (5 min) 63 días
3 600 s (1 hora) 455 días (15 meses)

Y lo importante es cómo transiciona: un dato publicado por minuto sigue existiendo pasados 15 días, pero solo se puede leer agregado a 5 minutos. Pasados 63 días, a una hora.

Traducido: el pico de 30 segundos que causó el incidente del trimestre pasado ya no existe. Existe la media de la hora en la que ocurrió, que no dice nada. Si un dato va a hacer falta con grano fino más adelante, sácalo de CloudWatch a tiempo.

La dimensión que multiplica la factura

CloudWatch trata cada combinación única de dimensiones como una métrica separada, aunque el nombre sea el mismo. Y solo puedes consultar las combinaciones que publicaste: si mandaste Server=Prod,Domain=Frankfurt no puedes preguntar por Server=Prod a secas.

De ahí sale el error caro: añadir una dimensión de alta cardinalidad —usuarioId, pedidoId— no enriquece una métrica. Crea una métrica por cada valor, y cada métrica personalizada se factura. Es la vía más rápida a una factura de observabilidad que nadie sabe explicar.

Para eso están los logs y Contributor Insights, no las dimensiones.

Cómo te factura

Concepto Cómo se paga
Métricas personalizadas por métrica y mes
PutMetricData por millón de peticiones
Alarmas por alarma y mes, y más caras las de alta resolución
Logs · ingesta por GB ingerido — la línea dominante
Logs · almacenamiento por GB y mes
Logs Insights por GB escaneado en cada consulta

Dos cosas dominan la factura y ninguna es la que la gente vigila:

La ingesta de logs. Se paga por GB que entra, no por GB que consultas. Un console.log por invocación en una función con cien millones de invocaciones al mes es una decisión de coste, no de estilo.

Logs Insights cobra por GB escaneado. Una consulta sin filtrar sobre un mes de logs escanea —y factura— el mes entero, aunque devuelva tres líneas. Acota siempre el rango temporal y el grupo de logs antes de filtrar por contenido.

Y una que sorprende: las métricas de alta resolución multiplican todo. Cada PutMetricData se cobra, así que publicar cada segundo cuesta sesenta veces más que publicar cada minuto, y las alarmas de 10 o 30 segundos tienen tarifa propia.

Cuándo NO usarlo

Errores comunes

Meter identificadores en las dimensiones. Multiplica el número de métricas y la factura, y además ninguna de esas métricas se puede agregar después.

Creer que el dato de hace tres meses conserva el detalle. Está agregado a una hora. Lo que necesitabas ver ya no está.

No poner retención a los grupos de logs. Por defecto los logs no caducan: se guardan y se facturan para siempre. Es la línea de factura más común y la más fácil de arreglar.

Consultar en Logs Insights sin acotar. Filtra primero por grupo y por tiempo; el filter por contenido se aplica sobre lo que ya escaneaste y pagaste.

Suponer que caben cinco destinos y luego seis. Los filtros de suscripción por grupo de logs son 5, y no se amplían. Es el techo real cuando quieres mandar los mismos logs a varios sitios.

Alarmas sobre una métrica que a veces no existe. Si una métrica deja de publicarse, la alarma se queda en Insufficient Data en vez de dispararse. Configura treatMissingData a conciencia — sobre todo en las alarmas de DLQ, que precisamente vigilan algo que casi siempre está vacío.

Desplegar cien alarmas de golpe. PutMetricAlarm va a 3 por segundo.

Fuentes

Retención por resolución, agregación al envejecer, caducidad a los 15 meses, dimensiones por métrica, rango admitido de timestamps, periodos válidos y comportamiento de las alarmas: Metrics concepts — Amazon CloudWatch. Límites de API de métricas y alarmas: CloudWatch service quotas. Tamaño de evento, lote de PutLogEvents, grupos por cuenta, filtros de métrica y de suscripción, FilterLogEvents por región y Live Tail: CloudWatch Logs quotas. Los modelos de precio proceden de la página de precios de AWS, que se renderiza dinámicamente y no pudo citarse literalmente.

Dónde aparece esto