监视 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 百分比。 | 是 |
数据库大小 | database_size_bytes |
字节 | 数据库大小(以字节为单位)。 | 是 |
磁盘队列深度 | disk_queue_depth |
计数 | 数据磁盘未完成的 I/O 操作数。 | 是 |
IOPS | iops |
计数 | 磁盘每秒的 I/O 操作数。 | 是 |
最大已用事务 ID 数 | maximum_used_transactionIDs |
Count | 正在使用的最大事务 ID 数。 | 是 |
内存百分比 | memory_percent |
百分比 | 使用的内存百分比。 | 是 |
网络传出 | network_bytes_egress |
字节 | 所选时间段内服务器上的传出网络流量的总和。 此指标包括来自数据库以及 Azure Database for Postgres 灵活服务器的传出流量,包括监视、日志、WAL 存档、复制等功能。 | 是 |
网络传入 | network_bytes_ingress |
字节 | 所选时间段内服务器上的传入网络流量的总和。 此指标包括发往数据库以及 Azure Database for Postgres 灵活服务器的传入流量,包括监视、日志、WAL 存档、复制等功能。 | 是 |
读取 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
视图后,筛选掉datname
为template1
或template0
的行(按照datid
排序),并将返回的行限制为前 50 行(在可突发 SKU 的情况下为 10),该结果集中的数据库名称的指标(除了contoso_database
和Contoso_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.enabled
启用 pgbouncer 功能,并确保指标参数metrics.pgbouncer_diagnostics
已启用。 - 这些参数是动态的,不需要重启实例。
- PgBouncer 指标已默认禁用。
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 值分组的每个会话的单独行。 对“状态”维度应用拆分,以查看单独的行。
以下示例演示了按“状态”维度进行拆分和按特定“状态”值进行筛选:
有关为维度指标设置图标的详细信息,请参阅指标图表示例。
指标可视化
有多个选项可用于可视化 Azure Monitor 指标。
组件 | 说明 | 所需的培训和/或配置 |
---|---|---|
概述页 | 大多数 Azure 服务将在 Azure 门户中有一个概述页面,其中包括一个监视器部分,其中的图表显示最新的关键指标。 此信息适用于单个服务的所有者,可快速评估资源的性能。 | 此页面基于自动收集的平台指标。 不需要任何配置。 |
指标资源管理器 | 使用指标资源管理器,能以交互方式处理指标数据并创建指标警报。 你只需要接受很少培训便可使用指标资源管理器,但是你必须很熟悉自己想要分析的指标。 | - 配置数据收集后,无需进行其他配置。 - Azure 资源的平台指标自动可用。 - 将 Azure Monitor 代理部署到虚拟机后,虚拟机即可使用来宾指标。 - 配置 Application Insights 后,可以使用应用程序指标。 |
日志
除了指标,还可以使用 Azure Database for PostgreSQL 灵活服务器来配置和访问 Azure Database for PostgreSQL 标准日志。 有关详细信息,请参阅记录概念。
日志可视化效果
组件 | 说明 | 所需的培训和/或配置 |
---|---|---|
Log Analytics | 使用 Log Analytics,用户可以创建日志查询,从而以交互方式处理日志数据并创建日志查询警报。 | 若要熟悉查询语言,需要进行一些培训,不过可以使用预先构建的查询来满足日常要求。 |
后续步骤
- 详细了解如何配置和访问日志。
- 详细了解 Azure Monitor 定价。
- 详细了解审核日志。