Module: InfluxDB::Query::ContinuousQuery

Included in:
Client
Defined in:
lib/influxdb/query/continuous_query.rb

Overview

:nodoc:

Instance Method Summary collapse

Instance Method Details

#create_continuous_query(name, database, query, options = {}) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/influxdb/query/continuous_query.rb', line 13

def create_continuous_query(name, database, query, options = {})
  clause = ["CREATE CONTINUOUS QUERY", name, "ON", database]

  if options[:resample_every] || options[:resample_for]
    clause << "RESAMPLE"
    clause << "EVERY #{options[:resample_every]}" if options[:resample_every]
    clause << "FOR #{options[:resample_for]}"     if options[:resample_for]
  end

  clause = clause.join(" ") << " BEGIN\n" << query << "\nEND"
  execute(clause)
end

#delete_continuous_query(name, database) ⇒ Object



26
27
28
# File 'lib/influxdb/query/continuous_query.rb', line 26

def delete_continuous_query(name, database)
  execute("DROP CONTINUOUS QUERY #{name} ON #{database}")
end

#list_continuous_queries(database) ⇒ Object



4
5
6
7
8
9
10
11
# File 'lib/influxdb/query/continuous_query.rb', line 4

def list_continuous_queries(database)
  resp = execute("SHOW CONTINUOUS QUERIES", parse: true)
  fetch_series(resp)
    .select { |v| v['name'] == database }
    .fetch(0, {})
    .fetch('values', [])
    .map { |v| { 'name' => v.first, 'query' => v.last } }
end