InfluxDB query management

With the InfluxDB query management features, users are able toidentify currently-running queries,kill queries that are overloading their system,and prevent and halt the execution of inefficient queries with several configuration settings.

SHOW QUERIESKILL QUERYConfiguration Settings

List currently-running queries with SHOW QUERIES

SHOW QUERIES lists the query id, query text, relevant database, and durationof all currently-running queries on your InfluxDB instance.

Syntax

  1. SHOW QUERIES

Example

  1. > SHOW QUERIES
  2. qid query database duration status
  3. --- ----- -------- -------- ------
  4. 37 SHOW QUERIES 100368u running
  5. 36 SELECT mean(myfield) FROM mymeas mydb 3s running
Explanation of the output
  • qid: The id number of the query. Use this value with KILL - QUERY.
  • query: The query text.
  • database: The database targeted by the query.
  • duration: The length of time that the query has been running.See Query Language Referencefor an explanation of time units in InfluxDB databases.

SHOW QUERIES may output a killed query and continue to increment its durationuntil the query record is cleared from memory.

  • status: The current status of the query.

Stop currently-running queries with KILL QUERY

KILL QUERY tells InfluxDB to stop running the relevant query.

Syntax

Where qid is the query ID, displayed in the SHOW QUERIES output:

  1. KILL QUERY <qid>

InfluxDB Enterprise clusters: To kill queries on a cluster, you need to specify the query ID (qid) and the TCP host (for example, myhost:8088),available in the SHOW QUERIES output.

  1. KILL QUERY <qid> ON "<host>"

A successful KILL QUERY query returns no results.

Examples

  1. -- kill query with qid of 36 on the local host
  2. > KILL QUERY 36
  3. >
  1. -- kill query on InfluxDB Enterprise cluster
  2. > KILL QUERY 53 ON "myhost:8088"
  3. >

Configuration settings for query management

The following configuration settings are in thecoordinator section of theconfiguration file.

max-concurrent-queries

The maximum number of running queries allowed on your instance.The default setting (0) allows for an unlimited number of queries.

If you exceed max-concurrent-queries, InfluxDB does not execute the query andoutputs the following error:

  1. ERR: max concurrent queries reached

query-timeout

The maximum time for which a query can run on your instance before InfluxDBkills the query.The default setting ("0") allows queries to run with no time restrictions.This setting is a duration literal.

If your query exceeds the query timeout, InfluxDB kills the query and outputsthe following error:

  1. ERR: query timeout reached

log-queries-after

The maximum time a query can run after which InfluxDB logs the query with aDetected slow query message.The default setting ("0") will never tell InfluxDB to log the query.This setting is a duration literal.

Example log output with log-queries-after set to "1s":

  1. [query] 2016/04/28 14:11:31 Detected slow query: SELECT mean(usage_idle) FROM cpu WHERE time >= 0 GROUP BY time(20s) (qid: 3, database: telegraf, threshold: 1s)

qid is the id number of the query.Use this value with KILL QUERY.

The default location for the log output file is /var/log/influxdb/influxdb.log. However on systems that use systemd (most modern Linux distributions) those logs are output to journalctl. You should be able to view the InfluxDB logs using the following command: journalctl -u influxdb

max-select-point

The maximum number of points that aSELECT statement can process.The default setting (0) allows the SELECT statement to process an unlimitednumber of points.

If your query exceeds max-select-point, InfluxDB kills the query and outputsthe following error:

  1. ERR: max number of points reached

max-select-series

The maximum number of series that aSELECT statement can process.The default setting (0) allows the SELECT statement to process an unlimitednumber of series.

If your query exceeds max-select-series, InfluxDB does not execute the queryand outputs the following error:

  1. ERR: max select series count exceeded: <query_series_count> series

max-select-buckets

The maximum number of GROUP BY time() buckets that a query can process.The default setting (0) allows a query to process an unlimited number ofbuckets.

If your query exceeds max-select-buckets, InfluxDB does not execute the queryand outputs the following error:

  1. ERR: max select bucket count exceeded: <query_bucket_count> buckets