使用 Amazon Redshift 无服务器监控查询和工作负载
您可使用提供的系统视图监控无服务器端点查询和工作负载。
授予监控查询的访问权限
超级用户可以向不是超级用户的用户提供访问权限,以便他们可以对所有用户执行查询监控。首先,您可以为用户或角色添加策略以提供查询监控访问权限。然后,您可以授予用户或角色查询监控权限。
添加查询监控策略
在 Access management (访问管理) 下,选择 Policies (策略)。
选择 Create Policy (创建策略)。
选择 JSON,然后粘贴以下策略定义。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "redshift-data:ExecuteStatement", "redshift-data:DescribeStatement", "redshift-data:GetStatementResult", "redshift-data:ListDatabases" ], "Resource": "*" }, { "Effect": "Allow", "Action": "redshift-serverless:GetCredentials", "Resource": "*" } ] }
如果出现以下错误消息,请忽略它。
Invalid Service In Action: The service redshift-serverless:* specified in the action does not exist.
选择 Review policy (审核策略)。
对于 Name (名称),输入策略的名称,如
query-monitoring
。选择 Create policy (创建策略)。
在 Policies(策略)下,选择您创建的策略。
在 Actions(操作)下,选择 Attach(附加)。
选择要附加该策略的用户或角色,然后选择 Attach policy(附加策略)。
授予用户查询监控权限
具有 sys:monitor
权限的用户可以查看所有查询。此外,具有 sys:operator
权限的用户可以取消查询、分析查询历史记录和执行 vacuum 操作。
输入以下命令以提供系统监控访问权限,其中 user-name 是您想要为其提供访问权限的用户的名称。
grant "sys:monitor" to "IAM:user-name";
(可选)输入以下命令以提供系统操作员访问权限,其中 user name 是您想要为其提供访问权限的用户的名称。
grant "sys:operator" to "IAM:user-name";
授予角色查询监控权限
具有 sys:monitor
权限的角色的用户可以查看所有查询。此外,具有 sys:operator
权限的角色的用户可以取消查询、分析查询历史记录和执行 vacuum 操作。
输入以下命令以提供系统监控访问权限,其中 role-name 是您想要为其提供访问权限的角色的名称。
grant "sys:monitor" to "IAMR:role-name";
(可选)输入以下命令以提供系统操作员访问权限,其中 role-name 是您想要为其提供访问权限的角色的名称。
grant "sys:operator" to "IAMR:role-name";
监控视图
Monitoring views(监控视图)是 Amazon Redshift 无服务器中用于监控查询和工作负载使用情况的系统视图。这些视图位于 pg_catalog
架构中。可用的系统视图旨在为您提供监控无服务器端点所需的信息,这比预置集群所需的信息简单。SYS 系统视图旨在与无服务器端点配合使用。要显示这些视图提供的信息,请运行 SQL SELECT 语句。
系统视图的定义是为了支持以下监控目标。
- 工作负载监控
-
您可以随时间推移监控查询活动,以便:
了解工作负载模式,这样您就可以了解正常运行状况(基准)以及业务服务级别协议(SLA)中的内容。
快速识别偏离正常运行的状况,这可能是个暂时性问题,或是需要采取进一步操作的问题。
- 数据传入和传出监控
-
进出无服务器端点的数据移动是一项关键函数。您可以使用 COPY 和 UNLOAD 来传入或传出数据,并且必须密切监控传输的字节/行数和文件的完成进度,以跟踪遵守业务 SLA 的情况。这通常是通过频繁运行系统表查询(即每分钟)来完成,以便跟踪进度,并在检测到重大偏差时发出调查/纠正操作的提示。
- 故障和问题诊断
-
某些情况下,必须对查询或运行时故障采取措施。开发人员依靠系统表自行诊断问题,并确定正确的纠正补救措施。
- 性能优化
-
您可能需要优化从一开始就不符合 SLA 要求的查询或随时间推移而降级的查询。要进行优化,您需要获得运行时详细信息,包括运行计划、统计数据、持续时间和资源消耗。您需要用于违规查询的基准数据,以确定偏差的原因并指导您如何改进。
- 用户对象事件监控
-
您需要监控用户对象上的操作和活动,例如刷新具体化视图、vacuum 和分析。这包括系统管理的事件,例如具体化视图的自动刷新。如果事件是用户启动的,您想监控事件结束时间,或者如果是系统启动的,则监控最后一次成功执行。
- 计费的使用情况跟踪
-
您可以随时间转移监控您的使用情况趋势,以便:
告知预算计划和业务扩展估计值。
确定潜在的成本节约机会,例如删除冷数据。
您无法使用 Amazon Redshift 无服务器查询 STL、STV、SVCS、SVL 以及某些 SVV 系统表和视图,但以下情况除外:
您可以查询以下 SYS 系统视图,以监控无服务器端点。