|
@@ -4,10 +4,11 @@ page_description: InfluxDB query guide
|
|
|
page_keywords: grafana, influxdb, metrics, query, documentation
|
|
page_keywords: grafana, influxdb, metrics, query, documentation
|
|
|
---
|
|
---
|
|
|
|
|
|
|
|
-
|
|
|
|
|
# InfluxDB
|
|
# InfluxDB
|
|
|
|
|
|
|
|
-There are currently two separate datasources for InfluxDB in Grafana: InfluxDB 0.8.x and InfluxDB 0.9.x. The API and capabilities of InfluxDB 0.9.x are completely different from InfluxDB 0.8.x. InfluxDB 0.9.x data source support is provided on an experimental basis.
|
|
|
|
|
|
|
+There are currently two separate datasources for InfluxDB in Grafana: InfluxDB 0.8.x and InfluxDB 0.9.x.
|
|
|
|
|
+The API and capabilities of InfluxDB 0.9.x are completely different from InfluxDB 0.8.x which is why Grafana handles
|
|
|
|
|
+them as different data sources.
|
|
|
|
|
|
|
|
## Adding the data source to Grafana
|
|
## Adding the data source to Grafana
|
|
|
Open the side menu by clicking the the Grafana icon in the top header. In the side menu under the `Dashboards` link you
|
|
Open the side menu by clicking the the Grafana icon in the top header. In the side menu under the `Dashboards` link you
|
|
@@ -31,32 +32,66 @@ Password | Database user's password
|
|
|
> *Note* When using Proxy access mode the InfluxDB database, user and password will be hidden from the browser/frontend. When
|
|
> *Note* When using Proxy access mode the InfluxDB database, user and password will be hidden from the browser/frontend. When
|
|
|
> using direct access mode all users will be able to see the database user & password.
|
|
> using direct access mode all users will be able to see the database user & password.
|
|
|
|
|
|
|
|
-## InfluxDB 0.9.x query editor
|
|
|
|
|
|
|
+## InfluxDB 0.9.x
|
|
|
|
|
|
|
|
-This editor & data source is not compatible with InfluxDB 0.8.x, please use the right data source for you InfluxDB version.
|
|
|
|
|
-The InfluxDB 0.9.x editor is currently under development and is not yet fully usable.
|
|
|
|
|
|
|
+
|
|
|
|
|
|
|
|
-## InfluxDB 0.8.x query editor
|
|
|
|
|
|
|
+You find the InfluxDB editor in the metrics tab in Graph or Singlestat panel's edit mode. You enter edit mode by clicking the
|
|
|
|
|
+panel title, then edit. The editor allows you to select metrics and tags.
|
|
|
|
|
|
|
|
-
|
|
|
|
|
|
|
+### Editor tag filters
|
|
|
|
|
+To add a tag filter click the plus icon to the right of the `WHERE` condition. You can remove tag filters by clicking on
|
|
|
|
|
+the tag key and select `--remove tag filter--`.
|
|
|
|
|
+
|
|
|
|
|
+### Editor group by
|
|
|
|
|
+To group by a tag click the plus icon after the `GROUP BY ($interval)` text. Pick a tag from the dropdown that appears.
|
|
|
|
|
+You can remove the group by by clicking on the tag and then select `--remove group by--` from the dropdown.
|
|
|
|
|
+
|
|
|
|
|
+### Editor RAW Query
|
|
|
|
|
+You can switch to raw query mode by pressing the pen icon.
|
|
|
|
|
|
|
|
-When you add an InfluxDB query you can specify series name (can be regex), value column and a function. Group by time can be specified or if left blank will be automatically set depending on how long the current time span is. It will translate to a InfluxDB query that looks like this:
|
|
|
|
|
|
|
+> If you use Raw Query be sure your query at minimum have `WHERE $timeFilter` clause and ends with `order by asc`.
|
|
|
|
|
+> Also please always have a group by time and an aggregation function, otherwise InfluxDB can easily return hundreds of thousands
|
|
|
|
|
+> of data points that will hang the browser.
|
|
|
|
|
|
|
|
|
|
+### Alias patterns
|
|
|
|
|
+
|
|
|
|
|
+- $m = replaced with measurement name
|
|
|
|
|
+- $measurement = replaced with measurement name
|
|
|
|
|
+- $tag_hostname = replaced with the value of the hostname tag
|
|
|
|
|
+- You can also use [[tag_hostname]] pattern replacement syntax
|
|
|
|
|
+
|
|
|
|
|
+### Templating
|
|
|
|
|
+You can create a template variable in Grafana and have that variable filled with values from any InfluxDB metric exploration query.
|
|
|
|
|
+You can then use this variable in your InfluxDB metric queries.
|
|
|
|
|
+
|
|
|
|
|
+For example you can have a variable that contains all values for tag `hostname` if you specify a query like this
|
|
|
|
|
+in the templating edit view.
|
|
|
```sql
|
|
```sql
|
|
|
-select [[func]]([[column]]) from [[series]] where [[timeFilter]] group by time([[interval]]) order asc
|
|
|
|
|
|
|
+SHOW TAG VALUES WITH KEY = "hostname"
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
-To write the complete query yourself click the cog wheel icon to the right and select ``Raw query mode``.
|
|
|
|
|
|
|
+You can also create nested variables. For example if you had another variable, for example `region`. Then you could have
|
|
|
|
|
+the hosts variable only show hosts from the current selected region with a query like this:
|
|
|
|
|
|
|
|
-## InfluxDB 0.9 Filters & Templates queries
|
|
|
|
|
|
|
+```sql
|
|
|
|
|
+SHOW TAG VALUES WITH KEY = "hostname" WHERE region =~ /$region/
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+> Always you `regex values` or `regex wildcard` for All format or multi select format.
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+### Annotations
|
|
|
|
|
|
|
|
-The InfluxDB 0.9 data source does not currently support filters or templates.
|
|
|
|
|
|
|
+### InfluxDB 0.8.x
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
|
|
|
## InfluxDB 0.8 Filters & Templated queries
|
|
## InfluxDB 0.8 Filters & Templated queries
|
|
|
|
|
|
|
|

|
|

|
|
|
|
|
|
|
|
-
|
|
|
|
|
Use a distinct influxdb query in the filter query input box:
|
|
Use a distinct influxdb query in the filter query input box:
|
|
|
|
|
|
|
|
```sql
|
|
```sql
|