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, resample_every: nil, resample_for: nil) ⇒ 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, resample_every: nil, resample_for: nil)
  clause = ["CREATE CONTINUOUS QUERY", name, "ON", database]

  if resample_every || resample_for
    clause << "RESAMPLE".freeze
    clause << "EVERY #{resample_every}" if resample_every
    clause << "FOR #{resample_for}"     if resample_for
  end

  clause = clause.join(" ".freeze) << " BEGIN\n".freeze << query << "\nEND".freeze
  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