79bob在线下载 > ClickHouse

数据源
grafana

ClickHouse

  • 概述
  • 安装
  • 更改日志
  • 相关内容

Grafana的ClickHouse数据源

ClickHouse数据源插件允许您在Grafana中查询和可视化ClickHouse数据。

从2.0开始,这个插件只支持使用ClickHouse 22.7+时的特殊过滤器

安装

有关如何在Grafana Cloud或本地安装插件的详细说明,请查看插件安装文档

配置

数据源的ClickHouse用户

建立一个ClickHouse用户帐户只读的对要查询的数据库和表的权限和访问。请注意,Grafana并不验证查询是否安全。查询可以包含任何SQL语句。例如,像这样的语句修改表系统。删除'sadUser'而且删除悲伤表会被处决。

ClickHouse协议支持

插件同时支持HTTP而且本地的(默认)传输协议。可以在配置中通过协议配置参数。这两个协议都使用优化的本机格式与ClickHouse交换数据。

注意,默认端口为HTTP /秒而且本地的不同:

  • HTTP - 8123
  • HTTPS - 8443
  • 本机- 9000
  • 本地TLS - 9440

手动配置

一旦插件安装到您的Grafana实例上,就可以执行下面的操作了这些指令来添加一个新的ClickHouse数据源,并输入配置选项。

使用配置文件

可以使用配置文件和Grafana的供应系统来配置数据源。要了解它的工作方式,包括可以为此数据源设置的所有设置,请参阅提供Grafana数据源

下面是一些使用基本身份验证的数据源配置示例:

apiVersion: 1 datasources:—name: ClickHouse type: grafana-clickhouse-datasource jsonData: defaultDatabase:数据库端口:9000 server: localhost username:用户名tlsSkipVerify: false secureJsonData: password:密码

构建查询

查询编辑器允许您查询ClickHouse以返回时间序列或表格数据。查询可以包含简化语法并允许动态部分的宏。

时间序列

控件后,可以选择时间序列可视化选项datetime字段类型。这个字段将被用作时间戳。您可以使用可视化选项选择时间序列可视化。Grafana将没有显式时区的时间戳行解释为UTC。任何列除了时间作为值列处理。

多行时间序列

要创建多行时间序列,查询必须返回至少3个字段,顺序如下:

  • 字段1:datetime字段的别名为时间
  • 字段2:group by的值
  • 字段3+:度量值

例如:

SELECT log_time AS time, machine_group, avg(disk_free) AS avg_disk_free FROM mgbench。logs1 GROUP BY machine_group, log_time ORDER BY log_time

对于任何有效的ClickHouse查询,表可视化总是可用的。

使用日志面板可视化日志

要使用Logs面板,查询必须返回时间戳和字符串值。若要默认使用Explore模式中的日志可视化,请将时间戳别名设置为log_time

例如:

SELECT log_time AS log_time, machine_group, toString(avg(disk_free)) AS avg_disk_free FROM logs1 GROUP BY machine_group, log_time ORDER BY log_time

为了简化语法并允许动态部分(如日期范围过滤器),查询可以包含宏。

下面是一个宏查询的例子,它将使用Grafana的时间过滤器:

SELECT date_time FROM test_data WHERE $__timeFilter(date_time)
描述 输出示例
__timeFilter美元(columnName) 替换为基于面板的时间范围(以秒为单位)筛选数据(使用提供的列)的条件 AND time <= '1482576232')
__dateFilter美元(columnName) 替换为基于面板的日期范围筛选数据(使用提供的列)的条件 date >= '2022-10-21' AND date <= '2022-10-23')
__timeFilter_ms美元(columnName) 替换为基于面板的时间范围(以毫秒为单位)筛选数据(使用提供的列)的条件 AND time <= '1482576232479')
__fromTime美元 由转换为DateTime的面板范围的开始时间替换 toDateTime (intDiv (1415792726371, 1000))
__toTime美元 由转换为DateTime的面板范围的结束时间替换 toDateTime (intDiv (1415792726371, 1000))
__interval_s美元 替换为以秒为单位的间隔 20.
__timeInterval美元(columnName) 替换为基于窗口大小计算间隔的函数,在分组时非常有用 tostarttofinterval(列,间隔20秒)
美元__conditionalAll(条件、templateVar美元) 当第二个参数中的模板变量没有选择每个值时,由第一个参数替换。当模板变量选择每个值时,由1=1替换。 条件1 = 1

该插件还支持使用大括号{}来表示符号。当需要在参数中进行查询时,使用此符号。

模板和变量

若要添加新的ClickHouse查询变量,请参见添加查询变量

