Métricas y alarmas personalizadas usando Logs de Cloudwatch

DeployGuru
2 min readNov 12, 2023

--

En el vertiginoso panorama de la nube, Amazon CloudWatch destaca como una herramienta esencial al permitir la creación de métricas personalizadas a partir de registros (logs). Esta capacidad no solo simplifica la centralización de datos, sino que también ofrece una visión detallada del rendimiento de las aplicaciones. Al extraer métricas específicas, las organizaciones pueden identificar patrones, detectar anomalías y adaptar el monitoreo a las necesidades únicas de cada proyecto. Esta práctica no solo mejora la detección temprana de problemas, sino que también proporciona la agilidad necesaria para optimizar la infraestructura en la nube, permitiendo una gestión proactiva y una toma de decisiones informada en entornos basados en AWS.

A continuación, un tutorial para realizar estas métricas, y además crear alarmas que notifiquen en caso de ser necesario:

Paso 1. Define el log group:

resource "aws_cloudwatch_log_group" "example_log_group" {
name = "/example/log/group" # Reemplaza con el nombre de tu grupo de logs
}

Paso 2. Define el metric filter, es decir, con qué patrón se reconocerá el string de tus logs:

resource "aws_cloudwatch_log_metric_filter" "example_log_filter" {
name = "ExampleLogFilter"
pattern = "ErrorCount" # Esta es la palabra a buscar en tus logs
log_group_name = aws_cloudwatch_log_group.example_log_group.name

metric_transformation {
name = "ErrorCountMetric"
namespace = "CustomMetrics"
value = "1" # Puedes ajustar esto según la estructura de tus logs
}
}

Paso 3. Crea la alarma de CloudWatch:

resource "aws_cloudwatch_metric_alarm" "example_metric_alarm" {
alarm_name = "ExampleMetricAlarm"
comparison_operator = "GreaterThanOrEqualToThreshold"
evaluation_periods = 1
metric_name = "ErrorCountMetric"
namespace = "CustomMetrics"
period = 60
statistic = "Sum"
threshold = 1 # Aquí defines cuántas existencias del error deben exister para activar la alarma
alarm_description = "Alarm when ErrorCountMetric is greater than or equal to 1"

dimensions = {
LogGroupName = aws_cloudwatch_log_group.example_log_group.name
}

alarm_actions = ["arn:aws:sns:us-east-1:123456789012:ExampleSNSTopic"] # Lo puedes relacionar con un topic de SNS
}

Conclusión:

En resumen, la capacidad de crear métricas personalizadas en Amazon CloudWatch ofrece una visión más profunda y adaptativa del rendimiento de las aplicaciones en entornos AWS. Esta práctica no solo facilita la detección temprana de problemas, sino que también permite ajustar el monitoreo según las necesidades específicas de cada proyecto. CloudWatch se destaca como una herramienta esencial para una gestión proactiva y una toma de decisiones informada, brindando a las organizaciones la agilidad necesaria para optimizar continuamente sus recursos en la nube.

Si deseas más artículos como este, déjanoslo saber aquí, o en nuestro linkedin -> https://www.linkedin.com/company/adeployguru

--

--

DeployGuru
DeployGuru

Written by DeployGuru

Consulting and Implementation services for DevOps and Cloud Computing