Gadget budget optimization
I just noticed that our request times were far over the allotted limit. I didn't realize that Gadget would automatically charge us for the extra time - I thought those additional hours would only be added manually. This is really frustrating because we didn't get any emails about it at all and I checked our billing and it's so over the budget. And this is of course is not what you'd expect from monthly subscribtion. It charged for 15 extra units....
Is there a way to prevent this automatic billing? I'd like to set limits so we don't exceed our budget. Also, can the price be reduced? It's honestly nonsense that the system allows us to go so far above our monthly price without any warning.
10 Replies
Hello,
Could you please share the email associated with your account? You should definitely be receiving alerts when you get to 50%, 75%, 90% and 100% of any resource. These would be sent to the email of the user that is the account owner.
Apart from that, the plan clearly states how billing is added up. Unfortunately, we don't have billing caps at the moment but we're in the process of implementing them.
I'd like to investigate to see why you wouldn't have been sent alerts
I do not see them. I use different emails for my billing and logging in but I don't see in any of them 😦
The emails should be being sent to
kedra.chat@gmail.com
You're talking about the account that has kedra-shield on it, correct?Yes
You're aware that the action
logBlockedIp
is the leading cause of request time? I just want to make sure
Where is that being called from?Yes, I found out the store which is abusing it so much. I added rate limits for it. it is called from extension. However, we noticed that only way after many request units were exhausted.
We're going to implement spend limits soon which might help, but that will kill the production environment for every user once the limit is triggered. Maybe that's what you want?
In the short term, you can kinda proxy something similar by counting the number of times a specific "thing/feature/function" is used or called and then prevent its execution beyond a certain count. Eg. if you know your primary cost is a certain action running for 150 ms each time, you can add a counter and populate it everytime the action executes and then use the counter to disable app functionalituy for users as needed.
Ultimately, we're a serverless hosting platform that hosts apps of all sizes and similar to others, we scale up as usage goes up and rely on developers rejecting any activity they do not want to pay for. Spend limits would definitely make managing this easier in select use-cases and is a missing feature of the platform, but there are lots of workaround that can be deployed to manage costs today already.
Ok, did some investigation and it looks like we actually sent emails to your primary email
moka123.cool@gmail.com

But we did not receive email for extra units. Only it reached 100% and then 15 times extra units were added. We expected receive mailing to that too.
Your usage probably rose so fast that the emailing system only had time to send for 90% and 100%.
Emails aren’t sent after 100% of a resource is used. Unfortunately, your request time isn’t refundable in this case as the system was working as intended