unoffical wafrn mirror
wafrn.net
atproto
social-network
activitypub
1{
2 "annotations": {
3 "list": [
4 {
5 "builtIn": 1,
6 "datasource": {
7 "type": "datasource",
8 "uid": "grafana"
9 },
10 "enable": true,
11 "hide": true,
12 "iconColor": "rgba(0, 211, 255, 1)",
13 "name": "Annotations & Alerts",
14 "target": {
15 "limit": 100,
16 "matchAny": false,
17 "tags": [],
18 "type": "dashboard"
19 },
20 "type": "dashboard"
21 }
22 ]
23 },
24 "description": "Depends on the \"Heatmap\" plugin. Based on latest \"table/index_stats\" data",
25 "editable": true,
26 "fiscalYearStartMonth": 0,
27 "graphTooltip": 0,
28 "id": null,
29 "iteration": 1703497578925,
30 "links": [],
31 "liveNow": false,
32 "panels": [
33 {
34 "datasource": {
35 "type": "grafana-postgresql-datasource",
36 "uid": "pgwatch-metrics"
37 },
38 "description": "",
39 "fieldConfig": {
40 "defaults": {
41 "color": {
42 "mode": "continuous-GrYlRd"
43 },
44 "custom": {
45 "separator": "."
46 },
47 "mappings": [],
48 "thresholds": {
49 "mode": "absolute",
50 "steps": [
51 {
52 "color": "green",
53 "value": null
54 }
55 ]
56 },
57 "unit": "bytes"
58 },
59 "overrides": []
60 },
61 "gridPos": {
62 "h": 10,
63 "w": 24,
64 "x": 0,
65 "y": 0
66 },
67 "id": 3,
68 "links": [],
69 "maxDataPoints": 100,
70 "options": {
71 "sizeField": "total_relation_size_b",
72 "textField": "table_name",
73 "tiling": "treemapSquarify"
74 },
75 "targets": [
76 {
77 "alias": "$tag_table_name",
78 "datasource": {
79 "type": "grafana-postgresql-datasource",
80 "uid": "pgwatch-metrics"
81 },
82 "format": "table",
83 "group": [],
84 "groupBy": [
85 {
86 "params": [
87 "$__interval"
88 ],
89 "type": "time"
90 },
91 {
92 "params": [
93 "null"
94 ],
95 "type": "fill"
96 }
97 ],
98 "metricColumn": "none",
99 "orderByTime": "ASC",
100 "policy": "default",
101 "rawQuery": true,
102 "rawSql": "SELECT\n time,\n (data->'total_relation_size_b')::int8 as total_relation_size_b,\n tag_data->>'table_full_name'::text as table_name\nFROM\n table_stats\nWHERE\n time = (select max(time) from table_stats WHERE dbname = '$dbname' AND $__timeFilter(time))\n AND dbname = '$dbname'\nORDER BY\n 2 DESC NULLS LAST\nLIMIT 100",
103 "refId": "A",
104 "resultFormat": "time_series",
105 "select": [
106 [
107 {
108 "params": [
109 "value"
110 ],
111 "type": "field"
112 },
113 {
114 "params": [],
115 "type": "mean"
116 }
117 ]
118 ],
119 "tags": [],
120 "timeColumn": "time",
121 "where": [
122 {
123 "name": "$__timeFilter",
124 "params": [],
125 "type": "macro"
126 }
127 ]
128 }
129 ],
130 "title": "Biggest by total relation size",
131 "type": "marcusolsson-treemap-panel"
132 },
133 {
134 "datasource": {
135 "type": "grafana-postgresql-datasource",
136 "uid": "pgwatch-metrics"
137 },
138 "description": "",
139 "fieldConfig": {
140 "defaults": {
141 "color": {
142 "mode": "continuous-GrYlRd"
143 },
144 "custom": {
145 "separator": "."
146 },
147 "mappings": [],
148 "thresholds": {
149 "mode": "absolute",
150 "steps": [
151 {
152 "color": "green",
153 "value": null
154 }
155 ]
156 },
157 "unit": "bytes"
158 },
159 "overrides": []
160 },
161 "gridPos": {
162 "h": 12,
163 "w": 24,
164 "x": 0,
165 "y": 10
166 },
167 "id": 1,
168 "links": [],
169 "maxDataPoints": 100,
170 "options": {
171 "sizeField": "table_size_b",
172 "textField": "table_name",
173 "tiling": "treemapSquarify"
174 },
175 "targets": [
176 {
177 "alias": "$tag_table_name",
178 "datasource": {
179 "type": "grafana-postgresql-datasource",
180 "uid": "pgwatch-metrics"
181 },
182 "format": "table",
183 "group": [],
184 "groupBy": [
185 {
186 "params": [
187 "1h"
188 ],
189 "type": "time"
190 },
191 {
192 "params": [
193 "table_full_name"
194 ],
195 "type": "tag"
196 },
197 {
198 "params": [
199 "none"
200 ],
201 "type": "fill"
202 }
203 ],
204 "measurement": "table_stats",
205 "metricColumn": "none",
206 "orderByTime": "ASC",
207 "policy": "default",
208 "rawQuery": true,
209 "rawSql": "SELECT\n 0 as time,\n (data->'table_size_b')::int8 + coalesce((data->'toast_size_b')::int8, 0) as table_size_b,\n tag_data->>'table_full_name' as table_name\nFROM\n table_stats\nWHERE\n time = (select max(time) from table_stats WHERE dbname = '$dbname' AND $__timeFilter(time))\n AND dbname = '$dbname'\nORDER BY\n 2 DESC NULLS LAST\nLIMIT 100",
210 "refId": "A",
211 "resultFormat": "time_series",
212 "select": [
213 [
214 {
215 "params": [
216 "total_relation_size_b"
217 ],
218 "type": "field"
219 },
220 {
221 "params": [],
222 "type": "mean"
223 }
224 ]
225 ],
226 "tags": [
227 {
228 "key": "dbname",
229 "operator": "=",
230 "value": "$dbname"
231 }
232 ],
233 "timeColumn": "time",
234 "where": [
235 {
236 "name": "$__timeFilter",
237 "params": [],
238 "type": "macro"
239 }
240 ]
241 }
242 ],
243 "title": "Biggest tables (w/o indexes)",
244 "type": "marcusolsson-treemap-panel"
245 },
246 {
247 "datasource": {
248 "type": "grafana-postgresql-datasource",
249 "uid": "pgwatch-metrics"
250 },
251 "description": "",
252 "fieldConfig": {
253 "defaults": {
254 "color": {
255 "mode": "continuous-GrYlRd"
256 },
257 "custom": {
258 "separator": "."
259 },
260 "mappings": [],
261 "thresholds": {
262 "mode": "absolute",
263 "steps": [
264 {
265 "color": "green",
266 "value": null
267 }
268 ]
269 },
270 "unit": "bytes"
271 },
272 "overrides": []
273 },
274 "gridPos": {
275 "h": 7,
276 "w": 24,
277 "x": 0,
278 "y": 22
279 },
280 "id": 2,
281 "links": [],
282 "maxDataPoints": 100,
283 "options": {
284 "sizeField": "index_size_b",
285 "textField": "index_full_name",
286 "tiling": "treemapSquarify"
287 },
288 "targets": [
289 {
290 "alias": "$tag_index_name",
291 "datasource": {
292 "type": "grafana-postgresql-datasource",
293 "uid": "pgwatch-metrics"
294 },
295 "format": "table",
296 "group": [],
297 "groupBy": [
298 {
299 "params": [
300 "$__interval"
301 ],
302 "type": "time"
303 },
304 {
305 "params": [
306 "null"
307 ],
308 "type": "fill"
309 }
310 ],
311 "metricColumn": "none",
312 "orderByTime": "ASC",
313 "policy": "default",
314 "rawQuery": true,
315 "rawSql": "SELECT\n 0 as time,\n (data->'index_size_b')::int8 as index_size_b,\n tag_data->>'index_full_name' as index_full_name\nFROM\n index_stats\nWHERE\n time = (select max(time) from index_stats WHERE dbname = '$dbname' AND $__timeFilter(time))\n AND dbname = '$dbname'\nORDER BY\n 2 DESC NULLS LAST\nLIMIT 100",
316 "refId": "A",
317 "resultFormat": "time_series",
318 "select": [
319 [
320 {
321 "params": [
322 "value"
323 ],
324 "type": "field"
325 },
326 {
327 "params": [],
328 "type": "mean"
329 }
330 ]
331 ],
332 "tags": [],
333 "timeColumn": "time",
334 "where": [
335 {
336 "name": "$__timeFilter",
337 "params": [],
338 "type": "macro"
339 }
340 ]
341 }
342 ],
343 "title": "Biggest indexes",
344 "type": "marcusolsson-treemap-panel"
345 },
346 {
347 "datasource": {
348 "type": "grafana-postgresql-datasource",
349 "uid": "pgwatch-metrics"
350 },
351 "editable": true,
352 "error": false,
353 "gridPos": {
354 "h": 7,
355 "w": 24,
356 "x": 0,
357 "y": 29
358 },
359 "id": 4,
360 "links": [],
361 "options": {
362 "content": "<h2>Brought to you by</h2><div style=\"padding: 25px;\"><a href=\"https://www.cybertec-postgresql.com/en/\"><img src=\"https://www.cybertec-postgresql.com/wp-content/uploads/2025/02/cybertec-logo-white-blue.svg\" alt=\"Cybertec – The PostgreSQL Database Company\"></a></div>",
363 "mode": "html"
364 },
365 "pluginVersion": "8.5.20",
366 "transparent": true,
367 "type": "text"
368 }
369 ],
370 "refresh": "1m",
371 "schemaVersion": 36,
372 "style": "dark",
373 "tags": [
374 "pgwatch"
375 ],
376 "templating": {
377 "list": [
378 {
379 "current": {},
380 "datasource": {
381 "type": "grafana-postgresql-datasource",
382 "uid": "pgwatch-metrics"
383 },
384 "definition": "",
385 "hide": 0,
386 "includeAll": false,
387 "multi": false,
388 "name": "dbname",
389 "options": [],
390 "query": "SELECT DISTINCT dbname FROM admin.all_distinct_dbname_metrics WHERE metric = 'table_stats' ORDER BY 1;",
391 "refresh": 1,
392 "regex": "",
393 "skipUrlSync": false,
394 "sort": 0,
395 "tagValuesQuery": "",
396 "tagsQuery": "",
397 "type": "query",
398 "useTags": false
399 }
400 ]
401 },
402 "time": {
403 "from": "now-3h",
404 "to": "now"
405 },
406 "timepicker": {
407 "refresh_intervals": [
408 "5s",
409 "10s",
410 "30s",
411 "1m",
412 "5m",
413 "15m",
414 "30m",
415 "1h",
416 "2h",
417 "1d"
418 ],
419 "time_options": [
420 "5m",
421 "15m",
422 "1h",
423 "6h",
424 "12h",
425 "24h",
426 "2d",
427 "7d",
428 "30d"
429 ]
430 },
431 "timezone": "",
432 "title": "Biggest relations treemap",
433 "uid": "biggest-relations",
434 "version": 1,
435 "weekStart": ""
436}