Registro y métricas con Amazon CloudWatch

Implementación de aplicaciones en AWS

Dunieski Otano

Amazon Web Services Solutions Architect

¿Está caído?

  • Una persona usuaria dice que la app falla
  • No tienes datos para confirmarlo o negarlo
  • CloudWatch convierte conjeturas en respuestas

Un panel de monitorización con un signo de interrogación, sin saber si el servicio está bien o caído

Implementación de aplicaciones en AWS

Logging vs monitoring vs observability

Diagrama de tres columnas que distingue logging como registros inmutables de eventos, monitoring como métricas con umbrales y alarmas, y observability como correlación de datos para responder preguntas nuevas

  • Logging: registra eventos discretos al ocurrir
  • Monitoring: sigue métricas conocidas con umbrales
  • Observability: plantea nuevas preguntas a tus datos
  • Necesitas las tres para operar con confianza
Implementación de aplicaciones en AWS

Log groups, log streams y retención

  • Log group: contenedor con nombre para logs relacionados
  • Log stream: secuencia de una fuente
  • Retention: cuánto tiempo se guardan los logs
  • Los logs cuestan dinero; define la retención a propósito

Jerarquía de CloudWatch Logs: log group que contiene varios log streams, cada stream con una secuencia de eventos ordenada por tiempo, con ajuste de periodo de retención y aviso de coste

Implementación de aplicaciones en AWS

Métricas y métricas personalizadas

  • Metrics: datos numéricos en series temporales
  • AWS publica muchas métricas de servicio automáticamente
  • Custom metrics: números que tu app emite
  • Las dimensiones segmentan una métrica por atributo

Métricas de CloudWatch: métricas de servicios de AWS publicadas automáticamente a la izquierda, métrica personalizada con dimensiones a la derecha y gráfico de serie temporal con línea de umbral de alarma

Implementación de aplicaciones en AWS

Embedded Metric Format

Una sola línea de log estructurada lleva tus valores de métrica más un bloque _aws que indica a CloudWatch qué campos son métricas:

{
  "_aws": {
    "CloudWatchMetrics": [
      {
        "Namespace": "OrdersApp",
        "Dimensions": [["customerTier"]],
        "Metrics": [{ "Name": "OrderLatencyMs", "Unit": "Milliseconds" }]
      }
    ]
  },
  "customerTier": "premium",
  "OrderLatencyMs": 142
}
Implementación de aplicaciones en AWS

Dashboards y alarmas

Panel de widgets de un dashboard de CloudWatch a la izquierda y máquina de estados de alarmas con estados OK, ALARM e INSUFFICIENT_DATA a la derecha, con enrutado de notificaciones SNS a email y automatización

  • Dashboard: una pantalla con gráficos y widgets
  • Alarm: salta cuando una métrica cruza un umbral
  • Las alarmas van a SNS y luego a email, SMS o automatización
  • Alarma sobre síntomas que siente la persona usuaria, no cada métrica
Implementación de aplicaciones en AWS

Estrategia de logging estructurado

  • Registra como JSON, no texto libre
  • Incluye timestamp, level, request ID, user ID
  • Los campos estructurados se pueden filtrar y consultar
  • La consistencia entre servicios permite correlacionar

Línea de log JSON estructurada con campos timestamp, level, requestId y userId, y una consulta de Logs Insights que muestra cómo los campos con nombre permiten filtros y agregaciones precisas

Implementación de aplicaciones en AWS

¡Vamos a practicar!

Implementación de aplicaciones en AWS

Preparing Video For Download...