监视 Azure Database for PostgreSQL 灵活服务器上的指标

适用于:Azure Database for PostgreSQL 灵活服务器

监视服务器的相关数据有助于排查工作负荷故障及优化工作负荷。 Azure Database for PostgreSQL 灵活服务器提供各种监视选项,以便深入了解服务器的运行情况。

指标

Azure Database for PostgreSQL 灵活服务器提供各种指标,用于深入了解支持 Azure Database for PostgreSQL 灵活服务器实例的资源的行为。 每项指标以 1 分钟间隔发出,并具有最长为 93 天的历史记录。 可针对指标配置警报。 其他选项包括设置自动操作、执行高级分析和存档历史记录。 有关详细信息,请参阅 Azure 指标概述

注意

虽然指标会存储 93 天,但你只能在任意单个图表上查询最多 30 天的数据(在“指标”磁贴中)。 如果显示空白图表,或图表仅显示部分指标数据,请验证时间选取器中开始日期和结束日期之间的间隔是否不超过 30 天。 选择 30 天间隔后,可以平移图表以查看完整的保留期窗口。

默认指标

以下指标可用于 Azure Database for PostgreSQL 灵活服务器实例:

显示名称 指标 ID 计价单位 说明 默认启用
活动连接数 active_connections 计数 与数据库服务器的连接总数,包括所有连接状态(如活动、空闲等),如 pg_stat_activity 视图中所示。 此图表示所有状态的连接的总和,而不区分特定状态。 有关特定状态(例如活动连接)的深入分析,请参阅“按状态划分的会话”指标。
使用的备份存储 backup_storage_used 字节 使用的备份存储量。 此指标表示按为服务器设置的备份保留期保留的所有完整备份、差异备份和日志备份所使用的存储总和。 备份的频率由服务进行管控。 对于异地冗余存储,备份存储使用量是本地冗余存储的两倍。
失败的连接数 connections_failed Count 失败的连接数。
成功连接数 connections_succeeded Count 成功的连接数。
已用 CPU 信用额度 cpu_credits_consumed 计数 灵活服务器使用的额度。 适用于可突发层。
剩余 CPU 信用额度 cpu_credits_remaining 计数 可用来集中使用的额度。 适用于可突发层。
CPU 百分比 cpu_percent 百分比 使用的 CPU 百分比。
磁盘队列深度 disk_queue_depth 计数 数据磁盘未完成的 I/O 操作数。
IOPS iops 计数 磁盘每秒的 I/O 操作数。
最大已用事务 ID 数 maximum_used_transactionIDs Count 正在使用的最大事务 ID 数。
内存百分比 memory_percent 百分比 使用的内存百分比。
网络传出 network_bytes_egress 字节 传出的网络流量。
网络传入 network_bytes_ingress 字节 传入的网络流量。
读取 IOPS read_iops 计数 每秒数据磁盘 I/O 读取操作数。
读取吞吐量 read_throughput 字节 每秒从磁盘读取的字节数。
可用存储 storage_free 字节 可用的存储空间量。
存储百分比 storage_percent 百分比 已使用的存储空间百分比。 服务使用的存储可以包括数据库文件、事务日志和服务器日志。
已用的存储量 storage_used 字节 已使用的存储空间量。 服务使用的存储可以包括数据库文件、事务日志和服务器日志。
事务日志已用的存储量 txlogs_storage_used 字节 事务日志使用的存储空间量。
写入吞吐量 write_throughput 字节 每秒写入磁盘的字节数。
写 IOPS write_iops 计数 每秒数据磁盘 I/O 写入操作数。

增强式指标

可以使用 Azure Database for PostgreSQL 灵活服务器的增强指标来对数据库进行精细监视和警报。 可针对指标配置警报。 一些增强的指标包括一个 Dimension 参数,可以使用该参数通过数据库名称或状态等维度来拆分和筛选指标数据。

启用增强式指标

  • 默认情况下,大多数新指标处于“已禁用”状态。 不过,默认情况下会启用一些例外情况。 下表中最右侧的列指示默认情况下是否启用每个指标。
  • 若要启用默认情况下未启用的指标,请将服务器参数 metrics.collector_database_activity 设置为 ON。 此参数是动态的,不需要重启实例。
增强式指标的列表

可以从以下类别的增强型指标中进行选择:

  • 活动
  • 数据库
  • 逻辑复制
  • 复制
  • 饱和度
  • 交通
活动
显示名称 指标 ID 计价单位 说明 维度 默认启用
按状态列出的会话数 sessions_by_state 计数 按状态划分的会话,如 pg_stat_activity 视图中所示。 它将客户端后端分类为各种状态,例如活动或空闲。 状态
按 WaitEventType 列出的会话数 sessions_by_wait_event_type 计数 按客户端后端正在等待的事件类型划分的会话。 等待事件类型
最早的后端 oldest_backend_time_sec 最旧后端(无论状态如何)的期限(以秒为单位)。 不适用
最早的查询 longest_query_time_sec 当前正在运行的最长查询的期限(以秒为单位)。 不适用
最早的事务 longest_transaction_time_sec 最长事务(包括空闲事务)的期限(以秒为单位)。 不适用
最早的 xmin oldest_backend_xmin 计数 最早 xmin 的实际值。 如果 xmin 未增加,则指示存在一些长期运行事务可能会阻止移除死元组。 不适用
最早的 xmin 期限 oldest_backend_xmin_age 计数 最早 xmin 的期限(以单元为单位)。 指示自最早 xmin 以来传递的事务数。 不适用
数据库
显示名称 指标 ID 计价单位 说明 维度 默认启用
后端 numbackends 计数 连接到此数据库的后端数。 DatabaseName
死锁 deadlocks Count 在此数据库中检测到的死锁数。 DatabaseName
磁盘块命中 blks_hit 计数 在缓冲区缓存中已找到磁盘块的次数,因此无需进行读取。 DatabaseName
磁盘块读取 blks_read 计数 在此数据库中读取的磁盘块数。 DatabaseName
临时文件 temp_files 计数 此数据库中由查询创建的临时文件数。 DatabaseName
临时文件大小 temp_bytes 字节 此数据库中由查询写入到临时文件的数据总量。 DatabaseName
事务总数 xact_total 计数 在此数据库中执行的事务总数。 DatabaseName
提交的事务数 xact_commit 计数 此数据库中已提交的事务数。 DatabaseName
每秒事务数(预览版) tps 计数 一秒内执行的事务数。 DatabaseName
回滚的事务数 xact_rollback 计数 此数据库中已回滚的事务数。 DatabaseName
已删除的元组 tup_deleted 计数 此数据库中由查询删除的行数。 DatabaseName
已提取的元组 tup_fetched 计数 此数据库中由查询提取的行数。 DatabaseName
已插入的元组 tup_inserted 计数 此数据库中由查询插入的行数。 DatabaseName
已返回的元组 tup_returned 计数 此数据库中由查询返回的行数。 DatabaseName
已更新的元组 tup_updated 计数 此数据库中由查询更新的行数。 DatabaseName
逻辑复制
显示名称 指标 ID 计价单位 说明 维度 默认启用
最大逻辑复制延迟 logical_replication_delay_in_bytes 字节 所有逻辑复制槽的最大延迟。 不适用
复制
显示名称 指标 ID 计价单位 说明 维度 默认启用
最大物理复制延迟 physical_replication_delay_in_bytes 字节 所有异步物理复制槽的最大延迟。 不适用
只读副本延迟 physical_replication_delay_in_seconds 只读副本延迟(以秒为单位)。 不适用
饱和度
显示名称 指标 ID 计价单位 说明 维度 默认启用
已使用的磁盘带宽百分比 disk_bandwidth_consumed_percentage 百分比 每分钟使用的数据磁盘带宽的百分比。 不适用
已使用的磁盘 IOPS 百分比 disk_iops_consumed_percentage 百分比 每分钟使用的数据磁盘 I/O 的百分比。 不适用
交通
显示名称 指标 ID 计价单位 说明 维度 默认启用
最大连接数 ^ max_connections Count 最大连接数。 不适用

^ 最大连接数表示为 max_connections 服务器参数配置的值。 此指标每 30 分钟被轮询一次。

有关使用增强型指标的注意事项
  • 使用 DatabaseName 维度的增强型指标限制为 50 个数据库
  • 可突发 SKU 上,使用 DatabaseName 维度的指标的限制为 10 个数据库。
  • DatabaseName 维度限制应用于 pg_stat_database 系统视图的数据库标识符 (datid) 列,这反映了数据库的创建顺序。
  • 指标维度中的 DatabaseName 不区分大小写。 这意味着,在查询 pg_stat_database 视图后,筛选掉 datnametemplate1template0 的行(按照 datid 排序),并将返回的行限制为前 50 行(在可突发 SKU 的情况下为 10),该结果集中的数据库名称的指标(除了 contoso_databaseContoso_database 等情况外均相同)将合并,并且可能不会显示准确的数据。

Autovacuum 指标

Autovacuum 指标可用于监视和优化 Azure Database for PostgreSQL 灵活服务器的 autovacuum 性能。 每项指标以 30 分钟的间隔发出,保留期最多为 93 天。 可以为特定指标创建警报,并且可以使用 DatabaseName 维度拆分和筛选指标数据。

如何启用 autovacuum 指标

  • 默认情况下,自动清空指标处于禁用状态。
  • 要启用这些指标,请将 metrics.autovacuum_diagnostics 服务器参数设置为“ON”。
  • 此参数是动态的,因此不需要重启实例。

自动清空指标列表

显示名称 指标 ID 计价单位 说明 维度 默认启用
分析计数器用户表 analyze_count_user_tables 计数 此数据库中已对仅限用户表进行手动分析的次数。 DatabaseName
AutoAnalyze 计数器用户表 autoanalyze_count_user_tables 计数 此数据库中已由自动清空守护程序对仅限用户表进行分析的次数。 DatabaseName
AutoVacuum 计数器用户表 autovacuum_count_user_tables 计数 此数据库中已由自动清空守护程序对仅限用户表进行清空的次数。 DatabaseName
估计的死行用户表 n_dead_tup_user_tables 计数 此数据库中仅限用户表的估计死行数。 DatabaseName
估计的实时行用户表 n_live_tup_user_tables 计数 此数据库中仅限用户表的估计实时行数。 DatabaseName
估计的修改用户表 n_mod_since_analyze_user_tables 计数 自上次分析仅限用户表以来已修改的估计行数。 DatabaseName
分析的用户表 tables_analyzed_user_tables 计数 此数据库中已分析的仅限用户表的数目。 DatabaseName
自动分析的用户表 tables_autoanalyzed_user_tables 计数 此数据库中已由自动清空守护程序分析的仅限用户表的数目。 DatabaseName
自动清空的用户表 tables_autovacuumed_user_tables 计数 此数据库中已由自动清空守护程序清空的仅限用户表的数目。 DatabaseName
用户表计数器 tables_counter_user_tables 计数 此数据库中仅限用户表的数目。 DatabaseName
清空的用户表 tables_vacuumed_user_tables 计数 此数据库中已清空的仅限用户表的数目。 DatabaseName
清空计数器用户表 vacuum_count_user_tables 计数 此数据库中已手动清空仅限用户表的次数(未计入 VACUUM FULL)。 DatabaseName

有关使用自动清空指标的注意事项

  • 使用 DatabaseName 维度的自动清空指标限制为 30 个数据库
  • 可突发 SKU 上,使用 DatabaseName 维度的指标的限制为 10 个数据库。
  • DatabaseName 维度限制适用于 OID 列,这反映了数据库的创建顺序。

PgBouncer 指标

可以使用 PgBouncer 指标监视 PgBouncer 进程的性能,包括活动连接、空闲连接、共用连接总数和连接池数的详细信息。 每项指标间隔 1 分钟发出一次,并具有长达 93 天的历史记录。 客户可以针对指标配置警报,还可以访问新的指标维度,以按数据库名称拆分和筛选指标数据。

如何启用 PgBouncer 指标

  • PgBouncer 指标已默认禁用。
  • 要使 Pgbouncer 指标正常工作,必须同时启用服务器参数 pgbouncer.enabledmetrics.pgbouncer_diagnostics
  • 这些参数是动态的,不需要重启实例。

PgBouncer 指标列表

