【 使用环境 】测试环境
【 OB or 其他组件 】ocp
【 使用版本 】4.4.0-20251114143405
【问题描述】ocp中一个集群,租户监控信息不显示,主机监控显示正常
【复现路径】
【附件及日志】
【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!
【 使用环境 】测试环境
【 OB or 其他组件 】ocp
【 使用版本 】4.4.0-20251114143405
【问题描述】ocp中一个集群,租户监控信息不显示,主机监控显示正常
【复现路径】
【附件及日志】
【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!
租户的所有监控项都没有数据吗?发下相应observer的monagent.log,压缩一下
太奇怪了
顶一下
陈波(60232038)邀请您在VDrive2.0协作
内容: monagent-ocp.zip
点击链接查看: https://sdrivesdt.catl.com/l/G1Rwat
提取码: tsgb
到期日: 无限制
log发来看一下
都对啊,
支持!!!
学习啦
这个集群的租户监控没数据,是因为 ocp_agent 采集 OceanBase 租户级监控视图的 SQL 持续超时/慢查询,导致核心租户指标采不上来;主机监控不依赖这些 OB 内部视图
monagent (1).log 里大量collect ob_metric xxx timeout
典型慢 SQL
slow sql, name: ob_waitevent, duration: 15.056s
select con_id tenant_id, sum(total_waits), sum(time_waited_micro)/1000000
from v$system_event where wait_class <> 'IDLE' and (con_id > 1000 or con_id = 1)
group by tenant_id;
slow sql, name: ob_sysstat, duration: 16.121s
select tenant_id, stat_id, value from v$sysstat, DBA_OB_TENANTS ...
slow sql, name: ob_cache, duration: 40.780s
select tenant_id, cache_name, cache_size from V$OB_KVCACHE ...
sys租户查询下
SELECT * FROM GV$OB_PROCESSLIST WHERE TENANT='sys' ORDER BY TIME DESC;
SELECT * FROM GV$OB_SQL_AUDIT WHERE TENANT_NAME='sys' ORDER BY ELAPSED_TIME DESC LIMIT 20;
手工查询过这些sql,确实在sys租户里执行慢,sys租户规格32C64G,看起来不像是资源限制,查看trace像是消耗在返回结果集上,相关版本有类似问题吗
这套集群是什么版本
4.2.5.6-106000022025082510
select /* MONITOR_AGENT */ tenant_id, stat_id, value from v$sysstat, DBA_OB_TENANTS where stat_id IN (30066, 50003, 50021, 50022, 50030, 50039, 50040, 60031, 60057, 60083, 80023, 80025, 80026, 120002, 120005, 120006, 200001) and (con_id > 1000 or con_id = 1) and DBA_OB_TENANTS.tenant_id = v$sysstat.con_id and DBA_OB_TENANTS.tenant_type<>‘META’ UNION ALL select con_id as tenant_id, stat_id, value from v$sysstat where stat_id IN (80025,80026,80023) and con_id > 1 and con_id < 1001;
把执行计划 全部发一下 在拿一下ASH报告 看看
ash报告拉取不了,很多内部监控SQL都慢,这个是随便拿了一个看的执行计划,刚才sql_audit拉旭辉一起看了下,感觉像是Observer端的文题导致的监控信息采集不上来
0 - output([UNION([1])], [UNION([2])], [UNION([3])]), filter(nil)
1 - output([DBA_OB_TENANTS.TENANT_ID], [GV$SYSSTAT.STAT_ID], [GV$SYSSTAT.VALUE]), filter(nil)
equal_conds([DBA_OB_TENANTS.TENANT_ID = GV$SYSSTAT.CON_ID]), other_conds(nil)
merge_directions([ASC])
2 - output([DBA_OB_TENANTS.TENANT_ID]), filter(nil)
access([DBA_OB_TENANTS.TENANT_ID])
3 - output([A.tenant_id]), filter(nil)
conds([A.tenant_id = C.TENANT_ID OR A.tenant_id = C.META_TENANT_ID]), nl_params_(nil), use_batch=false
4 - output([A.tenant_id]), filter([CASE WHEN A.tenant_id = 1 THEN ‘SYS’ WHEN (T_OP_BIT_AND, A.tenant_id, cast(X’01’, BIGINT(-1, 0))) = 1 THEN ‘META’ ELSE
‘USER’ END != ‘META’])
access([A.tenant_id]), partitions(p1)
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([A.tenant_id]), range(MIN ; MAX)always true
5 - output([C.TENANT_ID], [C.META_TENANT_ID]), filter(nil)
6 - output([C.TENANT_ID], [C.META_TENANT_ID]), filter(nil)
access([C.TENANT_ID], [C.META_TENANT_ID])
7 - output([F.tenant_id], [CASE WHEN F.tenant_id < 1 THEN NULL WHEN F.tenant_id != 1 THEN F.tenant_id - 1 ELSE NULL END]), filter(nil)
distinct([F.tenant_id])
8 - output([F.tenant_id]), filter(nil)
group([F.tenant_id], [G.zone]), agg_func(nil)
9 - output([F.tenant_id], [G.zone]), filter(nil)
sort_keys([F.tenant_id, ASC], [G.zone, ASC])
10 - output([F.tenant_id], [G.zone]), filter(nil)
equal_conds([F.resource_pool_id = G.resource_pool_id]), other_conds(nil)
11 - output([F.resource_pool_id], [F.tenant_id]), filter([F.tenant_id > 0])
access([F.resource_pool_id], [F.tenant_id]), partitions(p1)
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([F.resource_pool_id]), range(MIN ; MAX)always true
12 - output([G.resource_pool_id], [G.zone]), filter([G.status != ‘DELETING’])
access([G.resource_pool_id], [G.status], [G.zone]), partitions(p1)
is_index_back=false, is_global_index=false, filter_before_indexback[false],
range_key([G.unit_id]), range(MIN ; MAX)always true
13 - output([GV$SYSSTAT.STAT_ID], [GV$SYSSTAT.VALUE], [GV$SYSSTAT.CON_ID]), filter(nil)
sort_keys([GV$SYSSTAT.CON_ID, ASC])
14 - output([GV$SYSSTAT.CON_ID], [GV$SYSSTAT.VALUE], [GV$SYSSTAT.STAT_ID]), filter(nil)
access([GV$SYSSTAT.CON_ID], [GV$SYSSTAT.VALUE], [GV$SYSSTAT.STAT_ID])
15 - output([__all_virtual_sysstat.tenant_id], [__all_virtual_sysstat.value], [__all_virtual_sysstat.stat_id]), filter([__all_virtual_sysstat.svr_ip =
HOST_IP()], [__all_virtual_sysstat.tenant_id > 1000 OR __all_virtual_sysstat.tenant_id = 1], [__all_virtual_sysstat.stat_id IN (30066, 50003, 50021, 50022,
50030, 50039, 50040, 60031, 60057, 60083, 80023, 80025, 80026, 120002, 120005, 120006, 200001)], [__all_virtual_sysstat.can_visible = 1], [__all_virtual_sysstat.svr_port
= RPC_PORT()])
access([__all_virtual_sysstat.tenant_id], [__all_virtual_sysstat.svr_ip], [__all_virtual_sysstat.svr_port], [__all_virtual_sysstat.can_visible], [__all_virtual_sysstat.value],
[__all_virtual_sysstat.stat_id]), partitions(p3)
is_index_back=false, is_global_index=false, filter_before_indexback[false,false,false,false,false],
range_key([__all_virtual_sysstat.tenant_id], [__all_virtual_sysstat.svr_ip], [__all_virtual_sysstat.svr_port], [__all_virtual_sysstat.statistic#]),
range(1000,MAX,MAX,MAX ; MAX,10.38.14.25,2882,MIN), (1,10.38.14.25,2882,MIN ; 1,10.38.14.25,2882,MAX)
16 - output([__all_virtual_sysstat.tenant_id], [__all_virtual_sysstat.stat_id], [__all_virtual_sysstat.value]), filter([__all_virtual_sysstat.svr_ip =
HOST_IP()], [__all_virtual_sysstat.stat_id IN (80025, 80026, 80023)], [__all_virtual_sysstat.tenant_id < 1001], [__all_virtual_sysstat.can_visible = 1],
[__all_virtual_sysstat.tenant_id > 1], [__all_virtual_sysstat.svr_port = RPC_PORT()])
access([__all_virtual_sysstat.tenant_id], [__all_virtual_sysstat.svr_ip], [__all_virtual_sysstat.svr_port], [__all_virtual_sysstat.can_visible], [__all_virtual_sysstat.value],
[__all_virtual_sysstat.stat_id]), partitions(p3)
is_index_back=false, is_global_index=false, filter_before_indexback[false,false,false,false,false,false],
range_key([__all_virtual_sysstat.tenant_id], [__all_virtual_sysstat.svr_ip], [__all_virtual_sysstat.svr_port], [__all_virtual_sysstat.statistic#]),
range(1,MAX,MAX,MAX ; 1001,MIN,MIN,MIN)
/*+
stmt_id:0, SET$1
stmt_id:1, SEL$1 > SEL$33582AE5 > SEL$7784D055
stmt_id:2, SEL$2 > SEL$2F8A4177
stmt_id:3, SEL$3 > SEL$A50C0DDB > SEL$1F8A3A80 > SEL$AD5573C3
stmt_id:4, SEL$4 > SEL$0A7B4D77 > SEL$3053D65C > SEL$4E1A5471 > SEL$5C3B1704
stmt_id:5, SEL$5 > SEL$9ABF49B5 > SEL$630FA7F4
stmt_id:6, SEL$6 > SEL$BCFD3484
stmt_id:7, SEL$7 > SEL$8CC5BAA5 > SEL$73F21024 > SEL$16AD5A75
stmt_id:8, SEL$8 > SEL$7B4B4EA9
stmt_id:9, SEL$9 > SEL$1B08284C
stmt_id:10, SEL$10 > SEL$B603E2FC
stmt_id:11, SEL$11 > SEL$98591A47
stmt_id:12, SEL$12 > SEL$0378F9F7 > SEL$D9B95943
A:
table_rows:153
physical_range_rows:153
logical_range_rows:153
index_back_rows:0
output_rows:86
table_dop:1
dop_method:Table DOP
avaiable_index_name:[__all_virtual_tenant_mysql_sys_agent]
stats info:[version=2024-12-31 22:07:42.703096, is_locked=0, is_expired=0]
dynamic sampling level:1
estimation method:[DYNAMIC SAMPLING FULL]
F:
table_rows:19
physical_range_rows:19
logical_range_rows:19
index_back_rows:0
output_rows:19
table_dop:1
dop_method:Table DOP
avaiable_index_name:[__all_virtual_resource_pool_mysql_sys_agent]
stats info:[version=2023-11-06 22:00:34.780240, is_locked=0, is_expired=0]
dynamic sampling level:0
estimation method:[OPTIMIZER STATISTICS]
G:
table_rows:255
physical_range_rows:255
logical_range_rows:255
index_back_rows:0
output_rows:127
table_dop:1
dop_method:Table DOP
avaiable_index_name:[__all_virtual_unit_mysql_sys_agent]
stats info:[version=2025-10-03 22:13:23.682813, is_locked=0, is_expired=0]
dynamic sampling level:0
estimation method:[OPTIMIZER STATISTICS]
__all_virtual_sysstat:
table_rows:17121
physical_range_rows:2634
logical_range_rows:2634
index_back_rows:0
output_rows:34
table_dop:1
dop_method:Table DOP
avaiable_index_name:[all_virtual_sysstat_i1, __all_virtual_sysstat]
pruned_index_name:[all_virtual_sysstat_i1]
stats info:[version=2023-11-06 22:00:04.627425, is_locked=0, is_expired=0]
dynamic sampling level:0
estimation method:[OPTIMIZER STATISTICS]
__all_virtual_sysstat:
table_rows:17121
physical_range_rows:15617
logical_range_rows:15617
index_back_rows:0
output_rows:35
table_dop:1
dop_method:Table DOP
avaiable_index_name:[all_virtual_sysstat_i1, __all_virtual_sysstat]
pruned_index_name:[all_virtual_sysstat_i1]
stats info:[version=2023-11-06 22:00:04.627425, is_locked=0, is_expired=0]
dynamic sampling level:0
estimation method:[OPTIMIZER STATISTICS]
Plan Type:
LOCAL
Parameters:
:0 => 30066
:1 => 50003
:2 => 50021
:3 => 50022
:4 => 50030
:5 => 50039
:6 => 50040
:7 => 60031
:8 => 60057
:9 => 60083
:10 => 80023
:11 => 80025
:12 => 80026
:13 => 120002
:14 => 120005
:15 => 120006
:16 => 200001
:17 => 1000
:18 => 1
:19 => ‘META’
:20 => 80025
:21 => 80026
:22 => 80023
:23 => 1
:24 => 1001
Note:
Degree of Parallelisim is 1 because of table property
SELECT tenant_type, COUNT(*) cnt
FROM oceanbase.DBA_OB_TENANTS
GROUP BY tenant_type;
SELECT COUNT(DISTINCT con_id) tenant_cnt,
COUNT(*) total_rows,
COUNT(DISTINCT stat_id) stat_cnt
FROM oceanbase.v$sysstat;
SELECT COUNT(*) FROM (
SELECT tenant_id, stat_id, value
FROM v$sysstat, DBA_OB_TENANTS
WHERE stat_id IN (30066,50003,50021,50022,50030,50039,50040,
60031,60057,60083,80023,80025,80026,
120002,120005,120006,200001)
AND (con_id > 1000 OR con_id = 1)
AND DBA_OB_TENANTS.tenant_id = v$sysstat.con_id
AND DBA_OB_TENANTS.tenant_type <> ‘META’
) t;
这三个信息 也查一下