插件 〉Amazon Aurora


开发者

Grafana

注册以接收产品新闻和更新(非频繁)



数据源
grafana
企业版

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 及以上版本的企业版设计,但也可能适用于旧版本。

此插件使用带有 AWS SDK for Go 的 IAM 连接到 AWS Aurora 集群。请通读 AWS 的 “使用 IAM 身份验证和 AWS SDK for Go 连接到数据库集群”指南的先决条件部分,以确保 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 的“默认”提供程序,该提供程序支持使用基于服务的 IAM 角色。可以使用 allowed_auth_providers 字段手动启用/禁用这些提供程序。要了解有关支持的身份验证提供程序的更多信息,请参阅 CloudWatch 数据源的文档
Assume Role ARN(承担角色 ARN)一个可选字段,如果您希望上面选择的任何提供程序承担角色,则可以使用该字段。
外部 ID一个可选字段,有时在承担角色时使用
端点一个可选字段,默认情况下,所有请求都将使用 AWS SDK 中指定的任何端点。但是,如果您想覆盖此设置,可以这样做。
默认区域指定您的集群区域。
引擎选择您的集群使用的 Aurora 引擎。目前,我们提供对 PostgreSQL 和 MySQL 兼容引擎的支持。
数据库名称一个可选字段,用于创建 DSN。
数据库用户用于创建 DSN。
数据库主机用于创建 DSN(注意:建议您选择“指定只读连接”,因为 Grafana UI 中没有任何内容可以阻止写入您的数据库)。
数据库端口用于创建 DSN。

高级设置

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

  1. 使用端点通过 RDS 生成身份验证令牌
  2. 使用该令牌和您的端点打开与 DSN 的连接。

通常,这两个步骤的端点是相同的。但是,如果您的数据库集群位于负载均衡器之后,您可能需要 2 个单独的端点。对于第一步,您需要指定负载均衡器后面的端点。对于第二步,您需要为打开的 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

查询

表格与时间序列

与 Grafana 中的其他 SQL 数据源插件一样,您可以指定在查询时将数据作为“宽”时间序列还是“长”时间序列返回。这由 Format data frames as 下拉列表控制。

为了更好地解释这个概念,请考虑如下所示的表格

Using Format data frames as Table with a Table Visualization

当我们使用时间序列可视化呈现相同的查询时,我们会注意到“neighborhood”和“city”字段折叠成 1 个时间序列

Using Format data frames as Table with a Time Series Visualization

这通常是 SQL 数据源的期望行为,尤其是在使用表格可视化时。但是,有时您可能希望为每个城市/社区组合呈现单独的时间序列。为此,请在“Format data frames as”下拉列表中选择“Time series”,这将像这样呈现相同的时间序列可视化

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)

如果您对 aurora 数据源独有的宏有任何建议,请随时联系客户支持。

在 Grafana Cloud 上安装 Amazon Aurora

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

变更日志

0.4.1

  • #119 中将 github.com/grafana/grafana-plugin-sdk-go 更新到 v0.265.0

0.4.0

  • #102 中添加 PDC 支持

0.3.1

  • #104 中更新包含 12 个更新的 all-node-dependencies 组
  • #103 中更新包含 6 个更新的 all-go-dependencies 组
  • #100 中更新包含 31 个更新的 1 个目录中的 all-node-dependencies 组
  • 在 npm_and_yarn 组中将 nanoid 从 3.3.7 更新到 3.3.8,位于 #93
  • #101 中更新包含 8 个更新的 1 个目录中的 all-go-dependencies 组

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(面向测试客户的私有版本)

  • 添加对表格与时间序列格式下拉列表的支持

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

  • 添加对 mysql 的支持并修复 postgres 转换器的问题

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

  • 添加对用于生成身份验证令牌的单独端口的支持

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

  • 添加对变量/宏的支持

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

  • 支持承担具有特定端点的角色
  • 更新 plugin-e2e

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

  • 移除日志行

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

  • 为生成身份验证令牌添加额外的 host 选项

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

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

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

初始 Beta 版本。