Class: Opentsdb::QueryParser

Inherits:
Object
  • Object
show all
Defined in:
lib/opentsdb/query_parser.rb

Overview

:nodoc:

Class Method Summary collapse

Class Method Details

.parse(q_string) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/opentsdb/query_parser.rb', line 5

def parse(q_string)
  parts = split_for(q_string, ':')
  return nil if parts.size < 2 || parts.size > 3
  metric_query = {}
  metric_query[:aggregator] = parts[0]
  metric_query[:rate] = false
  metric = parts[1]
  if parts.size == 3
    if metric.start_with?('rate')
      metric_query[:rate] = true
      metric_query[:rate_options] = parse_rate(metric) if metric.index('{')
    end
    metric = parts[2]
  end
  QueryParam.new metric_query.merge(parse_metric(metric))
end