数据解析

本文介绍数据模型、数据存储模式及其对应的数据详细说明。

数据模型及存储模式

为了让数据更灵活的在PolarDB PostgreSQL版(兼容Oracle)数据库和时序数据库中进行存储,阿里云对监控数据模型进行了抽象,与数据仓库的基本概念一样,会为每一个主题的数据单独建立一张表,称之为数据模型。该表具有三种类型的列:维度列、指标列和时间列,其中指标列即为采集指标,为数值类型;维度列是对应指标列的描述,一般为字符串类型,在时序数据库中其表现形式为taglabel字段。

在实际存储中,所有监控数据均存储在postgres库中的polar_gawr_collection模式下:

  • fact_开头的表即为一个数据模型,维度列、指标列和时间列分别有以下对应关系:

    • tag开头的列,为维度列,一般为TEXT类型,如果为INTEGER类型,则会和对应的维度表相关联。

    • value_开头的列,为指标列,为INT8类型。

    • time列为时间列,存储秒级时间戳,使用to_timestamp函数可以还原出可读时间。

  • dim_开头的表为维度表,其可与对应fact表中的对应列相关联,其中dim_ins_info维度表较为特殊,它会与每一个fact表的tag_ins_info列相关联,标识采集元信息。

  • agg_开头的表为fact表的聚合表,其末尾表示聚合粒度,单位为秒。

  • view_开头的是视图,它会将fact_表和dim_表做好关联,如果需要查询,只需查视图即可。

示例

polar_stat_process为例,在postgres库的polar_gawr_collection模式下存在如下表fact_polar_stat_process

select * from polar_gawr_collection.fact_polar_stat_process limit 1;

显示结果如下:

-[ RECORD 1 ]-----------------+-----------
tag_backend_type              | 2
tag_ins_info                  | 3
time                          | 1645010019
value_backend_num             | 1
value_cpu_sys                 | 0.1
value_cpu_user                | 0.1
value_local_read_ps           | 0
value_local_read_throughput   | 0
value_local_write_ps          | 0
value_local_write_throughput  | 0
value_rss                     | 2
value_shared_read_ps          | 0
value_shared_read_throughput  | 0
value_shared_write_ps         | 0
value_shared_write_throughput | 0

value_开头的列为指标列。tag_开头的列为维度列,INTEGER类型的维度列可以和dim_polar_stat_process_backend_type的ID列做关联:

select * from polar_gawr_collection_db_lq$pg$2.dim_polar_stat_process_backend_type where id = 2;

显示结果如下:

-[ RECORD 1 ]+---------------------------
id           | 2
backend_type | background logindex writer

可以在view_fact_polar_stat_process表查看已关联好的结果。

select * from polar_gawr_collection.view_fact_polar_stat_process limit 1;

显示结果如下:

-[ RECORD 1 ]-----------+----------------------------------------------
logical_ins_name        | xxxxxx
physical_ins_name       | xxxxxxxxxxx
host                    | xxxxxxxxx
port                    | xxxx
role                    | Standby
version                 | release date: 20211231, polar version: 1.1.20
backend_type            | background logindex writer
time                    | 1645010019
shared_write_ps         | 0
shared_write_throughput | 0
backend_num             | 1
cpu_sys                 | 0.1
local_write_ps          | 0
local_write_throughput  | 0
local_read_ps           | 0
shared_read_ps          | 0
local_read_throughput   | 0
rss                     | 2
shared_read_throughput  | 0
cpu_user                | 0.1

数据详细说明

采集到的监控信息保存在数据库的表内,包括等待事件统计、数据库IO及延迟分布、各后端进程的资源统计等信息。每一类监控信息对应一张数据表,每张数据表包含维度列和指标列。

dbmetrics

dbmetrics展示了采集到的数据库系统资源消耗情况及基本监控项,其指标和描述如下:

指标

周期

单位

说明

CPU

cpu_total_usage

5s

%

CPU总使用率。

cpu_user_usage

5s

%

用户态CPU使用率。

cpu_sys_usage

5s

%

系统态CPU使用率。

内存

mem_total_usage

5s

%

内存使用率。

mem_total_used

5s

MB

内存使用量。

mem_rss

5s

MB

RSS使用量。

mem_cache

5s

MB

Cache使用量。

mem_mapped_file

5s

MB

mapped_file使用量。

mem_inactiverss

5s

MB

inactive rss使用量。

mem_inactivecache

5s

MB

