插件 〉Amazon Aurora


开发者

Grafana

注册以接收不定期产品新闻和更新



数据源
grafana
Enterprise

Amazon Aurora

文档 →

Amazon Aurora 数据源

使用 Grafana 查询和可视化来自 AWS Aurora 的数据。此数据源插件目前处于 公共预览 阶段。

简介

使用 Amazon Aurora 数据源,你可以轻松查询和可视化 Amazon Aurora 中的数据。此插件目前支持与 MySQL 兼容和与 Postgres 兼容的 Aurora 引擎。

Screenshot of a timeseries query with aurora

要求

此插件专为 Grafana 9.4.7 及更高版本的 Enterprise 版本设计,但也可能适用于旧版本。

此插件使用 AWS SDK for go 和 IAM 连接到 AWS Aurora 集群。请阅读 AWS 的“使用 IAM 身份验证和 AWS SDK for Go 连接到 DB 集群”指南中的前提条件部分,了解如何使用 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 文档

开始使用

  1. 安装插件
  2. 使用 UI 添加新数据源预置一个
  3. 配置数据源
  4. 开始进行查询

配置选项

Amazon Aurora 数据源使用 AWS SDK for Go 通过 AWS IAM 凭证连接到你的数据库集群。有几种可能的方式来配置 Grafana 中的数据源实例,以指定如何连接到 AWS

配置选项详情
身份验证提供者根据运行环境,Grafana 支持不同的身份验证提供者,例如密钥、凭证文件,或使用 AWS 的“Default”提供者,该提供者支持使用基于服务的 IAM 角色。这些提供者可以通过 allowed_auth_providers 字段手动启用/禁用。要了解更多关于支持的身份验证提供者的信息,请参阅 Cloud Watch 数据源文档
Assume Role ARN可选字段,如果你希望上面选择的提供者 Assume 一个角色,则使用此字段。
外部 ID可选字段,有时在 Assume 角色时使用
端点可选字段,默认情况下,所有请求将使用 AWS SDK 中指定的任何端点。但是,如果你想覆盖此设置,可以进行。
默认区域指定你的集群所在的区域。
引擎选择你的集群使用的 Aurora 引擎。目前我们支持兼容 PostgreSQL 和 MySQL 的引擎。
数据库名称可选字段,用于创建 DSN。
数据库用户用于创建 DSN。
数据库主机用于创建 DSN(注意:建议你选择“指定只读连接”,因为 Grafana UI 中没有任何内容可以阻止对数据库的写入)。
数据库端口用于创建 DSN。

高级设置

为了连接到你的集群,Grafana 进行 2 次调用

  1. 使用端点通过 RDS 生成 Auth Token
  2. 使用该 Token 和你的端点打开到 DSN 的连接。

通常,这两个步骤的端点是相同的。但是,如果你的数据库集群位于负载均衡器后面,你可能需要两个独立的端点。对于第一步,你需要指定负载均衡器后面的端点。对于第二步,你需要为开放的 SQL 连接指定负载均衡器端点。要让 Grafana 代表你执行此操作,请在 DB Host for AuthDB 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 数据源插件一样,你可以指定在查询时将数据作为“宽”或“长”时间序列返回。这由 Format data frames as 下拉菜单控制。

为了更好地解释这个概念,考虑一个像这样的表格

Using Format data frames as Table with a Table Visualization

当我们使用时间序列可视化渲染相同的查询时,会注意到“neighborhood”和“city”字段合并成一个时间序列

Using Format data frames as Table with a Time Series Visualization

这通常是 SQL 数据源期望的行为,尤其是在使用表格可视化时。但是,有时你可能希望为每个城市/neighborhood 组合渲染单独的时间序列。为此,在“Format data frames as”下拉菜单中选择“时间序列”,它将渲染相同的时序可视化,如下所示

Using Format data frames as Time Series with a Time Series Visualization

使用 Explore 时,Grafana 会在你更改格式时自动使用适当的时间序列或表格可视化来渲染数据。在仪表盘的查询编辑器中,用户可以控制如何可视化数据。

要了解更多信息,请参阅 Grafana 文档时间序列格式

变量和宏

此插件支持自定义变量和全局变量,以简化查询编写。例如,如果你设置一个自定义变量为 $tableName,你可以在仪表盘中跨多个表格使用相同的查询

select * from $tableName limit 3;

{{< admonition type="note" }} 变量不适用于 Grafana 告警。 {{ /admonition >}}

此插件还支持来自 sql util 库的宏,例如 $__timeFrom$__timeTo。例如

select * from test_table where $__timeFrom(recorded_at) and $__timeTo(recorded_at)

如果你对 Amazon Aurora 数据源特有的宏有建议,请随时联系客户支持。

在 Grafana Cloud 上安装 Amazon Aurora

有关更多信息,请访问插件安装文档

更新日志

