1+ # 人大金仓数据库pg模式下查询结果是小写
2+ collector_name : kingbase_sql_pg
3+
4+ # Similar to global.min_interval, but applies to the queries defined by this collector only.
5+ # min_interval: 0s
6+
7+ metrics :
8+ # base
9+ - metric_name : kingbase_database_mode
10+ type : gauge
11+ help : ' 数据库模式'
12+ key_labels :
13+ - database_mode
14+ values :
15+ - value
16+ query : |
17+ SELECT 1 as value, database_mode FROM (SELECT current_setting('database_mode') as database_mode) t
18+
19+ # connection
20+ # 告警: conns超过max_connections的80%
21+ - metric_name : kingbase_exporter_current_connections
22+ type : gauge
23+ help : ' 数据库当前连接数'
24+ values :
25+ - conns
26+ query : |
27+ SELECT count(*) as conns FROM pg_stat_activity WHERE backend_type IN ('client backend', 'walsender')
28+
29+ - metric_name : kingbase_exporter_max_connections_limit
30+ type : gauge
31+ help : ' 数据库最大连接数限制'
32+ values :
33+ - max_connections
34+ query : |
35+ show max_connections
36+
37+ - metric_name : kingbase_exporter_active_connections
38+ type : gauge
39+ help : ' 数据库活动进程数'
40+ key_labels :
41+ - datname
42+ values :
43+ - active
44+ query_ref : connection_query
45+
46+ - metric_name : kingbase_exporter_idle_connections
47+ type : gauge
48+ help : ' 数据库空闲进程数'
49+ key_labels :
50+ - datname
51+ values :
52+ - idle
53+ query_ref : connection_query
54+
55+ - metric_name : kingbase_exporter_idle_in_trans_connections
56+ type : gauge
57+ help : ' 数据库空闲事务进程数'
58+ key_labels :
59+ - datname
60+ values :
61+ - idle_in_trans
62+ query_ref : connection_query
63+
64+ - metric_name : kingbase_exporter_slow_query_number
65+ type : gauge
66+ help : ' 慢查询数量'
67+ key_labels :
68+ - datname
69+ values :
70+ - slow_query
71+ query_ref : connection_query
72+
73+ - metric_name : kingbase_exporter_db_max_tran_duration
74+ type : gauge
75+ help : ' 数据库当前执行事务的最长时间(s)'
76+ key_labels :
77+ - datname
78+ values :
79+ - maxduration
80+ query_ref : connection_query
81+
82+ # buffer
83+ - metric_name : kingbase_exporter_buffers_clean
84+ type : gauge
85+ help : ' 后台编写器写入的缓冲区数'
86+ values :
87+ - buffers_clean
88+ query_ref : buffer_query
89+
90+ - metric_name : kingbase_exporter_buffers_checkpoint
91+ type : gauge
92+ help : ' 检查点期间写入的缓冲区数'
93+ values :
94+ - buffers_checkpoint
95+ query_ref : buffer_query
96+
97+ - metric_name : kingbase_exporter_buffers_backend
98+ type : gauge
99+ help : ' 后端直接写入的缓冲区数'
100+ values :
101+ - buffers_backend
102+ query_ref : buffer_query
103+
104+ # conflict
105+ - metric_name : kingbase_exporter_conflict_tablespaces
106+ type : gauge
107+ help : ' 由于删除表空间而取消的查询数'
108+ key_labels :
109+ - datname
110+ values :
111+ - confl_tablespace
112+ query_ref : conflict_query
113+
114+ - metric_name : kingbase_exporter_conflict_locks
115+ type : gauge
116+ help : ' 由于锁定超时而取消的查询数'
117+ key_labels :
118+ - datname
119+ values :
120+ - confl_lock
121+ query_ref : conflict_query
122+
123+ - metric_name : kingbase_exporter_conflict_snapshots
124+ type : gauge
125+ help : ' 由于旧快照而取消的查询数'
126+ key_labels :
127+ - datname
128+ values :
129+ - confl_snapshot
130+ query_ref : conflict_query
131+
132+ - metric_name : kingbase_exporter_conflict_bufferpins
133+ type : gauge
134+ help : ' 由于固定缓冲区而取消的查询数'
135+ key_labels :
136+ - datname
137+ values :
138+ - confl_bufferpin
139+ query_ref : conflict_query
140+
141+ - metric_name : kingbase_exporter_conflict_deadlock
142+ type : gauge
143+ help : ' 由于死锁而取消的查询数'
144+ key_labels :
145+ - datname
146+ values :
147+ - confl_deadlock
148+ query_ref : conflict_query
149+
150+ # disk
151+ - metric_name : kingbase_exporter_database_used_disk
152+ type : gauge
153+ help : ' 数据库使用的磁盘空间(bytes)'
154+ key_labels :
155+ - datname
156+ values :
157+ - sys_database_size
158+ query : |
159+ SELECT datname, sys_catalog.sys_database_size(datname) FROM sys_catalog.sys_database
160+
161+ # lock
162+ - metric_name : kingbase_exporter_locks_waiting_all
163+ type : gauge
164+ help : ' 当前等待封锁的进程数量'
165+ values :
166+ - count
167+ query : |
168+ SELECT count(*) FROM pg_locks WHERE granted = false
169+
170+ - metric_name : kingbase_exporter_locks_granted
171+ type : gauge
172+ help : ' 已授予的锁数量'
173+ key_labels :
174+ - datname
175+ - locktype
176+ values :
177+ - granted_count
178+ query_ref : lock_query
179+
180+ - metric_name : kingbase_exporter_locks_waiting
181+ type : gauge
182+ help : ' 等待授予的锁数量'
183+ key_labels :
184+ - datname
185+ - locktype
186+ values :
187+ - wait_count
188+ query_ref : lock_query
189+
190+ # cursor
191+ - metric_name : kingbase_exporter_opened_cursors
192+ type : gauge
193+ help : ' 打开的游标数'
194+ values :
195+ - count
196+ query : |
197+ SELECT count(*) FROM pg_cursors
198+
199+ # system
200+ - metric_name : kingbase_exporter_buffers_hit_percent
201+ type : gauge
202+ help : ' 缓冲区缓存命中率(%)'
203+ key_labels :
204+ - datname
205+ values :
206+ - cache_hit_percent
207+ query_ref : system_query
208+
209+ - metric_name : kingbase_exporter_deadlocks
210+ type : gauge
211+ help : ' 死锁数量'
212+ key_labels :
213+ - datname
214+ values :
215+ - deadlocks
216+ query_ref : system_query
217+
218+ - metric_name : kingbase_exporter_returned_tuples
219+ type : gauge
220+ help : ' 全表扫描记录数'
221+ key_labels :
222+ - datname
223+ values :
224+ - tup_returned
225+ query_ref : system_query
226+
227+ - metric_name : kingbase_exporter_xact_commit
228+ type : gauge
229+ help : ' 数据库中已提交的事务数'
230+ key_labels :
231+ - datname
232+ values :
233+ - xact_commit
234+ query_ref : system_query
235+
236+ - metric_name : kingbase_exporter_xact_rollback
237+ type : gauge
238+ help : ' 数据库中已回滚的事务数'
239+ key_labels :
240+ - datname
241+ values :
242+ - xact_rollback
243+ query_ref : system_query
244+
245+ - metric_name : kingbase_exporter_rollback_percent
246+ type : gauge
247+ help : ' 数据库的事务回滚率(%)'
248+ key_labels :
249+ - datname
250+ values :
251+ - rollback_percent
252+ query_ref : system_query
253+
254+ # age
255+ # 告警: age或 mxid_age超过2^32 – 30000000
256+ - metric_name : kingbase_exporter_database_frozen_age
257+ type : gauge
258+ help : ' 数据库中最老事务的年龄'
259+ key_labels :
260+ - datname
261+ values :
262+ - age
263+ query_ref : age_query
264+
265+ - metric_name : kingbase_exporter_database_min_mxid_age
266+ type : gauge
267+ help : ' 数据库中最小mxid的年龄'
268+ key_labels :
269+ - datname
270+ values :
271+ - mxid_age
272+ query_ref : age_query
273+
274+ # license
275+ - metric_name : kingbase_exporter_license_validdays
276+ type : gauge
277+ help : ' license剩余有效期(days)'
278+ values :
279+ - valid_days
280+ query : |
281+ SELECT get_license_validdays() AS valid_days
282+
283+ queries :
284+ - query_name : buffer_query
285+ query : |
286+ SELECT
287+ buffers_clean,
288+ buffers_checkpoint,
289+ buffers_backend,
290+ 100 * (buffers_checkpoint / (buffers_checkpoint + buffers_clean + buffers_backend + 0.000001)) AS checkpoint_write_percent
291+ FROM
292+ pg_stat_bgwriter
293+
294+ - query_name : conflict_query
295+ query : |
296+ SELECT
297+ datname,
298+ confl_tablespace,
299+ confl_lock,
300+ confl_snapshot,
301+ confl_bufferpin,
302+ confl_deadlock
303+ FROM
304+ pg_stat_database_conflicts
305+ WHERE
306+ datname NOT IN ('template0', 'template1', 'template2')
307+
308+ - query_name : connection_query
309+ query : |
310+ select dtb.datname, count(act.pid) filter (where act.state = 'active') as active, count(act.pid) filter (where act.state = 'idle') as idle, count(act.pid) filter (where act.state = 'idle in transaction') as idle_in_trans, count(pid) filter(where act.STATE = 'active' AND now( ) - act.query_start > INTERVAL '1 second') AS slow_query, MAX(EXTRACT(EPOCH FROM now() - xact_start))::float AS maxduration from pg_stat_activity act right join pg_database dtb on act.datname = dtb.datname group by dtb.datname
311+
312+ - query_name : lock_query
313+ query : |
314+ SELECT
315+ case
316+ WHEN dtb.datname IS NULL THEN 'other'
317+ ELSE dtb.datname
318+ end,
319+ l.locktype,
320+ count(l.locktype) filter(
321+ WHERE
322+ granted = 't'
323+ ) AS granted_count,
324+ count(l.locktype) filter(
325+ WHERE
326+ granted != 't'
327+ ) AS wait_count
328+ FROM
329+ pg_locks l
330+ LEFT JOIN pg_database dtb ON l.database = dtb.oid
331+ GROUP BY
332+ l.locktype,
333+ dtb.datname,
334+ l.granted
335+
336+ - query_name : system_query
337+ query : |
338+ SELECT
339+ datname,
340+ CAST (
341+ blks_hit /(blks_read + blks_hit + 0.000001) * 100.0 AS NUMERIC (5, 2)
342+ ) AS cache_hit_percent,
343+ deadlocks,
344+ tup_returned,
345+ xact_commit,
346+ xact_rollback,
347+ 100.0 * xact_rollback /(xact_rollback + xact_commit + 0.000001) AS rollback_percent
348+ FROM
349+ pg_stat_database
350+ WHERE
351+ datname NOT IN ('template0', 'template1', 'template2')
352+
353+ - query_name : age_query
354+ query : |
355+ SELECT
356+ datname,
357+ age(datfrozenxid),
358+ mxid_age(datminmxid)
359+ FROM
360+ pg_database
0 commit comments