xugu_expoter使用手册.md 6.9 KB

数据库连接配置

数据库连接导入系统环境(当前终端)

#环境导入方式
#Linux
export DATA_SOURCE_NAME="IP=10.28.20.150;DB=SYSTEM;User=SYSDBA;PWD=SYSDBA;Port=13141;AUTO_COMMIT=on;CHAR_SET=UTF8"

#Windows
$env:DATA_SOURCE_NAME="IP=10.28.20.150;DB=SYSTEM;User=SYSDBA;PWD=SYSDBA;Port=13141;AUTO_COMMIT=on;CHAR_SET=UTF8"

通过程序运行传参导入数据库连接

./程序名 --database.dsn "IP=10.28.20.150;DB=SYSTEM;User=SYSDBA;PWD=SYSDBA;Port=13141;AUTO_COMMIT=on;CHAR_SET=UTF8" 

默认配置文件导入

不需要必须导入

方式一

与程序同级目录下的default-metrics.toml文件

方式二

导入到系统环境

#windwos
$env:DEFAULT_METRICS="xugu_example.toml"
#linux
export  DEFAULT_METRICS="xugu_example.toml"

自定义配置文件导入

通过运行程序传参导入

./程序名  --custom.metrics "xugu_example.toml"

#导入多个,以逗号分隔
./程序名  --custom.metrics "xugu_example.toml,xugu_example2.toml"

通过导入环境导入

#windows
$env:CUSTOM_METRICS="xugu_example.toml"
 
#linux
export CUSTOM_METRICS="xugu_example.toml"

其他运行参数

Usage of xugu_exporter: --log.format value

    如果设置,使用syslog记录器或JSON格式记录日志。例如:logger:syslog?appname=bob&local=7 或 logger:stdout?json=true。默认输出到stderr。

--log.level value

    仅记录给定严重级别或以上的消息。有效级别:[debug, info, warn, error, fatal]。

--custom.metrics string

    包含各种自定义指标的文件,格式为toml或yaml。

--default.metrics string

    默认指标文件,格式为toml或yaml。

--web.systemd-socket

    使用systemd套接字激活监听器,而不是端口监听器(仅限Linux)。

--web.listen-address value

    Web服务器监听的地址和端口。默认值:0.0.0.0:9161。

--web.telemetry-path value

    设置Prometheus的采集路径。默认值:/metrics。

--web.disable-exporter-metrics

    禁用导出器指标。

指标配置文件编写

文件后缀名:文件名.toml 
[[metric]]  # 定义一个指标配置
# 指标的上下文或分类,这里为 "test" 表示测试用途
context = "test"  

# SQL 查询,用于从 DUAL 表中选择常量值,返回两个值和两个标签
request = "SELECT 1 as value_1, 2 as value_2, 'First label' as label_1, 'Second label' as label_2 FROM DUAL"  
  
# 描述 value_1 为计数器类型,始终返回 1,value_2 为仪表类型,始终返回 2
metricsdesc = { value_1 = "简单示例,始终返回 1 作为计数器(counter).", value_2 = "同样的示例,始终返回 2 作为仪表(gauge)" }  
  
# 指定 value_1 的类型为计数器(counter),value_2 默认为仪表(gauge)
metricstype = { value_1 = "counter" }  
        #计数器(counter)指的是一个只能增加或重置的值,常用于表示事件的发生次数。
        #仪表(gauge)则是一个可以增减的值,通常用于表示某个瞬时状态或度量(如温度、内存使用量等)。

#输出
# HELP xugudb_test_value_1 Simple example returning always 1 as counter.
# TYPE xugudb_test_value_1 counter
# xugudb_test_value_1 1
# HELP xugudb_test_value_2 Same but returning always 2 as gauge.
# TYPE xugudb_test_value_2 gauge
# xugudb_test_value_2 2
# 定义第一个指标配置(没有标签的例子)
[[metric]]
# 该指标的上下文名称,表示没有标签的情况
context = "context_no_label"  
# SQL 查询,返回两个固定的值:1 和 2
request = "SELECT 1 as value_1, 2 as value_2 FROM DUAL"  
# 对两个值的描述,分别为 1 和 2
metricsdesc = { value_1 = "简单示例,始终返回 1。", value_2 = "同样的示例,始终返回 2。" }  

