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 "type": "dashboard"
15 }
16 ]
17 },
18 "editable": true,
19 "fiscalYearStartMonth": 0,
20 "graphTooltip": 0,
21 "links": [],
22 "panels": [
23 {
24 "datasource": {
25 "type": "grafana-postgresql-datasource",
26 "uid": "pgwatch-metrics"
27 },
28 "fieldConfig": {
29 "defaults": {
30 "color": {
31 "mode": "palette-classic"
32 },
33 "custom": {
34 "axisBorderShow": false,
35 "axisCenteredZero": false,
36 "axisColorMode": "text",
37 "axisLabel": "",
38 "axisPlacement": "auto",
39 "barAlignment": 0,
40 "drawStyle": "line",
41 "fillOpacity": 10,
42 "gradientMode": "none",
43 "hideFrom": {
44 "legend": false,
45 "tooltip": false,
46 "viz": false
47 },
48 "insertNulls": false,
49 "lineInterpolation": "linear",
50 "lineWidth": 1,
51 "pointSize": 5,
52 "scaleDistribution": {
53 "type": "linear"
54 },
55 "showPoints": "never",
56 "spanNulls": false,
57 "stacking": {
58 "group": "A",
59 "mode": "none"
60 },
61 "thresholdsStyle": {
62 "mode": "off"
63 }
64 },
65 "mappings": [],
66 "min": 0,
67 "thresholds": {
68 "mode": "absolute",
69 "steps": [
70 {
71 "color": "green",
72 "value": null
73 },
74 {
75 "color": "red",
76 "value": 80
77 }
78 ]
79 },
80 "unit": "short"
81 },
82 "overrides": []
83 },
84 "gridPos": {
85 "h": 7,
86 "w": 24,
87 "x": 0,
88 "y": 0
89 },
90 "id": 1,
91 "interval": "2m",
92 "options": {
93 "legend": {
94 "calcs": [
95 "mean"
96 ],
97 "displayMode": "list",
98 "placement": "bottom",
99 "showLegend": true
100 },
101 "tooltip": {
102 "mode": "multi",
103 "sort": "none"
104 }
105 },
106 "pluginVersion": "10.4.1",
107 "targets": [
108 {
109 "alias": "calls",
110 "datasource": {
111 "type": "grafana-postgresql-datasource",
112 "uid": "pgwatch-metrics"
113 },
114 "format": "time_series",
115 "group": [],
116 "groupBy": [
117 {
118 "params": [
119 "$__interval"
120 ],
121 "type": "time"
122 },
123 {
124 "params": [
125 "none"
126 ],
127 "type": "fill"
128 }
129 ],
130 "measurement": "sproc_stats",
131 "metricColumn": "none",
132 "orderByTime": "ASC",
133 "policy": "default",
134 "rawQuery": true,
135 "rawSql": "SELECT\n time,\n sum(calls - calls_lag) as calls\nFROM (\nSELECT\n $__timeGroup(time, $agg_interval),\n (data->'sp_calls')::int8 as calls,\n lag((data->'sp_calls')::int8) OVER(order by time) as calls_lag\nFROM\n sproc_stats\nWHERE\n $__timeFilter(time)\n AND dbname = '$dbname'\n AND tag_data @> '{\"function_full_name\": \"$sproc_name\"}'\n) x\nWHERE calls >= calls_lag\nGROUP BY 1\nORDER BY 1",
136 "refId": "A",
137 "resultFormat": "time_series",
138 "select": [
139 [
140 {
141 "params": [
142 "sp_calls"
143 ],
144 "type": "field"
145 },
146 {
147 "params": [],
148 "type": "mean"
149 },
150 {
151 "params": [
152 "1h"
153 ],
154 "type": "non_negative_derivative"
155 }
156 ]
157 ],
158 "tags": [
159 {
160 "key": "dbname",
161 "operator": "=~",
162 "value": "/^$dbname$/"
163 },
164 {
165 "condition": "AND",
166 "key": "function_full_name",
167 "operator": "=~",
168 "value": "/^$sproc_name$/"
169 }
170 ],
171 "timeColumn": "time",
172 "where": [
173 {
174 "name": "$__timeFilter",
175 "params": [],
176 "type": "macro"
177 }
178 ]
179 }
180 ],
181 "title": "Calls ($agg_interval aggregate)",
182 "type": "timeseries"
183 },
184 {
185 "aliasColors": {},
186 "bars": false,
187 "dashLength": 10,
188 "dashes": false,
189 "datasource": {
190 "type": "grafana-postgresql-datasource",
191 "uid": "pgwatch-metrics"
192 },
193 "decimals": 3,
194 "fieldConfig": {
195 "defaults": {
196 "links": []
197 },
198 "overrides": []
199 },
200 "fill": 1,
201 "fillGradient": 0,
202 "gridPos": {
203 "h": 7,
204 "w": 24,
205 "x": 0,
206 "y": 7
207 },
208 "hiddenSeries": false,
209 "id": 2,
210 "interval": "2m",
211 "legend": {
212 "avg": true,
213 "current": false,
214 "max": false,
215 "min": false,
216 "show": true,
217 "total": false,
218 "values": true
219 },
220 "lines": true,
221 "linewidth": 1,
222 "nullPointMode": "null as zero",
223 "options": {
224 "alertThreshold": true
225 },
226 "percentage": false,
227 "pluginVersion": "10.4.1",
228 "pointradius": 5,
229 "points": false,
230 "renderer": "flot",
231 "seriesOverrides": [],
232 "spaceLength": 10,
233 "stack": false,
234 "steppedLine": false,
235 "targets": [
236 {
237 "alias": "total_time",
238 "datasource": {
239 "type": "grafana-postgresql-datasource",
240 "uid": "pgwatch-metrics"
241 },
242 "format": "time_series",
243 "group": [],
244 "groupBy": [
245 {
246 "params": [
247 "auto"
248 ],
249 "type": "time"
250 },
251 {
252 "params": [
253 "none"
254 ],
255 "type": "fill"
256 }
257 ],
258 "measurement": "sproc_stats",
259 "metricColumn": "none",
260 "orderByTime": "ASC",
261 "policy": "default",
262 "rawQuery": true,
263 "rawSql": "SELECT\n $__timeGroup(time, $agg_interval),\n avg( case when calls = calls_lag then null else (total_time - total_time_lag) / (calls - calls_lag) end) as total_time,\n avg( case when calls = calls_lag then null else (self_time - self_time_lag) / (calls - calls_lag) end) as self_time\nFROM (\n SELECT\n (data->'sp_calls')::int8 as calls, lag((data->'sp_calls')::int8) over w as calls_lag,\n (data->'self_time')::float as self_time, lag((data->'self_time')::float) over w as self_time_lag,\n (data->'total_time')::float as total_time, lag((data->'total_time')::float) over w as total_time_lag,\n time, lag(time) over w as time_lag\n FROM\n sproc_stats\n WHERE\n $__timeFilter(time)\n AND dbname = '$dbname'\n AND tag_data @> jsonb_build_object('function_full_name', '$sproc_name')\n WINDOW w AS (order by time)\n) x\nWHERE time > time_lag AND calls >= calls_lag\nGROUP BY 1\nORDER BY 1",
264 "refId": "A",
265 "resultFormat": "time_series",
266 "select": [
267 [
268 {
269 "params": [
270 "total_time"
271 ],
272 "type": "field"
273 },
274 {
275 "params": [],
276 "type": "mean"
277 },
278 {
279 "params": [
280 "1h"
281 ],
282 "type": "non_negative_derivative"
283 }
284 ]
285 ],
286 "tags": [
287 {
288 "key": "dbname",
289 "operator": "=~",
290 "value": "/^$dbname$/"
291 },
292 {
293 "condition": "AND",
294 "key": "function_full_name",
295 "operator": "=~",
296 "value": "/^$sproc_name$/"
297 }
298 ],
299 "timeColumn": "time",
300 "where": [
301 {
302 "name": "$__timeFilter",
303 "params": [],
304 "type": "macro"
305 }
306 ]
307 }
308 ],
309 "thresholds": [],
310 "timeRegions": [],
311 "title": "Avg. runtime ($agg_interval avg.)",
312 "tooltip": {
313 "shared": true,
314 "sort": 0,
315 "value_type": "individual"
316 },
317 "type": "graph",
318 "xaxis": {
319 "mode": "time",
320 "show": true,
321 "values": []
322 },
323 "yaxes": [
324 {
325 "decimals": 3,
326 "format": "ms",
327 "logBase": 1,
328 "show": true
329 },
330 {
331 "format": "short",
332 "logBase": 1,
333 "show": false
334 }
335 ],
336 "yaxis": {
337 "align": false
338 }
339 }
340 ],
341 "schemaVersion": 39,
342 "tags": [
343 "pgwatch"
344 ],
345 "templating": {
346 "list": [
347 {
348 "current": {
349 "selected": false,
350 "text": "test",
351 "value": "test"
352 },
353 "datasource": {
354 "type": "grafana-postgresql-datasource",
355 "uid": "pgwatch-metrics"
356 },
357 "definition": "",
358 "hide": 0,
359 "includeAll": false,
360 "multi": false,
361 "name": "dbname",
362 "options": [],
363 "query": "SELECT DISTINCT dbname FROM admin.all_distinct_dbname_metrics WHERE metric = 'sproc_stats' ORDER BY 1;",
364 "refresh": 1,
365 "regex": "",
366 "skipUrlSync": false,
367 "sort": 0,
368 "tagValuesQuery": "",
369 "tagsQuery": "",
370 "type": "query",
371 "useTags": false
372 },
373 {
374 "current": {
375 "selected": false,
376 "text": "_timescaledb_functions.policy_job_error_retention",
377 "value": "_timescaledb_functions.policy_job_error_retention"
378 },
379 "datasource": {
380 "type": "grafana-postgresql-datasource",
381 "uid": "pgwatch-metrics"
382 },
383 "definition": "select distinct tag_data->>'function_full_name' from sproc_stats where time > current_date-7 and dbname = '$dbname' and tag_data ? 'function_full_name' order by 1;",
384 "hide": 0,
385 "includeAll": false,
386 "multi": false,
387 "name": "sproc_name",
388 "options": [],
389 "query": "select distinct tag_data->>'function_full_name' from sproc_stats where time > current_date-7 and dbname = '$dbname' and tag_data ? 'function_full_name' order by 1;",
390 "refresh": 1,
391 "regex": "",
392 "skipUrlSync": false,
393 "sort": 0,
394 "tagValuesQuery": "",
395 "tagsQuery": "",
396 "type": "query",
397 "useTags": false
398 },
399 {
400 "auto": false,
401 "auto_count": 30,
402 "auto_min": "10s",
403 "current": {
404 "selected": false,
405 "text": "10m",
406 "value": "10m"
407 },
408 "hide": 0,
409 "name": "agg_interval",
410 "options": [
411 {
412 "selected": false,
413 "text": "1m",
414 "value": "1m"
415 },
416 {
417 "selected": false,
418 "text": "5m",
419 "value": "5m"
420 },
421 {
422 "selected": true,
423 "text": "10m",
424 "value": "10m"
425 },
426 {
427 "selected": false,
428 "text": "15m",
429 "value": "15m"
430 },
431 {
432 "selected": false,
433 "text": "30m",
434 "value": "30m"
435 },
436 {
437 "selected": false,
438 "text": "1h",
439 "value": "1h"
440 },
441 {
442 "selected": false,
443 "text": "6h",
444 "value": "6h"
445 },
446 {
447 "selected": false,
448 "text": "12h",
449 "value": "12h"
450 },
451 {
452 "selected": false,
453 "text": "1d",
454 "value": "1d"
455 }
456 ],
457 "query": "1m,5m,10m,15m,30m,1h,6h,12h,1d",
458 "refresh": 2,
459 "skipUrlSync": false,
460 "type": "interval"
461 }
462 ]
463 },
464 "time": {
465 "from": "now-3h",
466 "to": "now"
467 },
468 "timepicker": {
469 "refresh_intervals": [
470 "5s",
471 "10s",
472 "30s",
473 "1m",
474 "5m",
475 "15m",
476 "30m",
477 "1h",
478 "2h",
479 "1d"
480 ],
481 "time_options": [
482 "5m",
483 "15m",
484 "1h",
485 "6h",
486 "12h",
487 "24h",
488 "2d",
489 "7d",
490 "30d"
491 ]
492 },
493 "timezone": "browser",
494 "title": "Sproc details",
495 "uid": "sproc-details",
496 "version": 3,
497 "weekStart": ""
498}