inactive cache使用量。

文件系统

fs_size_total

5s

MB

空间总量。

fs_size_used

5s

MB

空间使用量。

fs_size_usage

5s

%

空间使用率。

fs_inodes_total

5s

inode总量。

fs_inodes_used

5s

inode使用量。

fs_inodes_usage

5s

%

inode使用率。

polar_base_dir_size

5s

MB

数据目录空间大小。

polar_wal_dir_size

5s

MB

WAL目录空间大小。

连接状态

active_connections

5s

活跃连接数。

waiting_connections

5s

等待状态的连接数。

等待事件

client_waits

5s

等待客户端进程数。

lwlock_waits

5s

lwlock等待进程数。

io_waits

5s

等待IO进程数。

lock_waits

5s

lock等待进程数。

extension_waits

5s

插件等待进程数。

ipc_waits

5s

处于进程间通信的进程数。

timeout_waits

5s

等待超时的进程数量。

bufferpin_waits

5s

等待bufferpin的进程数量。

cpu_waits

5s

使用CPU的进程数量。

activity_waits

5s

当前处于空闲状态,等待变成活跃状态的进程数量。

事务数

commits_delta

5s

提交的事务数。

rollbacks_delta

5s

回滚的事务数。

事务状态

active_transactions

5s

活跃事务数。

idle_transactions

5s

空闲事务数。

waiting_transactions

5s

等待状态的事务数。

idle_connections

5s

空闲连接数。

two_pc_transactions

5s

两阶段事务数。

swell_time

5s

膨胀点:当前最长事务持续时间。

SQL

deadlocks_delta

5s

死锁数量。

conflicts_delta

5s

由于恢复冲突导致取消的查询数量。

数据库处理行数

tup_returned_delta

5s

扫描行数。

tup_fetched_delta

5s

返回行数。

tup_inserted_delta

5s

插入行数。

tup_updated_delta

5s

更新行数。

tup_deleted_delta

5s

删除行数。

临时文件

temp_files_delta

5s

临时文件个数。

temp_bytes_delta

5s

字节

临时文件字节数。

数据库buffer

blks_hit_delta

5s

命中缓存block数量。

blks_read_delta

5s

物理读次数。

buffers_backend_delta

5s

backend写buffer数量。

buffers_alloc_delta

5s

buffer分配数量。

buffers_backend_fsync_delta

5s

backend fsync buffer数。

buffers_checkpoint_delta

5s

checkpoint写buffer数量。

buffers_clean_delta

5s

bgwriter写buffer数量。

polar_dirtypage_size

5s

buffer脏页数量。

polar_copybuffer_used_size

5s

copy buffer使用数量。

polar_copybuffer_isfull

5s

N/A

copy buffer是否满。

checkpoint

checkpoint_sync_time_delta

5s

checkpoint sync时间。

checkpoints_timed_delta

5s

定时checkpoint次数。

checkpoint_write_time_delta

5s

checkpoint write时间。

checkpoints_req_delta

5s

主动请求checkpoint次数。

logindex_mem_tbl_size

5s

logindex table个数。

数据库年龄

db_age

5s

xid

数据库年龄。

复制

replay_latency_in_mb

5s

MB

备库回放延迟。

send_latency_in_mb

5s

MB

主库发送延迟。

ap_cp_latency_mb

5s

MB

回放位点与一致性位点差距。

wp_ap_latency_mb

5s

MB

写入位点与回放位点差距。

wp_cp_latency_mb

5s

MB

写入位点与一致性位点差距。

polar_stat_process

polar_stat_process展示了采集的系统资源消耗统计信息,展示的维度包括:

维度

说明

process_type

进程类型。

资源统计信息的指标信息如下:

指标

采集周期

单位

说明

cpu_user

10s

%

用户态CPU。

cpu_sys

10s

%

系统态CPU。

rss

10s

MB

RSS(实际内存占用大小)。

share_read_ps

10s

共享存储读次数。

share_read_throughput

10s

MB

共享存储读吞吐。

share_write_ps

10s

共享存储写次数。

share_write_throughput

10s

MB

共享存储写吞吐。

local_read_ps

10s

本地读次数。

local_read_throughput

10s

MB

本地读吞数。

local_write_ps

10s

本地写次数。

local_write_throughput

10s

MB

本地写吞吐。

polar_stat_io_info

polar_stat_io_info展示了采集到的数据库IO调用(例如fallocfsyncreadwritecreatseekopenclose)信息,展示的维度如下:

