damccorm opened a new issue, #20853: URL: https://github.com/apache/beam/issues/20853
See spec here: __ [_https://s.apache.org/beam-histogram-metrics_](_https://s.apache.org/beam-histogram-metrics_) A few pieces I want to highlight: *// LINEAR(start, width, num_buckets):* *// Bi = start **** width * i* *// e.g. LINEAR(5, 15, 6) defines:* *// [-INF, 5), [5, 20), [20, 35), [35, 50), [50, 65), [65, ****INF], ...* Current Java implementation: LinearBuckets.of(5, 15, 6) will defined buckets like this (6 buckets excluding the infinite ranges) [-INF, 5), [5, 20), [20, 35), [35, 50), [50, 65), [65, 80), [80, 95), [95, ****INF], ... Additionally, we should treat the infinite buckets like any other, i.e. as a counter in the array, rather than having separate variables for the -inf and inf buckets.: i.e. we can remove numTopRecords numBottomRecords public HistogramData(BucketType bucketType) { this.bucketType = bucketType; this.buckets = new long[bucketType.getNumBuckets()]; this.numOfRecords = 0; this.numTopRecords = 0; this.numBottomRecords = 0; } Additionally getCount() and incBucketCount() should use those same indexes i.e. for all these functions 0 means the -INF bucket, and length - 1 means the INF bucket This code is only used for one internal metric, so this we should change this before it gets adopted in other places. Imported from Jira [BEAM-12103](https://issues.apache.org/jira/browse/BEAM-12103). Original Jira may contain additional context. Reported by: [email protected]. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
