Class: Influx::Query
- Inherits:
-
Object
- Object
- Influx::Query
- Defined in:
- lib/influx/query.rb
Instance Method Summary collapse
- #aggregate_window(every:, fn:) ⇒ Object
- #cumulative_sum ⇒ Object
- #derivative(unit:, non_negative: true) ⇒ Object
- #fill(use_previous: false, value: nil) ⇒ Object
- #filter(**params) ⇒ Object
- #first ⇒ Object
- #group(columns: [], mode:) ⇒ Object
- #histogram(column:, upper_bound_column:, count_column:, bins: []) ⇒ Object
- #increase ⇒ Object
-
#initialize(bucket:) ⇒ Query
constructor
A new instance of Query.
- #last ⇒ Object
- #limit(n) ⇒ Object
- #median ⇒ Object
- #moving_average(n) ⇒ Object
- #quantile(q:, method:) ⇒ Object
- #range(start: nil, stop: nil) ⇒ Object
- #sort(columns:) ⇒ Object
- #timed_moving_average(every:, period:) ⇒ Object
- #to_flux ⇒ Object
Constructor Details
#initialize(bucket:) ⇒ Query
Returns a new instance of Query.
5 6 7 8 |
# File 'lib/influx/query.rb', line 5 def initialize(bucket:) @from = Influx::Flux::From.new(bucket: bucket) @statements = [] end |
Instance Method Details
#aggregate_window(every:, fn:) ⇒ Object
10 11 12 13 |
# File 'lib/influx/query.rb', line 10 def aggregate_window(every:, fn:) @statements << Influx::Flux::AggregateWindow.new(every: every, fn: fn) self end |
#cumulative_sum ⇒ Object
15 16 17 18 |
# File 'lib/influx/query.rb', line 15 def cumulative_sum @statements << Influx::Flux::CumulativeSum self end |
#derivative(unit:, non_negative: true) ⇒ Object
20 21 22 23 |
# File 'lib/influx/query.rb', line 20 def derivative(unit:, non_negative: true) @statements << Influx::Flux::Derivative.new(unit: unit, non_negative: non_negative) self end |
#fill(use_previous: false, value: nil) ⇒ Object
25 26 27 28 |
# File 'lib/influx/query.rb', line 25 def fill(use_previous: false, value: nil) @statements << Influx::Flux::Fill.new(use_previous: use_previous, value: value) self end |
#filter(**params) ⇒ Object
30 31 32 33 |
# File 'lib/influx/query.rb', line 30 def filter(**params) @statements << Influx::Flux::Filter.new(**params) self end |
#first ⇒ Object
35 36 37 38 |
# File 'lib/influx/query.rb', line 35 def first @statements << Influx::Flux::First self end |
#group(columns: [], mode:) ⇒ Object
40 41 42 43 |
# File 'lib/influx/query.rb', line 40 def group(columns: [], mode:) @statements << Influx::Flux::Group.new(columns: columns, mode: mode) self end |
#histogram(column:, upper_bound_column:, count_column:, bins: []) ⇒ Object
45 46 47 48 |
# File 'lib/influx/query.rb', line 45 def histogram(column:, upper_bound_column:, count_column:, bins: []) @statements << Influx::Flux::Histogram.new(column: column, upper_bound_column: upper_bound_column, count_column: count_column, bins: bins) self end |
#increase ⇒ Object
50 51 52 53 |
# File 'lib/influx/query.rb', line 50 def increase @statements << Influx::Flux::Increase self end |
#last ⇒ Object
55 56 57 58 |
# File 'lib/influx/query.rb', line 55 def last @statements << Influx::Flux::Last self end |
#limit(n) ⇒ Object
60 61 62 63 |
# File 'lib/influx/query.rb', line 60 def limit(n) @statements << Influx::Flux::Limit.new(n: n) self end |
#median ⇒ Object
65 66 67 68 |
# File 'lib/influx/query.rb', line 65 def median @statements << Influx::Flux::Median self end |
#moving_average(n) ⇒ Object
70 71 72 73 |
# File 'lib/influx/query.rb', line 70 def moving_average(n) @statements << Influx::Flux::MovingAverage.new(n: n) self end |
#quantile(q:, method:) ⇒ Object
75 76 77 78 |
# File 'lib/influx/query.rb', line 75 def quantile(q:, method:) @statements << Influx::Flux::Quantile.new(q: q, method: method) self end |
#range(start: nil, stop: nil) ⇒ Object
80 81 82 83 |
# File 'lib/influx/query.rb', line 80 def range(start: nil, stop: nil) @statements << Influx::Flux::Range.new(start: start, stop: stop) self end |
#sort(columns:) ⇒ Object
85 86 87 88 |
# File 'lib/influx/query.rb', line 85 def sort(columns:) @statements << Influx::Flux::Sort.new(columns: columns) self end |
#timed_moving_average(every:, period:) ⇒ Object
90 91 92 93 |
# File 'lib/influx/query.rb', line 90 def timed_moving_average(every:, period:) @statements << Influx::Flux::TimedMovingAverage.new(every: every, period: period) self end |
#to_flux ⇒ Object
95 96 97 |
# File 'lib/influx/query.rb', line 95 def to_flux "#{@from.to_flux} #{@statements.map(&:to_flux).join(' ')}" end |