in core/base/stat.go [138:158]
func CheckValidityForReuseStatistic(sampleCount, intervalInMs uint32, parentSampleCount, parentIntervalInMs uint32) error {
if intervalInMs == 0 || sampleCount == 0 || intervalInMs%sampleCount != 0 {
return IllegalStatisticParamsError
}
bucketLengthInMs := intervalInMs / sampleCount
if parentIntervalInMs == 0 || parentSampleCount == 0 || parentIntervalInMs%parentSampleCount != 0 {
return IllegalGlobalStatisticParamsError
}
parentBucketLengthInMs := parentIntervalInMs / parentSampleCount
// intervalInMs of the SlidingWindowMetric is not divisible by BucketLeapArray's intervalInMs
if parentIntervalInMs%intervalInMs != 0 {
return GlobalStatisticNonReusableError
}
// BucketLeapArray's BucketLengthInMs is not divisible by BucketLengthInMs of SlidingWindowMetric
if bucketLengthInMs%parentBucketLengthInMs != 0 {
return GlobalStatisticNonReusableError
}
return nil
}