-
-
Notifications
You must be signed in to change notification settings - Fork 311
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
[BUG] Jobs using length
, delay
, and period
at the job level and metric level results in inconsistent start time and end time for GetMetricData queries
#1290
Comments
length
, delay,
, and period
at the job level and metric level results in inconsistent start time and end time for GetMetricData querieslength
, delay
, and period
at the job level and metric level results in inconsistent start time and end time for GetMetricData queries
Just adding a note I realized,
Is especially bad because it will have very unintended consequences when fixed. Metric validation adds a default 5 minute delay to all metrics if they do not have a defined delay and the job does not have a defined delay. This default delay has largely been ignored because all example configs use no delay at the job level. As soon as this is fixed that delay will take effect potentially breaking the expected behavior for everyone. I'm still trying to think through how to approach this in a safe manner but felt it was necessary to write down. |
This PR restructures some of the fields on the CloudwatchData struct to make the field usage much more obvious. This struct is used through out the scraping process to carry around context and the result of finding metric data and contains a lot of overlapping/overloaded fields. The net result should be a struct that is much easier to understand making some of the complex mapping done in migrate.BuildMetrics a little more obvious, and less pointers where they are not necessary. Related to: #1290
Hi, so I need help to understand what At present I can only consistently get metrics if I have a configuration along the lines of the below. Otherwise I more often than not get
Are you able to help with my understanding ? I understand my period and length are short, but if by default there is a 5 minute delay, why would i need to set the Any help is appreciated |
Hey @rhys-evans, your usage of The deprecation is at the |
Ah , thank you |
Is there an existing issue for this?
YACE version
No response
Config file
No response
Current Behavior
The way YACE handles length, period, and rounding period when a job has metrics with different configured values is really weird.
Length, period, and rounding period all factor in to calculating the start + endtime for the GetMetricData API call. Each GetMetricData API call has 500 MetricDataQuery's. Each MetricDataQuery represent a single metric returned from ListMetrics which has a configured length, and period. This creates a mismatch in parameters the start + endtime needs to depend on values from the 500 different metrics included in the query. Instead of partitioning the requests around the potential difference in start + end time from differing length + period combinations YACE tries to make a best guess at what is a good enough value for what it is doing,
Expected Behavior
GetMetricData
requests should contain queries for metrics which all have the same start and end time determined by the configured metric value for rounding period, period, length, and delay. These should be done in batches of 500.Steps To Reproduce
No response
Anything else?
No response
The text was updated successfully, but these errors were encountered: