Grafana的雪花数据源
Snowflake数据源插件允许您从Grafana中查询和可视化Snowflake数据指标。
需求
这个插件有以下要求:
安装Snowflake数据源插件
要安装数据源,请参见安装
配置雪花
配置Snowflake数据源需要一个具有用户名和密码的Snowflake用户。
Grafana建议为这个数据源创建一个权限有限的新用户。
创建用户
为了连接到雪花,您必须创建一个用户或使用现有的用户进行身份验证。该用户将运行从Grafana发送的所有查询。
如果希望让不同的用户运行不同的查询/工作负载,那么应该创建具有不同设置的多个Snowflake数据源。
要在Snowflake中创建用户,您必须登录到Snowflake实例并运行创建用户命令。
授予角色
创建了Snowflake用户之后,必须使用授予角色命令。将角色授予用户后,用户可以执行该角色所允许的操作。
这个角色定义了用户可以访问的仓库和表。
在Grafana中配置数据源
中使用的这些连接设置与通过SnowSQL连接
添加数据源通过填写以下字段:
场 | 描述 |
---|---|
的名字 | 这个特定的Snowflake数据源的名称 |
账户 | “Account”为“雪花”分配的“雪花”帐号的名称。在提供帐户后从雪花收到的URL中,帐户名是整个左边的字符串snowflakecomputing.com .如果Snowflake实例没有打开us-west-2 ,则该区域必须包含在帐户名中。例子:xyz123.us-east-1 如果Snowflake实例没有打开亚马逊网络服务 ,那么平台也必须包含在帐户名中。例子:xyz123.us -东- 1. - gcp |
地区 | 弃用,赞成Account.Region指定雪花实例所在的区域 |
用户名 | 查询“雪花”的帐户的用户名 |
验证类型 | 身份验证类型。可以使用密码身份验证或密钥对身份验证 |
密码 | 查询“雪花”的帐号密码 |
私钥 | 如果您喜欢使用基于密钥对的身份验证,则在此字段中输入您的私钥。 |
角色 | 此选项允许用户使用非用户默认角色连接到Snowflake实例。控件将该角色授予给用户授予角色 命令,以便承担责任。 |
仓库 | 默认情况下用于查询的仓库 |
数据库 | 默认情况下用于查询的数据库 |
模式 | 默认情况下用于查询的模式 |
TimeInterval | 可选的。的下限__interval美元 而且__interval_ms美元 宏。如果留空,十年代 将被用作默认 |
默认查询 | 可选的。在面板中添加新的雪花查询时使用的默认查询 |
默认变量查询 | 可选的。在向仪表板变量添加新的雪花查询时使用的默认查询 |
密钥对认证
您可以使用密钥对身份验证来增强安全性,作为基本身份验证的替代方案。文件中指定的公钥/私钥可以生成雪花文档.
如果正在使用密钥对身份验证,请确保已更新rsa_public_key
并在数据源配置中提供相应的用户名和私钥。
用供应配置数据源
可以在Grafana的供应系统中使用配置文件来配置数据源。您可以阅读更多关于它是如何工作的,以及可以为数据源设置的所有设置配置文档页面
例子:
数据源:- name: Snowflake type: grafana-snowflake-datasource access: proxy basicAuth: false editable: true enabled: true jsonData: account: xyz123.east-us-2。azure username: grafana-user authType: password timeInterval: 10s defaultQuery: SELECT \n\t $__timeGroup(, $__interval) as time,\n\t \n FROM \n WHERE $__timeFilter(time) defaultVariableQuery: SELECT DISTINCT FROM LIMIT 1000 defaultInterpolation: " #参考://www.tubolov.com/docs/grafana/latest/variables/advanced-variable-format-options/ secureJsonData: password: grafana-password - name:雪花Billing Data类型:basicAuth: false editable: true enabled: true jsonData: account: xyz123.us-east1. basicAuth: falsegcp username: grafana-admin-user database: snowflake role: ACCOUNTADMIN timeInterval: 10s defaultQuery: SELECT \n\t $__timeGroup(, $__interval) as time,\n\t \n FROM \n WHERE $__timeFilter(time) defaultVariableQuery: SELECT DISTINCT FROM LIMIT 1000 defaultInterpolation: sqlstring #参考://www.tubolov.com/docs/grafana/latest/variables/advanced-variable-format-options/ secureJsonData: password: grafana-admin-password
查询数据源
提供的查询编辑器是一个标准的SQL查询编辑器。Grafana包含一些宏来帮助编写更复杂的时间序列查询。
宏
宏 | 描述 | 输出示例 |
---|---|---|
美元__timeFilter(列) |
__timeFilter美元 过滤器的列 按面板时间范围。列 必须有没有时区的字段。 |
CONVERT_TIMEZONE('UTC', 'UTC', time) < '2017-07-18T11:15:52Z' AND CONVERT_TIMEZONE('UTC', 'UTC', time) > '2017-07-18T11:15:52Z . |
__timeFilter美元(列,时区) |
__timeFilter美元 过滤器的列 面板时间范围,并将UTC转换为时区 .列 必须有没有时区的字段。 |
CONVERT_TIMEZONE('UTC', 'America/New_York', time) < '2017-07-18T11:15:52Z' AND CONVERT_TIMEZONE('UTC', 'America/New_York', time) > '2017-07-18T11:15:52Z . |
美元__timeTzFilter(列) |
__timeTzFilter美元 过滤器的列 按面板时间范围。列 应该包含时区的字段。 |
CONVERT_TIMEZONE('UTC', time) < '2017-07-18T11:15:52Z' AND CONVERT_TIMEZONE('UTC', time) > '2017-07-18T11:15:52Z . |
__timeTzFilter美元(列,时区) |
__timeTzFilter美元 过滤器的列 ,并将当前时区转换为时区 .列 应该包含时区的字段。 |
CONVERT_TIMEZONE('America/New_York', time) < '2017-07-18T11:15:52Z' AND CONVERT_TIMEZONE('America/New_York', time) > '2017-07-18T11:15:52Z . |
美元__timeGroup(列,__interval美元) |
__timeGroup美元 按时间间隔对时间戳进行分组,以便每个时间戳只有1个点__interval美元 在图表上 |
TIME_SLICE(TO_TIMESTAMP(created_ts), 1, 'HOUR', 'START') |
$__timeGroup(列,$__interval, timezone) |
__timeGroup美元 按时间间隔对时间戳进行分组,以便每个时间戳只有1个点__interval美元 并转换为给定的时区 |
TIME_SLICE(TO_TIMESTAMP(CONVERT_TIMEZONE('UTC', 'America/ los - angeles ', created_ts)), 1, 'HOUR', 'START') |
例子
表可视化
雪花中的大多数查询都可以通过表可视化来最好地表示。任何查询都将在表中显示数据。如果它可以被查询,那么它就可以被放入一个表中。
这个例子返回表可视化的结果:
SELECT {column_1}, {column_2} FROM {table};
时间序列/图形可视化
对于时间序列/图形可视化,有以下几个要求:
- 的列
日期
或datetime
必须选择类型 - 的
日期
列必须按升序排列(使用按ASC列排序
) - 还必须选择数字列
为了使图形更合理,请务必使用__timeFilter美元
而且__timeGroup美元
宏。
时间序列查询示例:
SELECT avg(execution_time) AS average_execution_time, $__timeGroup(start_time, $__interval), query_type FROM account_usage。WHERE $__timeFilter(start_time)按查询类型排序,查询类型为ASC;
检查查询
因为Grafana支持雪花所不支持的宏,所以可以直接复制/粘贴到雪花中的完全呈现查询在查询检查器中是可见的。要查看完整的内插查询,单击查询检查器按钮,完整的查询将在“查询”选项卡下可见。
模板和变量
要添加新的雪花查询变量,请参见添加一个查询变量.使用Snowflake数据源作为以下可用查询的数据源:
从Snowflake表中查询的任何值都可以用作变量。一定要避免选择太多的值,因为这会导致性能问题。
如果变量查询返回两列,则第二列的值将用作显示值
使用变量
在创建变量之后,可以在雪花查询中使用变量的语法.有关变量的更多信息,请参见模板和变量.
在查询中使用变量时,可以选择设置插值格式.您还可以在数据源配置中配置默认插值格式。
单一变量
如果变量返回单个值,则可以使用以下格式之一。下面的示例假设您已经设置主题是
作为默认插值,你有两个变量叫做queryTypeSingle
而且限制
.他们有价值观选择
而且2
分别。
从account_usage中选择query_type。query_history WHERE query_type = ${queryTypeSingle} Limit ${Limit:raw}
会被翻译成
从account_usage中选择query_type。query_history WHERE query_type = 'SELECT
设置默认变量插值类型在1.2版本中引入。从这个版本开始,您可以将默认插值类型设置为
主题是
1.2版本之前的插件或者如果你用没有一个
作为默认的插值类型,相同的查询必须写成如下形式
从account_usage中选择query_type。WHERE query_type = '${queryTypeSingle}' Limit ${Limit:raw}
使用sqlstring插值的多值变量
当使用返回多个选项的变量时,可以通过以下方法使用它。下面的示例假设您已经设置主题是
默认插值,你有变量叫做queryTypeMulti
而且限制
.他们有价值观创建、选择
而且2
分别。
从account_usage中选择query_type。WHERE query_type in (${queryTypeMulti}) Limit ${Limit:raw}
会被翻译成
从account_usage中选择query_type。query_history WHERE query_type in ('CREATE','SELECT'
使用正则表达式的多值变量
若要使用具有多个值的变量,可以使用正则表达式修饰符选项和正则表达式
雪花函数.如。${变量:正则表达式}
例如,该查询将仅使用查询类型
在queryType
变量:
...AND query_type regexp '${queryType:regex}'…
这个查询转换为:
...AND query_type regexp '(描述|CREATE_USER|DROP|TRUNCATE_TABLE|ALTER)'…
将数据可视化为日志
与日志格式,您可以在资源管理器中可视化日志查看器中的数据。查询时日志格式,您的查询应该至少有一个时间列和一个字符串/内容列。可选地,查询可以调用第三列水平设置特定行的日志级别。支持的日志级别及其关键字请参见Grafana记录集成文档站点.如果查询返回任何附加列,它们将被视为日志中的附加字段/检测到的字段。
例如,下面是有效的日志查询。
选择'hello foo'作为"content",(时间戳'2021 12-31')作为"start_time", 'warn'作为"level" UNION SELECT 'hello bar'作为"content",(时间戳'2021 12-30 14:12:59')作为"start_time", 'error'作为"level" UNION SELECT 'hello baz'作为"content",(时间戳'2021 12-30')作为"start_time", 'warn'作为"level" UNION SELECT 'hello qux'作为"content",(时间戳'2021 12-29')作为"start_time", 'info'作为"level"UNION SELECT 'hello quuz' as "content",(时间戳'2021年12月27日')as "start_time", 'info' as "level"
为雪花导入一个仪表板
绑定的Snowflake仪表板要求数据源具有ACCOUNTADMIN
查看计费数据的角色。在准备部分有一个这样的例子。
遵循这些指令用于导入仪表板。
导入的仪表板可以在配置>数据源>选择您的雪花数据源>选择仪表板选项卡查看可用的预先制作的仪表板。
充分利用插件
阅读更多
相关Grafana雪花数据源资源
用Grafana插件统一数据:datdog, Splunk, MongoDB等等
在本次网络研讨会中,学习如何利用Grafana的插件生态系统访问80多个数据源,包括datdog、Splunk、MongoDB等插件。
Grafana插件演示:Github, Gitlab, JIRA, ServiceNow等
在这次网络研讨会上,我们将向您展示如何使用Grafana来解锁这些洞见,并更好地了解您的软件开发团队的性能。
关于Grafana插件的一切:在一个地方可视化不同的数据源
Grafana Enterprise插件是与其他商业监控工具(如datdog、Splunk、New Relic、ServiceNow、Oracle和Dynatrace)的集成,这些工具由Grafana Labs团队创建、维护和支持。bob电竞频道