grofers.rds-alarms

Estado de Construcción

Alarmas de RDS

Crea alarmas de advertencia y críticas para instancias de RDS en Amazon CloudWatch. Para más detalles, consulta el entrada de blog.

:boom: Probado en batalla en Grofers

Requisitos

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt19471460522000",
            "Effect": "Allow",
            "Action": [
                "cloudwatch:DeleteAlarms",
                "cloudwatch:DescribeAlarms",
                "cloudwatch:PutMetricAlarm"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Sid": "Stmt1947940274000",
            "Effect": "Allow",
            "Action": [
                "rds:DescribeDBInstances"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}

Instalación

Para instalar, solo ejecuta

$ ansible-galaxy install grofers.rds-alarms

Variables del Rol

  • rds_alarms_region - Región de AWS (Requerido)
  • rds_alarms_common_action_list - Lista de ARN de temas en AWS SNS
  • rds_alarms_period - Tiempo (en segundos) entre evaluaciones de métricas
  • rds_alarms_evaluation_periods - El número de veces que se evalúa la métrica antes del cálculo final
  • rds_alarms_common_action_list - Siempre incluye estas acciones de alarma
  • rds_alarms_warning_threshold - Umbral de advertencia (predeterminado - 75%)
  • rds_alarms_critical_threshold - Umbral crítico (predeterminado - 90%)
  • rds_alarms_warning_cpu_credits_threshold - Umbral de créditos de CPU (predeterminado - 30)
  • rds_alarms_critical_cpu_credits_threshold - Umbral crítico de créditos de CPU (predeterminado - 15)
  • rds_alarms_db_instances - Diccionario con el siguiente formato:
rds_alarms_db_instances:
  <rds-instance-identifier>:
    warning_db_connections_threshold: 100
    critical_db_connections_threshold: 200
    warning_burst_balance_threshold: 100
    critical_burst_balance_threshold: 200
    alarm_action_list: ["arn:aws:sns:us-east-1:9783248248:MYALARM"]
    critical_threshold: 90 # Opcional
    warning_threshold: 75 # Opcional
    credit_warning_threshold: 30 # Opcional
    credit_critical_threshold: 15 # Opcional
    replica_lag_threshold: 1800 # Requerido solo para réplicas. Unidades en segundos

Convenciones

El formato del nombre de las alarmas creadas en Amazon CloudWatch es: rds-<instance_name>-<metric_name>-<alert_type>.

Por ejemplo, una alarma de advertencia para CPU para una instancia con el identificador my-rds-instance se creará como rds-my-rds-instance-cpu-warning.

Ejemplo de Playbook

Este playbook creará alarmas para my-rds-instance-identifier con los umbrales predeterminados. Para la alarma creada para my-replica-rds-instance-identifier, el umbral de advertencia será del 80% y el umbral crítico será el valor predeterminado (90%). Si la instancia es una réplica, también se creará una alarma para el retraso de la réplica. Para cada instancia t2, también se crean alarmas para los créditos de CPU restantes.

- hosts: localhost
  connection: local
  vars:
    rds_alarms_common_action_list:
      - "arn:aws:sns:us-east-1:9783248248:ALARMS"
    rds_alarms_period: 60
    rds_alarms_evaluation_periods: 2
    rds_alarms_region: us-east-1
    rds_alarms_warning_threshold: 70
    rds_alarms_critical_threshold: 90
    rds_alarms_warning_cpu_credits_threshold: 60
    rds_alarms_critical_cpu_credits_threshold: 30
    rds_alarms_db_instances:
      my-rds-instance-identifier: # esto usará los valores predeterminados
        warning_db_connections_threshold: 100
        critical_db_connections_threshold: 200
        alarm_action_list: ["arn:aws:sns:us-east-1:9783248248:MYALARM"]
      my-replica-rds-instance-identifier:
        warning_threshold: 80
        warning_db_connections_threshold: 100
        critical_db_connections_threshold: 200
        alarm_action_list: ["arn:aws:sns:us-east-1:9783248248:MYALARM"]
        credit_warning_threshold: 20
        credit_critical_threshold: 10
        replica_lag_threshold: 1800
  roles:
    - rds-alarms

Limitaciones

Necesitas crear múltiples playbooks para diferentes regiones.

Licencia

Licencia MIT

Acerca del proyecto

Creates Cloudwatch Alarms for RDS instances

Instalar
ansible-galaxy install grofers.rds-alarms
Licencia
mit
Descargas
506
Propietario