Oracle 监控客户端的连接数量趋势

发布时间 2023-11-12 08:35:13作者: 济南小老虎

Oracle 监控客户端的连接数量趋势


背景

前期简单总结了table方式将表信息展示出来的方法
但是感觉这样非常不直观.
想着能够做出一个趋势来. 
时序数据库的最佳的使用方式.
之前的确是太靠自己的自学领悟了. 
发现系统的培训和学习很重要. 靠自己很难, 还是需要靠知识的传递

想法

希望能够将连接数据库的客户端信息 通过时序表表示出来
目标主要有两个:
1. 如果有一个客户端突然暴涨, 说明可能存在异常,连接池泄露后者是提交事务慢了
2. 如果有办公机器的连接, 并且数据出现了异常, 可以记录下来连接的时间等信息. 
3. 能够对最近几天的趋势进行查看, 可以与数据库事务提交数进行交叉对比. 

工具和方法

与表大小的方法一样. 
还是采用 oracledb_exporter 的工具进行暴露自定义的监控指标.
然后使用prometheus进行采集,最终使用grafana自定义的时序图进行简单展示

及其简单的监控指标获取

[[metric]]
context = "machine"
labels = [ "machine"  ]
metricsdesc = { machinenum = "machine number"  }
request = '''
select machine as machine,count(machine) as machinenum from v$session where machine <> 'oracle12c' group by machine
'''

# 注意 prometheus 只能够获取数字类型的指标
# 如果查询结果里面有英文字符, 汉字等情况下需要使用labels 进行提取
# 其他的查询结果必须使用 metricsdesc 的进行描述, 有几个数字类型就需要几个描述
# 在metrics的监控结果中. 几个metricsdesc 就会有几个监控指标. 多个监控指标进行展示的话需要使用merge的方式进行. 

oracledb_exporter采集指标

export DATA_SOURCE_NAME=oracle://grafana:Testxxxxxxxx@192.168.254.210:1521/ora12c
export QUERY_TIMEOUT=30000
nohup oracledb_exporter  --default.metrics "/oracle_exporter/custom-metrics.toml" --scrape.interval 60s  &

然后可以在 ip:9161 端口处的metrics 里面查看监控信息.

Grafana的处理

1. 新增加一个panel,使用默认的时序模式
2. edit这个panel,选择数据源时prometheus, 然后在metics browser 里面选用Code
3. 输入本次使用的监控指标
   oracledb_machine_machinenum
   需要注意 oracledb 是 作者的原始标志,后面两个是 监控的context以及metricsdesc的信息. 
   还是那句话 有几个metricsdesc 就会有几个 metrics.  多个的话 需要merge的方式进行展示.
4. 选择这个Query,打开options. 输入: {{machine}} 后来规范化 连接机器的信息.
5. 右侧选择time series, 然后可以修改一下panel的名字就可以了.

配置界面

image