Class: DTK::State::Component::Attribute::Influxdb::Measurement

Inherits:
Object
  • Object
show all
Defined in:
lib/state/component/providers/influxdb/measurement.rb,
lib/state/component/providers/influxdb/measurement/errors.rb,
lib/state/component/providers/influxdb/measurement/events.rb,
lib/state/component/providers/influxdb/measurement/states.rb,
lib/state/component/providers/influxdb/measurement/attribute_measurement.rb

Direct Known Subclasses

Attributes, Errors, Events, States

Defined Under Namespace

Classes: Attributes, Errors, Events, InfluxdbEncoding, States

Instance Method Summary collapse

Constructor Details

#initialize(name, client) ⇒ Measurement

Returns a new instance of Measurement.



9
10
11
12
# File 'lib/state/component/providers/influxdb/measurement.rb', line 9

def initialize(name, client)
  @name   = name
  @client = client
end

Instance Method Details

#flux_filter(params_hash) ⇒ Object



14
15
16
17
18
19
20
# File 'lib/state/component/providers/influxdb/measurement.rb', line 14

def flux_filter(params_hash)
  filter = ''
  params_hash.each_pair do |key,value|
    filter += "|> filter(fn: (r) => r.#{key} == \"#{value}\")"
  end
  filter
end

#get_last_point(params_hash = {}) ⇒ Object



22
23
24
25
26
27
28
29
30
31
# File 'lib/state/component/providers/influxdb/measurement.rb', line 22

def get_last_point(params_hash = {})
  begin
    check_params_hash(params_hash)
    flux_query = 'from(bucket:"' + client.connection_parameters[:bucket] + '") |> range(start:-5) |> filter(fn: (r) => r._measurement == "' + name.to_s + '")' + flux_filter(params_hash) + ' |> last()'  +   '|> drop(columns: ["_start", "_stop", "_field", "_measurement", "attribute_name", "assembly_name", "task_id", "component_name", "namespace"])'
    result  = self.client.query(query: flux_query)
    result.values.map(&:records).flatten.map(&:values)
  rescue => error
    fail error
  end
end