M3 Query, a stateless query server for M3DB and Prometheus
API
Please note: This documentation is a work in progress and more detail is required.
Query using PromQL Query using PromQL and returns JSON datapoints compatible with the Prometheus Grafana plugin.
URL /api/v1/query_range
Method GET
URL Params Required start=[time in RFC3339Nano] end=[time in RFC3339Nano] step=[time duration] target=[string] Optional debug=[bool] lookback=[string|time duration]: This sets the per request lookback duration to something other than the default set in config, can either be a time duration or the string “step” which sets the lookback to the same as the step request parameter.
Read more
Architecture
Please note: This documentation is a work in progress and more detail is required.
Overview M3 Query and M3 Coordinator are written entirely in Go, M3 Query is as a query engine for M3DB and M3 Coordinator is a remote read/write endpoint for Prometheus and M3DB. To learn more about Prometheus’s remote endpoints and storage, see here.
Read more
Configuration
Default query engine By default M3 runs two query engines:
Prometheus (default) - robust and de-facto query language for metrics M3 Query Engine - high-performance query engine but doesn’t support all the functions yet Prometheus Query Engine is the default one when calling query endpoint:
http://localhost:7201/api/v1/query?query=count(http_requests)&time=1590147165 But you can switch between the two in the following ways:
Changing default query engine in config file (see defaultEngine parameter in Configuration)
Read more