Class: Resilient::CircuitBreaker::Metrics::BucketRange

Inherits:
Object
  • Object
show all
Defined in:
lib/resilient/circuit_breaker/metrics/bucket_range.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(start_bucket, end_bucket) ⇒ BucketRange

Returns a new instance of BucketRange.



14
15
16
17
# File 'lib/resilient/circuit_breaker/metrics/bucket_range.rb', line 14

def initialize(start_bucket, end_bucket)
  @start_bucket = start_bucket
  @end_bucket = end_bucket
end

Instance Attribute Details

#end_bucketObject (readonly)

Returns the value of attribute end_bucket.



12
13
14
# File 'lib/resilient/circuit_breaker/metrics/bucket_range.rb', line 12

def end_bucket
  @end_bucket
end

#start_bucketObject (readonly)

Returns the value of attribute start_bucket.



11
12
13
# File 'lib/resilient/circuit_breaker/metrics/bucket_range.rb', line 11

def start_bucket
  @start_bucket
end

Class Method Details

.generate(timestamp, window_size, bucket_size) ⇒ Object



5
6
7
8
9
# File 'lib/resilient/circuit_breaker/metrics/bucket_range.rb', line 5

def self.generate(timestamp, window_size, bucket_size)
  end_bucket = bucket_size.bucket(timestamp)
  start_bucket = bucket_size.bucket(end_bucket.prune_before(window_size))
  bucket_range = new(start_bucket, end_bucket)
end

Instance Method Details

#prune?(bucket) ⇒ Boolean

Returns:

  • (Boolean)


19
20
21
# File 'lib/resilient/circuit_breaker/metrics/bucket_range.rb', line 19

def prune?(bucket)
  bucket.timestamp_end <= @start_bucket.timestamp_end
end