Quiero calcular el porcentaje de espacio en disco utilizado para AWS RDS a través de las métricas de CloudWatch.
Podemos ver las métricas de FreeStorageSpace (la cantidad de espacio de almacenamiento disponible). Conocer el espacio total ocupado por AWS RDS puede ayudar a calcularlo. Dónde obtener el espacio total ocupado ya que no hay métricas disponibles.
Hasta donde yo sé, no existe una métrica estándar de CloudWatch para el porcentaje de espacio ocupado de RDS o el tamaño total de la instancia, solo el FreeStorageSpace ya mencionado que usa bytes como una unidad.
Sin embargo, puede calcular el porcentaje obteniendo el tamaño total mediante el comando describe-db-instances 1 de AWS CLI. El mismo comando también debería existir en los clientes RDS dentro de los SDK de AWS (aunque solo he confirmado su existencia en la biblioteca boto3 de Python) 2 . El resultado es una lista de objetos de instancia en formato JSON que también contiene el parámetro AllocatedStorage que describe el tamaño total de la instancia en Gibibytes. Después de convertir a la misma unidad, puede calcular el porcentaje de espacio de almacenamiento libre. Según su caso de uso, puede realizar alguna acción directa o configurar una métrica de CloudWatch personalizada para el porcentaje calculado.
Otra solución interesante que podría ayudarlo fue propuesta por el usuario alanc10n en una pregunta similar 3
1 https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html
2 https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html#RDS.Client.describe_db_instances
3 https://stackoverflow.com/questions/58657063/how-do-i-get-totalstoragespace-or-usedstoragespace-metric-from-aws-rds