Comments (6)
This is interesting, storing the simple part of that config in something like S3 or dynamodb is definitely something which I would like to make easier, especially table specific config.
In your case I suggest you try and store all your config against one key. I do something similar on another project by having a Settings table and each key is the app name.
So I've actually already spent a bit of time refactoring the code to allow you to do this. It's not complete yet but will be in the coming days. Essentially a new function where you have to return the config based on a parameter containing table data. That then gets passed to the existing functions as a new parameter.
Out of curiosity how would you be changing the settings post table?
from dynamodb-lambda-autoscale.
I think that for my tables with lower provisioned throughput (<50) I would want an adjustment percentage of 100% or more. But the tables that have a high level of throughput ( >500) I would want to have an adjustment percentage of 50-80% I think. This would be so that I don't increase the cost too much unnecessarily.
I'd also like to set different min/max throughput per table. Some tables might have no reason to have large through put and if they do then I've got a bug somewhere. So limiting the scaling would add one guard against spending excessive money on dynamo tables.
from dynamodb-lambda-autoscale.
Explicit support for different config per table is coming very soon, please see #13 for an example of what the config will look like.
from dynamodb-lambda-autoscale.
Ok so I've pushed my latest to github. The changes are quite extensive because i wanted to cater for most needs whilst keeping the codebase fairly simple. Table level config is baked in now. Please take a look at https://github.com/channl/dynamodb-lambda-autoscale/blob/master/src/Provisioner.js and the getTableConfig function. At the moment it just returns a standard configuration.
The new provisioner configuration now supports different forms of increments / decrements without altering code. You can increment by certain unit or percentage amounts, but more importantly you can increment / decrement 'to' a unit or percentage amount. Which means you can increment immediately up to the required value rather than progressively 'climb' up.
Please take a quick look, as i mentioned i've not been able to test or document this extensively just yet but i wanted to get it out there....
from dynamodb-lambda-autoscale.
@tmitchel2 I just found this project last night and must say I'm very happy to see this VS dynamic dynamo's approach to this issue. #12 was actually a huge limitation from us using this library so nice work. I plan on testing this weekend and will offer feedback.
from dynamodb-lambda-autoscale.
Excellent, I've pulled your latest changes and can see exactly how to create config per table. I have found another problem which has me a little stumped but will open another issue.
I can now do what I wanted from this issue, so I'll close it. Thanks again!
from dynamodb-lambda-autoscale.
Related Issues (20)
- How to scale down working HOT 1
- Minimum capacity ignored HOT 6
- [Discussion] Strategy with fixed values. HOT 5
- Incorporate throttled events into provisioning calculations
- Odd logging message & failure to increase throughput capacity HOT 1
- Add an SNS notification channel for increase / decrease throughput? HOT 7
- Table IOPS are currently being updated HOT 1
- Combine getmetricsstatistics into as few requests as possible
- Add circuit breaker logic
- Is there a setting to limit the number of downscales per day? HOT 1
- Configuration per table group HOT 4
- Would be nice to have a --dryRun feature
- Socket timeouts HOT 1
- Decreasing write capacity was disallowed without any reasons, decreasing using Management Console worked HOT 4
- Would be nice to have a provisioner that selects tables based on tags HOT 1
- Missing script build in package.json HOT 2
- AWS Officially releases native DynamoDB autoscaling HOT 13
- Lambda fails with error
- Configuration specific to env or tables HOT 4
- Allow more decreases per day as per docs HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dynamodb-lambda-autoscale.