Grafana监控Oracle数据库的表大小等信息
方案
oracledb_exporter
以及
prometheus
grafana
使用的SQL以及配置文件
[[metric]]
context = "table_sizeinfo"
labels = [ "table_nameinfo","table_tablespace" ]
metricsdesc = { table_rownum = "table row num" , table_colnum = "table col num.", table_size = "table size num" }
request = '''
SELECT
x.table_name AS table_nameinfo,
x.表行数 AS table_rownum,
x.表列数 AS table_colnum,
y.表大小 AS table_size ,
x.table_tablespace as table_tablespace
FROM
(
SELECT
b.table_name,
a.num_rows AS 表行数,
b.count1 AS 表列数 ,
a.TABLESPACE_name as table_tablespace
FROM
dba_tables a
INNER JOIN ( SELECT table_name, count( column_name ) AS count1 FROM dba_tab_columns GROUP BY table_name ) b ON a.table_name = b.table_name
ORDER BY
b.table_name
) x LEFT outer
JOIN (
SELECT
sum( tablesize ) AS 表大小,
tablename
FROM
(
SELECT
sum( C.bytes ) / 1024 / 1024 AS tablesize,
C.table_name AS tablename
FROM
( SELECT A.table_name, B.bytes FROM dba_lobs A, dba_extents B WHERE A.segment_name = B.segment_name ) C
GROUP BY
C.table_name UNION ALL
SELECT
sum( bytes ) / 1024 / 1024 AS tablesize,
segment_name AS tablename
FROM
dba_extents
WHERE
segment_type = 'TABLE'
GROUP BY
segment_name
)
GROUP BY
tablename
ORDER BY
1 DESC
) y ON x.table_name = y.tablename
ORDER BY
nvl(y.表大小,0) desc FETCH NEXT 10 ROWS ONLY
grafana增加panel的处理
第一步: 新建一个dashboard 选择 Add Visualization
第二步: 选择数据源; 选择prometheus
第三步: 保存dashboard 可以修改一个名字, 比如Oracle表信息测试.
第四步: 点击设置. 可以增加变量, 用于实现识别prometheus的信息内容
注意 因为我们选用的是oracledb_exporter的组件. 所以可以使用如下方式
host label_values(oracledb_up,instance)
方式为query ; 来源是prometheus ; instance 值是 oracledb_up
注意 值可以从 metrics 里面获取.
第五步: 编辑panel 增加三个Query
根据第一步新增加的 查询 metrics 桑一般为:
oracledb_table_sizeinfo_table_colnum
oracledb_table_sizeinfo_table_rownum
oracledb_table_sizeinfo_table_size
注意命名规范为 oracledb_metricsname_metrics_desc
注意, 需要再 Options 处进行修改
注意 format 选择为 table type 选择为 instant
第五步: 编辑Query旁边的Transform
因为我们有三个指标, 所以第一个必须选择 merge 的transform
第二个 选择Group by 组件
注意 表空间和表名都选择 group by 的方式
然后三个结果 建议选择 max 如果想确保周期内的大小变化值
第三个 增加 organize fields 的组件, 可以修改列的名称 便于分析查看
第六步: 保存
这个界面暂时无法获取较早的结果值, 需要再分析一下.
标签:name,dba,数据库,tablename,Grafana,oracledb,Oracle,table,SELECT
From: https://www.cnblogs.com/jinanxiaolaohu/p/17814931.html