Time based auto scaling
Our production server workload is less after 5 pm till the next day morning at 6 am CST times. We are running MongoDB in full capacity even on off-peak times. It's not possible for someone to manually downscale the cluster during off-peak and I don't think the CPU utilization based auto-scaling is working for us. I would like to choose auto-scaling between CPU based or time based as set my own time window and choose the auto scale/down-sclae.
This is a great suggestion. CPU is seldom the reason for scaling, neither is memory.
Often we know exactly when systems are busy on a daily basis, based on Corporate customer consumption. We would like to scale up certain times of the day.
And in most countries, (for business apps) not on weekends.
A variant of this idea could be to have a "weekend" mode which auto-scales based on previous weekend workloads.
We want something like this too!
We currently use auto scale now, but since it takes too much time to scale up (after 1 hours CPU load only, and yes there is another idea for changing that: https://feedback.mongodb.com/forums/924145-atlas/suggestions/40797049-autoscaling-cpu-memory-utilization-duration-mon) we want to scale before the users are gonna actual use our application.
This idea was suggested by the support desk after I ask questions about this. It would be great we can made a sort of schedule about how to scale.
Saturday @ 22.00 hour, scale down tot M30
Sunday No changes
Monday @ 10.hour scale up to M40
Thursday @ 08.00 hour scale up to M50
Thursday @ 18.00 hour scale down to M40
Wednesday @ 08.00 hour scale up to M50
And so on...
We are currently solving this with AWS lambda scripts, calling API's , but it would indeed be great that there was some sort of scheduler for up and down scaling.
This certainly makes sense and is something we'd like to explore in the future. Out of curiosity, have you looked at programmatically driving this on a cron job with the Atlas API or Terraform provider?