0.4.1

  • 更新 github.com/grafana/grafana-plugin-sdk-go 至 v0.265.0 (#119)

0.4.0

  • 在 #102 中添加 PDC 支持

0.3.1

  • 在 #104 中将 all-node-dependencies 组更新 12 次
  • 在 #103 中将 all-go-dependencies 组更新 6 次
  • 在 #100 中将 all-node-dependencies 组跨 1 个目录更新 31 次
  • 在 #93 中将 npm_and_yarn 组中的 nanoid 从 3.3.7 更新至 3.3.8
  • 在 #101 中将 all-go-dependencies 组跨 1 个目录更新 8 次

0.3.0

  • 合并 #65 中的连接泄漏修复
  • Chore: 在 #69 中更新 dependabot 配置
  • Chore: 在 #66 中添加 plugin.json 关键字
  • 在 #89 中改进查询编辑器样式
  • Dependabot 更新:#88, #87, #85, #75, #74, #73, #72, #67
    • @babel/core 从 7.24.9 更新至 7.26.0
    • @emotion/css 从 11.10.6 更新至 11.13.5
    • @grafana/aws-sdk 从 0.3.5 更新至 0.5.0
    • @grafana/data 从 10.4.6 更新至 11.3.1
    • @grafana/eslint-config 从 7.0.0 更新至 8.0.0
    • @grafana/experimental 从 1.7.13 更新至 2.1.4
    • @grafana/plugin-e2e 从 1.9.0 更新至 1.12.3
    • @grafana/runtime 从 10.4.6 更新至 11.3.1
    • @grafana/schema 从 10.4.6 更新至 11.3.1
    • @grafana/tsconfig 从 1.2.0-rc1 更新至 2.0.0
    • @grafana/ui 从 10.4.6 更新至 11.3.1
    • @playwright/test 从 1.45.3 更新至 1.49.0
    • @swc/core 从 1.7.3 更新至 1.9.3
    • @swc/helpers 从 0.5.12 更新至 0.5.15
    • @swc/jest 从 0.2.36 更新至 0.2.37
    • @testing-library/jest-dom 从 6.1.4 更新至 6.6.3
    • @testing-library/react 从 14.0.0 更新至 16.0.1
    • @types/jest 从 29.5.12 更新至 29.5.14
    • @types/lodash 从 4.17.7 更新至 4.17.10
    • @types/node 从 20.14.13 更新至 22.10.1
    • @types/testing-library__jest-dom 从 5.14.8 更新至 6.0.0
    • aws/aws-sdk-go-v2 从 1.30.0 更新至 1.32.6
    • aws/aws-sdk-go-v2/config 从 1.26.6 更新至 1.28.6
    • aws/aws-sdk-go-v2/credentials 从 1.16.16 更新至 1.17.47
    • aws/aws-sdk-go-v2/feature/rds/auth 从 1.3.10 更新至 1.5.0
    • aws/aws-sdk-go-v2/service/sts 从 1.26.7 更新至 1.33.2
    • copy-webpack-plugin 从 11.0.0 更新至 12.0.2
    • cross-spawn 从 7.0.3 更新至 7.0.6
    • cspell 从 8.12.1 更新至 8.16.1
    • css-loader 从 6.11.0 更新至 7.1.2
    • eslint-plugin-deprecation 从 2.0.0 更新至 3.0.0
    • fork-ts-checker-webpack-plugin 从 8.0.0 更新至 9.0.2
    • glob 从 10.4.5 更新至 11.0.0
    • grafana/grafana-aws-sdk 从 0.31.2 更新至 0.31.4
    • grafana/grafana-plugin-sdk-go 从 0.252.0 更新至 0.258.0
    • grafana/sqlds/v4 从 4.1.3-0.20241001145423-0b49f1269922 更新至 4.1.4
    • prettier 从 2.8.8 更新至 3.4.1
    • react 从 18.2.0 更新至 18.3.1
    • react-dom 从 18.2.0 更新至 18.3.1
    • sass 从 1.63.2 更新至 1.81.0
    • sass-loader 从 13.3.1 更新至 16.0.3
    • style-loader 从 3.3.3 更新至 4.0.0
    • tslib 从 2.5.3 更新至 2.8.1
    • typescript 从 4.8.4 更新至 5.7.2
    • webpack 从 5.93.0 更新至 5.96.1
    • 在 npm_and_yarn 组中将 micromatch 从 4.0.7 更新至 4.0.8
    • 在 npm_and_yarn 组中将 path-to-regexp 从 1.8.0 更新至 1.9.0

0.2.4

  • 合并 #65 中关于数据库连接泄漏的下游修复
  • 在 #62 中为 SDK 添加 dependabot

0.2.3

  • 添加 errorsource,更新依赖项 (#60)
  • 将 grafana-plugin-sdk-go 更新至 0.250.2 (#61)
  • 将 grafana-aws-sdk 更新至 0.31.2 (#61)

0.2.2

  • 修复文档语法

0.2.1

  • 更新 plugin.json 数据源名称以符合约定
  • 更新 README 和文档样式,并符合命名约定
  • 更新发布流程文档

0.2.0

  • 初次公共预览版发布

0.1.11 (开发者版本)

  • 对图像使用绝对路径

0.1.10 (开发者版本)

  • 更新依赖项

0.1.9 (开发者版本)

  • 添加文档

0.1.8 (面向测试客户的私有版本)

  • 添加表格 vs 时间序列格式下拉菜单支持

0.1.7 (面向测试客户的私有版本)

  • 添加 MySQL 支持并修复 Postgres 转换器问题

0.1.6 (面向测试客户的私有版本)

  • 添加对用于生成 Auth Token 的独立端口的支持

0.1.5 (面向测试客户的私有版本)

  • 添加对变量/宏的支持

0.1.4 (面向测试客户的私有版本)

  • 支持通过特定端点 Assume 角色
  • 更新 plugin-e2e

0.1.3 (面向测试客户的私有版本)

  • 移除日志行

0.1.2 (面向测试客户的私有版本)

  • 添加用于生成 Auth Token 的额外主机选项

0.1.1 (面向测试客户的私有版本)

  • 添加 Assume 角色支持
  • 添加新的配置编辑器页面
  • 临时添加日志行以便更好地调试

0.1.0 (面向测试客户的私有版本)

初次 Beta 版本发布。