Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IMPORTANT - awslimitchecker failure with ParamValidationError #446

Closed
jantman opened this issue Oct 31, 2019 · 3 comments
Closed

IMPORTANT - awslimitchecker failure with ParamValidationError #446

jantman opened this issue Oct 31, 2019 · 3 comments

Comments

@jantman
Copy link
Owner

jantman commented Oct 31, 2019

I've just become aware that awslimitchecker is beginning to fail on accounts in the Standard regions (not China or GovCloud) with the following unhandled exception:

ParamValidationError("Parameter validation failed:
Invalid type for parameter checkId, value: None, type: <class 'NoneType'>, valid types: <class 'str'>")

This seems to be related to the recent AWS announcement of new vCPU-based service limits for EC2 On-Demand Instances; at or around the time that accounts transition to the new vCPU limits (between October 24th and November 7th 2019, based on your account ID according to the table under the "How will the transition to vCPU limits happen?" heading on the EC2 FAQs page) the "Service Limits" Trusted Advisor check in the "performance" category disappears. awslimitchecker has been relying on this check for over four years (since June 21, 2015), and I cannot find any notice or public communication from AWS about this change. This also was not communicated to my employer, despite having Enterprise support.

I'm currently working on a release that will fix this problem, as well as a number of other bugs and support the new vCPU-based limits (#432). This release will also include support for Service Quotas (#413), which should drastically reduce or eliminate the need to manually set limit overrides for most services. Unfortunately, as I maintain awslimitchecker in my personal time, the release is not ready yet.

Temporary Workaround

I can offer two possible temporary workarounds:

  1. Completely skip using Trusted Advisor by using the --skip-ta command line option or, if using the Python API, by passing use_ta=False to AwsLimitChecker.check_thresholds(). This will prevent the error but will also prevent retrieving current limit values from Trusted Advisor for limits that it supported, which may result in awslimitchecker reporting your usage as over thresholds for limits that relied on Trusted Advisor data.
  2. Install awslimitchecker from the develop branch of the git repository where the next release is staged. This will fix the issue, but introduces major changes (see the CHANGELOG for 8.0.0 for details) and also carries the caveats explained below. This can be installed from git via pip using a command such as pip install git+https://github.com/jantman/awslimitchecker.git@develop#egg=awslimitchecker

What's Holding Up The Release?

Previous versions of awslimitchecker rely largely on Trusted Advisor for finding the current service limits of services that don't expose them via API, which includes EC2. Most users who have limits increased above the defaults were relying on this data to get their current limit values, or else they would have to manually tell awslimitchecker what their limits were via limit overrides.

If the current develop branch were released as-is, with Trusted Advisor broken, many users would incorrectly see usage thresholds crossed, as limits would revert to their global default in the absence of Trusted Advisor information.

The fix for this is #413, switching from Trusted Advisor to the new Service Quotas service. That is a non-trivial change, and is going to take some time to implement, but is necessary for a reasonable user experience.

(This issue is a duplicate of #441 but was created for increased clarity.)

@timotheosh
Copy link

timotheosh commented Nov 1, 2019

Installing directly from github should look more like this:

pip install git+https://github.com/jantman/awslimitchecker.git@develop#egg=awslimitchecker

@jantman
Copy link
Owner Author

jantman commented Nov 1, 2019

Oops, thanks @timotheosh

Also, in some of our accounts we're seeing the Trusted Advisor check back again, and this issue resolved. So... ???

@jantman
Copy link
Owner Author

jantman commented Nov 4, 2019

This has been fixed in 8.0.0 which is now live on PyPI and Docker Hub. Apologies for any delays in getting this released.

@jantman jantman closed this as completed Nov 4, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants