5.4 KiB
title | menu | ||||||
---|---|---|---|---|---|---|---|
Query Management |
|
With InfluxDB's query management features, users are able to identify currently-running queries, kill queries that are overloading their system, and prevent and halt the execution of inefficient queries with several configuration settings.
SHOW QUERIES | KILL QUERY | Configuration Settings |
List currently-running queries with SHOW QUERIES
SHOW QUERIES
lists the query ID, query text, relevant database, and duration
of all currently-running queries on your InfluxDB instance.
For InfluxEnterprise clusters, the SHOW QUERIES
output also includes the TCP host.
Syntax:
SHOW QUERIES
Example:
> SHOW QUERIES
qid query database duration status
--- ----- -------- -------- ------
37 SHOW QUERIES 100368u running
36 SELECT mean(myfield) FROM mymeas mydb 3s running
Explanation of the output:
qid
: The ID number of the query.query
: The query text.database
: The database targeted by the query.duration
: The length of time that the query has been running.status
: Current status of the query when SHOW QUERIES was executed.
See Query Language Reference for an explanation of InfluxDB's time units.
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:
KILL QUERY <qid>
InfluxEnterprise 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.
KILL QUERY <qid> ON "<host>"
A successful KILL QUERY
query returns no results.
Examples:
-- kill query with qid of 36 on the local host
> KILL QUERY 36
>
-- kill query on InfluxEnterprise cluster
> KILL QUERY 53 ON "myhost:8088"
>
Configuration settings for query management
The following configuration settings are in the [coordinator] section of the configuration 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 and
outputs the following error:
ERR: max concurrent queries reached
query-timeout
The maximum time for which a query can run on your instance before InfluxDB
kills 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 outputs the following error:
ERR: query timeout reached
log-queries-after
The maximum time a query can run after which InfluxDB logs the query with a
Detected 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"
:
[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 a
SELECT
statement can process.
The default setting (0
) allows the SELECT
statement to process an unlimited
number of points.
If your query exceeds max-select-point
, InfluxDB kills the query and outputs
the following error:
ERR: max number of points reached
max-select-series
The maximum number of series that a
SELECT
statement can process.
The default setting (0
) allows the SELECT
statement to process an unlimited
number of series.
If your query exceeds max-select-series
, InfluxDB does not execute the query
and outputs the following error:
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 of
buckets.
If your query exceeds max-select-buckets
, InfluxDB does not execute the query
and outputs the following error:
ERR: max select bucket count exceeded: <query_bucket_count> buckets