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

[FEATURE] Exposing Anomaly Strategy Calculation Thresholds for Users #521

Open
arsenalgunnershubert777 opened this issue Nov 13, 2023 · 0 comments
Labels
enhancement New feature or request

Comments

@arsenalgunnershubert777

Is your feature request related to a problem? Please describe.
Right now Anomaly Checks only return a success or fail response, but I'd like to retrieve the thresholds used in the Anomaly Strategy calculations. This would help DeeQu users clearly see what numbers the Anomaly Check actually used for the calculation.

Describe the solution you'd like
I'd like to have the Constraint Result return a field that contains thresholds used in the Anomaly Strategy. I'm also planning to make a pull request to implement this feature, and would love to hear your feedback on that.

Describe alternatives you've considered
N/A

Additional context
My current plan for implementing this feature is as follows:

  1. isNewestPointNonAnomalous function currently is an assertion function that takes in a Double metric and returns a Boolean of if there are anomalies detected. Change this function to return an AnomalyAssertionResult which contains a Boolean and also Doubles to represent thresholds used in the Anomaly Strategy calculations.
  2. Create an AnomalyBasedConstraint where the pickValueAndAssert function will retrieve the Boolean from the anomalyAssertionResult.
  3. Create an AnomalyConstraintResult with a field (or fields) for those thresholds, where the pickValueAndAssert function passes in those thresholds from the anomalyAssertionResult. Now the user can view the results.
  4. In Constraint, make the anomalyConstraint function use the AnomalyBasedConstraint class.
  5. Make any necessary upstream or downstream changes to make the functionality work.
  6. User inheritance, traits, and try to make the code as clean as possible.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant