监视 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 计数 失败的连接数。
成功连接数 connections_succeeded 计数 成功的连接数。
已用 CPU 额度 ^ cpu_credits_consumed 计数 灵活服务器使用的额度。 应用到可突发层。
剩余 CPU 积分 ^ cpu_credits_remaining 计数 可用于突发的额度。 应用到可突发层。
CPU 百分比 cpu_percent 百分比 使用的 CPU 百分比。
数据库大小 database_size_bytes 字节 数据库大小(以字节为单位)。
磁盘队列深度 ^ disk_queue_depth 计数 数据磁盘未完成的 I/O 操作数。
IOPS iops 计数 磁盘每秒的 I/O 操作数。
最大已用事务 ID 数 maximum_used_transactionIDs 计数 正在使用的最大事务 ID 数。
内存百分比 memory_percent 百分比 使用的内存百分比。
网络流出量 network_bytes_egress 字节 所选时间段内服务器上的传出网络流量的总和。 此指标包括来自数据库以及 Azure Database for Postgres 灵活服务器的传出流量,包括监视、日志、WAL 存档、复制等功能。
网络流入量 network_bytes_ingress 字节 所选时间段内服务器上的传入网络流量的总和。 此指标包括流入你数据库以及 Azure Database for PostgresSQL 灵活服务器的流量,涵盖监控、日志、WAL 归档、复制等功能。
读取 IOPS ^ read_iops 计数 每秒数据磁盘 I/O 读取操作数。
读取吞吐量 ^ read_throughput 字节 每秒从磁盘读取的字节数。
剩余存储空间 storage_free 字节 可用的存储空间量。
存储百分比 storage_percent 百分比 已使用的存储空间百分比。 服务使用的存储可以包括数据库文件、事务日志和服务器日志。
已用的存储量 storage_used 字节 已使用的存储空间量。 服务使用的存储可以包括数据库文件、事务日志和服务器日志。
事务日志已用的存储量 txlogs_storage_used 字节 事务日志使用的存储空间量。
写入吞吐量 ^ write_throughput 字节 每秒写入磁盘的字节数。
写入 IOPS ^ write_iops 计数 每秒数据磁盘 I/O 写入操作数。

注意

使用 ^ 标记的指标每分钟发出一次,但会以每 5 分钟为一批进行处理和显示。 这会导致指标可见性延迟长达 5 分钟。 在这些指标上创建警报时,请考虑到此延迟,以确保准确及时的警报。

增强式指标

可以使用 Azure Database for PostgreSQL 灵活服务器的增强指标来对数据库进行精细监视和警报。 每个指标以 1 分钟 间隔发出,最长 保留期为 93 天。 可针对指标配置警报。 一些增强的指标包括一个 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 计数 连接到此数据库的后端数。 数据库名称
死锁 deadlocks 计数 在此数据库中检测到的死锁数。 数据库名称
磁盘块命中 blks_hit 计数 在缓冲区缓存中已找到磁盘块的次数,因此无需进行读取。 数据库名称
磁盘块读取 blks_read 计数 在此数据库中读取的磁盘块数。 数据库名称
临时文件 temp_files 计数 此数据库中由查询创建的临时文件数。 数据库名称
临时文件大小 temp_bytes 字节 由此数据库中的查询写入到临时文件的数据总量。 数据库名称
事务总数 xact_total 计数 在此数据库中执行的事务总数。 数据库名称
已提交的事务数 xact_commit 计数 在此数据库中已提交的事务数。 数据库名称
每秒事务数 tps 计数 一秒内执行的交易数量。 数据库名称
回滚的事务 xact_rollback 计数 在此数据库中回滚的事务数。 数据库名称
已删除的元组数 tup_deleted 计数 此数据库中由查询删除的行数。 数据库名称
已提取的元组数 tup_fetched 计数 此数据库中由查询提取的行数。 数据库名称
已插入的元组数 tup_inserted 计数 由此数据库中的查询插入的行数。 数据库名称
返回的元组数 tup_returned 计数 此数据库中由查询返回的行数。 数据库名称
已更新的元组数 tup_updated 计数 由此数据库中的查询更新的行数。 数据库名称
逻辑复制
显示名称 指标 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 的百分比。 不适用
Postmaster 进程 cpu 使用率(预览版) postmaster_process_cpu_usage_percent 百分比 Postmaster 进程的 CPU 使用率。 不适用于可突发 SKU。 不适用

注意

使用 ^ 标记的指标每分钟发出一次,但会以每 5 分钟为一批进行处理和显示。 这会导致指标可见性延迟长达 5 分钟。 在这些指标上创建警报时,请考虑到此延迟,以确保准确及时的警报。

交通
显示名称 指标 ID 单位 说明 维度 默认启用
最大连接数 ** max_connections 计数 最大连接数。 不适用
TCP 连接积压(预览版) tcp_connection_backlog 计数 等待服务器处理的挂起的 TCP 连接数。 不适用

** 最大连接数表示为 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 指标可用于监视和优化 Azure Database for PostgreSQL 灵活服务器的自动清理性能。 每个指标以 30 分钟的 间隔发出,最长 保留期为 93 天。 可以为特定指标创建警报,并且可以使用 DatabaseName 维度拆分和筛选指标数据。

