首页 > 数据库 >Oracledb_exporter 获取表大小信息的简单方法

Oracledb_exporter 获取表大小信息的简单方法

时间:2023-11-06 18:33:05浏览次数:34  
标签:metrics exporter memstats -- bytes Oracledb 获取 heap go

Oracledb_exporter 获取表大小信息的简单方法


背景

用我儿子的现状作为背景: 
我爱学习, 学习让我妈快乐.

下载exporter

exporter 可以在github上面下载最新版本是 0.5.1 

https://github.com/iamseth/oracledb_exporter
可以直接下载release 好的二进制, 也可以docker pull 相关的镜像

docker pull iamseth/oracledb_exporter
可以用的tag 主要有 latest 嗨哟 0.5.1 和 0.2.9

运行方式

export DATA_SOURCE_NAME=oracle://grafana:[email protected]:1521/ora12c
export QUERY_TIMEOUT=30000

然后可以在某个目录下设置一个 toml 文件. 
比如这个为:

[[metric]]
context = "table_size"
labels = [ "tablename" ]
metricsdesc = { table_size = " Top 20 biggest tables. " }
request = '''
select   table_name as tablename ,round(num_rows * avg_row_len/1024/1024 , 2)  as table_size from dba_tables order by nvl(num_rows * avg_row_len/1024/1024,0) desc FETCH NEXT 20 ROWS ONLY
'''

启动的话就比较简单了
oracledb_exporter  --default.metrics "/oracle_exporter/custom-metrics.toml"

要是容器运行的话 比较郁闷 需要将这个文件打包进去 主要是修改 启动脚本
FROM iamseth/oracledb_exporter:0.2.9 
COPY custom-metrics.toml /
ENTRYPOINT ["/oracledb_exporter", "--custom.metrics", "/custom-metrics.toml"]

运行的话方式为:
docker run -d --name oracledb_exporter  -p 9161:9161 -e DATA_SOURCE_NAME=oracle://grafana:[email protected]:1521/ora12c  oracledb

查看metrics

http://192.168.254.210:9161/metrics


# HELP go_goroutines Number of goroutines that currently exist.
# TYPE go_goroutines gauge
go_goroutines 12
# HELP go_memstats_alloc_bytes Number of bytes allocated and still in use.
# TYPE go_memstats_alloc_bytes gauge
go_memstats_alloc_bytes 1.721112e+06
# HELP go_memstats_alloc_bytes_total Total number of bytes allocated, even if freed.
# TYPE go_memstats_alloc_bytes_total counter
go_memstats_alloc_bytes_total 2.1797752e+07
# HELP go_memstats_buck_hash_sys_bytes Number of bytes used by the profiling bucket hash table.
# TYPE go_memstats_buck_hash_sys_bytes gauge
go_memstats_buck_hash_sys_bytes 1.448806e+06
# HELP go_memstats_frees_total Total number of frees.
# TYPE go_memstats_frees_total counter
go_memstats_frees_total 205940
# HELP go_memstats_gc_sys_bytes Number of bytes used for garbage collection system metadata.
# TYPE go_memstats_gc_sys_bytes gauge
go_memstats_gc_sys_bytes 3.574024e+06
# HELP go_memstats_heap_alloc_bytes Number of heap bytes allocated and still in use.
# TYPE go_memstats_heap_alloc_bytes gauge
go_memstats_heap_alloc_bytes 1.721112e+06
# HELP go_memstats_heap_idle_bytes Number of heap bytes waiting to be used.
# TYPE go_memstats_heap_idle_bytes gauge
go_memstats_heap_idle_bytes 6.32832e+07
# HELP go_memstats_heap_inuse_bytes Number of heap bytes that are in use.
# TYPE go_memstats_heap_inuse_bytes gauge
go_memstats_heap_inuse_bytes 3.104768e+06
# HELP go_memstats_heap_objects Number of allocated objects.
# TYPE go_memstats_heap_objects gauge
go_memstats_heap_objects 5666
# HELP go_memstats_heap_released_bytes_total Total number of heap bytes released to OS.
# TYPE go_memstats_heap_released_bytes_total counter
go_memstats_heap_released_bytes_total 6.1988864e+07
# HELP go_memstats_heap_sys_bytes Number of heap bytes obtained from system.
# TYPE go_memstats_heap_sys_bytes gauge

Grafana增加panel

增加panel 然后可以选择信息进行展示. 

数据库降低抓取频率

--scrape.interval=300s

可以将 抓取频率降低, 这样的话对数据库的影响会低很多. 

Flags:
  -