创建变量后,可以在ClickHouse查询中使用它变量的语法.有关变量的更多信息,请参见模板和变量

为ClickHouse导入仪表板

遵循这些指令导入仪表板。

您还可以通过导航到数据源配置页面,选择ClickHouse数据源并单击dashboards选项卡来找到可用的预先制作的仪表板。

我们在插件中发布了以下仪表板。这些旨在帮助ClickHouse集群的支持分析,不依赖于外部数据集。查询用户需要访问系统数据库。

  1. 集群分析-配置集群、合并、突变和数据复制的概述。
  2. 数据分析——当前数据库和表的概述,包括它们各自的大小、分区和部分。
  3. 查询分析——按类型、性能和资源消耗对查询进行分析。

Ad Hoc过滤器

Ad hoc过滤器只支持版本22.7+的ClickHouse。

特设过滤器允许您添加键/值过滤器,这些过滤器将自动添加到使用指定数据源的所有指标查询中,而无需显式地在查询中使用。

默认情况下,Ad Hoc过滤器将填充所有表和列。如果在Datasource设置中定义了默认数据库,则该数据库中的所有table将用于填充过滤器。由于这可能很慢/很昂贵,您可以引入第二个变量来限制Ad Hoc过滤器。它应该是常数类型命名clickhouse_adhoc_query并且可以包含:以逗号分隔的数据库列表、仅一个数据库或一个数据库。表组合,仅显示单个表的列。

有关Ad Hoc过滤器的详细信息,请查看Grafana文档

使用Ad Hoc过滤器的查询

第二个clickhouse_adhoc_query还允许任何有效的Clickhouse查询。查询结果将用于填充临时过滤器的可选过滤器。您可以选择从视图中隐藏此变量,因为它没有进一步的用途。

例如,如果clickhouse_adhoc_query设置为SELECT DISTINCT machine_name FROM mgbench.logs1您可以在仪表板中选择要过滤的机器名称。

了解更多

在Grafana Cloud上安装ClickHouse:

欲了解更多信息,请访问插件安装

更新日志

2.0.3

烦人的事-使用最新版本1.19.3编译的后端二进制文件烦人的事后端grafana依赖更新

2.0.2

更新sqlds到2.3.13,修复了一些宏查询

2.0.1

Bug -现在与Safari一起工作。Safari不支持正则表达式预览

2.0.0

特性-升级驱动程序以支持HTTP特性-改变了ad hoc过滤器的工作方式,使用CH 22.7特性中提供的设置选项-条件all现在用条件all函数处理。该函数检查第二个参数是否是一个模板var设置为all,如果它将该函数替换为1=1,如果不是将该函数设置为第一个参数。修复-可视查询构建器可以使用任何日期类型的时间字段修复- 'any'现在是可视化查询构建器中的聚合类型修复-时间过滤器宏可以在临时查询中使用修复-时间间隔宏不能有0的间隔修复-更新驱动器到v2.1.0修复-扩展查询按钮与grafana 8.0+修复-添加的临时列宏一起工作

1.1.2

Bug -将timerange添加到metricFindQuery中

1.1.1

Bug -添加超时

1.1.0

功能-为在探索中显示日志面板添加约定

1.0.0

官方发布

0.12.7

修正了验证sql时忽略模板变量的问题

0.12.6

修正-时间序列构建器-在分组/排序时使用时间别名

0.12.5

家务——仪表板

0.12.4

修复-时间序列where子句。将默认db设置为可视化编辑器的默认值

0.12.3

修复-当移除有条件的所有,检查范围变量(支持重复面板)

0.12.2

修复-删除条件全部时,只删除带变量的行

0.12.1

修正-处理大的小数正确

0.12.0

特性-时间序列构建器:在时间字段上使用$__timeInterval宏,这样可以从查询选项中调整桶。

0.11.0

特征-时间序列:隐藏字段,在选择中使用组by,在组by中使用时间字段

0.10.0

特性-由数据库或表提供的Ad-Hoc来源

0.9.13

修复-更新sdk显示流错误

0.9.12

修改ast更改后的格式检查

0.9.11

特性- $__timeInterval(列)和$__interval_s宏

0.9.10

修复-设置格式时,使用新的运行查询按钮。

0.9.9

功能-查询生成器。

0.9.8

修复-检测多行时间序列。处理带有函数的案例。

0.9.7

特点-多行时间序列。

0.9.6

错误-更改时间模板变量名。

0.9.5

修复了全局模板变量。

0.9.4

修正了查询类型变量。

0.9.3

错误-支持数组数据类型。

0.9.2

错误-修复TLS模型。

0.9.1

添加安全切换配置编辑器。

0.9.0

初始Beta版本。