如何启用 autovacuum 指标

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

autovacuum 指标列表

显示名称 指标 ID 单位 说明 维度 默认启用
分析计数器用户表 analyze_count_user_tables 计数 用户专用表在此数据库中被手动分析的次数。 数据库名称
AutoAnalyze 计数器用户表 autoanalyze_count_user_tables 计数 此数据库中由 autovacuum 守护程序分析的仅用户表数。 数据库名称
AutoVacuum 计数器用户表 autovacuum_count_user_tables 计数 此数据库中已由自动清空守护程序对仅限用户表进行清空的次数。 数据库名称
膨胀百分比 bloat_percent 百分比 仅限用户的表的估计膨胀百分比。 数据库名称
估计的死行用户表数 n_dead_tup_user_tables 计数 在此数据库中仅用户表的估计死行数。 数据库名称
估计的存活行用户表数 n_live_tup_user_tables 计数 在此数据库中仅用户表的估计存活行数。 数据库名称
估计的修改用户表 n_mod_since_analyze_user_tables 计数 自上次分析仅限用户表以来已修改的估计行数。 数据库名称
已分析的用户表数 tables_analyzed_user_tables 计数 此数据库中已分析的仅限用户表的数目。 数据库名称
自动分析的用户表 tables_autoanalyzed_user_tables 计数 此数据库中的自动清理守护程序分析的“仅用户”表数。 数据库名称
已自动清空的用户表数 tables_autovacuumed_user_tables 计数 此数据库中已由自动清空守护程序清空的仅限用户表的数目。 数据库名称
用户表计数器 tables_counter_user_tables 计数 此数据库中仅用于用户的表的数量。 数据库名称
清空的用户表 tables_vacuumed_user_tables 计数 此数据库中已清空的仅限用户表的数目。 数据库名称
真空计数器用户表 vacuum_count_user_tables 计数 在此数据库中手动清理“仅用户”表的次数(不统计 VACUUM FULL)。 数据库名称

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

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

PgBouncer 指标

可以使用 PgBouncer 指标监视 PgBouncer 进程的性能,包括活动连接、空闲连接、共用连接总数和连接池数的详细信息。 每个指标以 1 分钟 间隔发出,最长 保留期为 93 天。 客户可以针对指标配置警报,还可以访问新的指标维度,以按数据库名称拆分和筛选指标数据。

如何启用 PgBouncer 指标

  • 若要监视 PgBouncer 指标,请确保通过服务器参数 启用 pgbouncer.enabled 功能,并确保指标参数 metrics.pgbouncer_diagnostics 已启用。
  • 这些参数是动态的,不需要重启实例。
  • PgBouncer 指标已默认禁用。

PgBouncer 指标列表

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

有关使用 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 指标显示为一行。 可以看到根据状态值分组的每个会话的单独行。 对“状态”维度应用拆分,以便查看单独的行。

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

显示对指标和维度进行拆分和筛选示例的屏幕截图。

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

指标可视化

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

组件 说明 所需的培训和/或配置
概述页 大多数 Azure 服务将在 Azure 门户中有一个概述页面,其中包括一个监视器部分,其中的图表显示最新的关键指标。 此信息适用于单个服务的所有者,可快速评估资源的性能。 此页面基于自动收集的平台指标。 不需要任何配置。
指标浏览器 使用指标资源管理器,能以交互方式处理指标数据并创建指标警报。 你只需要接受很少培训便可使用指标资源管理器,但是你必须很熟悉自己想要分析的指标。 - 配置数据收集后,无需进行其他配置。
- Azure 资源的平台指标自动可用。
- 在将 Azure Monitor 代理部署到虚拟机后,可获取虚拟机的访客指标。
- 配置 Application Insights 后,可以使用应用程序指标。
Grafana 可以使用 Grafana 对指标进行可视化和预警操作。 Grafana 的所有版本都包含 Azure Monitor 数据源插件,可用于可视化 Azure Monitor 指标和日志。 要熟悉 Grafana 仪表板,需要接受一些培训。 但是,可通过下载预生成的 Azure Database for PostgreSQL 灵活服务器 grafana 监视仪表板来简化此过程,通过该仪表板可轻松监视组织中的所有 Azure Database for PostgreSQL 灵活服务器实例。

日志

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

日志可视化效果

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

服务器日志

Azure Database for PostgreSQL 灵活服务器中的服务器日志功能允许用户启用、配置和下载服务器日志,这对于排查问题和执行服务器活动的历史分析至关重要。 默认情况下,Azure Database for PostgreSQL 灵活服务器中的服务器日志功能处于禁用状态。 然而,在启用此功能后,Azure Database for PostgreSQL 灵活服务器将开始捕获所选日志类型的事件并将其写入文件。 然后,你可使用 Azure 门户或 Azure CLI 下载文件,以帮助进行故障排除。

服务器日志保留期

服务器日志的最小保留期为 1 天,最长保留期为 7 天。 如果超出此限制,系统将删除最旧的日志,为新日志腾出空间。 有关启用和管理服务器日志的详细信息,请参阅配置捕获 PostgreSQL 服务器日志和主要版本升级日志