Amazon Aurora 数据源
使用 Grafana 查询和可视化您的 Amazon Aurora 数据。此数据源插件目前处于公开预览中。
简介
使用 Amazon Aurora 数据源,您可以轻松查询和可视化 Amazon Aurora 中的数据。此插件目前支持兼容 MySQL 和 Postgres 的 Aurora 引擎。
要求
此插件是为 Grafana 9.4.7 及以上版本的企业版设计的,尽管它也可能适用于较旧版本。
此插件使用 AWS SDK for Go 通过 IAM 连接到 AWS Aurora 集群。请参阅 AWS 的“使用 IAM 身份验证和 AWS SDK for Go 连接到数据库集群”指南的先决条件部分,了解如何使用 IAM 连接到您的数据库集群,以确保 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凭证连接到您的数据库集群。有几种可能的方法配置您的数据源实例与Grafana,以指定您希望如何连接AWS。
配置选项 | 详细信息 |
---|---|
身份验证提供程序 | 根据运行的环境,Grafana支持不同的身份验证提供程序,例如密钥、凭证文件或使用AWS的“默认”提供程序,该提供程序支持基于服务的IAM角色。可以通过allowed_auth_providers字段手动启用/禁用这些提供程序。有关支持的身份验证提供程序的更多信息,请参阅Cloud Watch数据源的文档 |
假设角色ARN | 一个可选字段,如果您希望您选择的上述提供程序假设一个角色,则可以使用。 |
外部ID | 一个可选字段,有时在假设角色时使用。 |
端点 | 一个可选字段,默认情况下,所有请求都将使用在aws sdk中指定的任何端点,但是如果您想覆盖它,您可以。 |
默认区域 | 指定您的集群所在的区域。 |
引擎 | 选择您的集群使用的Aurora引擎。目前我们提供对PostgreSQL和MySQL兼容引擎的支持。 |
数据库名称 | 一个可选字段,用于创建DSN。 |
数据库用户 | 用于创建DSN。 |
数据库主机 | 用于创建DSN(注意:建议您指定只读连接,因为Grafana UI中没有防止写入数据库的功能)。 |
数据库端口 | 用于创建DSN。 |
高级设置
为了连接到您的集群,Grafana进行2次调用
- 使用端点向RDS生成认证令牌
- 使用该令牌和端点打开与DSN的连接。
通常这两个步骤的端点是相同的。但是,如果您有DB集群在负载均衡器后面,您可能需要两个不同的端点。对于第一步,您需要指定负载均衡器后面的端点。对于第二步,您需要指定用于打开SQL连接的负载均衡器端点。要让Grafana代表您执行此操作,请在DB主机用于认证
和DB端口用于认证
中指定负载均衡器后面的端点,并使用上面的负载均衡器端点/端口配置字段。
已配置的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
查询
表与时间序列
与其他Grafana中的SQL数据源插件一样,在查询时,您可以指定返回数据作为“宽”或“长”时间序列。这由“格式为下拉菜单”控制。
为了更好地解释这个概念,考虑一个如下表
当我们以时间序列可视化方式渲染此查询时,我们会注意到“neighborhood”和“city”字段合并为1个时间序列
这通常是来自 SQL 数据源的期望行为,尤其是在使用表格可视化时。然而,有时您可能希望为每个城市/社区组合渲染一个单独的时间序列。为此,在“格式为”下拉菜单中选择“时间序列”,这将渲染相同的时序可视化,如下所示:
当使用“探索”时,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 数据源具有独特的宏建议,请随时联系客户支持。