Base PCP time series query language (vector component)
======================================================

[ metric.name ] [ '{' name OPERATOR value [, ...] '}' ] [ '[' timespec EQUALS value [, ...] ']' ]

OPERATORS:
(equality synonyms)	:, ==, !=
(value comparison)	>, >=, <=, <
(regex comparison)	=~, !~
(boolean logic)		',', &&, ||

NAMES:
(literals without '.')	label names
(literals with a '.')	label, metric and instance names

NAME LITERALS:
(namespace metadata)	metric.name
(instance metadata)	instance.name
(label metadata)	[label.]<name>

VALUES:
(numeric, quote-enclosed string)

TIMESPEC LITERALS:
(sampling interval)	interval/delta
(sample count)		samples/count
(time window)		start/begin, finish/end, align, count, offset
(time zone)		timezone, hostzone


Some examples
=============

kernel.all.load{app: "maps"}[interval: 10, samples: 3]

{ "result": "vector",
  "series": {
    "a4565de344ff" : {
      "7734329432.132445": "12.4",
      "7734329442.132269": "11.9",
      "7734329452.132445": "53.2"
    },
    "b39fe567a909" : {
      "7734329432.132445": "10.0",
      "7734329442.132269": "11.7",
      "7734329452.132445": "34.1"
    },
    "8964e55aab32" : {
      "7734329432.132445": "9.9",
      "7734329442.132269": "10.2",
      "7734329452.132445": "18.6"
    }
  }
}


kernel.all.load {hostname == "www.acme.com", inst.name ~= '1 min*'}

{ "result": "scalar",
  "series": [
    "a4565de344ff",
  ]
}


kernel.all.load

{ "result": "vector",
  "series": [
    "a4565de344ff",
    "4598abc34982",
    "c349824598ab",
    "b988234011ac",
  ]
}

kernel.all.*

{ "result": "vector",
  "series": [
    "a4565de344ff",
    "4598abc34982",
    "c349824598ab",
    "b988234011ac",
    "... etc. ...",
  ]
}