#输出
# HELP xugudb_context_no_label_value_1 简单示例,始终返回 1。
# TYPE xugudb_context_no_label_value_1 counter
# xugudb_context_no_label_value_1 1
# HELP xugudb_context_no_label_value_2 同样的示例,始终返回 2。
# TYPE xugudb_context_no_label_value_2 gauge
# xugudb_context_no_label_value_2 2


# 定义第二个指标配置(带标签的例子)
[[metric]]
# 该指标的上下文名称,表示带标签的情况
context = "context_with_labels"  
# 定义两个标签,"label_1" 和 "label_2",它们将用于区分指标的不同实例
labels = [ "label_1", "label_2" ]  
# SQL 查询,除了返回 1 和 2 之外,还返回两个标签值:'First label' 和 'Second label'
request = "SELECT 1 as value_1, 2 as value_2, 'First label' as label_1, 'Second label' as label_2 FROM DUAL"  
# 对两个值的描述,分别为 1 和 2
metricsdesc = { value_1 = "简单示例,始终返回 1。", value_2 = "同样的示例,始终返回 2。" }  

#输出
# HELP xugudb_context_with_labels_value_1 简单示例,始终返回 1。
# TYPE xugudb_context_with_labels_value_1 gauge
# xugudb_context_with_labels_value_1{label_1="First label",label_2="Second label"} 1
# HELP xugudb_context_with_labels_value_2 同样的示例,始终返回 2。
# TYPE xugudb_context_with_labels_value_2 gauge
# xugudb_context_with_labels_value_2{label_1="First label",label_2="Second label"} 2
[[metric]]  # 定义一个指标配置
context = "test_histo"  # 指标的上下文或分类,这里是 "test_histo",表示这是一个用于测试的直方图
# SQL 查询,选择了多个字段来模拟直方图的不同桶(buckets)和相关的计数值
request = "SELECT 'firstlabel' as label1, 'secondlabel' as label2, 3 as le_20, 19 as le_40, 31 as le_60, 40 as le_80, 45 as count, 123.45 as data FROM DUAL"
# 描述字段 data 为直方图类型,表示数据字段的所有值的总和
metricsdesc = { data = "Histogram - sum total of all values in the data field." }
# 指定 data 字段的类型为直方图(histogram)
metricstype = { data = "histogram" }
# 定义标签字段,这里是 "label1" 和 "label2",可以作为直方图的维度来区分数据
labels = [ "label1", "label2" ]
# 配置每个桶(bucket)的阈值,用于定义直方图的范围
metricsbuckets = { data = { le_20 = "20", le_40 = "40", le_60 = "60", le_80 = "80" } }

  
# 该直方图指标将生成如下形式的度量数据:
# HELP xugudb_test_histo_data Histogram - sum total of all values in the data field.
# TYPE xugudb_test_histo_data histogram
# xugudb_test_histo_data_bucket{label1="firstlabel",label2="secondlabel",le="20"} 3
# xugudb_test_histo_data_bucket{label1="firstlabel",label2="secondlabel",le="40"} 19
# xugudb_test_histo_data_bucket{label1="firstlabel",label2="secondlabel",le="60"} 31
# xugudb_test_histo_data_bucket{label1="firstlabel",label2="secondlabel",le="80"} 40
# xugudb_test_histo_data_bucket{label1="firstlabel",label2="secondlabel",le="+Inf"} 45
# xugudb_test_histo_data_sum{label1="firstlabel",label2="secondlabel"} 123.45
# xugudb_test_histo_data_count{label1="firstlabel",label2="secondlabel"} 45