维度

说明

fileloc

文件位置 :

  • local:本地。

  • pfs:pfs。

filetype

文件类型。

  • DATA:数据文件。

  • WAL:日志文件。

数据库IO的指标信息如下:

指标

周期

单位

说明

falloc_latency_us

1s

us

1秒内falloc调用时间的累计值。

read_throughput

1s

MB

1秒内read调用的吞吐量。

read_latency_us

1s

us

1秒内read调用时间的累计值。

creat_latency_us

1s

us

1秒内creat调用时间的累计值。

open_latency_us

1s

us

1秒内open调用时间的累计值。

write_latency_us

1s

us

1秒内write调用时间的累计值。

seek_count

1s

1秒内seek调用的次数。

falloc_count

1s

1秒内falloc调用的次数。

fsync_count

1s

1秒内fsync调用的次数。

fsync_latency_us

1s

us

1秒内fsync调用时间的累计值。

close_count

1s

1秒内close调用的次数。

read_count

1s

1秒内read调用的次数。

write_count

1s

1秒内write调用的次数。

creat_count

1s

1秒内creat调用的次数。

open_count

1s

1秒内open调用的次数。

write_throughput

1s

MB

1秒内write调用的吞吐量。

seek_latency_us

1s

us

1秒内seek调用时间的累计值。

polar_stat_io_latency

polar_stat_io_latency展示了采集的数据库IO调用(例如fsyncreadwriteseekopen)延迟时间的分布信息,展示的维度包括:

维度

说明

latency

延迟分布。

数据库IO延迟分布指标信息如下:

指标

采集周期

单位

说明

seek

10s

处于延迟区间内的seek调用个数。

fsync

10s

处于延迟区间内的fsync调用个数。

read

10s

处于延迟区间内的read调用个数。

write

10s

处于延迟区间内的write调用个数。

open

10s

处于延迟区间内的open调用个数。

polar_stat_network

polar_stat_network展示了采集数据的网络信息,展示的维度包括:

维度

说明

client

客户端IP地址。

backend_type

客户端类型。

采集数据的网络统计指标信息如下:

指标

周期

单位

说明

client_count

10s

同一维度的客户端个数。

send_mb

10s

MB

发送的数据量。

recv_mb

10s

MB

接收的数据量。

retrans

10s

重传次数。

max_sendq

10s

最大发送队列长度。

max_recvq

10s

最大接收队列长度。

max_rtt

10s

ms

网络延迟。

max_cwnd

10s

最大滑动窗口大小。

polar_aas_history

polar_aas_history展示了采集的等待事件统计信息,展示的维度包括:

维度

说明

wait_event_type

等待事件类型。

wait_event

等待事件的名称。

queryid

SQL唯一标识。

展示等待事件统计的指标信息如下:

指标

采集周期

单位

说明

wait_count

1s

同一queryid处于同一等待事件的会话数量。

polar_stat_slow_query

polar_stat_slow_query展示了采集数据的SQL统计信息,展示的维度包括:

维度

说明

wait_event_type

等待事件类型。

wait_event

等待事件的名称。

pid

进程ID。

dbname

数据库名称。

query

SQL语句。

SQL统计的指标信息如下:

指标

周期

单位

说明

executing_time

10s

ms

截止采集时SQL语句执行时长。

polar_stat_max_memory_sql

polar_stat_max_memory_sql展示了占用大量内存的SQL统计信息,展示的维度包括:

维度

说明

dbname

数据库名称。

pid

进程ID。

query

SQL语句。

占用大量内存的SQL语句指标信息如下:

指标

周期

单位

说明

rss_mb

10s

MB

当前占用最大内存的SQL语句及其占用内存大小。

polar_lock_contention_history

polar_lock_contention_history展示了锁冲突信息,展示的维度包括:

维度

说明

locktype

锁类型。

lockmode

锁级别。

datname

数据库名称。

relation

表名称。

query

SQL语句。

锁冲突的指标信息如下:

指标

周期

单位

说明

total_num

60s

阻塞会话个数。

polar_stat_top_sql

polar_stat_top_sql展示了采集的Top SQL统计信息,展示的维度包括:

维度

说明

queryid

SQL语句的唯一标识。

query

SQL语句。

Top SQL统计信息的指标信息如下:

指标

周期

单位

说明

logical_read

600s

逻辑读次数。

blks_read

600s

物理读次数。

logical_write

600s

逻辑写次数。

