grafana带有功能丰富的数据源插件influxDB。支持丰富的查询编辑器、注释和templating(模版)查询。html
增长数据源(Adding the data source) sql
- 点击顶部Grafana图标打开侧边的菜单。
- 在
Dashboards
连接下的侧菜单中,您应该找到一个名为Data Sources的连接。 - 在顶部点击
+ Add data source
按钮。 - 在Type下拉选项中选择 InfluxDB。
Edit/ADD data source数据库
name :数据源名称。这就是在面板和查询中引用数据源的方式。后端
defalut:默认的数据源意味着它将被预先选中用于新的面板。api
Type浏览器
Http settings
Url:您的http协议、ip和influxDB api的端口(influxdb api端口是默认的8086)app
Access:proxy:经过grafana后端访问,Direct:直接经过浏览器访问编辑器
Http Auth
Basic Auth函数
with Credentialspost
Tls client Auth
With CA Cert
InfluxDB Details
Database:influxdb数据库名称
User:数据库用户名
Password:数据库用户密码
Defalut group by time
注意:若是你没有在你的侧菜单中看到Data Sources连接,这意味着你当前的用户没有当前组织的Admin角色。
详细见;http://docs.grafana.org/features/datasources/influxdb/
Proxy vs Direct access
Proxy access means that the Grafana backend will proxy all requests from the browser. So requests to InfluxDB will be channeled through grafana-server
. This means that the URL you specify needs to be accessible from the server you are running Grafana on. Proxy access mode is also more secure as the username & password will never reach the browser.
Query Editor
你在graph或singlestat面板的metrics 页签找到influxDB编辑器。我也能够经过单击面板标题,而后edit。编辑器容许您选择metrics页签。
Filter data (WHERE)
where 若要添加标记筛选器,请单击Where加号图标”+“。您能够经过单击remove tag filters 来删除所选择的条件。
The $timeFilter or $__timeFilter Variable
$timefilter返回当前选择的时间范围为表达。
例如,time range表达时间为Last 7 days ,表达式为time > now() - 7d。
Grafana 会自动添加 $timeFilter,influxDB须要手动添加
若是你使用原始查询,请至少确保where有$timeFilter,也总用时间区间和聚合函数功能。 不然InfluxDB 很容易返回成千上万数据点提供浏览。
Regex matching
You can type in regex patterns for metric names or tag filter values, be sure to wrap the regex pattern in forward slashes (/
). Grafana will automatically adjust the filter tag condition to use the InfluxDB regex match condition operator (=~
)。
Field & Aggregation functions
在select行中,能够指定要使用的字段和函数。若是你有一个时间组(group by time),你须要一个聚合函数,像derivative 。
编辑器尝试简化并统一查询的这一部分。以下例子
以上将产生如下InfluxDB SELECT子句:
Select multiple fields
使用加号按钮并选择 Field > field来添加另外一个SELECT子句。你也能够指定一个星号*选择全部字段
ALIAS BY
能够将Series取个别名。
Group By
GROUP BY,单击组结尾处的+图标。从出现的下拉列表中选择一个标记。您能够经过单击标签删除该组,而后单击X图标。
$interval:没有特别指定,默认是5分钟,$interval与auto一个意思 ,
Group by time interval
设置这边能够改变$interval的值。我这写的时候 基本要大于5分钟,目前不是很清楚缘由。
Group by time是很重要的,不然Grafana查询会返回成千上万的数据点会慢下来。
对于每一个查询,将时间字段分组为空,并根据图的时间范围和像素宽度计算该组。
若是使用fill(0)或fill(null),则按时间间隔为自动组设置一个低限
下限只能在您查询的按组时间选项中设置。
在间隔以前添加一个更大的符号来设置一个下限。
例如:若是InfluxDB的metrics 为每60秒
Text Editor Mode (RAW)
您能够经过点击汉堡图标“”切换到原始查询模式,更换数据库,而后切换编辑器模式。
若是你使用原始查询确认你的查询至少有WHERE $timeFilter,也请一直有group by time 和聚合函数,不然InfluxDB能够返回的数据点,将浏览器数十万。
Templating
metric 查询中,没必要硬编码诸如server, application and sensor name 之类的东西,而是能够在它们的位置使用变量。
变量显示在dashboard顶部的下拉式选择框中。这些下拉菜单就能够很容易地改变在你的仪表板显示的数据。
Query variable
若是你添加的template变量,类型为Query,你能够写一个InfluxDB(meta data)查询。这些查询能够返回诸如measurement 名称, key 名称or key 值。
例如,你能够有一个变量包含标签为hostname的全部值,若是你指定一个查询在templating variable Query设置。
SHOW TAG VALUES WITH KEY = "hostname"
还能够建立嵌套变量。例如,若是您有另外一个变量,例如region。而后,您能够拥有hosts变量,只显示当前选择区域中的主机,查询以下:
SHOW TAG VALUES WITH KEY = "hostname" WHERE region =~ /$region/
你能够为一个给定的measurement获取key的名字。
SHOW TAG KEYS [FROM <measurement_name>]
若是有一个带有key的变量,能够在一个组子句中使用这个变量。这将容许您经过在仪表板顶部使用变量下拉菜单来更改组。
Ad hoc filters variable
InfluxDB支持特殊的“Ad hoc filters variable”变量类型。这个变量容许您任意指定任意数量的 key/value过滤器。这些过滤器将自动应用到全部的InfluxDB查询。
Annotations(注释)
annotations容许您在图表顶部覆盖丰富的事件信息。经过Dashboard menu / Annotations view添加注释查询。
一个查询例子:
对于InfluxDB须要输入一个查询,像上面的例子。where须要在 $timeFilter部分。若是只选择一个列,就不须要在列映射字段中输入任何内容。tag字段能够是一个逗号分隔的字符串。SELECT title, description from events WHERE $timeFilter order asc