显示名称 指标 ID 计价单位 说明 维度 默认启用
活动客户端连接 client_connections_active 计数 与 Azure Database for PostgreSQL 灵活服务器连接关联的客户端的连接。 DatabaseName
等待状态的客户端连接 client_connections_waiting 计数 来自等待 Azure Database for PostgreSQL 灵活服务器连接为其提供服务的客户端的连接。 DatabaseName
活动服务器连接 server_connections_active 计数 客户端连接正在使用的 Azure Database for PostgreSQL 灵活服务器连接。 DatabaseName
空闲服务器连接 server_connections_idle 计数 连接到 Azure Database for PostgreSQL 灵活服务器的连接处于空闲状态,可随时为新客户端连接提供服务。 DatabaseName
共用连接总数 total_pooled_connections 计数 当前共用连接数。 DatabaseName
连接池数 num_pools 计数 连接池总数。 DatabaseName

有关使用 PgBouncer 指标的注意事项

  • 使用 DatabaseName 维度的 PgBouncer 指标限制为 30 个数据库
  • 可突发 SKU 上,限制为具有 DatabaseName 维度的 10 个数据库。
  • DatabaseName 维度限制适用于 OID 列,这反映了数据库的创建顺序。

数据库可用性指标

Is-db-alive 是 Azure Database for PostgreSQL 灵活服务器的数据库服务器可用性指标,它返回 [1 for available][0 for not-available]。 每项指标以 1 分钟的间隔发出,保留期最多为 93 天。 客户可以根据指标配置警报。

显示名称 指标 ID 计价单位 说明 维度 默认启用
数据库处于活动状态 is_db_alive 计数 指示数据库是否正常运行。 不适用

使用数据库可用性指标的注意事项

  • 通过 MAX() 聚合此指标,客户可以确定是否已在最后一刻启动或关闭服务器。
  • 客户可以选择按任何所需频率(5 分钟、10 分钟、30 分钟等)进一步聚合这些指标,以满足其警报要求并避免任何误报。
  • 其他可能的聚合有 AVG()MIN()

筛选和拆分维度指标

在前面的表中,一些指标具有 DatabaseName 或 State 等维度。 可以对具有维度的指标使用筛选拆分。 这些功能会显示各种指标段(或维度值)如何影响指标的整体值。 可以使用它们来标识可能的离群值。

  • 筛选:使用筛选可以选择要包含在图表中的维度值。 例如,在绘制 Sessions-by-State 指标的图表时,你可能想要显示空闲的连接。 在“状态”维度中为“空闲”设置筛选器。
  • 拆分:使用拆分可以控制图表是针对维度的每个值显示单独的行,还是将值聚合为一行。 例如,可在所有会话中将 Sessions-by-State 指标显示为一行。 可以看到按 State 值分组的每个会话的单独行。 对“状态”维度应用拆分,以查看单独的行。

以下示例演示了按“状态”维度进行拆分和按特定“状态”值进行筛选:

Screenshot that shows an example of splitting and filtering on metrics and dimensions.

有关为维度指标设置图标的详细信息,请参阅指标图表示例

指标可视化

有多个选项可用于可视化 Azure Monitor 指标。

组件 说明 所需的培训和/或配置
概述页 大多数 Azure 服务将在 Azure 门户中有一个“概述”页面,其中包括一个“监视器”部分,其中的图表显示最新的关键指标。 此信息适用于单个服务的所有者,可快速评估资源的性能。 此页面基于自动收集的平台指标。 不需要任何配置。
指标资源管理器 使用指标资源管理器,能以交互方式处理指标数据并创建指标警报。 你只需要接受很少培训便可使用指标资源管理器,但是你必须很熟悉自己想要分析的指标。 - 配置数据收集后,无需进行其他配置。
- Azure 资源的平台指标自动可用。
- 将 Azure Monitor 代理部署到虚拟机后,虚拟机即可使用来宾指标。
- 配置 Application Insights 后,可以使用应用程序指标。

日志

除了指标,还可以使用 Azure Database for PostgreSQL 灵活服务器来配置和访问 Azure Database for PostgreSQL 标准日志。 有关详细信息,请参阅记录概念

日志可视化效果

组件 说明 所需的培训和/或配置
Log Analytics 使用 Log Analytics,用户可以创建日志查询,从而以交互方式处理日志数据并创建日志查询警报。 若要熟悉查询语言,需要进行一些培训,不过可以使用预先构建的查询来满足日常要求。

后续步骤