blks_written

600s

物理写次数。

blk_read_time

600s

ms

物理读IO时间。

blk_write_time

600s

ms

物理写IO时间。

calls

600s

执行次数。

total_time

600s

ms

执行时间

rows

600s

访问/变更行数。

polar_stat_user_tables

polar_stat_user_tables展示了Top表访问信息,展示的维度如下:

维度

说明

dbname

数据库名称。

schemaname

schema名称。

relname

表名称。

Top表指标信息如下:

指标

周期

单位

说明

seq_scan

3600s

顺序扫描的次数。

seq_tup_read

3600s

顺序扫描的行数。

idx_scan

3600s

索引扫描的次数。

idx_tup_fetch

3600s

索引扫描的行数。

n_tup_ins

3600s

插入的行数。

n_tup_upd

3600s

更新的行数。

n_tup_del

3600s

删除的行数。

n_tup_hot_upd

3600s

HOT更新的行数。

n_mod_since_analyze

3600s

上次analyze后更新的行数。

n_live_tup

3600s

活跃元组数量。

n_dead_tup

3600s

死亡元组数量。

dead_tup_ratio

3600s

%

死亡元组比例。

last_vacuum

3600s

s

距离上次vacuum的时间。

last_autovacuum

3600s

s

距离上次auto vacuum的时间。

last_analyze

3600s

s

距离上次analyze时间。

last_autoanalyze

3600s

s

距离上次auto analyze的时间。

polar_statio_user_tables

polar_statio_user_tables展示了Top表IO信息。展示的维度包括:

维度

说明

dbname

数据库名称。

schemaname

schema名称。

relname

表名称。

Top表IO指标信息如下:

指标

周期

单位

说明

heap_logical_read

3600s

表逻辑读次数。

heap_blks_read

3600s

表物理读次数。

idx_logical_read

3600s

表索引逻辑读次数。

idx_blks_read

3600s

表索引物理读次数。

polar_stat_user_indexes

polar_stat_user_indexes展示了Top索引访问信息,展示的维度包括:

维度

说明

dbname

数据库名称。

schemaname

schema名称。

relname

表名称。

indexrelname

索引名称。

Top索引访问指标信息如下:

指标

周期

单位

说明

idx_scan

3600s

索引扫描次数。

idx_tup_read

3600s

索引读取行数。

idx_tup_fetch

3600s

索引扫描行数。

polar_statio_user_indexes

polar_statio_user_indexes展示了Top索引IO信息,展示的维度包括:

维度

说明

dbname

数据库名称。

schemaname

schema名称。

relname

表名称。

indexrelname

索引名称。

Top索引IO指标信息如下:

指标

周期

单位

说明

idx_blks_read

3600s

索引物理读次数。

idx_logical_read

3600s

索引逻辑读次数。

polar_stat_relation_size

polar_stat_relation_size展示了Top relation占用空间大小信息,展示的维度包括:

维度

说明

dbname

数据库名称。

schemaname

schema名称。

relname

表名称。

relkind

表类型。

Top relation占用空间指标信息如下:

指标

周期

单位

说明

relsize_total

3600s

MB

占用空间大小。

polar_stat_table_age

polar_stat_table_age展示了Top relation年限大小信息,展示的维度包括:

维度

说明

dbname

数据库名称。

schemaname

schema名称。

relname

表名称。

relkind

表类型。

Top relation年限大小指标信息如下:

指标

周期

单位

说明

table_age

3600s

xid

年限。

polar_statio_user_sequences

polar_statio_user_sequences展示了Top sequence IO信息,展示的维度包括:

维度

说明

dbname

数据库名称。

schemaname

schema名称。

relname

表名称。

indexrelname

索引名称。

Top sequence IO的指标信息如下:

指标

周期

单位

说明

blks_read

3600s

物理读次数。

logical_read

3600s

逻辑读次数。

polar_stat_user_functions

polar_stat_user_functions展示了Top函数执行信息,展示的维度包括:

维度

说明

dbname

数据库名称。

schemaname

schema名称。

funcname

函数名称。

Top函数的指标信息如下:

指标

周期

单位

说明

calls

3600s

累计执行次数。

total_time

3600s

ms

累计执行时间。

polar_settings

polar_settings展示了数据库的配置信息,展示的维度包括:

维度

说明

name

配置项名称。

source

设置来源。

setting

配置项的值。

阿里云首页 云原生关系型数据库 PolarDB 相关技术圈