【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】
【问题描述】清晰明确描述问题
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):
【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)
【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!
进入客户端查看:
10.104.102.11) [(none)]> SELECT * FROM oceanbase.V$OB_PROCESSLIST where STATE=‘ACTIVE’ and tenant=‘sys’;
看到一个会话
prometheus查看:
sum(ob_active_session_num{app=“OB”, endpoint=“port”, instance=“10.104.102.11:8088”,tenant_name=‘sys’})
返回值为9
为啥相差这么大
论坛小助手
#3
根据文档库中的信息,V$OB_PROCESSLIST
视图用于展示客户端连接到的节点的运行状态和性能指标信息,而 GV$OB_PROCESSLIST
视图用于展示租户所在的所有 OBServer 节点的会话信息。Prometheus 监控的数据通常是从整个集群的角度来收集的,因此可能会包含更多的会话信息,而不仅仅是您当前连接的节点上的会话。
以下是可能的原因:
-
视图范围不同:
-
V$OB_PROCESSLIST
只显示客户端连接到的节点的会话信息。
-
GV$OB_PROCESSLIST
显示租户所在的所有 OBServer 节点的会话信息。
-
Prometheus 监控范围:
- Prometheus 收集的是整个集群的会话信息,而不仅仅是您当前连接的节点。
-
会话状态:
-
V$OB_PROCESSLIST
中的 STATE
字段可能只显示 ACTIVE
状态的会话,而 Prometheus 可能会统计所有状态的会话。
为了验证这些假设,您可以执行以下步骤:
-
查询所有节点的会话信息:
SELECT * FROM oceanbase.GV$OB_PROCESSLIST WHERE STATE='ACTIVE' AND TENANT='sys';
-
检查 Prometheus 查询:
- 确认 Prometheus 查询是否正确地过滤了
tenant_name
和其他条件。
- 确认 Prometheus 查询的时间范围和数据采集频率。
-
对比结果:
- 比较
GV$OB_PROCESSLIST
的结果和 Prometheus 的结果,看看是否有明显的差异。
如果以上步骤仍然无法解释差异,建议进一步检查 Prometheus 的配置和数据采集脚本,确保它们正确地反映了集群的会话信息。
具体信息可参考以下文档:
- V$OB_PROCESSLIST
- GV$OB_PROCESSLIST
- 启用和关闭并行查询
- CONNECTION_ID
- 并行执行问题诊断
- DBMS_XPLAN 概述
- OceanBase 自有视图
- 9500 ~ 9999
查一下GV$OB_PROCESSLIST视图。你查看的是V$OB_PROCESSLIST
以V$开头命名的视图只能看到连接的节点信息
以GV$开头命名的视图可以看到OB集群全局的信息
1 个赞