Amazon Aurora 数据源
使用 Grafana 查询和可视化 Amazon Aurora 中的数据。此数据源插件目前处于公开预览阶段。
简介
借助 Amazon Aurora 数据源,您可以轻松查询和可视化 Amazon Aurora 中的数据。此插件目前支持兼容 MySQL 和兼容 Postgres 的 Aurora 引擎。
要求
此插件专为 Grafana Enterprise 9.4.7 及更高版本设计,但也可能兼容旧版本。
此插件使用 IAM 和 AWS SDK for Go 连接到 AWS Aurora 集群。请仔细阅读 AWS 提供的“使用 IAM 身份验证和 AWS SDK for Go 连接到您的 DB 集群”指南中的“先决条件”部分,了解如何使用 IAM 连接到您的 DB 集群,以确保 Grafana 能够查询您的集群。
权限示例
作为上述步骤的一部分,请确保您用于查询 Aurora 的用户/角色拥有适当的权限。例如
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"rds-db:connect"
],
"Resource": [
"arn:aws:rds-db:us-east-2:1234567890:dbuser:cluster-ABCDEFGHIJKL01234/db_user"
]
}
]
}
欲了解更多信息,请阅读AWS 的文档
入门
配置选项
Amazon Aurora 数据源使用AWS SDK for Go 通过 AWS IAM 凭据连接到您的 DB 集群。有几种可能的方式可以在 Grafana 中配置数据源实例,以指定您希望如何连接 AWS
配置选项 | 详细信息 |
---|---|
身份验证提供者 | 根据运行环境,Grafana 支持不同的身份验证提供者,例如密钥、凭据文件,或使用 AWS 的“默认”提供者,该提供者支持使用基于服务的 IAM 角色。这些提供者可以通过 allowed_auth_providers 字段手动启用/禁用。要详细了解支持的身份验证提供者,请参阅Cloud Watch 数据源文档 |
假设角色 ARN | 可选字段,如果您希望上述选定的提供者担任某个角色时使用。 |
外部 ID | 可选字段,有时在担任角色时使用。 |
端点 | 可选字段,默认情况下,所有请求将使用aws sdk 中指定的任何端点,但是如果您想覆盖此设置,您可以这样做。 |
默认区域 | 指定您集群的区域。 |
引擎 | 选择您的集群使用的 Aurora 引擎。目前我们支持兼容 PostgreSQL 和兼容 MySQL 的引擎。 |
数据库名称 | 可选字段,用于创建 DSN。 |
数据库用户 | 用于创建 DSN。 |
数据库主机 | 用于创建 DSN(注意:建议您指定只读连接,因为 Grafana UI 中没有任何内容可以阻止对您的 DB 进行写入)。 |
数据库端口 | 用于创建 DSN。 |
高级设置
为了连接到您的集群,Grafana 发出 2 个调用
- 使用 RDS 和一个端点生成身份验证令牌
- 使用该令牌和您的端点打开到 DSN 的连接。
通常这两个步骤的端点是相同的。但是,如果您的 DB 集群位于负载均衡器后面,您可能需要两个单独的端点。对于第一个步骤,您需要指定负载均衡器后面的端点。对于第二个步骤,您需要指定用于打开 SQL 连接的负载均衡器端点。要让 Grafana 代表您执行此操作,请在 DB Host for Auth
和 DB Port for Auth
中指定负载均衡器后面的端点,并使用上面的负载均衡器端点/端口配置字段。
预配 Aurora 数据源示例
如果您正在预配数据源,您可以使用 YAML 文件设置所有上述配置选项。以下是该文件可能的样子示例
- name: AWS Aurora with mysql behind a load balancer
type: grafana-aurora-datasource
editable: true
jsonData:
engine: 'aurora-mysql'
authType: keys
dbName: 'testDatabase'
dbUser: 'dbuser'
dbHost: 'aurora-mysql.cluster-123.us-east-1.rds.amazonaws.com'
dbPort: 3306
defaultRegion: 'us-east-1'
secureJsonData:
accessKey: someAccessKey
secretKey: someSecretKey
version: 1
这是另一个包含负载均衡器的示例
- name: AWS Aurora with mysql behind a load balancer
type: grafana-aurora-datasource
editable: true
jsonData:
engine: 'aurora-mysql'
authType: keys
dbName: 'testDatabase'
dbUser: 'dbuser'
dbHost: 'protectedByALoadBalancer.example.com'
dbPort: 3307
defaultRegion: 'us-east-1'
dbPortAuth: 3306
dbHostAuth 'aurora-mysql.cluster-123.us-east-1.rds.amazonaws.com'
secureJsonData:
accessKey: someAccessKey
secretKey: someSecretKey
version: 1
查询
表格 vs 时间序列
与 Grafana 中的其他 SQL 数据源插件一样,您可以在查询时指定是将数据作为“宽”时间序列还是“长”时间序列返回。这由“格式化数据帧为”下拉菜单控制。
为了更好地解释这个概念,考虑这样一个表格
当我们使用时间序列可视化呈现相同的查询时,我们会注意到“neighborhood”和“city”字段会合并为一个时间序列。
这通常是 SQL 数据源所需和预期的行为,尤其是在使用表格可视化时。但是,有时您可能希望为每个城市/区域组合呈现一个单独的时间序列。为此,请在“格式化数据帧为”下拉菜单中选择“时间序列”,这将呈现相同的时间序列可视化,如下所示
使用 Explore 时,当您更改格式时,Grafana 会自动使用适当的时间序列或表格可视化呈现您的数据。使用仪表盘中的查询编辑器,用户可以控制如何可视化数据。
欲了解更多信息,请参阅Grafana 文档中的时间序列格式。
变量和宏
此插件支持自定义变量和全局变量,使编写查询更容易。例如,如果您将自定义变量设置为 $tableName
,您可以在仪表盘中跨多个表格使用相同的查询。
select * from $tableName limit 3;
注意
变量不适用于 Grafana 警报。
此插件还支持来自sql util 库的宏,例如 $__timeFrom
和 $__timeTo
。例如
select * from test_table where $__timeFrom(recorded_at) and $__timeTo(recorded_at)
如果您对 Amazon Aurora 数据源特有的宏有任何建议,请随时联系客户支持。