Method: InfluxDB::Query::Core#query

Defined in:
lib/influxdb/query/core.rb

#query(query, params: nil, denormalize: config.denormalize, chunk_size: config.chunk_size, **opts) ⇒ Object

rubocop:disable Metrics/MethodLength



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/influxdb/query/core.rb', line 20

def query( # rubocop:disable Metrics/MethodLength
  query,
  params:       nil,
  denormalize:  config.denormalize,
  chunk_size:   config.chunk_size,
  **opts
)
  query = builder.build(query, params)

  url = full_url("/query".freeze, query_params(query, opts))
  series = fetch_series(get(url, parse: true, json_streaming: !chunk_size.nil?))

  if block_given?
    series.each do |s|
      values = denormalize ? denormalize_series(s) : raw_values(s)
      yield s['name'.freeze], s['tags'.freeze], values
    end
  else
    denormalize ? denormalized_series_list(series) : series
  end
end