, --[no-]help                Show context-sensitive help (also try --help-long and --help-man).
      --web.telemetry-path="/metrics"
                                 Path under which to expose metrics. (env: TELEMETRY_PATH)
      --default.metrics="default-metrics.toml"
                                 File with default metrics in a TOML file. (env: DEFAULT_METRICS)
      --custom.metrics=""        File that may contain various custom metrics in a TOML file. (env: CUSTOM_METRICS)
      --query.timeout=3000000    Query timeout (in seconds). (env: QUERY_TIMEOUT)
      --database.maxIdleConns=0  Number of maximum idle connections in the connection pool. (env: DATABASE_MAXIDLECONNS)
      --database.maxOpenConns=10
                                 Number of maximum open connections in the connection pool. (env: DATABASE_MAXOPENCONNS)
      --scrape.interval=0s       Interval between each scrape. Default is to scrape on collect requests
      --[no-]web.systemd-socket  Use systemd socket activation listeners instead of port listeners (Linux only).
      --web.listen-address=:9161 ...
                                 Addresses on which to expose metrics and web interface. Repeatable for multiple addresses.
      --web.config.file=""       [EXPERIMENTAL] Path to configuration file that can enable TLS or authentication.
                                 See: https://github.com/prometheus/exporter-toolkit/blob/master/docs/web-configuration.md
      --log.level=info           Only log messages with the given severity or above. One of: [debug, info, warn, error]
      --log.format=logfmt        Output format of log messages. One of: [logfmt, json]
      --[no-]version             Show application version.

标签:metrics,exporter,memstats,--,bytes,Oracledb,获取,heap,go
From: https://www.cnblogs.com/jinanxiaolaohu/p/17813403.html

相关文章

  • 获取天秤座与天蝎座友情指南
     引言在人际交往中,星座似乎成为了一种不可或缺的参考因素。无论是寻找恋爱对象,还是寻找知心朋友,星座总是能为我们提供一种便捷的途径。在这个数字化时代,一款名为"友情指南"的API接口应运而生,它能够帮助我们获取天秤座与天蝎座之间的友情建议。通过这个API,我们可以了解到这两个......
  • 安防监控EasyNVR平台获取通道快照的两种方式
    视频安防监控平台EasyNVR可支持设备通过RTSP/Onvif协议接入,并能对接入的视频流进行处理与多端分发,包括RTSP、RTMP、HTTP-FLV、WS-FLV、HLS、WebRTC等多种格式。为了便于用户集成调用与二次开发,我们也提供了丰富的API接口供大家使用。今天我们来介绍下安防监控系统EasyNVR的通道快照......
  • 获取小程序appid和path教程详细版
    打开你需要获取appid的小程序,这里以“饿了么”小程序为例,然后点击右上角的图标以下为小程序path获取方法登录你的小程序的微信公众平台https://mp.weixin.qq.com点击右上角的工具,进入后是下面的页面然后用你输入的微信号微信浏览“饿了么”小程序,浏览到你要获取path的页面,点......
  • 在Python中获取飞书群消息,你可以使用`feishu-python-sdk`这个库¹。这是一个用于和飞
    在Python中获取飞书群消息,你可以使用`feishu-python-sdk`这个库¹。这是一个用于和飞书开放平台交互的Python库,它支持同步调用和异步调用,实现了订阅事件和卡片交互回调¹。首先,你需要安装这个库,可以使用pip进行安装:```pythonpipinstallfeishu-python-sdk```然后,你可以使用以......
  • Vue.js 获取当前日期前几个月的日期
    1、获取当前日期并想获取6个月前的日期getDate(){varnow=newDate();varyear=now.getFullYear();//得到年份varmonth=now.getMonth()+1;//得到月份vardate=now.getDate();//得到日期varhour="00:00:00";/......
  • 通过一个特定条件获取下面的所有数据
    例:通过客户名称获取所有的还客户名称的合同编号 在接口方法中,首先执行数据库查询,使用客户名称作为条件,在数据库中查找具有相同客户名称的合同记录 这将返回一个ZyContract对象列表,这些对象代表了具有相同客户名称的合同记录。 接下来,通过以下代码,从匹配的合同记录中提......
  • 根据分钟获取时间(往前获取)、两个日期进行大小比较
    /***根据分钟获取时间(往前获取)**@paramminute分钟(负数)*@return*/publicstaticStringgetBeforeTime(Integerminute){CalendarbeforeTime=Calendar.getInstance();beforeTime.add(Calendar.MINUTE,-minute......
  • Java 获取自定义注解 字段值 及 注解值
    自定义注解packagecom.jianmu.bean.annotation;importjava.lang.annotation.ElementType;importjava.lang.annotation.Retention;importjava.lang.annotation.RetentionPolicy;importjava.lang.annotation.Target;/**[email protected]......
  • 在Winform中通过LibVLCSharp回调函数获取视频帧
    参考资料:VlcVideoSourceProvider优点:实现视频流的动态处理。缺点:视频解码(CPU/GPU)后图像处理CPU占用率高。在Winform中通过LibVLCSharp组件获取视频流中的每一帧图像,需要设置回调函数,主要是SetVideoFormatCallbacks和SetVideoCallbacks,其定义如下所示:///<summary>///Setde......
  • 【mysql】获取某个表所有列名【mybatis】
    方法1:[仅指定表名]selectCOLUMN_NAMEfrominformation_schema.COLUMNSwheretable_name='your-table-name'; 方法2:[指定表名+数据库名]selectCOLUMN_NAMEfrominformation_schema.COLUMNSwheretable_name='your-table-name'andtable_schema='your-DB......