Isitfit

Latest version: v0.20.11

Safety actively analyzes 628576 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 3 of 15

0.19.4

- enh: add `--skip-prompt-email` option
- feat: add `AccessDenied` botocore error as an exception that gets ignored (and skips region) instead of fails the run
- this is because a user might have access to ec2 and not redshift, so still would want to get results for ec2 and not just fail halfway
- this info gets displayed when `--debug` is issued
- the premise is that if a user doesnt already have access to something, then s/he doesnt depend on isitfit to know that there was an error accessing a region
- on the other hand, a user, who is getting access specifically for isitfit, would in fact want to know what s/he is missing
- in this case, eg, the user will see "1 region" in the report and no data from any other regions, and hence will check more details
- maybe the user would even file a github issue, to which I can highlight the use of `--debug` to check the AccessDenied errors
- enh: `base_iterator` split out `SimpleCacheMan` and made cache calls less verbose
- enh: convert the usage of `context[break_iterator]` to raising an exception `IsitfitCliRunnerBreakIterator` and then catching it in the `mainManager`
- enh: promote the stderr message "Will skip ... out of ... regions" to stdout and display it exactly once per service
- enh: split the "AWS returned AccessDenied for ... out of ... regions" into 2 parts, 1 going to stdout and the other going to stderr at `--verbose` level
- enh: if error from redis, prefix the error with "redis" to indicate it

0.19.3

- enh: use pytest parametrize for 2 tests and reduce boilerplate code
- bugfix: when exception has no .message field, CLI failed on client-side due to pinging matomo with exception. Fixed
- bugfix: `MetricCacheMixin.get_metrics_derived` was using `try/except/finally` which turns out needs the `finally` moved to after the `try/catch`
- bugfix: the redis cache (MetricCacheMixin class) was not getting used at all for both datadog and cloudwatch/ec2 due to the way I was using the inheritance .. fixed
- bugfix: the cloudwatch/redshift pipeline listener (i.e. CwRedshiftListener) was not using the redis cache at all (`MetricCacheMixin.get_metrics_derived` function) .. fixed
- bugfix: major errors in datadog api usage which were going under the radar .. fixed and added more unit tests to detect such issues
- these are in `isitfit.cost.metrics_datadog.DatadogApiWrap`
- also changed the 2 locations where the 1st entry of the list was taken, without checking if it indeed corresponded to the proper host

0.19.2

- feat: add sentry-sdk as a dependency along with a sentry-proxy file to send exceptions to sentry.io
- proxy necessary to send exceptions via isitfit.io without exposing my sentry key in the isitfit-cli repository

0.19.1

- enh: add datadog missing data message to debug logs

0.19.0

- enh: rename cloudwatchman and datadogman to `metrics_cloudwatch` and `metrics_datadog`
- feat: add `metrics_auto` for automatic failover from datadog to cloudwatch
- enh: normalize dataframe column names from cloudatch and datadog
- enh: append suffix `Listener` to classes that specifically deal with the Event Bus runner, `mainManager`, and the `context_*` dictionaries
- feat: cost: major re-write of metrics fetch + misc improvements
- cleaner fetch of metrics from datadog if enabled, with fallback to cloudwatch if missing data
- caching no longer stores an empty dataframe when no data found, but rather a callable that raises a no-data exception if called again
- caching TTL is 10 minutes when a callable is stored (i.e. no-data exception)
- metrics cached split into separate mixin
- no more `ddg_df` key in the `context_ec2` dictionary as now the `ec2_df` key comes either from datadog or from cloudwatch
- no more `ram_used_avg.datadog` since `ram_used_avg` is a column that is available whether from datadog or cloudwatch (in the case of which it is nan)
- normalize calls to `pandas.Dataframe.resample` in `ec2_analyze.BinCapUsed`
- drop the `self.fix_resample_{start,end}` calls in `ec2_analyze.BinCapUsed`
- use the event-bus listener from `metrics_auto` in `ec2_analyze` and `ec2_optimize`
- display the status of `metrics source` as needed for debugging metric data that is available in datadog but not coming from datadog
- split out `EventBus` from `MainManager` and inherit
- `mainManager.ec2_noCloudwatch` no longer used in favor of `metrics_auto.sources`
- move `NoCloudwatchException` from `utils` into `metrics_cloudwatch`
- split out `CloudwatchAssistant` from `CloudwatchBase` and use clear function names
- `CloudwatchCached` and `DatadogCached` use the same `MetricCacheMixin`
- `CwRedshiftListener` now handles exception of NoCloudwatchException since no longer handled by mainManager
- dataframe fields are `cpu_used_max` instead of `Maximum`, etc
- when displaying migrations if `--debug` is requested, show the descriptions to dismiss doubt about migration contents
- misc tests to accompany the code changes
- bugfix: redshift metrics are sampled every 30 seconds, not every 1 minute like ec2 .. updated formula
- enh: misc tests ironed after major updates above + still have lots of broken tests ATM
- enh: replace `sys.exit` with `raise IsitfitCliError` in `cloudtrail_iterator` (very old code)
- bugfix: datasource status for ec2 could be empty .. shouldnt fail
- enh: `csv_fn_final` for `reporter` of ec2 and redshift is deprecated in favor of the `account-level` file
- commenting out misc deprecated code too

0.18.1234

- bugfix: cost analyze: use resample instead of manually constructing the binned dataframe with `date_range`
- found this issue when testing `isitfit cost analyze --ndays=15`
- bugfix: cost analyze: when no ec2/redshift data found, just raise an exception in the binning aggregator and abort early
- bugfix: cost optimize: skip the step of binning for redshift cost optimize in the "common" pipeline factory
- enh: cost analyze: pretty-print dollars/percentages in binned report
- feat: cost: increase `config.retries.max_attempts` from 4 to 10 (knowing that botocore has exponential backoff) to get around rate limiting
- enh: cost: disable the global service-level progressbar in favor of showing the individual step bars, at least until a more meaningful service-level progressbar is implemented

Page 3 of 15

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.