-
Global information
- Generated on Thu Apr 30 06:07:03 2026
- Log file: /var/log/postgresql/postgresql-2026-03-25_000000.csv, ..., /var/log/postgresql/postgresql-2026-04-30_000000.csv
- Parsed 254,365 log entries in 7m2s
- Log start from 2026-04-26 00:00:01 to 2026-04-26 23:59:03
-
Overview
Global Stats
- 36 Number of unique normalized queries
- 24,856 Number of queries
- 1d3h43m37s Total query duration
- 2026-04-26 00:00:01 First query
- 2026-04-26 23:59:01 Last query
- 19 queries/s at 2026-04-26 23:17:01 Query peak
- 1d3h43m37s Total query duration
- 0ms Prepare/parse total duration
- 0ms Bind total duration
- 1d3h43m37s Execute total duration
- 27 Number of events
- 2 Number of unique normalized events
- 17 Max number of times the same event was reported
- 0 Number of cancellation
- 18 Total number of automatic vacuums
- 23 Total number of automatic analyzes
- 1,109 Number temporary file
- 75.77 MiB Max size of temporary file
- 55.67 MiB Average size of temporary file
- 22,026 Total number of sessions
- 7 sessions at 2026-04-26 05:07:02 Session peak
- 1h32m8s Total duration of sessions
- 250ms Average duration of sessions
- 1 Average queries per session
- 4s531ms Average queries duration per session
- 0ms Average idle time per session
- 22,036 Total number of connections
- 37 connections/s at 2026-04-26 04:00:01 Connection peak
- 4 Total number of databases
SQL Traffic
Key values
- 19 queries/s Query Peak
- 2026-04-26 23:17:01 Date
SELECT Traffic
Key values
- 1 queries/s Query Peak
- 2026-04-26 00:31:07 Date
INSERT/UPDATE/DELETE Traffic
Key values
- 18 queries/s Query Peak
- 2026-04-26 04:31:01 Date
Queries duration
Key values
- 1d3h43m37s Total query duration
Prepared queries ratio
Key values
- 0.00 Ratio of bind vs prepare
- 0.00 % Ratio between prepared and "usual" statements
General Activity
↑ Back to the top of the General Activity tableDay Hour Count Min duration Max duration Avg duration Latency Percentile(90) Latency Percentile(95) Latency Percentile(99) Apr 26 00 1,039 0ms 4s820ms 3s322ms 1m18s 1m21s 1m25s 01 1,033 1s185ms 4s153ms 3s928ms 1m11s 1m12s 1m12s 02 1,032 3s763ms 4s153ms 3s874ms 1m9s 1m11s 1m14s 03 1,031 3s737ms 3s957ms 3s831ms 1m8s 1m9s 1m11s 04 1,032 3s761ms 3s894ms 3s822ms 1m8s 1m9s 1m10s 05 1,032 3s766ms 4s121ms 3s866ms 1m10s 1m10s 1m13s 06 1,031 3s724ms 4s33ms 3s827ms 1m8s 1m9s 1m12s 07 1,032 3s743ms 3s941ms 3s813ms 1m8s 1m9s 1m10s 08 1,023 3s796ms 3s876ms 3s848ms 1m5s 1m8s 1m9s 09 1,038 542ms 4s222ms 3s525ms 1m5s 1m6s 1m17s 10 1,049 516ms 9s691ms 3s644ms 1m18s 1m20s 1m40s 11 1,031 4s211ms 4s474ms 4s338ms 1m18s 1m19s 1m20s 12 1,031 4s197ms 4s500ms 4s302ms 1m17s 1m17s 1m18s 13 1,021 4s269ms 4s500ms 4s330ms 1m16s 1m16s 1m20s 14 1,020 4s269ms 4s269ms 4s269ms 1m12s 1m12s 1m12s 15 1,020 4s269ms 4s269ms 4s269ms 1m12s 1m12s 1m12s 16 1,020 4s269ms 4s269ms 4s269ms 1m12s 1m12s 1m12s 17 1,020 4s269ms 4s269ms 4s269ms 1m12s 1m12s 1m12s 18 1,038 520ms 4s516ms 4s183ms 1m16s 1m20s 1m22s 19 1,057 502ms 4s531ms 4s162ms 1m19s 1m21s 1m22s 20 1,056 510ms 4s441ms 4s259ms 1m19s 1m19s 1m20s 21 1,053 509ms 4s483ms 4s217ms 1m19s 1m20s 1m21s 22 1,056 512ms 4s375ms 4s176ms 1m17s 1m18s 1m19s 23 1,061 533ms 4s335ms 4s34ms 1m18s 1m19s 1m19s Day Hour SELECT COPY TO Average Duration Latency Percentile(90) Latency Percentile(95) Latency Percentile(99) Apr 26 00 3 0 696ms 0ms 0ms 551ms 01 0 0 0ms 0ms 0ms 0ms 02 0 0 0ms 0ms 0ms 0ms 03 0 0 0ms 0ms 0ms 0ms 04 0 0 0ms 0ms 0ms 0ms 05 0 0 0ms 0ms 0ms 0ms 06 0 0 0ms 0ms 0ms 0ms 07 0 0 0ms 0ms 0ms 0ms 08 0 0 0ms 0ms 0ms 0ms 09 3 0 677ms 0ms 0ms 712ms 10 7 0 1s994ms 0ms 0ms 1s580ms 11 0 0 0ms 0ms 0ms 0ms 12 0 0 0ms 0ms 0ms 0ms 13 0 0 0ms 0ms 0ms 0ms 14 0 0 0ms 0ms 0ms 0ms 15 0 0 0ms 0ms 0ms 0ms 16 0 0 0ms 0ms 0ms 0ms 17 0 0 0ms 0ms 0ms 0ms 18 6 0 634ms 0ms 0ms 581ms 19 13 0 541ms 506ms 562ms 578ms 20 12 0 551ms 510ms 542ms 570ms 21 11 0 550ms 0ms 560ms 575ms 22 12 0 558ms 512ms 567ms 579ms 23 12 5 784ms 539ms 552ms 580ms Day Hour INSERT UPDATE DELETE COPY FROM Average Duration Latency Percentile(90) Latency Percentile(95) Latency Percentile(99) Apr 26 00 0 0 0 0 0ms 0ms 0ms 0ms 01 0 1 0 0 1s185ms 0ms 0ms 0ms 02 0 0 0 0 0ms 0ms 0ms 0ms 03 0 0 0 0 0ms 0ms 0ms 0ms 04 0 0 0 0 0ms 0ms 0ms 0ms 05 0 0 0 0 0ms 0ms 0ms 0ms 06 0 0 0 0 0ms 0ms 0ms 0ms 07 0 0 0 0 0ms 0ms 0ms 0ms 08 0 0 0 0 0ms 0ms 0ms 0ms 09 0 0 0 0 0ms 0ms 0ms 0ms 10 0 0 0 0 0ms 0ms 0ms 0ms 11 0 0 0 0 0ms 0ms 0ms 0ms 12 0 0 0 0 0ms 0ms 0ms 0ms 13 0 0 0 0 0ms 0ms 0ms 0ms 14 0 0 0 0 0ms 0ms 0ms 0ms 15 0 0 0 0 0ms 0ms 0ms 0ms 16 0 0 0 0 0ms 0ms 0ms 0ms 17 0 0 0 0 0ms 0ms 0ms 0ms 18 0 0 0 0 0ms 0ms 0ms 0ms 19 0 0 0 0 0ms 0ms 0ms 0ms 20 0 0 0 0 0ms 0ms 0ms 0ms 21 0 0 0 0 0ms 0ms 0ms 0ms 22 0 0 0 0 0ms 0ms 0ms 0ms 23 0 0 0 0 0ms 0ms 0ms 0ms Day Hour Prepare Bind Bind/Prepare Percentage of prepare Apr 26 00 0 15 15.00 0.00% 01 0 12 12.00 0.00% 02 0 12 12.00 0.00% 03 0 11 11.00 0.00% 04 0 12 12.00 0.00% 05 0 12 12.00 0.00% 06 0 11 11.00 0.00% 07 0 12 12.00 0.00% 08 0 3 3.00 0.00% 09 0 16 16.00 0.00% 10 0 22 22.00 0.00% 11 0 11 11.00 0.00% 12 0 11 11.00 0.00% 13 0 1 1.00 0.00% 14 0 0 0.00 0.00% 15 0 0 0.00 0.00% 16 0 0 0.00 0.00% 17 0 0 0.00 0.00% 18 0 15 15.00 0.00% 19 0 36 36.00 0.00% 20 0 36 36.00 0.00% 21 0 33 33.00 0.00% 22 0 36 36.00 0.00% 23 0 36 36.00 0.00% Day Hour Count Average / Second Apr 26 00 1,270 0.35/s 01 914 0.25/s 02 904 0.25/s 03 874 0.24/s 04 904 0.25/s 05 904 0.25/s 06 877 0.24/s 07 904 0.25/s 08 634 0.18/s 09 1,313 0.36/s 10 1,848 0.51/s 11 862 0.24/s 12 868 0.24/s 13 572 0.16/s 14 546 0.15/s 15 543 0.15/s 16 546 0.15/s 17 543 0.15/s 18 1,601 0.44/s 19 1,052 0.29/s 20 903 0.25/s 21 862 0.24/s 22 898 0.25/s 23 894 0.25/s Day Hour Count Average Duration Average idle time Apr 26 00 1,269 227ms 0ms 01 913 236ms 0ms 02 903 235ms 0ms 03 873 234ms 0ms 04 903 233ms 0ms 05 903 234ms 0ms 06 876 233ms 0ms 07 903 241ms 0ms 08 633 233ms 0ms 09 1,312 222ms 0ms 10 1,848 261ms 0ms 11 862 268ms 0ms 12 868 266ms 0ms 13 572 235ms 0ms 14 546 230ms 0ms 15 543 231ms 0ms 16 546 230ms 0ms 17 543 231ms 0ms 18 1,601 221ms 0ms 19 1,052 300ms 0ms 20 903 293ms 0ms 21 862 294ms 0ms 22 898 295ms 0ms 23 894 315ms 0ms -
Connections
Established Connections
Key values
- 37 connections Connection Peak
- 2026-04-26 04:00:01 Date
Connections per database
Key values
- zemm_monitoring Main Database
- 22,036 connections Total
Connections per user
Key values
- labanimal Main User
- 22,036 connections Total
-
Sessions
Simultaneous sessions
Key values
- 7 sessions Session Peak
- 2026-04-26 05:07:02 Date
Histogram of session times
Key values
- 19,409 0-500ms duration
Sessions per database
Key values
- zemm_monitoring Main Database
- 22,026 sessions Total
Sessions per user
Key values
- labanimal Main User
- 22,026 sessions Total
Sessions per host
Key values
- ::1 Main Host
- 22,026 sessions Total
Sessions per application
Key values
- Main Application
- 22,026 sessions Total
Application Count Total Duration Average Duration 19,740 1h27m33s 266ms _backend_cage_autocomplete_api.php_q_2025_limit_12_zemm_dev_loc 5 141ms 28ms _backend_cage_autocomplete_api.php_q_48-007_limit_12_zemm_test_ 2 56ms 28ms _backend_cage_autocomplete_api.php_q_48-011_limit_12_zemm_test_ 1 26ms 26ms _backend_cage_autocomplete_api.php_q_48-012_limit_12_zemm_test_ 1 27ms 27ms _backend_cage_autocomplete_api.php_q_48-01_limit_12_zemm_test_l 1 30ms 30ms _backend_cage_autocomplete_api.php_q_48-031_limit_12_zemm_test_ 6 179ms 29ms _backend_cage_autocomplete_api.php_q_48-032_limit_12_zemm_test_ 2 58ms 29ms _backend_cage_autocomplete_api.php_q_48-0_limit_12_zemm_test_lo 1 33ms 33ms _backend_cage_autocomplete_api.php_q_50-000_limit_12_zemm_test_ 1 27ms 27ms _backend_cage_autocomplete_api.php_q_50-001_limit_12_zemm_test_ 2 61ms 30ms _backend_cage_autocomplete_api.php_q_50-002_limit_12_zemm_test_ 1 30ms 30ms _backend_cage_autocomplete_api.php_q_50-_limit_12_zemm_test_loc 3 105ms 35ms _backend_cage_autocomplete_api.php_q_50_limit_12_zemm_test_loca 3 113ms 37ms _backend_cage_autocomplete_api.php_q_5_C3_9F-002_limit_12_zemm_ 1 34ms 34ms _backend_cage_autocomplete_api.php_q_5_C3_9F-_C3_9F_limit_12_ze 1 34ms 34ms _backend_cage_autocomplete_api.php_q_5_C3_9F-_limit_12_zemm_tes 2 67ms 33ms _backend_cage_autocomplete_api.php_q_5_C3_9F_limit_12_zemm_test 1 33ms 33ms _backend_cage_autocomplete_api.php_q_Kadavertruhe_limit_12_zemm 5 179ms 35ms _backend_wean_api.php_litter_id_10130227_zemm_dev_localhost_543 25 3s637ms 145ms _backend_wean_api.php_litter_id_10130236_zemm_dev_localhost_543 25 3s945ms 157ms _backend_wean_api.php_litter_id_10130257_zemm_dev_localhost_543 30 4s464ms 148ms _backend_wean_api.php_litter_id_10131362_zemm_test_localhost_54 13 1s933ms 148ms _backend_wean_api.php_litter_id_10131886_zemm_test_localhost_54 1 143ms 143ms _backend_wean_api.php_litter_id_10132216_zemm_test_localhost_54 15 2s250ms 150ms _backend_wean_api.php_litter_id_10132317_zemm_test_localhost_54 5 713ms 142ms _backend_wean_api.php_litter_id_10132319_zemm_test_localhost_54 5 707ms 141ms _backend_wean_api.php_zemm_test_localhost_5432 4 3s611ms 902ms _desktop__zemm_dev_localhost_5432 5 873ms 174ms _desktop__zemm_test_localhost_5432 2 182ms 91ms _desktop_index.php_command_animals_breedings_subcommand_select_ 4 278ms 69ms _desktop_index.php_command_animals_create_subcommand_init_zemm_ 4 283ms 70ms _desktop_index.php_command_animals_edit_subcommand_init_id_1026 1 119ms 119ms _desktop_index.php_command_animals_edit_subcommand_link_init_va 5 598ms 119ms _desktop_index.php_command_animals_edit_subcommand_m_init_scree 5 697ms 139ms _desktop_index.php_command_animals_litters_edit_subcommand_init 5 556ms 111ms _desktop_index.php_command_animals_litters_edit_subcommand_m_in 5 1s671ms 334ms _desktop_index.php_command_animals_litters_subcommand_select_ze 4 263ms 65ms _desktop_index.php_command_animals_subcommand_select_zemm_dev_l 4 394ms 98ms _desktop_index.php_command_facility_subcommand_init_zemm_test_l 1 56ms 56ms _desktop_index.php_command_login_subcommand_init_zemm_dev_local 22 737ms 33ms _desktop_index.php_command_login_subcommand_init_zemm_produktiv 1,457 44s629ms 30ms _desktop_index.php_command_login_subcommand_init_zemm_test_loca 5 195ms 39ms _desktop_index.php_command_reports_subcommand_fates_zemm_dev_lo 4 502ms 125ms _desktop_index.php_command_reports_subcommand_init_zemm_dev_loc 8 6s769ms 846ms _desktop_index.php_command_reports_subcommand_task_status_zemm_ 1 133ms 133ms _desktop_index.php_command_tasks_subcommand_edit_id_10134267_ze 5 444ms 88ms _desktop_index.php_command_tasks_subcommand_init_search_zemm_de 5 228ms 45ms _desktop_index.php_command_tasks_subcommand_open_legacy_1_zemm_ 1 66ms 66ms _desktop_index.php_m_action_animals_litters_edit_3Am_init_row_1 2 560ms 280ms _desktop_index.php_sire_name_59_dam_name_55_sire_id_2025_2F001_ 1 32ms 32ms _desktop_index.php_unweaned_only_true_val4_animals_litters_sear 1 135ms 135ms _desktop_index.php_view_animal_name_on_view_animal_id_on_view_b 1 578ms 578ms _desktop_index.php_zemm_dev_localhost_5432 82 24s986ms 304ms _desktop_index.php_zemm_produktiv_8_localhost_5432 376 2m4s 331ms _desktop_index.php_zemm_test_localhost_5432 61 10s762ms 176ms expire_tasks:zemm_produktiv_8@h2940066.stratoserver.net:5432 1 1s210ms 1s210ms pg_dump 1 17s912ms 17s912ms psql 21 9s986ms 475ms taskscron:zemm_produktiv_8@h2940066.stratoserver.net:5432 24 1s945ms 81ms -
Checkpoints / Restartpoints
Checkpoints Buffers
Key values
- 18,889 buffers Checkpoint Peak
- 2026-04-26 01:35:17 Date
- 269.982 seconds Highest write time
- 0.100 seconds Sync time
Checkpoints Wal files
Key values
- 3 files Wal files usage Peak
- 2026-04-26 18:35:29 Date
Checkpoints distance
Key values
- 180.55 Mo Distance Peak
- 2026-04-26 01:35:17 Date
Checkpoints Activity
↑ Back to the top of the Checkpoint Activity tableDay Hour Written buffers Write time Sync time Total time Apr 26 00 4,434 444.459s 0.164s 444.684s 01 21,816 563.121s 0.097s 563.308s 02 4,514 452.129s 0.091s 452.278s 03 4,366 437.498s 0.093s 437.648s 04 3,608 361.563s 0.091s 361.707s 05 3,857 386.553s 0.092s 386.702s 06 3,656 367.343s 0.1s 367.513s 07 3,353 336.121s 0.095s 336.27s 08 3,059 306.651s 0.102s 306.811s 09 6,182 619.236s 0.214s 619.562s 10 10,108 792.248s 0.135s 792.449s 11 4,017 402.534s 0.11s 402.695s 12 3,010 301.749s 0.095s 301.898s 13 2,643 265.859s 0.103s 266.016s 14 2,573 258.057s 0.104s 258.214s 15 2,266 227.298s 0.102s 227.453s 16 3,234 324.217s 0.105s 324.373s 17 2,313 232.058s 0.108s 232.223s 18 18,368 1,199.473s 0.148s 1,199.679s 19 3,735 374.511s 0.1s 374.669s 20 3,447 345.441s 0.096s 345.584s 21 3,144 315.641s 0.088s 315.781s 22 3,089 309.912s 0.089s 310.063s 23 3,875 388.178s 0.086s 388.319s Day Hour Added Removed Recycled Synced files Longest sync Average sync Apr 26 00 0 1 0 619 0.010s 0.012s 01 0 7 0 411 0.002s 0.011s 02 0 1 0 420 0.002s 0.012s 03 0 1 0 429 0.002s 0.012s 04 0 1 0 414 0.003s 0.012s 05 0 1 0 415 0.002s 0.012s 06 0 1 0 427 0.002s 0.012s 07 0 1 0 429 0.002s 0.012s 08 0 1 0 426 0.002s 0.012s 09 0 2 0 550 0.030s 0.014s 10 0 2 0 704 0.002s 0.012s 11 0 0 1 439 0.002s 0.012s 12 0 0 1 438 0.002s 0.012s 13 0 0 1 429 0.004s 0.012s 14 0 0 1 429 0.002s 0.012s 15 0 0 0 431 0.002s 0.012s 16 0 0 1 443 0.002s 0.012s 17 0 0 1 438 0.002s 0.012s 18 0 0 6 615 0.006s 0.012s 19 0 0 1 480 0.002s 0.012s 20 0 0 1 440 0.002s 0.012s 21 0 0 1 440 0.002s 0.012s 22 0 0 1 439 0.002s 0.012s 23 0 0 1 448 0.002s 0.012s Day Hour Count Avg time (sec) Apr 26 00 0 0s 01 0 0s 02 0 0s 03 0 0s 04 0 0s 05 0 0s 06 0 0s 07 0 0s 08 0 0s 09 0 0s 10 0 0s 11 0 0s 12 0 0s 13 0 0s 14 0 0s 15 0 0s 16 0 0s 17 0 0s 18 0 0s 19 0 0s 20 0 0s 21 0 0s 22 0 0s 23 0 0s Day Hour Mean distance Mean estimate Apr 26 00 1,773.17 kB 2,913.67 kB 01 9,664.18 kB 35,763.55 kB 02 1,608.67 kB 33,683.42 kB 03 1,603.58 kB 10,677.58 kB 04 1,368.42 kB 4,038.92 kB 05 1,422.42 kB 2,160.33 kB 06 1,377.08 kB 1,606.42 kB 07 1,314.25 kB 1,462.50 kB 08 1,223.92 kB 1,508.58 kB 09 2,184.58 kB 3,466.92 kB 10 3,474.17 kB 9,716.08 kB 11 1,491.75 kB 4,745.92 kB 12 1,198.50 kB 2,235.67 kB 13 1,121.33 kB 1,793.00 kB 14 1,078.42 kB 1,442.58 kB 15 1,039.67 kB 1,147.83 kB 16 1,239.83 kB 1,451.75 kB 17 1,048.75 kB 1,879.25 kB 18 8,416.67 kB 19,495.08 kB 19 1,395.25 kB 14,497.83 kB 20 1,323.08 kB 5,064.25 kB 21 1,227.58 kB 2,330.92 kB 22 1,192.42 kB 1,527.00 kB 23 1,416.25 kB 1,447.08 kB -
Temporary Files
Size of temporary files
Key values
- 561.75 MiB Temp Files size Peak
- 2026-04-26 10:05:15 Date
Number of temporary files
Key values
- 9 per second Temp Files Peak
- 2026-04-26 10:05:15 Date
Temporary Files Activity
↑ Back to the top of the Temporary Files Activity tableDay Hour Count Total size Average size Apr 26 00 75 3.74 GiB 51.03 MiB 01 60 2.91 GiB 49.61 MiB 02 60 2.91 GiB 49.65 MiB 03 55 2.67 GiB 49.69 MiB 04 60 2.91 GiB 49.73 MiB 05 60 2.92 GiB 49.78 MiB 06 55 2.68 GiB 49.82 MiB 07 60 2.92 GiB 49.86 MiB 08 15 748.27 MiB 49.88 MiB 09 70 3.45 GiB 50.49 MiB 10 99 5.78 GiB 59.76 MiB 11 55 3.32 GiB 61.77 MiB 12 55 3.32 GiB 61.81 MiB 13 5 309.24 MiB 61.85 MiB 14 0 0 0 15 0 0 0 16 0 0 0 17 0 0 0 18 30 1.82 GiB 62.08 MiB 19 60 3.64 GiB 62.11 MiB 20 60 3.64 GiB 62.15 MiB 21 55 3.34 GiB 62.19 MiB 22 60 3.65 GiB 62.23 MiB 23 60 3.65 GiB 62.28 MiB Queries generating the most temporary files (N)
Rank Count Total size Min size Max size Avg size Query 1 887 46.83 GiB 44.88 MiB 74.58 MiB 54.07 MiB with start_snap as ( select distinct on (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at from observability.db_top_queries where tenant_key in (...) and collected_at <= ? order by tenant_key, fingerprint, collected_at desc ), fallback_start as ( select distinct on (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at from observability.db_top_queries where tenant_key in (...) and collected_at between ? and ? order by tenant_key, fingerprint, collected_at asc ), end_snap as ( select distinct on (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at from observability.db_top_queries where tenant_key in (...) and collected_at between ? and ? order by tenant_key, fingerprint, collected_at desc ), deltas as ( select e.tenant_key, e.fingerprint, e.query, e.collected_at as last_seen, greatest (coalesce(e.total_time_ms, ?) - coalesce(s.total_time_ms, fs.total_time_ms, ?), ?) as total_time_ms, greatest (coalesce(e.calls, ?) - coalesce(s.calls, fs.calls, ?), ?) as calls, greatest (coalesce(e.rows_returned, ?) - coalesce(s.rows_returned, fs.rows_returned, ?), ?) as rows_returned from end_snap e left join start_snap s on s.tenant_key = e.tenant_key and s.fingerprint = e.fingerprint left join fallback_start fs on fs.tenant_key = e.tenant_key and fs.fingerprint = e.fingerprint and s.tenant_key is null ) select fingerprint, max(query) as query, max(last_seen) as last_seen, sum(total_time_ms) as total_time_ms, sum(calls) as calls, sum(rows_returned) as rows_returned, case when sum(calls) > ? then sum(total_time_ms) / sum(calls) else ? end as mean_time_ms, array_agg(distinct tenant_key order by tenant_key) as tenant_keys from deltas where total_time_ms > ? or calls > ? group by fingerprint order by total_time_ms desc, calls desc limit ? offset ?;-
WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('test') AND collected_at <= '2026-04-26 04:05:09+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('test') AND collected_at BETWEEN '2026-04-26 04:05:09+02' AND '2026-04-26 10:05:09+02' ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('test') AND collected_at BETWEEN '2026-04-26 04:05:09+02' AND '2026-04-26 10:05:09+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT '20' OFFSET '0';
Date: 2026-04-26 10:05:15 Duration: 5s991ms Database: zemm_monitoring User: labanimal Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at <= '2026-04-26 04:05:10+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at BETWEEN '2026-04-26 04:05:10+02' AND '2026-04-26 10:05:10+02' ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at BETWEEN '2026-04-26 04:05:10+02' AND '2026-04-26 10:05:10+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT '20' OFFSET '0';
Date: 2026-04-26 10:05:15 Duration: 5s307ms Database: zemm_monitoring User: labanimal Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('dev') AND collected_at <= '2026-04-26 04:05:07+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('dev') AND collected_at BETWEEN '2026-04-26 04:05:07+02' AND '2026-04-26 10:05:07+02' ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('dev') AND collected_at BETWEEN '2026-04-26 04:05:07+02' AND '2026-04-26 10:05:07+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT '20' OFFSET '0';
Date: 2026-04-26 10:05:12 Duration: 5s106ms Database: zemm_monitoring User: labanimal Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
Queries generating the largest temporary files
Rank Size Query 1 74.58 MiB WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($1) AND collected_at <= $2 ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($3) AND collected_at BETWEEN $4 AND $5 ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($6) AND collected_at BETWEEN $7 AND $8 ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT $9 OFFSET $10;[ Date: 2026-04-26 10:05:15 - Queryid: 2690075 ]
2 70.58 MiB WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($1) AND collected_at <= $2 ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($3) AND collected_at BETWEEN $4 AND $5 ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($6) AND collected_at BETWEEN $7 AND $8 ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT $9 OFFSET $10;[ Date: 2026-04-26 18:35:16 - Queryid: 2870288 ]
3 68.99 MiB WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($1) AND collected_at <= $2 ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($3) AND collected_at BETWEEN $4 AND $5 ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($6) AND collected_at BETWEEN $7 AND $8 ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT $9 OFFSET $10;[ Date: 2026-04-26 10:05:15 - Queryid: 2690113 ]
4 68.55 MiB WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($1) AND collected_at <= $2 ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($3) AND collected_at BETWEEN $4 AND $5 ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($6) AND collected_at BETWEEN $7 AND $8 ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT $9 OFFSET $10;[ Date: 2026-04-26 10:05:15 - Queryid: 2690113 ]
5 68.16 MiB WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($1) AND collected_at <= $2 ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($3) AND collected_at BETWEEN $4 AND $5 ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($6) AND collected_at BETWEEN $7 AND $8 ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT $9 OFFSET $10;[ Date: 2026-04-26 18:40:17 - Queryid: 2872809 ]
6 67.38 MiB WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($1) AND collected_at <= $2 ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($3) AND collected_at BETWEEN $4 AND $5 ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($6) AND collected_at BETWEEN $7 AND $8 ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT $9 OFFSET $10;[ Date: 2026-04-26 11:14:31 - Queryid: 2741146 ]
7 67.29 MiB WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($1) AND collected_at <= $2 ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($3) AND collected_at BETWEEN $4 AND $5 ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($6) AND collected_at BETWEEN $7 AND $8 ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT $9 OFFSET $10;[ Date: 2026-04-26 20:02:20 - Queryid: 2903559 ]
8 67.09 MiB WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($1) AND collected_at <= $2 ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($3) AND collected_at BETWEEN $4 AND $5 ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($6) AND collected_at BETWEEN $7 AND $8 ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT $9 OFFSET $10;[ Date: 2026-04-26 23:17:04 - Queryid: 2961514 ]
9 67.04 MiB WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($1) AND collected_at <= $2 ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($3) AND collected_at BETWEEN $4 AND $5 ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($6) AND collected_at BETWEEN $7 AND $8 ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT $9 OFFSET $10;[ Date: 2026-04-26 19:00:36 - Queryid: 2885022 ]
10 66.99 MiB WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($1) AND collected_at <= $2 ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($3) AND collected_at BETWEEN $4 AND $5 ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($6) AND collected_at BETWEEN $7 AND $8 ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT $9 OFFSET $10;[ Date: 2026-04-26 10:53:53 - Queryid: 2734577 ]
11 66.82 MiB WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($1) AND collected_at <= $2 ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($3) AND collected_at BETWEEN $4 AND $5 ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($6) AND collected_at BETWEEN $7 AND $8 ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT $9 OFFSET $10;[ Date: 2026-04-26 20:53:44 - Queryid: 2918929 ]
12 66.60 MiB WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($1) AND collected_at <= $2 ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($3) AND collected_at BETWEEN $4 AND $5 ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($6) AND collected_at BETWEEN $7 AND $8 ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT $9 OFFSET $10;[ Date: 2026-04-26 11:55:09 - Queryid: 2754146 ]
13 66.35 MiB WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($1) AND collected_at <= $2 ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($3) AND collected_at BETWEEN $4 AND $5 ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($6) AND collected_at BETWEEN $7 AND $8 ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT $9 OFFSET $10;[ Date: 2026-04-26 23:11:55 - Queryid: 2960067 ]
14 66.23 MiB WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($1) AND collected_at <= $2 ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($3) AND collected_at BETWEEN $4 AND $5 ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($6) AND collected_at BETWEEN $7 AND $8 ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT $9 OFFSET $10;[ Date: 2026-04-26 19:31:24 - Queryid: 2894383 ]
15 66.21 MiB WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($1) AND collected_at <= $2 ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($3) AND collected_at BETWEEN $4 AND $5 ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($6) AND collected_at BETWEEN $7 AND $8 ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT $9 OFFSET $10;[ Date: 2026-04-26 12:36:24 - Queryid: 2767381 ]
16 66.16 MiB WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($1) AND collected_at <= $2 ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($3) AND collected_at BETWEEN $4 AND $5 ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($6) AND collected_at BETWEEN $7 AND $8 ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT $9 OFFSET $10;[ Date: 2026-04-26 20:22:58 - Queryid: 2909724 ]
17 66.08 MiB WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($1) AND collected_at <= $2 ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($3) AND collected_at BETWEEN $4 AND $5 ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($6) AND collected_at BETWEEN $7 AND $8 ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT $9 OFFSET $10;[ Date: 2026-04-26 11:24:50 - Queryid: 2744504 ]
18 66.06 MiB WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($1) AND collected_at <= $2 ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($3) AND collected_at BETWEEN $4 AND $5 ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($6) AND collected_at BETWEEN $7 AND $8 ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT $9 OFFSET $10;[ Date: 2026-04-26 10:17:57 - Queryid: 2704061 ]
19 66.03 MiB WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($1) AND collected_at <= $2 ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($3) AND collected_at BETWEEN $4 AND $5 ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($6) AND collected_at BETWEEN $7 AND $8 ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT $9 OFFSET $10;[ Date: 2026-04-26 20:07:29 - Queryid: 2905121 ]
20 66.02 MiB WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($1) AND collected_at <= $2 ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($3) AND collected_at BETWEEN $4 AND $5 ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($6) AND collected_at BETWEEN $7 AND $8 ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT $9 OFFSET $10;[ Date: 2026-04-26 19:10:55 - Queryid: 2888204 ]
-
Vacuums
Vacuums / Analyzes Distribution
Key values
- 1.91 sec Highest CPU-cost vacuum
Table observability.metrics_timeseries
Database zemm_monitoring - 2026-04-26 10:15:09 Date
- 0 sec Highest CPU-cost analyze
Table
Database zemm_monitoring - Date
Average Autovacuum Duration
Key values
- 1.91 sec Highest CPU-cost vacuum
Table observability.metrics_timeseries
Database zemm_monitoring - 2026-04-26 10:15:09 Date
Analyzes per table
Key values
- pg_catalog.pg_type (5) Main table analyzed (database zemm_test)
- 23 analyzes Total
Table Number of analyzes zemm_test.pg_catalog.pg_type 5 zemm_test.pg_catalog.pg_attribute 3 zemm_monitoring.observability.metrics_timeseries 2 zemm_test.pg_catalog.pg_depend 2 zemm_dev.public.login_tracker 2 zemm_test.pg_catalog.pg_class 2 zemm_dev.public.users 1 zemm_dev.pg_catalog.pg_type 1 zemm_produktiv_8.public.tasks 1 zemm_produktiv_8.public.users 1 fbi_ci_db.pg_catalog.pg_shdepend 1 zemm_test.public.login_tracker 1 zemm_monitoring.observability.uptime_checks 1 Total 23 Vacuums per table
Key values
- pg_toast.pg_toast_67431 (4) Main table vacuumed on database zemm_monitoring
- 18 vacuums Total
Index Buffer usage Skipped WAL usage Frozen Table Vacuums scans hits misses dirtied pins frozen records full page bytes pages tuples zemm_monitoring.pg_toast.pg_toast_67431 4 0 0 0 0 0 0 3,851 1,290 2,936,796 1,274 7,644 zemm_monitoring.pg_toast.pg_toast_67411 2 0 0 0 0 0 0 10,834 2,987 22,380,161 2,980 11,922 zemm_test.pg_catalog.pg_type 2 2 0 0 0 0 0 35 19 32,997 0 0 fbi_unibi.pg_catalog.pg_shdepend 1 1 0 0 0 0 0 59 20 49,626 4 257 zemm_test.pg_catalog.pg_statistic 1 1 0 0 0 0 0 81 13 53,885 0 0 zemm_monitoring.pg_toast.pg_toast_2619 1 1 0 0 0 0 0 96 23 144,744 6 11 zemm_monitoring.observability.metrics_timeseries 1 1 0 0 0 0 0 12,776 5,803 13,466,948 1,148 19,725 zemm_produktiv_8.public.tasks 1 1 0 0 0 0 0 46,664 7 3,301,382 0 0 zemm_test.pg_catalog.pg_class 1 1 0 0 0 0 0 55 25 54,977 1 35 zemm_produktiv_8.pg_toast.pg_toast_2619 1 1 0 0 0 0 0 193 50 314,518 20 50 zemm_monitoring.observability.nginx_counters 1 0 0 0 0 0 0 603 602 899,110 0 0 zemm_dev.pg_toast.pg_toast_2619 1 1 0 0 0 0 0 155 39 201,226 8 23 zemm_test.pg_catalog.pg_attribute 1 1 0 0 0 0 0 120 77 128,763 0 0 Total 18 11 0 0 0 0 0 75,522 10,955 43,965,133 5,441 39,667 Vacuum throughput per table
Key values
- observability.metrics_timeseries (1.91) Max CPU elapsed for vacuum on database zemm_monitoring
- observability.metrics_timeseries (13.946 ms) Max I/O read time for vacuum on database zemm_monitoring
- observability.metrics_timeseries (5.604 ms) Max I/O write time for vacuum on database zemm_monitoring
I/O timing (ms) CPU (s) Table read write elapsed zemm_monitoring.pg_toast.pg_toast_67431 5.064 0.369 0.33 zemm_monitoring.pg_toast.pg_toast_67411 1.077 5.193 0.81 zemm_test.pg_catalog.pg_type 1.089 0 0 fbi_unibi.pg_catalog.pg_shdepend 4.344 0 0.01 zemm_test.pg_catalog.pg_statistic 0.435 0 0 zemm_monitoring.pg_toast.pg_toast_2619 1.171 0 0 zemm_monitoring.observability.metrics_timeseries 13.946 5.604 1.91 zemm_produktiv_8.public.tasks 1.084 0 0.6 zemm_test.pg_catalog.pg_class 1.071 0 0 zemm_produktiv_8.pg_toast.pg_toast_2619 0.445 0 0.01 zemm_monitoring.observability.nginx_counters 0.515 0 0.14 zemm_dev.pg_toast.pg_toast_2619 0.627 0 0.01 zemm_test.pg_catalog.pg_attribute 1.307 0 0.03 Total 32.175 11.166 3.85 Tuples removed per table
Key values
- public.tasks (54069) Main table with removed tuples on database zemm_produktiv_8
- 101373 tuples Total removed
Index Tuples Pages Table Vacuums scans removed remain not yet removable removed remain zemm_produktiv_8.public.tasks 1 1 54,069 57,138 0 0 16,848 zemm_monitoring.observability.metrics_timeseries 1 1 46,609 360,234 2 0 8,122 fbi_unibi.pg_catalog.pg_shdepend 1 1 173 4,703 0 0 38 zemm_test.pg_catalog.pg_attribute 1 1 117 7,649 0 10 134 zemm_produktiv_8.pg_toast.pg_toast_2619 1 1 99 275 0 0 106 zemm_dev.pg_toast.pg_toast_2619 1 1 98 211 0 0 120 zemm_test.pg_catalog.pg_statistic 1 1 86 1,058 0 0 91 zemm_monitoring.pg_toast.pg_toast_2619 1 1 63 80 0 0 36 zemm_test.pg_catalog.pg_type 2 2 40 1,790 0 0 44 zemm_test.pg_catalog.pg_class 1 1 19 1,087 0 0 29 zemm_monitoring.pg_toast.pg_toast_67411 2 0 0 276,818 0 0 65,544 zemm_monitoring.observability.nginx_counters 1 0 0 88,804 0 0 2,753 zemm_monitoring.pg_toast.pg_toast_67431 4 0 0 1,908,014 0 0 322,366 Total 18 11 101,373 2,707,861 2 10 416,231 Pages removed per table
Key values
- pg_catalog.pg_attribute (10) Main table with removed pages on database zemm_test
- 10 pages Total removed
Table Number of vacuums Index scans Tuples removed Pages removed zemm_test.pg_catalog.pg_attribute 1 1 117 10 fbi_unibi.pg_catalog.pg_shdepend 1 1 173 0 zemm_test.pg_catalog.pg_statistic 1 1 86 0 zemm_monitoring.pg_toast.pg_toast_2619 1 1 63 0 zemm_monitoring.observability.metrics_timeseries 1 1 46609 0 zemm_monitoring.pg_toast.pg_toast_67411 2 0 0 0 zemm_produktiv_8.public.tasks 1 1 54069 0 zemm_test.pg_catalog.pg_class 1 1 19 0 zemm_produktiv_8.pg_toast.pg_toast_2619 1 1 99 0 zemm_monitoring.observability.nginx_counters 1 0 0 0 zemm_dev.pg_toast.pg_toast_2619 1 1 98 0 zemm_test.pg_catalog.pg_type 2 2 40 0 zemm_monitoring.pg_toast.pg_toast_67431 4 0 0 0 Total 18 11 101,373 10 Autovacuum Activity
↑ Back to the top of the Autovacuum Activity tableDay Hour VACUUMs ANALYZEs Apr 26 00 4 6 01 1 1 02 0 0 03 2 1 04 0 0 05 0 0 06 0 1 07 0 0 08 1 0 09 1 4 10 4 4 11 0 0 12 0 0 13 0 0 14 1 0 15 0 0 16 0 1 17 0 0 18 3 3 19 1 2 20 0 0 21 0 0 22 0 0 23 0 0 - 1.91 sec Highest CPU-cost vacuum
-
Locks
Locks by types
Key values
- unknown Main Lock Type
- 0 locks Total
Most frequent waiting queries (N)
Rank Count Total time Min time Max time Avg duration Query NO DATASET
Queries that waited the most
Rank Wait time Query NO DATASET
-
Queries
Queries by type
Key values
- 79 Total read queries
- 24,777 Total write queries
Queries by database
Key values
- zemm_monitoring Main database
- 24,835 Requests
- 1d3h43m18s (zemm_monitoring)
- Main time consuming database
Queries by user
Key values
- labanimal Main user
- 774,998 Requests
User Request type Count Duration deploy Total 241 27m39s cte 4 1m18s ddl 134 11m50s others 88 5m56s select 9 6m3s labanimal Total 774,998 23d19h23m30s copy from 28 3m52s copy to 194 9m13s cte 5,024 5h41m35s ddl 765,749 23d12h17m31s others 667 12m52s select 3,258 57m tcl 11 9s269ms update 35 37s588ms postgres Total 189 4m20s copy to 189 4m20s Duration by user
Key values
- 23d19h23m30s (labanimal) Main time consuming user
User Request type Count Duration deploy Total 241 27m39s cte 4 1m18s ddl 134 11m50s others 88 5m56s select 9 6m3s labanimal Total 774,998 23d19h23m30s copy from 28 3m52s copy to 194 9m13s cte 5,024 5h41m35s ddl 765,749 23d12h17m31s others 667 12m52s select 3,258 57m tcl 11 9s269ms update 35 37s588ms postgres Total 189 4m20s copy to 189 4m20s Queries by host
Key values
- unknown Main host
- 774,960 Requests
- 23d19h19m49s (unknown)
- Main time consuming host
Host Request type Count Duration 127.0.0.1 Total 2 6s311ms ddl 2 6s311ms 81.169.238.237 Total 36 3m34s select 1 2m56s update 35 37s588ms [local] Total 430 31m59s copy to 189 4m20s cte 4 1m18s ddl 134 11m50s others 88 5m56s select 9 6m3s unknown Total 774,960 23d19h19m49s copy from 28 3m52s copy to 194 9m13s cte 5,024 5h41m35s ddl 765,747 23d12h17m24s others 667 12m52s select 3,257 54m4s tcl 11 9s269ms Queries by application
Key values
- unknown Main application
- 24,834 Requests
- 1d3h43m8s (unknown)
- Main time consuming application
Application Request type Count Duration _desktop_index.php_command_reports_subcommand_init_zemm_dev_loc Total 8 6s235ms select 8 6s235ms _desktop_index.php_zemm_dev_localhost_5432 Total 4 4s13ms cte 4 4s13ms _desktop_index.php_zemm_produktiv_8_localhost_5432 Total 2 1s68ms select 2 1s68ms _desktop_index.php_zemm_test_localhost_5432 Total 1 551ms select 1 551ms expire_tasks:zemm_produktiv_8@h2940066.stratoserver.net:5432 Total 1 1s185ms update 1 1s185ms pg_dump Total 5 6s716ms copy to 5 6s716ms psql Total 1 9s691ms select 1 9s691ms unknown Total 24,834 1d3h43m8s cte 286 15m51s ddl 24,480 1d3h26m38s select 67 37s381ms tcl 1 542ms Number of cancelled queries
Key values
- 0 per second Cancelled query Peak
- 2026-04-26 18:20:55 Date
Number of cancelled queries (5 minutes period)
NO DATASET
-
Top Queries
Histogram of query times
Key values
- 230 1000-10000ms duration
Slowest individual queries
Rank Duration Query 1 9s691ms SELECT occurred_at, tenant_key, severity, message, COALESCE(payload ->> 'error', '') FROM observability.app_events WHERE message ILIKE '%Live nach Test%' OR payload::text ILIKE '%live nach test%' OR payload::text ILIKE '%database-live-to-test%' ORDER BY occurred_at DESC LIMIT 12;[ Date: 2026-04-26 10:48:10 - Database: zemm_monitoring - User: labanimal - Application: psql - Bind query: yes ]
2 5s991ms WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('test') AND collected_at <= '2026-04-26 04:05:09+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('test') AND collected_at BETWEEN '2026-04-26 04:05:09+02' AND '2026-04-26 10:05:09+02' ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('test') AND collected_at BETWEEN '2026-04-26 04:05:09+02' AND '2026-04-26 10:05:09+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT '20' OFFSET '0';[ Date: 2026-04-26 10:05:15 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
3 5s307ms WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at <= '2026-04-26 04:05:10+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at BETWEEN '2026-04-26 04:05:10+02' AND '2026-04-26 10:05:10+02' ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at BETWEEN '2026-04-26 04:05:10+02' AND '2026-04-26 10:05:10+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT '20' OFFSET '0';[ Date: 2026-04-26 10:05:15 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
4 5s106ms WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('dev') AND collected_at <= '2026-04-26 04:05:07+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('dev') AND collected_at BETWEEN '2026-04-26 04:05:07+02' AND '2026-04-26 10:05:07+02' ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('dev') AND collected_at BETWEEN '2026-04-26 04:05:07+02' AND '2026-04-26 10:05:07+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT '20' OFFSET '0';[ Date: 2026-04-26 10:05:12 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
5 4s841ms WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('test') AND collected_at <= '2026-04-26 04:05:05+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('test') AND collected_at BETWEEN '2026-04-26 04:05:05+02' AND '2026-04-26 10:05:05+02' ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('test') AND collected_at BETWEEN '2026-04-26 04:05:05+02' AND '2026-04-26 10:05:05+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT '20' OFFSET '0';[ Date: 2026-04-26 10:05:10 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
6 4s820ms WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('test') AND collected_at <= '2026-04-25 00:03:53+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('test') AND collected_at BETWEEN '2026-04-25 00:03:53+02' AND '2026-04-26 00:03:53+02' ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('test') AND collected_at BETWEEN '2026-04-25 00:03:53+02' AND '2026-04-26 00:03:53+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT '20' OFFSET '0';[ Date: 2026-04-26 00:03:58 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
7 4s820ms CREATE SCHEMA IF NOT EXISTS observability;[ Date: 2026-04-26 00:04:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
8 4s820ms CREATE TABLE IF NOT EXISTS observability.metrics_timeseries ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, metric_name text NOT NULL, bucket_start timestamptz NOT NULL, bucket_width_seconds integer NOT NULL DEFAULT 60, sum_value double precision NOT NULL DEFAULT 0, count_value bigint NOT NULL DEFAULT 0, histogram jsonb, created_at timestamptz NOT NULL DEFAULT NOW(), updated_at timestamptz NOT NULL DEFAULT NOW(), UNIQUE (tenant_key, metric_name, bucket_start, bucket_width_seconds) );[ Date: 2026-04-26 00:04:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
9 4s820ms CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);[ Date: 2026-04-26 00:04:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
10 4s820ms CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);[ Date: 2026-04-26 00:04:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
11 4s820ms CREATE TABLE IF NOT EXISTS observability.app_events ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, event_type text NOT NULL, severity text NOT NULL, message text NOT NULL, payload jsonb, occurred_at timestamptz NOT NULL DEFAULT NOW(), created_at timestamptz NOT NULL DEFAULT NOW() );[ Date: 2026-04-26 00:04:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
12 4s820ms CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);[ Date: 2026-04-26 00:04:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
13 4s820ms CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);[ Date: 2026-04-26 00:04:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
14 4s820ms CREATE TABLE IF NOT EXISTS observability.db_top_queries ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, fingerprint text, query text, mean_time_ms double precision, total_time_ms double precision, calls bigint, rows_returned bigint, collected_at timestamptz NOT NULL DEFAULT NOW() );[ Date: 2026-04-26 00:04:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
15 4s820ms CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);[ Date: 2026-04-26 00:04:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
16 4s820ms CREATE TABLE IF NOT EXISTS observability.nginx_counters ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );[ Date: 2026-04-26 00:04:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
17 4s820ms CREATE TABLE IF NOT EXISTS observability.phpfpm_counters ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );[ Date: 2026-04-26 00:04:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
18 4s820ms CREATE TABLE IF NOT EXISTS observability.system_metrics ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );[ Date: 2026-04-26 00:04:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
19 4s820ms CREATE TABLE IF NOT EXISTS observability.uptime_checks ( id bigserial PRIMARY KEY, endpoint text NOT NULL, status text NOT NULL, latency_ms double precision, checked_at timestamptz NOT NULL DEFAULT NOW() );[ Date: 2026-04-26 00:04:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
20 4s820ms ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS label text;[ Date: 2026-04-26 00:04:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
Time consuming queries (N)
Rank Total duration Times executed Min duration Max duration Avg duration Query 1 1h36m51s 1,440 521ms 4s820ms 4s35ms create table if not exists observability.phpfpm_counters ( id bigserial primary key, payload jsonb not null, collected_at timestamptz not null default now() );Times Reported Time consuming queries #1
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
CREATE TABLE IF NOT EXISTS observability.phpfpm_counters ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.phpfpm_counters ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.phpfpm_counters ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
2 1h36m51s 1,440 521ms 4s820ms 4s35ms create table if not exists observability.db_top_queries ( id bigserial primary key, tenant_key text not null, fingerprint text, query text, mean_time_ms double precision, total_time_ms double precision, calls bigint, rows_returned bigint, collected_at timestamptz not null default now() );Times Reported Time consuming queries #2
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
CREATE TABLE IF NOT EXISTS observability.db_top_queries ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, fingerprint text, query text, mean_time_ms double precision, total_time_ms double precision, calls bigint, rows_returned bigint, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.db_top_queries ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, fingerprint text, query text, mean_time_ms double precision, total_time_ms double precision, calls bigint, rows_returned bigint, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.db_top_queries ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, fingerprint text, query text, mean_time_ms double precision, total_time_ms double precision, calls bigint, rows_returned bigint, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
3 1h36m51s 1,440 521ms 4s820ms 4s35ms create index if not exists idx_db_top_queries_tenant on observability.db_top_queries (tenant_key, collected_at desc);Times Reported Time consuming queries #3
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
4 1h36m51s 1,440 521ms 4s820ms 4s35ms alter table observability.uptime_checks add column if not exists label text;Times Reported Time consuming queries #4
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS label text;
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS label text;
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS label text;
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
5 1h36m51s 1,440 521ms 4s820ms 4s35ms create index if not exists idx_uptime_checks_key on observability.uptime_checks (check_key, checked_at desc);Times Reported Time consuming queries #5
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_key ON observability.uptime_checks (check_key, checked_at DESC);
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_key ON observability.uptime_checks (check_key, checked_at DESC);
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_key ON observability.uptime_checks (check_key, checked_at DESC);
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
6 1h36m51s 1,440 521ms 4s820ms 4s35ms create index if not exists idx_metrics_timeseries_metric on observability.metrics_timeseries (metric_name);Times Reported Time consuming queries #6
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
7 1h36m51s 1,440 521ms 4s820ms 4s35ms create index if not exists idx_metrics_timeseries_bucket on observability.metrics_timeseries (bucket_start);Times Reported Time consuming queries #7
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
8 1h36m51s 1,440 521ms 4s820ms 4s35ms create table if not exists observability.uptime_checks ( id bigserial primary key, endpoint text not null, status text not null, latency_ms double precision, checked_at timestamptz not null default now() );Times Reported Time consuming queries #8
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
CREATE TABLE IF NOT EXISTS observability.uptime_checks ( id bigserial PRIMARY KEY, endpoint text NOT NULL, status text NOT NULL, latency_ms double precision, checked_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.uptime_checks ( id bigserial PRIMARY KEY, endpoint text NOT NULL, status text NOT NULL, latency_ms double precision, checked_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.uptime_checks ( id bigserial PRIMARY KEY, endpoint text NOT NULL, status text NOT NULL, latency_ms double precision, checked_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
9 1h36m51s 1,440 521ms 4s820ms 4s35ms create index if not exists idx_app_events_tenant on observability.app_events (tenant_key, occurred_at desc);Times Reported Time consuming queries #9
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
10 1h36m51s 1,440 521ms 4s820ms 4s35ms alter table observability.uptime_checks add column if not exists payload jsonb;Times Reported Time consuming queries #10
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS payload jsonb;
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS payload jsonb;
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS payload jsonb;
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
11 1h36m51s 1,440 521ms 4s820ms 4s35ms create table if not exists observability.app_events ( id bigserial primary key, tenant_key text not null, event_type text not null, severity text not null, message text not null, payload jsonb, occurred_at timestamptz not null default now(), created_at timestamptz not null default now() );Times Reported Time consuming queries #11
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
CREATE TABLE IF NOT EXISTS observability.app_events ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, event_type text NOT NULL, severity text NOT NULL, message text NOT NULL, payload jsonb, occurred_at timestamptz NOT NULL DEFAULT NOW(), created_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.app_events ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, event_type text NOT NULL, severity text NOT NULL, message text NOT NULL, payload jsonb, occurred_at timestamptz NOT NULL DEFAULT NOW(), created_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.app_events ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, event_type text NOT NULL, severity text NOT NULL, message text NOT NULL, payload jsonb, occurred_at timestamptz NOT NULL DEFAULT NOW(), created_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
12 1h36m51s 1,440 521ms 4s820ms 4s35ms create table if not exists observability.metrics_timeseries ( id bigserial primary key, tenant_key text not null, metric_name text not null, bucket_start timestamptz not null, bucket_width_seconds integer not null default ?, sum_value double precision not null default ?, count_value bigint not null default ?, histogram jsonb, created_at timestamptz not null default now(), updated_at timestamptz not null default now(), unique (tenant_key, metric_name, bucket_start, bucket_width_seconds) );Times Reported Time consuming queries #12
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
CREATE TABLE IF NOT EXISTS observability.metrics_timeseries ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, metric_name text NOT NULL, bucket_start timestamptz NOT NULL, bucket_width_seconds integer NOT NULL DEFAULT 60, sum_value double precision NOT NULL DEFAULT 0, count_value bigint NOT NULL DEFAULT 0, histogram jsonb, created_at timestamptz NOT NULL DEFAULT NOW(), updated_at timestamptz NOT NULL DEFAULT NOW(), UNIQUE (tenant_key, metric_name, bucket_start, bucket_width_seconds) );
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.metrics_timeseries ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, metric_name text NOT NULL, bucket_start timestamptz NOT NULL, bucket_width_seconds integer NOT NULL DEFAULT 60, sum_value double precision NOT NULL DEFAULT 0, count_value bigint NOT NULL DEFAULT 0, histogram jsonb, created_at timestamptz NOT NULL DEFAULT NOW(), updated_at timestamptz NOT NULL DEFAULT NOW(), UNIQUE (tenant_key, metric_name, bucket_start, bucket_width_seconds) );
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.metrics_timeseries ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, metric_name text NOT NULL, bucket_start timestamptz NOT NULL, bucket_width_seconds integer NOT NULL DEFAULT 60, sum_value double precision NOT NULL DEFAULT 0, count_value bigint NOT NULL DEFAULT 0, histogram jsonb, created_at timestamptz NOT NULL DEFAULT NOW(), updated_at timestamptz NOT NULL DEFAULT NOW(), UNIQUE (tenant_key, metric_name, bucket_start, bucket_width_seconds) );
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
13 1h36m51s 1,440 521ms 4s820ms 4s35ms create index if not exists idx_app_events_type on observability.app_events (event_type);Times Reported Time consuming queries #13
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
14 1h36m51s 1,440 521ms 4s820ms 4s35ms create index if not exists idx_uptime_checks_endpoint on observability.uptime_checks (endpoint, checked_at desc);Times Reported Time consuming queries #14
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_endpoint ON observability.uptime_checks (endpoint, checked_at DESC);
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_endpoint ON observability.uptime_checks (endpoint, checked_at DESC);
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_endpoint ON observability.uptime_checks (endpoint, checked_at DESC);
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
15 1h36m51s 1,440 521ms 4s820ms 4s35ms create table if not exists observability.system_metrics ( id bigserial primary key, payload jsonb not null, collected_at timestamptz not null default now() );Times Reported Time consuming queries #15
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
CREATE TABLE IF NOT EXISTS observability.system_metrics ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.system_metrics ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.system_metrics ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
16 1h36m51s 1,440 521ms 4s820ms 4s35ms create table if not exists observability.nginx_counters ( id bigserial primary key, payload jsonb not null, collected_at timestamptz not null default now() );Times Reported Time consuming queries #16
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
CREATE TABLE IF NOT EXISTS observability.nginx_counters ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.nginx_counters ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.nginx_counters ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
17 1h36m51s 1,440 521ms 4s820ms 4s35ms create schema if not exists observability;Times Reported Time consuming queries #17
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
18 15m11s 222 3s552ms 5s991ms 4s105ms with start_snap as ( select distinct on (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at from observability.db_top_queries where tenant_key in (...) and collected_at <= ? order by tenant_key, fingerprint, collected_at desc ), fallback_start as ( select distinct on (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at from observability.db_top_queries where tenant_key in (...) and collected_at between ? and ? order by tenant_key, fingerprint, collected_at asc ), end_snap as ( select distinct on (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at from observability.db_top_queries where tenant_key in (...) and collected_at between ? and ? order by tenant_key, fingerprint, collected_at desc ), deltas as ( select e.tenant_key, e.fingerprint, e.query, e.collected_at as last_seen, greatest (coalesce(e.total_time_ms, ?) - coalesce(s.total_time_ms, fs.total_time_ms, ?), ?) as total_time_ms, greatest (coalesce(e.calls, ?) - coalesce(s.calls, fs.calls, ?), ?) as calls, greatest (coalesce(e.rows_returned, ?) - coalesce(s.rows_returned, fs.rows_returned, ?), ?) as rows_returned from end_snap e left join start_snap s on s.tenant_key = e.tenant_key and s.fingerprint = e.fingerprint left join fallback_start fs on fs.tenant_key = e.tenant_key and fs.fingerprint = e.fingerprint and s.tenant_key is null ) select fingerprint, max(query) as query, max(last_seen) as last_seen, sum(total_time_ms) as total_time_ms, sum(calls) as calls, sum(rows_returned) as rows_returned, case when sum(calls) > ? then sum(total_time_ms) / sum(calls) else ? end as mean_time_ms, array_agg(distinct tenant_key order by tenant_key) as tenant_keys from deltas where total_time_ms > ? or calls > ? group by fingerprint order by total_time_ms desc, calls desc limit ? offset ?;Times Reported Time consuming queries #18
Day Hour Count Duration Avg duration Apr 26 01 15 1m 4s56ms 02 12 47s221ms 3s935ms 03 12 46s365ms 3s863ms 04 11 42s137ms 3s830ms 05 12 45s873ms 3s822ms 06 12 46s344ms 3s862ms 07 11 42s146ms 3s831ms 08 12 45s807ms 3s817ms 09 3 11s476ms 3s825ms 10 14 52s529ms 3s752ms 11 20 1m29s 4s496ms 12 11 47s601ms 4s327ms 13 11 47s219ms 4s292ms 14 1 4s269ms 4s269ms 19 6 26s596ms 4s432ms 20 12 52s461ms 4s371ms 21 12 52s67ms 4s338ms 22 11 47s986ms 4s362ms 23 12 51s119ms 4s259ms 00 12 51s362ms 4s280ms [ User: labanimal - Total duration: 15m11s - Times executed: 222 ]
-
WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('test') AND collected_at <= '2026-04-26 04:05:09+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('test') AND collected_at BETWEEN '2026-04-26 04:05:09+02' AND '2026-04-26 10:05:09+02' ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('test') AND collected_at BETWEEN '2026-04-26 04:05:09+02' AND '2026-04-26 10:05:09+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT '20' OFFSET '0';
Date: 2026-04-26 10:05:15 Duration: 5s991ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at <= '2026-04-26 04:05:10+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at BETWEEN '2026-04-26 04:05:10+02' AND '2026-04-26 10:05:10+02' ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at BETWEEN '2026-04-26 04:05:10+02' AND '2026-04-26 10:05:10+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT '20' OFFSET '0';
Date: 2026-04-26 10:05:15 Duration: 5s307ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('dev') AND collected_at <= '2026-04-26 04:05:07+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('dev') AND collected_at BETWEEN '2026-04-26 04:05:07+02' AND '2026-04-26 10:05:07+02' ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('dev') AND collected_at BETWEEN '2026-04-26 04:05:07+02' AND '2026-04-26 10:05:07+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT '20' OFFSET '0';
Date: 2026-04-26 10:05:12 Duration: 5s106ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
19 40s465ms 64 520ms 716ms 632ms with normalised as ( select id, tenant_key, event_type, severity, message, payload, occurred_at, regexp_replace(regexp_replace(message, ?, ?, ?), ?, ?, ?) as fingerprint from observability.app_events where tenant_key in (...) and occurred_at between ? and ? and severity in (...) and not (event_type = ? and (lower(coalesce(message, ?)) = ? or (lower(coalesce(payload ->> ?, ?)) = ? and lower(coalesce(payload ->> ?, ?)) = ?)))) select fingerprint, count(*) as occurrence_count, count(distinct coalesce(payload ->> ?, payload ->> ?, ?)) as affected_users, case when max( case severity when ? then ? when ? then ? when ? then ? else ? end) = ? then ? when max( case severity when ? then ? when ? then ? when ? then ? else ? end) = ? then ? when max( case severity when ? then ? when ? then ? when ? then ? else ? end) = ? then ? else ? end as max_severity, min(occurred_at) as first_seen, max(occurred_at) as last_seen, (array_agg(message order by occurred_at desc))[?] as sample_message, (array_agg(distinct event_type))[?] as event_type, (array_agg(payload ->> ? order by occurred_at desc))[?] as source_file, (array_agg(payload ->> ? order by occurred_at desc))[?] as source_line, (array_agg(payload ->> ? order by occurred_at desc))[?] as sample_request, (array_agg(id order by occurred_at desc))[?] as latest_event_id from normalised group by fingerprint order by occurrence_count desc, last_seen desc limit ?;Times Reported Time consuming queries #19
Day Hour Count Duration Avg duration Apr 26 19 5 3s9ms 601ms 20 12 7s406ms 617ms 21 12 7s635ms 636ms 22 11 6s973ms 633ms 23 12 7s574ms 631ms 00 12 7s864ms 655ms [ User: labanimal - Total duration: 40s465ms - Times executed: 64 ]
-
WITH normalised AS ( SELECT id, tenant_key, event_type, severity, message, payload, occurred_at, regexp_replace(regexp_replace(message, '\d+', '#', 'g'), '/[^ :]+/', '.../', 'g') AS fingerprint FROM observability.app_events WHERE tenant_key IN ('prod') AND occurred_at BETWEEN '2026-04-26 15:49:57+02' AND '2026-04-26 21:49:57+02' AND severity IN ('critical', 'error', 'warning') AND NOT (event_type = 'db_error' AND (lower(COALESCE(message, '')) = 'lock wait: client / clientread' OR ( lower(COALESCE(payload->>'wait_event_type', '')) = 'client' AND lower(COALESCE(payload ->> 'wait_event', '')) = 'clientread')))) SELECT fingerprint, COUNT(*) AS occurrence_count, COUNT(DISTINCT COALESCE(payload ->> 'user', payload ->> 'username', 'unbekannt')) AS affected_users, CASE WHEN MAX( CASE severity WHEN 'critical' THEN 3 WHEN 'error' THEN 2 WHEN 'warning' THEN 1 ELSE 0 END) = 3 THEN 'critical' WHEN MAX( CASE severity WHEN 'critical' THEN 3 WHEN 'error' THEN 2 WHEN 'warning' THEN 1 ELSE 0 END) = 2 THEN 'error' WHEN MAX( CASE severity WHEN 'critical' THEN 3 WHEN 'error' THEN 2 WHEN 'warning' THEN 1 ELSE 0 END) = 1 THEN 'warning' ELSE 'info' END AS max_severity, MIN(occurred_at) AS first_seen, MAX(occurred_at) AS last_seen, (array_agg(message ORDER BY occurred_at DESC))[1] AS sample_message, (array_agg(DISTINCT event_type))[1] AS event_type, (array_agg(payload ->> 'file' ORDER BY occurred_at DESC))[1] AS source_file, (array_agg(payload ->> 'line' ORDER BY occurred_at DESC))[1] AS source_line, (array_agg(payload ->> 'request' ORDER BY occurred_at DESC))[1] AS sample_request, (array_agg(id ORDER BY occurred_at DESC))[1] AS latest_event_id FROM normalised GROUP BY fingerprint ORDER BY occurrence_count DESC, last_seen DESC LIMIT '30';
Date: 2026-04-26 21:49:57 Duration: 716ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
WITH normalised AS ( SELECT id, tenant_key, event_type, severity, message, payload, occurred_at, regexp_replace(regexp_replace(message, '\d+', '#', 'g'), '/[^ :]+/', '.../', 'g') AS fingerprint FROM observability.app_events WHERE tenant_key IN ('prod') AND occurred_at BETWEEN '2026-04-26 17:17:01+02' AND '2026-04-26 23:17:01+02' AND severity IN ('critical', 'error', 'warning') AND NOT (event_type = 'db_error' AND (lower(COALESCE(message, '')) = 'lock wait: client / clientread' OR ( lower(COALESCE(payload->>'wait_event_type', '')) = 'client' AND lower(COALESCE(payload ->> 'wait_event', '')) = 'clientread')))) SELECT fingerprint, COUNT(*) AS occurrence_count, COUNT(DISTINCT COALESCE(payload ->> 'user', payload ->> 'username', 'unbekannt')) AS affected_users, CASE WHEN MAX( CASE severity WHEN 'critical' THEN 3 WHEN 'error' THEN 2 WHEN 'warning' THEN 1 ELSE 0 END) = 3 THEN 'critical' WHEN MAX( CASE severity WHEN 'critical' THEN 3 WHEN 'error' THEN 2 WHEN 'warning' THEN 1 ELSE 0 END) = 2 THEN 'error' WHEN MAX( CASE severity WHEN 'critical' THEN 3 WHEN 'error' THEN 2 WHEN 'warning' THEN 1 ELSE 0 END) = 1 THEN 'warning' ELSE 'info' END AS max_severity, MIN(occurred_at) AS first_seen, MAX(occurred_at) AS last_seen, (array_agg(message ORDER BY occurred_at DESC))[1] AS sample_message, (array_agg(DISTINCT event_type))[1] AS event_type, (array_agg(payload ->> 'file' ORDER BY occurred_at DESC))[1] AS source_file, (array_agg(payload ->> 'line' ORDER BY occurred_at DESC))[1] AS source_line, (array_agg(payload ->> 'request' ORDER BY occurred_at DESC))[1] AS sample_request, (array_agg(id ORDER BY occurred_at DESC))[1] AS latest_event_id FROM normalised GROUP BY fingerprint ORDER BY occurrence_count DESC, last_seen DESC LIMIT '30';
Date: 2026-04-26 23:17:01 Duration: 714ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
WITH normalised AS ( SELECT id, tenant_key, event_type, severity, message, payload, occurred_at, regexp_replace(regexp_replace(message, '\d+', '#', 'g'), '/[^ :]+/', '.../', 'g') AS fingerprint FROM observability.app_events WHERE tenant_key IN ('prod') AND occurred_at BETWEEN '2026-04-26 15:44:47+02' AND '2026-04-26 21:44:47+02' AND severity IN ('critical', 'error', 'warning') AND NOT (event_type = 'db_error' AND (lower(COALESCE(message, '')) = 'lock wait: client / clientread' OR ( lower(COALESCE(payload->>'wait_event_type', '')) = 'client' AND lower(COALESCE(payload ->> 'wait_event', '')) = 'clientread')))) SELECT fingerprint, COUNT(*) AS occurrence_count, COUNT(DISTINCT COALESCE(payload ->> 'user', payload ->> 'username', 'unbekannt')) AS affected_users, CASE WHEN MAX( CASE severity WHEN 'critical' THEN 3 WHEN 'error' THEN 2 WHEN 'warning' THEN 1 ELSE 0 END) = 3 THEN 'critical' WHEN MAX( CASE severity WHEN 'critical' THEN 3 WHEN 'error' THEN 2 WHEN 'warning' THEN 1 ELSE 0 END) = 2 THEN 'error' WHEN MAX( CASE severity WHEN 'critical' THEN 3 WHEN 'error' THEN 2 WHEN 'warning' THEN 1 ELSE 0 END) = 1 THEN 'warning' ELSE 'info' END AS max_severity, MIN(occurred_at) AS first_seen, MAX(occurred_at) AS last_seen, (array_agg(message ORDER BY occurred_at DESC))[1] AS sample_message, (array_agg(DISTINCT event_type))[1] AS event_type, (array_agg(payload ->> 'file' ORDER BY occurred_at DESC))[1] AS source_file, (array_agg(payload ->> 'line' ORDER BY occurred_at DESC))[1] AS source_line, (array_agg(payload ->> 'request' ORDER BY occurred_at DESC))[1] AS sample_request, (array_agg(id ORDER BY occurred_at DESC))[1] AS latest_event_id FROM normalised GROUP BY fingerprint ORDER BY occurrence_count DESC, last_seen DESC LIMIT '30';
Date: 2026-04-26 21:44:48 Duration: 708ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
20 34s781ms 63 506ms 629ms 552ms select lower(trim(nullif (payload ->> ?, ?))) as username_key, nullif (coalesce( case when coalesce(payload ->> ?, ?) ~ ? then payload ->> ? else ? end, case when coalesce(payload ->> ?, ?) ~ ? then payload ->> ? else ? end, case when coalesce(payload ->> ?, ?) ~ ? then payload ->> ? else ? end, ?), ?) as user_id_key, count(*) filter (where severity = ?) as total_user_errors, count(*) filter (where severity = ?) as total_user_warnings, min(occurred_at) filter (where severity = ?) as first_error_date, min(occurred_at) filter (where severity = ?) as first_warning_date from observability.app_events where tenant_key in (...) and occurred_at between ? and ? and severity in (...) and (nullif (payload ->> ?, ?) is not null or case when coalesce(payload ->> ?, ?) ~ ? then payload ->> ? else ? end <> ? or case when coalesce(payload ->> ?, ?) ~ ? then payload ->> ? else ? end <> ? or case when coalesce(payload ->> ?, ?) ~ ? then payload ->> ? else ? end <> ?) group by username_key, user_id_key;Times Reported Time consuming queries #20
Day Hour Count Duration Avg duration Apr 26 19 4 2s245ms 561ms 20 12 6s539ms 544ms 21 12 6s617ms 551ms 22 11 6s59ms 550ms 23 12 6s702ms 558ms 00 12 6s617ms 551ms [ User: labanimal - Total duration: 34s781ms - Times executed: 63 ]
-
SELECT LOWER(TRIM(NULLIF (payload ->> 'username', ''))) AS username_key, NULLIF( COALESCE( CASE WHEN COALESCE(payload->>'user_id', '') ~ '^\d+$' THEN payload ->> 'user_id' ELSE '' END, CASE WHEN COALESCE(payload->>'user', '') ~ '^\d+$' THEN payload ->> 'user' ELSE '' END, CASE WHEN COALESCE(payload->>'userid', '') ~ '^\d+$' THEN payload ->> 'userid' ELSE '' END, ''), '' ) AS user_id_key, COUNT(*) FILTER (WHERE severity = 'error') AS total_user_errors, COUNT(*) FILTER (WHERE severity = 'warning') AS total_user_warnings, MIN(occurred_at) FILTER (WHERE severity = 'error') AS first_error_date, MIN(occurred_at) FILTER (WHERE severity = 'warning') AS first_warning_date FROM observability.app_events WHERE tenant_key IN ('prod') AND occurred_at BETWEEN '2026-04-26 14:27:53+02' AND '2026-04-26 20:27:53+02' AND severity IN ('error', 'warning') AND ( NULLIF(payload->>'username', '') IS NOT NULL OR CASE WHEN COALESCE(payload ->> 'user_id', '') ~ '^\d+$' THEN payload->>'user_id' ELSE '' END <> '' OR CASE WHEN COALESCE(payload->>'user', '') ~ '^\d+$' THEN payload ->> 'user' ELSE '' END <> '' OR CASE WHEN COALESCE(payload ->> 'userid', '') ~ '^\d+$' THEN payload->>'userid' ELSE '' END <> '') GROUP BY username_key, user_id_key;
Date: 2026-04-26 20:27:54 Duration: 629ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
SELECT LOWER(TRIM(NULLIF (payload ->> 'username', ''))) AS username_key, NULLIF( COALESCE( CASE WHEN COALESCE(payload->>'user_id', '') ~ '^\d+$' THEN payload ->> 'user_id' ELSE '' END, CASE WHEN COALESCE(payload->>'user', '') ~ '^\d+$' THEN payload ->> 'user' ELSE '' END, CASE WHEN COALESCE(payload->>'userid', '') ~ '^\d+$' THEN payload ->> 'userid' ELSE '' END, ''), '' ) AS user_id_key, COUNT(*) FILTER (WHERE severity = 'error') AS total_user_errors, COUNT(*) FILTER (WHERE severity = 'warning') AS total_user_warnings, MIN(occurred_at) FILTER (WHERE severity = 'error') AS first_error_date, MIN(occurred_at) FILTER (WHERE severity = 'warning') AS first_warning_date FROM observability.app_events WHERE tenant_key IN ('prod') AND occurred_at BETWEEN '2026-04-26 15:55:06+02' AND '2026-04-26 21:55:06+02' AND severity IN ('error', 'warning') AND ( NULLIF(payload->>'username', '') IS NOT NULL OR CASE WHEN COALESCE(payload ->> 'user_id', '') ~ '^\d+$' THEN payload->>'user_id' ELSE '' END <> '' OR CASE WHEN COALESCE(payload->>'user', '') ~ '^\d+$' THEN payload ->> 'user' ELSE '' END <> '' OR CASE WHEN COALESCE(payload ->> 'userid', '') ~ '^\d+$' THEN payload->>'userid' ELSE '' END <> '') GROUP BY username_key, user_id_key;
Date: 2026-04-26 21:55:06 Duration: 590ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
SELECT LOWER(TRIM(NULLIF (payload ->> 'username', ''))) AS username_key, NULLIF( COALESCE( CASE WHEN COALESCE(payload->>'user_id', '') ~ '^\d+$' THEN payload ->> 'user_id' ELSE '' END, CASE WHEN COALESCE(payload->>'user', '') ~ '^\d+$' THEN payload ->> 'user' ELSE '' END, CASE WHEN COALESCE(payload->>'userid', '') ~ '^\d+$' THEN payload ->> 'userid' ELSE '' END, ''), '' ) AS user_id_key, COUNT(*) FILTER (WHERE severity = 'error') AS total_user_errors, COUNT(*) FILTER (WHERE severity = 'warning') AS total_user_warnings, MIN(occurred_at) FILTER (WHERE severity = 'error') AS first_error_date, MIN(occurred_at) FILTER (WHERE severity = 'warning') AS first_warning_date FROM observability.app_events WHERE tenant_key IN ('prod') AND occurred_at BETWEEN '2026-04-26 16:20:44+02' AND '2026-04-26 22:20:44+02' AND severity IN ('error', 'warning') AND ( NULLIF(payload->>'username', '') IS NOT NULL OR CASE WHEN COALESCE(payload ->> 'user_id', '') ~ '^\d+$' THEN payload->>'user_id' ELSE '' END <> '' OR CASE WHEN COALESCE(payload->>'user', '') ~ '^\d+$' THEN payload ->> 'user' ELSE '' END <> '' OR CASE WHEN COALESCE(payload ->> 'userid', '') ~ '^\d+$' THEN payload->>'userid' ELSE '' END <> '') GROUP BY username_key, user_id_key;
Date: 2026-04-26 22:20:44 Duration: 581ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
Most frequent queries (N)
Rank Times executed Total duration Min duration Max duration Avg duration Query 1 1,440 1h36m51s 521ms 4s820ms 4s35ms create table if not exists observability.phpfpm_counters ( id bigserial primary key, payload jsonb not null, collected_at timestamptz not null default now() );Times Reported Time consuming queries #1
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
CREATE TABLE IF NOT EXISTS observability.phpfpm_counters ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.phpfpm_counters ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.phpfpm_counters ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
2 1,440 1h36m51s 521ms 4s820ms 4s35ms create table if not exists observability.db_top_queries ( id bigserial primary key, tenant_key text not null, fingerprint text, query text, mean_time_ms double precision, total_time_ms double precision, calls bigint, rows_returned bigint, collected_at timestamptz not null default now() );Times Reported Time consuming queries #2
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
CREATE TABLE IF NOT EXISTS observability.db_top_queries ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, fingerprint text, query text, mean_time_ms double precision, total_time_ms double precision, calls bigint, rows_returned bigint, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.db_top_queries ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, fingerprint text, query text, mean_time_ms double precision, total_time_ms double precision, calls bigint, rows_returned bigint, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.db_top_queries ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, fingerprint text, query text, mean_time_ms double precision, total_time_ms double precision, calls bigint, rows_returned bigint, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
3 1,440 1h36m51s 521ms 4s820ms 4s35ms create index if not exists idx_db_top_queries_tenant on observability.db_top_queries (tenant_key, collected_at desc);Times Reported Time consuming queries #3
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
4 1,440 1h36m51s 521ms 4s820ms 4s35ms alter table observability.uptime_checks add column if not exists label text;Times Reported Time consuming queries #4
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS label text;
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS label text;
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS label text;
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
5 1,440 1h36m51s 521ms 4s820ms 4s35ms create index if not exists idx_uptime_checks_key on observability.uptime_checks (check_key, checked_at desc);Times Reported Time consuming queries #5
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_key ON observability.uptime_checks (check_key, checked_at DESC);
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_key ON observability.uptime_checks (check_key, checked_at DESC);
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_key ON observability.uptime_checks (check_key, checked_at DESC);
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
6 1,440 1h36m51s 521ms 4s820ms 4s35ms create index if not exists idx_metrics_timeseries_metric on observability.metrics_timeseries (metric_name);Times Reported Time consuming queries #6
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
7 1,440 1h36m51s 521ms 4s820ms 4s35ms create index if not exists idx_metrics_timeseries_bucket on observability.metrics_timeseries (bucket_start);Times Reported Time consuming queries #7
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
8 1,440 1h36m51s 521ms 4s820ms 4s35ms create table if not exists observability.uptime_checks ( id bigserial primary key, endpoint text not null, status text not null, latency_ms double precision, checked_at timestamptz not null default now() );Times Reported Time consuming queries #8
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
CREATE TABLE IF NOT EXISTS observability.uptime_checks ( id bigserial PRIMARY KEY, endpoint text NOT NULL, status text NOT NULL, latency_ms double precision, checked_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.uptime_checks ( id bigserial PRIMARY KEY, endpoint text NOT NULL, status text NOT NULL, latency_ms double precision, checked_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.uptime_checks ( id bigserial PRIMARY KEY, endpoint text NOT NULL, status text NOT NULL, latency_ms double precision, checked_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
9 1,440 1h36m51s 521ms 4s820ms 4s35ms create index if not exists idx_app_events_tenant on observability.app_events (tenant_key, occurred_at desc);Times Reported Time consuming queries #9
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
10 1,440 1h36m51s 521ms 4s820ms 4s35ms alter table observability.uptime_checks add column if not exists payload jsonb;Times Reported Time consuming queries #10
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS payload jsonb;
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS payload jsonb;
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS payload jsonb;
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
11 1,440 1h36m51s 521ms 4s820ms 4s35ms create table if not exists observability.app_events ( id bigserial primary key, tenant_key text not null, event_type text not null, severity text not null, message text not null, payload jsonb, occurred_at timestamptz not null default now(), created_at timestamptz not null default now() );Times Reported Time consuming queries #11
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
CREATE TABLE IF NOT EXISTS observability.app_events ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, event_type text NOT NULL, severity text NOT NULL, message text NOT NULL, payload jsonb, occurred_at timestamptz NOT NULL DEFAULT NOW(), created_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.app_events ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, event_type text NOT NULL, severity text NOT NULL, message text NOT NULL, payload jsonb, occurred_at timestamptz NOT NULL DEFAULT NOW(), created_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.app_events ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, event_type text NOT NULL, severity text NOT NULL, message text NOT NULL, payload jsonb, occurred_at timestamptz NOT NULL DEFAULT NOW(), created_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
12 1,440 1h36m51s 521ms 4s820ms 4s35ms create table if not exists observability.metrics_timeseries ( id bigserial primary key, tenant_key text not null, metric_name text not null, bucket_start timestamptz not null, bucket_width_seconds integer not null default ?, sum_value double precision not null default ?, count_value bigint not null default ?, histogram jsonb, created_at timestamptz not null default now(), updated_at timestamptz not null default now(), unique (tenant_key, metric_name, bucket_start, bucket_width_seconds) );Times Reported Time consuming queries #12
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
CREATE TABLE IF NOT EXISTS observability.metrics_timeseries ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, metric_name text NOT NULL, bucket_start timestamptz NOT NULL, bucket_width_seconds integer NOT NULL DEFAULT 60, sum_value double precision NOT NULL DEFAULT 0, count_value bigint NOT NULL DEFAULT 0, histogram jsonb, created_at timestamptz NOT NULL DEFAULT NOW(), updated_at timestamptz NOT NULL DEFAULT NOW(), UNIQUE (tenant_key, metric_name, bucket_start, bucket_width_seconds) );
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.metrics_timeseries ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, metric_name text NOT NULL, bucket_start timestamptz NOT NULL, bucket_width_seconds integer NOT NULL DEFAULT 60, sum_value double precision NOT NULL DEFAULT 0, count_value bigint NOT NULL DEFAULT 0, histogram jsonb, created_at timestamptz NOT NULL DEFAULT NOW(), updated_at timestamptz NOT NULL DEFAULT NOW(), UNIQUE (tenant_key, metric_name, bucket_start, bucket_width_seconds) );
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.metrics_timeseries ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, metric_name text NOT NULL, bucket_start timestamptz NOT NULL, bucket_width_seconds integer NOT NULL DEFAULT 60, sum_value double precision NOT NULL DEFAULT 0, count_value bigint NOT NULL DEFAULT 0, histogram jsonb, created_at timestamptz NOT NULL DEFAULT NOW(), updated_at timestamptz NOT NULL DEFAULT NOW(), UNIQUE (tenant_key, metric_name, bucket_start, bucket_width_seconds) );
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
13 1,440 1h36m51s 521ms 4s820ms 4s35ms create index if not exists idx_app_events_type on observability.app_events (event_type);Times Reported Time consuming queries #13
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
14 1,440 1h36m51s 521ms 4s820ms 4s35ms create index if not exists idx_uptime_checks_endpoint on observability.uptime_checks (endpoint, checked_at desc);Times Reported Time consuming queries #14
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_endpoint ON observability.uptime_checks (endpoint, checked_at DESC);
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_endpoint ON observability.uptime_checks (endpoint, checked_at DESC);
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_endpoint ON observability.uptime_checks (endpoint, checked_at DESC);
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
15 1,440 1h36m51s 521ms 4s820ms 4s35ms create table if not exists observability.system_metrics ( id bigserial primary key, payload jsonb not null, collected_at timestamptz not null default now() );Times Reported Time consuming queries #15
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
CREATE TABLE IF NOT EXISTS observability.system_metrics ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.system_metrics ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.system_metrics ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
16 1,440 1h36m51s 521ms 4s820ms 4s35ms create table if not exists observability.nginx_counters ( id bigserial primary key, payload jsonb not null, collected_at timestamptz not null default now() );Times Reported Time consuming queries #16
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
CREATE TABLE IF NOT EXISTS observability.nginx_counters ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.nginx_counters ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.nginx_counters ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
17 1,440 1h36m51s 521ms 4s820ms 4s35ms create schema if not exists observability;Times Reported Time consuming queries #17
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
18 222 15m11s 3s552ms 5s991ms 4s105ms with start_snap as ( select distinct on (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at from observability.db_top_queries where tenant_key in (...) and collected_at <= ? order by tenant_key, fingerprint, collected_at desc ), fallback_start as ( select distinct on (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at from observability.db_top_queries where tenant_key in (...) and collected_at between ? and ? order by tenant_key, fingerprint, collected_at asc ), end_snap as ( select distinct on (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at from observability.db_top_queries where tenant_key in (...) and collected_at between ? and ? order by tenant_key, fingerprint, collected_at desc ), deltas as ( select e.tenant_key, e.fingerprint, e.query, e.collected_at as last_seen, greatest (coalesce(e.total_time_ms, ?) - coalesce(s.total_time_ms, fs.total_time_ms, ?), ?) as total_time_ms, greatest (coalesce(e.calls, ?) - coalesce(s.calls, fs.calls, ?), ?) as calls, greatest (coalesce(e.rows_returned, ?) - coalesce(s.rows_returned, fs.rows_returned, ?), ?) as rows_returned from end_snap e left join start_snap s on s.tenant_key = e.tenant_key and s.fingerprint = e.fingerprint left join fallback_start fs on fs.tenant_key = e.tenant_key and fs.fingerprint = e.fingerprint and s.tenant_key is null ) select fingerprint, max(query) as query, max(last_seen) as last_seen, sum(total_time_ms) as total_time_ms, sum(calls) as calls, sum(rows_returned) as rows_returned, case when sum(calls) > ? then sum(total_time_ms) / sum(calls) else ? end as mean_time_ms, array_agg(distinct tenant_key order by tenant_key) as tenant_keys from deltas where total_time_ms > ? or calls > ? group by fingerprint order by total_time_ms desc, calls desc limit ? offset ?;Times Reported Time consuming queries #18
Day Hour Count Duration Avg duration Apr 26 01 15 1m 4s56ms 02 12 47s221ms 3s935ms 03 12 46s365ms 3s863ms 04 11 42s137ms 3s830ms 05 12 45s873ms 3s822ms 06 12 46s344ms 3s862ms 07 11 42s146ms 3s831ms 08 12 45s807ms 3s817ms 09 3 11s476ms 3s825ms 10 14 52s529ms 3s752ms 11 20 1m29s 4s496ms 12 11 47s601ms 4s327ms 13 11 47s219ms 4s292ms 14 1 4s269ms 4s269ms 19 6 26s596ms 4s432ms 20 12 52s461ms 4s371ms 21 12 52s67ms 4s338ms 22 11 47s986ms 4s362ms 23 12 51s119ms 4s259ms 00 12 51s362ms 4s280ms [ User: labanimal - Total duration: 15m11s - Times executed: 222 ]
-
WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('test') AND collected_at <= '2026-04-26 04:05:09+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('test') AND collected_at BETWEEN '2026-04-26 04:05:09+02' AND '2026-04-26 10:05:09+02' ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('test') AND collected_at BETWEEN '2026-04-26 04:05:09+02' AND '2026-04-26 10:05:09+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT '20' OFFSET '0';
Date: 2026-04-26 10:05:15 Duration: 5s991ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at <= '2026-04-26 04:05:10+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at BETWEEN '2026-04-26 04:05:10+02' AND '2026-04-26 10:05:10+02' ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at BETWEEN '2026-04-26 04:05:10+02' AND '2026-04-26 10:05:10+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT '20' OFFSET '0';
Date: 2026-04-26 10:05:15 Duration: 5s307ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('dev') AND collected_at <= '2026-04-26 04:05:07+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('dev') AND collected_at BETWEEN '2026-04-26 04:05:07+02' AND '2026-04-26 10:05:07+02' ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('dev') AND collected_at BETWEEN '2026-04-26 04:05:07+02' AND '2026-04-26 10:05:07+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT '20' OFFSET '0';
Date: 2026-04-26 10:05:12 Duration: 5s106ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
19 64 40s465ms 520ms 716ms 632ms with normalised as ( select id, tenant_key, event_type, severity, message, payload, occurred_at, regexp_replace(regexp_replace(message, ?, ?, ?), ?, ?, ?) as fingerprint from observability.app_events where tenant_key in (...) and occurred_at between ? and ? and severity in (...) and not (event_type = ? and (lower(coalesce(message, ?)) = ? or (lower(coalesce(payload ->> ?, ?)) = ? and lower(coalesce(payload ->> ?, ?)) = ?)))) select fingerprint, count(*) as occurrence_count, count(distinct coalesce(payload ->> ?, payload ->> ?, ?)) as affected_users, case when max( case severity when ? then ? when ? then ? when ? then ? else ? end) = ? then ? when max( case severity when ? then ? when ? then ? when ? then ? else ? end) = ? then ? when max( case severity when ? then ? when ? then ? when ? then ? else ? end) = ? then ? else ? end as max_severity, min(occurred_at) as first_seen, max(occurred_at) as last_seen, (array_agg(message order by occurred_at desc))[?] as sample_message, (array_agg(distinct event_type))[?] as event_type, (array_agg(payload ->> ? order by occurred_at desc))[?] as source_file, (array_agg(payload ->> ? order by occurred_at desc))[?] as source_line, (array_agg(payload ->> ? order by occurred_at desc))[?] as sample_request, (array_agg(id order by occurred_at desc))[?] as latest_event_id from normalised group by fingerprint order by occurrence_count desc, last_seen desc limit ?;Times Reported Time consuming queries #19
Day Hour Count Duration Avg duration Apr 26 19 5 3s9ms 601ms 20 12 7s406ms 617ms 21 12 7s635ms 636ms 22 11 6s973ms 633ms 23 12 7s574ms 631ms 00 12 7s864ms 655ms [ User: labanimal - Total duration: 40s465ms - Times executed: 64 ]
-
WITH normalised AS ( SELECT id, tenant_key, event_type, severity, message, payload, occurred_at, regexp_replace(regexp_replace(message, '\d+', '#', 'g'), '/[^ :]+/', '.../', 'g') AS fingerprint FROM observability.app_events WHERE tenant_key IN ('prod') AND occurred_at BETWEEN '2026-04-26 15:49:57+02' AND '2026-04-26 21:49:57+02' AND severity IN ('critical', 'error', 'warning') AND NOT (event_type = 'db_error' AND (lower(COALESCE(message, '')) = 'lock wait: client / clientread' OR ( lower(COALESCE(payload->>'wait_event_type', '')) = 'client' AND lower(COALESCE(payload ->> 'wait_event', '')) = 'clientread')))) SELECT fingerprint, COUNT(*) AS occurrence_count, COUNT(DISTINCT COALESCE(payload ->> 'user', payload ->> 'username', 'unbekannt')) AS affected_users, CASE WHEN MAX( CASE severity WHEN 'critical' THEN 3 WHEN 'error' THEN 2 WHEN 'warning' THEN 1 ELSE 0 END) = 3 THEN 'critical' WHEN MAX( CASE severity WHEN 'critical' THEN 3 WHEN 'error' THEN 2 WHEN 'warning' THEN 1 ELSE 0 END) = 2 THEN 'error' WHEN MAX( CASE severity WHEN 'critical' THEN 3 WHEN 'error' THEN 2 WHEN 'warning' THEN 1 ELSE 0 END) = 1 THEN 'warning' ELSE 'info' END AS max_severity, MIN(occurred_at) AS first_seen, MAX(occurred_at) AS last_seen, (array_agg(message ORDER BY occurred_at DESC))[1] AS sample_message, (array_agg(DISTINCT event_type))[1] AS event_type, (array_agg(payload ->> 'file' ORDER BY occurred_at DESC))[1] AS source_file, (array_agg(payload ->> 'line' ORDER BY occurred_at DESC))[1] AS source_line, (array_agg(payload ->> 'request' ORDER BY occurred_at DESC))[1] AS sample_request, (array_agg(id ORDER BY occurred_at DESC))[1] AS latest_event_id FROM normalised GROUP BY fingerprint ORDER BY occurrence_count DESC, last_seen DESC LIMIT '30';
Date: 2026-04-26 21:49:57 Duration: 716ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
WITH normalised AS ( SELECT id, tenant_key, event_type, severity, message, payload, occurred_at, regexp_replace(regexp_replace(message, '\d+', '#', 'g'), '/[^ :]+/', '.../', 'g') AS fingerprint FROM observability.app_events WHERE tenant_key IN ('prod') AND occurred_at BETWEEN '2026-04-26 17:17:01+02' AND '2026-04-26 23:17:01+02' AND severity IN ('critical', 'error', 'warning') AND NOT (event_type = 'db_error' AND (lower(COALESCE(message, '')) = 'lock wait: client / clientread' OR ( lower(COALESCE(payload->>'wait_event_type', '')) = 'client' AND lower(COALESCE(payload ->> 'wait_event', '')) = 'clientread')))) SELECT fingerprint, COUNT(*) AS occurrence_count, COUNT(DISTINCT COALESCE(payload ->> 'user', payload ->> 'username', 'unbekannt')) AS affected_users, CASE WHEN MAX( CASE severity WHEN 'critical' THEN 3 WHEN 'error' THEN 2 WHEN 'warning' THEN 1 ELSE 0 END) = 3 THEN 'critical' WHEN MAX( CASE severity WHEN 'critical' THEN 3 WHEN 'error' THEN 2 WHEN 'warning' THEN 1 ELSE 0 END) = 2 THEN 'error' WHEN MAX( CASE severity WHEN 'critical' THEN 3 WHEN 'error' THEN 2 WHEN 'warning' THEN 1 ELSE 0 END) = 1 THEN 'warning' ELSE 'info' END AS max_severity, MIN(occurred_at) AS first_seen, MAX(occurred_at) AS last_seen, (array_agg(message ORDER BY occurred_at DESC))[1] AS sample_message, (array_agg(DISTINCT event_type))[1] AS event_type, (array_agg(payload ->> 'file' ORDER BY occurred_at DESC))[1] AS source_file, (array_agg(payload ->> 'line' ORDER BY occurred_at DESC))[1] AS source_line, (array_agg(payload ->> 'request' ORDER BY occurred_at DESC))[1] AS sample_request, (array_agg(id ORDER BY occurred_at DESC))[1] AS latest_event_id FROM normalised GROUP BY fingerprint ORDER BY occurrence_count DESC, last_seen DESC LIMIT '30';
Date: 2026-04-26 23:17:01 Duration: 714ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
WITH normalised AS ( SELECT id, tenant_key, event_type, severity, message, payload, occurred_at, regexp_replace(regexp_replace(message, '\d+', '#', 'g'), '/[^ :]+/', '.../', 'g') AS fingerprint FROM observability.app_events WHERE tenant_key IN ('prod') AND occurred_at BETWEEN '2026-04-26 15:44:47+02' AND '2026-04-26 21:44:47+02' AND severity IN ('critical', 'error', 'warning') AND NOT (event_type = 'db_error' AND (lower(COALESCE(message, '')) = 'lock wait: client / clientread' OR ( lower(COALESCE(payload->>'wait_event_type', '')) = 'client' AND lower(COALESCE(payload ->> 'wait_event', '')) = 'clientread')))) SELECT fingerprint, COUNT(*) AS occurrence_count, COUNT(DISTINCT COALESCE(payload ->> 'user', payload ->> 'username', 'unbekannt')) AS affected_users, CASE WHEN MAX( CASE severity WHEN 'critical' THEN 3 WHEN 'error' THEN 2 WHEN 'warning' THEN 1 ELSE 0 END) = 3 THEN 'critical' WHEN MAX( CASE severity WHEN 'critical' THEN 3 WHEN 'error' THEN 2 WHEN 'warning' THEN 1 ELSE 0 END) = 2 THEN 'error' WHEN MAX( CASE severity WHEN 'critical' THEN 3 WHEN 'error' THEN 2 WHEN 'warning' THEN 1 ELSE 0 END) = 1 THEN 'warning' ELSE 'info' END AS max_severity, MIN(occurred_at) AS first_seen, MAX(occurred_at) AS last_seen, (array_agg(message ORDER BY occurred_at DESC))[1] AS sample_message, (array_agg(DISTINCT event_type))[1] AS event_type, (array_agg(payload ->> 'file' ORDER BY occurred_at DESC))[1] AS source_file, (array_agg(payload ->> 'line' ORDER BY occurred_at DESC))[1] AS source_line, (array_agg(payload ->> 'request' ORDER BY occurred_at DESC))[1] AS sample_request, (array_agg(id ORDER BY occurred_at DESC))[1] AS latest_event_id FROM normalised GROUP BY fingerprint ORDER BY occurrence_count DESC, last_seen DESC LIMIT '30';
Date: 2026-04-26 21:44:48 Duration: 708ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
20 63 34s781ms 506ms 629ms 552ms select lower(trim(nullif (payload ->> ?, ?))) as username_key, nullif (coalesce( case when coalesce(payload ->> ?, ?) ~ ? then payload ->> ? else ? end, case when coalesce(payload ->> ?, ?) ~ ? then payload ->> ? else ? end, case when coalesce(payload ->> ?, ?) ~ ? then payload ->> ? else ? end, ?), ?) as user_id_key, count(*) filter (where severity = ?) as total_user_errors, count(*) filter (where severity = ?) as total_user_warnings, min(occurred_at) filter (where severity = ?) as first_error_date, min(occurred_at) filter (where severity = ?) as first_warning_date from observability.app_events where tenant_key in (...) and occurred_at between ? and ? and severity in (...) and (nullif (payload ->> ?, ?) is not null or case when coalesce(payload ->> ?, ?) ~ ? then payload ->> ? else ? end <> ? or case when coalesce(payload ->> ?, ?) ~ ? then payload ->> ? else ? end <> ? or case when coalesce(payload ->> ?, ?) ~ ? then payload ->> ? else ? end <> ?) group by username_key, user_id_key;Times Reported Time consuming queries #20
Day Hour Count Duration Avg duration Apr 26 19 4 2s245ms 561ms 20 12 6s539ms 544ms 21 12 6s617ms 551ms 22 11 6s59ms 550ms 23 12 6s702ms 558ms 00 12 6s617ms 551ms [ User: labanimal - Total duration: 34s781ms - Times executed: 63 ]
-
SELECT LOWER(TRIM(NULLIF (payload ->> 'username', ''))) AS username_key, NULLIF( COALESCE( CASE WHEN COALESCE(payload->>'user_id', '') ~ '^\d+$' THEN payload ->> 'user_id' ELSE '' END, CASE WHEN COALESCE(payload->>'user', '') ~ '^\d+$' THEN payload ->> 'user' ELSE '' END, CASE WHEN COALESCE(payload->>'userid', '') ~ '^\d+$' THEN payload ->> 'userid' ELSE '' END, ''), '' ) AS user_id_key, COUNT(*) FILTER (WHERE severity = 'error') AS total_user_errors, COUNT(*) FILTER (WHERE severity = 'warning') AS total_user_warnings, MIN(occurred_at) FILTER (WHERE severity = 'error') AS first_error_date, MIN(occurred_at) FILTER (WHERE severity = 'warning') AS first_warning_date FROM observability.app_events WHERE tenant_key IN ('prod') AND occurred_at BETWEEN '2026-04-26 14:27:53+02' AND '2026-04-26 20:27:53+02' AND severity IN ('error', 'warning') AND ( NULLIF(payload->>'username', '') IS NOT NULL OR CASE WHEN COALESCE(payload ->> 'user_id', '') ~ '^\d+$' THEN payload->>'user_id' ELSE '' END <> '' OR CASE WHEN COALESCE(payload->>'user', '') ~ '^\d+$' THEN payload ->> 'user' ELSE '' END <> '' OR CASE WHEN COALESCE(payload ->> 'userid', '') ~ '^\d+$' THEN payload->>'userid' ELSE '' END <> '') GROUP BY username_key, user_id_key;
Date: 2026-04-26 20:27:54 Duration: 629ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
SELECT LOWER(TRIM(NULLIF (payload ->> 'username', ''))) AS username_key, NULLIF( COALESCE( CASE WHEN COALESCE(payload->>'user_id', '') ~ '^\d+$' THEN payload ->> 'user_id' ELSE '' END, CASE WHEN COALESCE(payload->>'user', '') ~ '^\d+$' THEN payload ->> 'user' ELSE '' END, CASE WHEN COALESCE(payload->>'userid', '') ~ '^\d+$' THEN payload ->> 'userid' ELSE '' END, ''), '' ) AS user_id_key, COUNT(*) FILTER (WHERE severity = 'error') AS total_user_errors, COUNT(*) FILTER (WHERE severity = 'warning') AS total_user_warnings, MIN(occurred_at) FILTER (WHERE severity = 'error') AS first_error_date, MIN(occurred_at) FILTER (WHERE severity = 'warning') AS first_warning_date FROM observability.app_events WHERE tenant_key IN ('prod') AND occurred_at BETWEEN '2026-04-26 15:55:06+02' AND '2026-04-26 21:55:06+02' AND severity IN ('error', 'warning') AND ( NULLIF(payload->>'username', '') IS NOT NULL OR CASE WHEN COALESCE(payload ->> 'user_id', '') ~ '^\d+$' THEN payload->>'user_id' ELSE '' END <> '' OR CASE WHEN COALESCE(payload->>'user', '') ~ '^\d+$' THEN payload ->> 'user' ELSE '' END <> '' OR CASE WHEN COALESCE(payload ->> 'userid', '') ~ '^\d+$' THEN payload->>'userid' ELSE '' END <> '') GROUP BY username_key, user_id_key;
Date: 2026-04-26 21:55:06 Duration: 590ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
SELECT LOWER(TRIM(NULLIF (payload ->> 'username', ''))) AS username_key, NULLIF( COALESCE( CASE WHEN COALESCE(payload->>'user_id', '') ~ '^\d+$' THEN payload ->> 'user_id' ELSE '' END, CASE WHEN COALESCE(payload->>'user', '') ~ '^\d+$' THEN payload ->> 'user' ELSE '' END, CASE WHEN COALESCE(payload->>'userid', '') ~ '^\d+$' THEN payload ->> 'userid' ELSE '' END, ''), '' ) AS user_id_key, COUNT(*) FILTER (WHERE severity = 'error') AS total_user_errors, COUNT(*) FILTER (WHERE severity = 'warning') AS total_user_warnings, MIN(occurred_at) FILTER (WHERE severity = 'error') AS first_error_date, MIN(occurred_at) FILTER (WHERE severity = 'warning') AS first_warning_date FROM observability.app_events WHERE tenant_key IN ('prod') AND occurred_at BETWEEN '2026-04-26 16:20:44+02' AND '2026-04-26 22:20:44+02' AND severity IN ('error', 'warning') AND ( NULLIF(payload->>'username', '') IS NOT NULL OR CASE WHEN COALESCE(payload ->> 'user_id', '') ~ '^\d+$' THEN payload->>'user_id' ELSE '' END <> '' OR CASE WHEN COALESCE(payload->>'user', '') ~ '^\d+$' THEN payload ->> 'user' ELSE '' END <> '' OR CASE WHEN COALESCE(payload ->> 'userid', '') ~ '^\d+$' THEN payload->>'userid' ELSE '' END <> '') GROUP BY username_key, user_id_key;
Date: 2026-04-26 22:20:44 Duration: 581ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
Normalized slowest queries (N)
Rank Min duration Max duration Avg duration Times executed Total duration Query 1 3s552ms 5s991ms 4s105ms 222 15m11s with start_snap as ( select distinct on (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at from observability.db_top_queries where tenant_key in (...) and collected_at <= ? order by tenant_key, fingerprint, collected_at desc ), fallback_start as ( select distinct on (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at from observability.db_top_queries where tenant_key in (...) and collected_at between ? and ? order by tenant_key, fingerprint, collected_at asc ), end_snap as ( select distinct on (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at from observability.db_top_queries where tenant_key in (...) and collected_at between ? and ? order by tenant_key, fingerprint, collected_at desc ), deltas as ( select e.tenant_key, e.fingerprint, e.query, e.collected_at as last_seen, greatest (coalesce(e.total_time_ms, ?) - coalesce(s.total_time_ms, fs.total_time_ms, ?), ?) as total_time_ms, greatest (coalesce(e.calls, ?) - coalesce(s.calls, fs.calls, ?), ?) as calls, greatest (coalesce(e.rows_returned, ?) - coalesce(s.rows_returned, fs.rows_returned, ?), ?) as rows_returned from end_snap e left join start_snap s on s.tenant_key = e.tenant_key and s.fingerprint = e.fingerprint left join fallback_start fs on fs.tenant_key = e.tenant_key and fs.fingerprint = e.fingerprint and s.tenant_key is null ) select fingerprint, max(query) as query, max(last_seen) as last_seen, sum(total_time_ms) as total_time_ms, sum(calls) as calls, sum(rows_returned) as rows_returned, case when sum(calls) > ? then sum(total_time_ms) / sum(calls) else ? end as mean_time_ms, array_agg(distinct tenant_key order by tenant_key) as tenant_keys from deltas where total_time_ms > ? or calls > ? group by fingerprint order by total_time_ms desc, calls desc limit ? offset ?;Times Reported Time consuming queries #1
Day Hour Count Duration Avg duration Apr 26 01 15 1m 4s56ms 02 12 47s221ms 3s935ms 03 12 46s365ms 3s863ms 04 11 42s137ms 3s830ms 05 12 45s873ms 3s822ms 06 12 46s344ms 3s862ms 07 11 42s146ms 3s831ms 08 12 45s807ms 3s817ms 09 3 11s476ms 3s825ms 10 14 52s529ms 3s752ms 11 20 1m29s 4s496ms 12 11 47s601ms 4s327ms 13 11 47s219ms 4s292ms 14 1 4s269ms 4s269ms 19 6 26s596ms 4s432ms 20 12 52s461ms 4s371ms 21 12 52s67ms 4s338ms 22 11 47s986ms 4s362ms 23 12 51s119ms 4s259ms 00 12 51s362ms 4s280ms [ User: labanimal - Total duration: 15m11s - Times executed: 222 ]
-
WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('test') AND collected_at <= '2026-04-26 04:05:09+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('test') AND collected_at BETWEEN '2026-04-26 04:05:09+02' AND '2026-04-26 10:05:09+02' ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('test') AND collected_at BETWEEN '2026-04-26 04:05:09+02' AND '2026-04-26 10:05:09+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT '20' OFFSET '0';
Date: 2026-04-26 10:05:15 Duration: 5s991ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at <= '2026-04-26 04:05:10+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at BETWEEN '2026-04-26 04:05:10+02' AND '2026-04-26 10:05:10+02' ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at BETWEEN '2026-04-26 04:05:10+02' AND '2026-04-26 10:05:10+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT '20' OFFSET '0';
Date: 2026-04-26 10:05:15 Duration: 5s307ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('dev') AND collected_at <= '2026-04-26 04:05:07+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('dev') AND collected_at BETWEEN '2026-04-26 04:05:07+02' AND '2026-04-26 10:05:07+02' ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('dev') AND collected_at BETWEEN '2026-04-26 04:05:07+02' AND '2026-04-26 10:05:07+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT '20' OFFSET '0';
Date: 2026-04-26 10:05:12 Duration: 5s106ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
2 521ms 4s820ms 4s35ms 1,440 1h36m51s create table if not exists observability.phpfpm_counters ( id bigserial primary key, payload jsonb not null, collected_at timestamptz not null default now() );Times Reported Time consuming queries #2
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
CREATE TABLE IF NOT EXISTS observability.phpfpm_counters ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.phpfpm_counters ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.phpfpm_counters ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
3 521ms 4s820ms 4s35ms 1,440 1h36m51s create table if not exists observability.db_top_queries ( id bigserial primary key, tenant_key text not null, fingerprint text, query text, mean_time_ms double precision, total_time_ms double precision, calls bigint, rows_returned bigint, collected_at timestamptz not null default now() );Times Reported Time consuming queries #3
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
CREATE TABLE IF NOT EXISTS observability.db_top_queries ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, fingerprint text, query text, mean_time_ms double precision, total_time_ms double precision, calls bigint, rows_returned bigint, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.db_top_queries ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, fingerprint text, query text, mean_time_ms double precision, total_time_ms double precision, calls bigint, rows_returned bigint, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.db_top_queries ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, fingerprint text, query text, mean_time_ms double precision, total_time_ms double precision, calls bigint, rows_returned bigint, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
4 521ms 4s820ms 4s35ms 1,440 1h36m51s create index if not exists idx_db_top_queries_tenant on observability.db_top_queries (tenant_key, collected_at desc);Times Reported Time consuming queries #4
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
5 521ms 4s820ms 4s35ms 1,440 1h36m51s alter table observability.uptime_checks add column if not exists label text;Times Reported Time consuming queries #5
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS label text;
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS label text;
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS label text;
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
6 521ms 4s820ms 4s35ms 1,440 1h36m51s create index if not exists idx_uptime_checks_key on observability.uptime_checks (check_key, checked_at desc);Times Reported Time consuming queries #6
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_key ON observability.uptime_checks (check_key, checked_at DESC);
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_key ON observability.uptime_checks (check_key, checked_at DESC);
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_key ON observability.uptime_checks (check_key, checked_at DESC);
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
7 521ms 4s820ms 4s35ms 1,440 1h36m51s create index if not exists idx_metrics_timeseries_metric on observability.metrics_timeseries (metric_name);Times Reported Time consuming queries #7
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
8 521ms 4s820ms 4s35ms 1,440 1h36m51s create index if not exists idx_metrics_timeseries_bucket on observability.metrics_timeseries (bucket_start);Times Reported Time consuming queries #8
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
9 521ms 4s820ms 4s35ms 1,440 1h36m51s create table if not exists observability.uptime_checks ( id bigserial primary key, endpoint text not null, status text not null, latency_ms double precision, checked_at timestamptz not null default now() );Times Reported Time consuming queries #9
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
CREATE TABLE IF NOT EXISTS observability.uptime_checks ( id bigserial PRIMARY KEY, endpoint text NOT NULL, status text NOT NULL, latency_ms double precision, checked_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.uptime_checks ( id bigserial PRIMARY KEY, endpoint text NOT NULL, status text NOT NULL, latency_ms double precision, checked_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.uptime_checks ( id bigserial PRIMARY KEY, endpoint text NOT NULL, status text NOT NULL, latency_ms double precision, checked_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
10 521ms 4s820ms 4s35ms 1,440 1h36m51s create index if not exists idx_app_events_tenant on observability.app_events (tenant_key, occurred_at desc);Times Reported Time consuming queries #10
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
11 521ms 4s820ms 4s35ms 1,440 1h36m51s alter table observability.uptime_checks add column if not exists payload jsonb;Times Reported Time consuming queries #11
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS payload jsonb;
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS payload jsonb;
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS payload jsonb;
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
12 521ms 4s820ms 4s35ms 1,440 1h36m51s create table if not exists observability.app_events ( id bigserial primary key, tenant_key text not null, event_type text not null, severity text not null, message text not null, payload jsonb, occurred_at timestamptz not null default now(), created_at timestamptz not null default now() );Times Reported Time consuming queries #12
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
CREATE TABLE IF NOT EXISTS observability.app_events ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, event_type text NOT NULL, severity text NOT NULL, message text NOT NULL, payload jsonb, occurred_at timestamptz NOT NULL DEFAULT NOW(), created_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.app_events ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, event_type text NOT NULL, severity text NOT NULL, message text NOT NULL, payload jsonb, occurred_at timestamptz NOT NULL DEFAULT NOW(), created_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.app_events ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, event_type text NOT NULL, severity text NOT NULL, message text NOT NULL, payload jsonb, occurred_at timestamptz NOT NULL DEFAULT NOW(), created_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
13 521ms 4s820ms 4s35ms 1,440 1h36m51s create table if not exists observability.metrics_timeseries ( id bigserial primary key, tenant_key text not null, metric_name text not null, bucket_start timestamptz not null, bucket_width_seconds integer not null default ?, sum_value double precision not null default ?, count_value bigint not null default ?, histogram jsonb, created_at timestamptz not null default now(), updated_at timestamptz not null default now(), unique (tenant_key, metric_name, bucket_start, bucket_width_seconds) );Times Reported Time consuming queries #13
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
CREATE TABLE IF NOT EXISTS observability.metrics_timeseries ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, metric_name text NOT NULL, bucket_start timestamptz NOT NULL, bucket_width_seconds integer NOT NULL DEFAULT 60, sum_value double precision NOT NULL DEFAULT 0, count_value bigint NOT NULL DEFAULT 0, histogram jsonb, created_at timestamptz NOT NULL DEFAULT NOW(), updated_at timestamptz NOT NULL DEFAULT NOW(), UNIQUE (tenant_key, metric_name, bucket_start, bucket_width_seconds) );
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.metrics_timeseries ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, metric_name text NOT NULL, bucket_start timestamptz NOT NULL, bucket_width_seconds integer NOT NULL DEFAULT 60, sum_value double precision NOT NULL DEFAULT 0, count_value bigint NOT NULL DEFAULT 0, histogram jsonb, created_at timestamptz NOT NULL DEFAULT NOW(), updated_at timestamptz NOT NULL DEFAULT NOW(), UNIQUE (tenant_key, metric_name, bucket_start, bucket_width_seconds) );
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.metrics_timeseries ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, metric_name text NOT NULL, bucket_start timestamptz NOT NULL, bucket_width_seconds integer NOT NULL DEFAULT 60, sum_value double precision NOT NULL DEFAULT 0, count_value bigint NOT NULL DEFAULT 0, histogram jsonb, created_at timestamptz NOT NULL DEFAULT NOW(), updated_at timestamptz NOT NULL DEFAULT NOW(), UNIQUE (tenant_key, metric_name, bucket_start, bucket_width_seconds) );
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
14 521ms 4s820ms 4s35ms 1,440 1h36m51s create index if not exists idx_app_events_type on observability.app_events (event_type);Times Reported Time consuming queries #14
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
15 521ms 4s820ms 4s35ms 1,440 1h36m51s create index if not exists idx_uptime_checks_endpoint on observability.uptime_checks (endpoint, checked_at desc);Times Reported Time consuming queries #15
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_endpoint ON observability.uptime_checks (endpoint, checked_at DESC);
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_endpoint ON observability.uptime_checks (endpoint, checked_at DESC);
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_endpoint ON observability.uptime_checks (endpoint, checked_at DESC);
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
16 521ms 4s820ms 4s35ms 1,440 1h36m51s create table if not exists observability.system_metrics ( id bigserial primary key, payload jsonb not null, collected_at timestamptz not null default now() );Times Reported Time consuming queries #16
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
CREATE TABLE IF NOT EXISTS observability.system_metrics ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.system_metrics ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.system_metrics ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
17 521ms 4s820ms 4s35ms 1,440 1h36m51s create table if not exists observability.nginx_counters ( id bigserial primary key, payload jsonb not null, collected_at timestamptz not null default now() );Times Reported Time consuming queries #17
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
CREATE TABLE IF NOT EXISTS observability.nginx_counters ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.nginx_counters ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.nginx_counters ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
18 521ms 4s820ms 4s35ms 1,440 1h36m51s create schema if not exists observability;Times Reported Time consuming queries #18
Day Hour Count Duration Avg duration Apr 26 01 60 3m19s 3s321ms 02 60 3m55s 3s931ms 03 60 3m52s 3s875ms 04 60 3m49s 3s831ms 05 60 3m49s 3s822ms 06 60 3m51s 3s866ms 07 60 3m49s 3s827ms 08 60 3m48s 3s813ms 09 60 3m50s 3s848ms 10 60 3m32s 3s533ms 11 60 3m38s 3s644ms 12 60 4m20s 4s339ms 13 60 4m18s 4s303ms 14 60 4m19s 4s330ms 15 60 4m16s 4s269ms 16 60 4m16s 4s269ms 17 60 4m16s 4s269ms 18 60 4m16s 4s269ms 19 60 4m13s 4s223ms 20 60 4m14s 4s248ms 21 60 4m20s 4s345ms 22 60 4m17s 4s294ms 23 60 4m15s 4s260ms 00 60 4m7s 4s125ms [ User: labanimal - Total duration: 1h36m51s - Times executed: 1436 ]
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-04-26 00:08:01 Duration: 4s820ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-04-26 19:21:01 Duration: 4s531ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-04-26 18:43:01 Duration: 4s516ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
19 520ms 716ms 632ms 64 40s465ms with normalised as ( select id, tenant_key, event_type, severity, message, payload, occurred_at, regexp_replace(regexp_replace(message, ?, ?, ?), ?, ?, ?) as fingerprint from observability.app_events where tenant_key in (...) and occurred_at between ? and ? and severity in (...) and not (event_type = ? and (lower(coalesce(message, ?)) = ? or (lower(coalesce(payload ->> ?, ?)) = ? and lower(coalesce(payload ->> ?, ?)) = ?)))) select fingerprint, count(*) as occurrence_count, count(distinct coalesce(payload ->> ?, payload ->> ?, ?)) as affected_users, case when max( case severity when ? then ? when ? then ? when ? then ? else ? end) = ? then ? when max( case severity when ? then ? when ? then ? when ? then ? else ? end) = ? then ? when max( case severity when ? then ? when ? then ? when ? then ? else ? end) = ? then ? else ? end as max_severity, min(occurred_at) as first_seen, max(occurred_at) as last_seen, (array_agg(message order by occurred_at desc))[?] as sample_message, (array_agg(distinct event_type))[?] as event_type, (array_agg(payload ->> ? order by occurred_at desc))[?] as source_file, (array_agg(payload ->> ? order by occurred_at desc))[?] as source_line, (array_agg(payload ->> ? order by occurred_at desc))[?] as sample_request, (array_agg(id order by occurred_at desc))[?] as latest_event_id from normalised group by fingerprint order by occurrence_count desc, last_seen desc limit ?;Times Reported Time consuming queries #19
Day Hour Count Duration Avg duration Apr 26 19 5 3s9ms 601ms 20 12 7s406ms 617ms 21 12 7s635ms 636ms 22 11 6s973ms 633ms 23 12 7s574ms 631ms 00 12 7s864ms 655ms [ User: labanimal - Total duration: 40s465ms - Times executed: 64 ]
-
WITH normalised AS ( SELECT id, tenant_key, event_type, severity, message, payload, occurred_at, regexp_replace(regexp_replace(message, '\d+', '#', 'g'), '/[^ :]+/', '.../', 'g') AS fingerprint FROM observability.app_events WHERE tenant_key IN ('prod') AND occurred_at BETWEEN '2026-04-26 15:49:57+02' AND '2026-04-26 21:49:57+02' AND severity IN ('critical', 'error', 'warning') AND NOT (event_type = 'db_error' AND (lower(COALESCE(message, '')) = 'lock wait: client / clientread' OR ( lower(COALESCE(payload->>'wait_event_type', '')) = 'client' AND lower(COALESCE(payload ->> 'wait_event', '')) = 'clientread')))) SELECT fingerprint, COUNT(*) AS occurrence_count, COUNT(DISTINCT COALESCE(payload ->> 'user', payload ->> 'username', 'unbekannt')) AS affected_users, CASE WHEN MAX( CASE severity WHEN 'critical' THEN 3 WHEN 'error' THEN 2 WHEN 'warning' THEN 1 ELSE 0 END) = 3 THEN 'critical' WHEN MAX( CASE severity WHEN 'critical' THEN 3 WHEN 'error' THEN 2 WHEN 'warning' THEN 1 ELSE 0 END) = 2 THEN 'error' WHEN MAX( CASE severity WHEN 'critical' THEN 3 WHEN 'error' THEN 2 WHEN 'warning' THEN 1 ELSE 0 END) = 1 THEN 'warning' ELSE 'info' END AS max_severity, MIN(occurred_at) AS first_seen, MAX(occurred_at) AS last_seen, (array_agg(message ORDER BY occurred_at DESC))[1] AS sample_message, (array_agg(DISTINCT event_type))[1] AS event_type, (array_agg(payload ->> 'file' ORDER BY occurred_at DESC))[1] AS source_file, (array_agg(payload ->> 'line' ORDER BY occurred_at DESC))[1] AS source_line, (array_agg(payload ->> 'request' ORDER BY occurred_at DESC))[1] AS sample_request, (array_agg(id ORDER BY occurred_at DESC))[1] AS latest_event_id FROM normalised GROUP BY fingerprint ORDER BY occurrence_count DESC, last_seen DESC LIMIT '30';
Date: 2026-04-26 21:49:57 Duration: 716ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
WITH normalised AS ( SELECT id, tenant_key, event_type, severity, message, payload, occurred_at, regexp_replace(regexp_replace(message, '\d+', '#', 'g'), '/[^ :]+/', '.../', 'g') AS fingerprint FROM observability.app_events WHERE tenant_key IN ('prod') AND occurred_at BETWEEN '2026-04-26 17:17:01+02' AND '2026-04-26 23:17:01+02' AND severity IN ('critical', 'error', 'warning') AND NOT (event_type = 'db_error' AND (lower(COALESCE(message, '')) = 'lock wait: client / clientread' OR ( lower(COALESCE(payload->>'wait_event_type', '')) = 'client' AND lower(COALESCE(payload ->> 'wait_event', '')) = 'clientread')))) SELECT fingerprint, COUNT(*) AS occurrence_count, COUNT(DISTINCT COALESCE(payload ->> 'user', payload ->> 'username', 'unbekannt')) AS affected_users, CASE WHEN MAX( CASE severity WHEN 'critical' THEN 3 WHEN 'error' THEN 2 WHEN 'warning' THEN 1 ELSE 0 END) = 3 THEN 'critical' WHEN MAX( CASE severity WHEN 'critical' THEN 3 WHEN 'error' THEN 2 WHEN 'warning' THEN 1 ELSE 0 END) = 2 THEN 'error' WHEN MAX( CASE severity WHEN 'critical' THEN 3 WHEN 'error' THEN 2 WHEN 'warning' THEN 1 ELSE 0 END) = 1 THEN 'warning' ELSE 'info' END AS max_severity, MIN(occurred_at) AS first_seen, MAX(occurred_at) AS last_seen, (array_agg(message ORDER BY occurred_at DESC))[1] AS sample_message, (array_agg(DISTINCT event_type))[1] AS event_type, (array_agg(payload ->> 'file' ORDER BY occurred_at DESC))[1] AS source_file, (array_agg(payload ->> 'line' ORDER BY occurred_at DESC))[1] AS source_line, (array_agg(payload ->> 'request' ORDER BY occurred_at DESC))[1] AS sample_request, (array_agg(id ORDER BY occurred_at DESC))[1] AS latest_event_id FROM normalised GROUP BY fingerprint ORDER BY occurrence_count DESC, last_seen DESC LIMIT '30';
Date: 2026-04-26 23:17:01 Duration: 714ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
WITH normalised AS ( SELECT id, tenant_key, event_type, severity, message, payload, occurred_at, regexp_replace(regexp_replace(message, '\d+', '#', 'g'), '/[^ :]+/', '.../', 'g') AS fingerprint FROM observability.app_events WHERE tenant_key IN ('prod') AND occurred_at BETWEEN '2026-04-26 15:44:47+02' AND '2026-04-26 21:44:47+02' AND severity IN ('critical', 'error', 'warning') AND NOT (event_type = 'db_error' AND (lower(COALESCE(message, '')) = 'lock wait: client / clientread' OR ( lower(COALESCE(payload->>'wait_event_type', '')) = 'client' AND lower(COALESCE(payload ->> 'wait_event', '')) = 'clientread')))) SELECT fingerprint, COUNT(*) AS occurrence_count, COUNT(DISTINCT COALESCE(payload ->> 'user', payload ->> 'username', 'unbekannt')) AS affected_users, CASE WHEN MAX( CASE severity WHEN 'critical' THEN 3 WHEN 'error' THEN 2 WHEN 'warning' THEN 1 ELSE 0 END) = 3 THEN 'critical' WHEN MAX( CASE severity WHEN 'critical' THEN 3 WHEN 'error' THEN 2 WHEN 'warning' THEN 1 ELSE 0 END) = 2 THEN 'error' WHEN MAX( CASE severity WHEN 'critical' THEN 3 WHEN 'error' THEN 2 WHEN 'warning' THEN 1 ELSE 0 END) = 1 THEN 'warning' ELSE 'info' END AS max_severity, MIN(occurred_at) AS first_seen, MAX(occurred_at) AS last_seen, (array_agg(message ORDER BY occurred_at DESC))[1] AS sample_message, (array_agg(DISTINCT event_type))[1] AS event_type, (array_agg(payload ->> 'file' ORDER BY occurred_at DESC))[1] AS source_file, (array_agg(payload ->> 'line' ORDER BY occurred_at DESC))[1] AS source_line, (array_agg(payload ->> 'request' ORDER BY occurred_at DESC))[1] AS sample_request, (array_agg(id ORDER BY occurred_at DESC))[1] AS latest_event_id FROM normalised GROUP BY fingerprint ORDER BY occurrence_count DESC, last_seen DESC LIMIT '30';
Date: 2026-04-26 21:44:48 Duration: 708ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
20 506ms 629ms 552ms 63 34s781ms select lower(trim(nullif (payload ->> ?, ?))) as username_key, nullif (coalesce( case when coalesce(payload ->> ?, ?) ~ ? then payload ->> ? else ? end, case when coalesce(payload ->> ?, ?) ~ ? then payload ->> ? else ? end, case when coalesce(payload ->> ?, ?) ~ ? then payload ->> ? else ? end, ?), ?) as user_id_key, count(*) filter (where severity = ?) as total_user_errors, count(*) filter (where severity = ?) as total_user_warnings, min(occurred_at) filter (where severity = ?) as first_error_date, min(occurred_at) filter (where severity = ?) as first_warning_date from observability.app_events where tenant_key in (...) and occurred_at between ? and ? and severity in (...) and (nullif (payload ->> ?, ?) is not null or case when coalesce(payload ->> ?, ?) ~ ? then payload ->> ? else ? end <> ? or case when coalesce(payload ->> ?, ?) ~ ? then payload ->> ? else ? end <> ? or case when coalesce(payload ->> ?, ?) ~ ? then payload ->> ? else ? end <> ?) group by username_key, user_id_key;Times Reported Time consuming queries #20
Day Hour Count Duration Avg duration Apr 26 19 4 2s245ms 561ms 20 12 6s539ms 544ms 21 12 6s617ms 551ms 22 11 6s59ms 550ms 23 12 6s702ms 558ms 00 12 6s617ms 551ms [ User: labanimal - Total duration: 34s781ms - Times executed: 63 ]
-
SELECT LOWER(TRIM(NULLIF (payload ->> 'username', ''))) AS username_key, NULLIF( COALESCE( CASE WHEN COALESCE(payload->>'user_id', '') ~ '^\d+$' THEN payload ->> 'user_id' ELSE '' END, CASE WHEN COALESCE(payload->>'user', '') ~ '^\d+$' THEN payload ->> 'user' ELSE '' END, CASE WHEN COALESCE(payload->>'userid', '') ~ '^\d+$' THEN payload ->> 'userid' ELSE '' END, ''), '' ) AS user_id_key, COUNT(*) FILTER (WHERE severity = 'error') AS total_user_errors, COUNT(*) FILTER (WHERE severity = 'warning') AS total_user_warnings, MIN(occurred_at) FILTER (WHERE severity = 'error') AS first_error_date, MIN(occurred_at) FILTER (WHERE severity = 'warning') AS first_warning_date FROM observability.app_events WHERE tenant_key IN ('prod') AND occurred_at BETWEEN '2026-04-26 14:27:53+02' AND '2026-04-26 20:27:53+02' AND severity IN ('error', 'warning') AND ( NULLIF(payload->>'username', '') IS NOT NULL OR CASE WHEN COALESCE(payload ->> 'user_id', '') ~ '^\d+$' THEN payload->>'user_id' ELSE '' END <> '' OR CASE WHEN COALESCE(payload->>'user', '') ~ '^\d+$' THEN payload ->> 'user' ELSE '' END <> '' OR CASE WHEN COALESCE(payload ->> 'userid', '') ~ '^\d+$' THEN payload->>'userid' ELSE '' END <> '') GROUP BY username_key, user_id_key;
Date: 2026-04-26 20:27:54 Duration: 629ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
SELECT LOWER(TRIM(NULLIF (payload ->> 'username', ''))) AS username_key, NULLIF( COALESCE( CASE WHEN COALESCE(payload->>'user_id', '') ~ '^\d+$' THEN payload ->> 'user_id' ELSE '' END, CASE WHEN COALESCE(payload->>'user', '') ~ '^\d+$' THEN payload ->> 'user' ELSE '' END, CASE WHEN COALESCE(payload->>'userid', '') ~ '^\d+$' THEN payload ->> 'userid' ELSE '' END, ''), '' ) AS user_id_key, COUNT(*) FILTER (WHERE severity = 'error') AS total_user_errors, COUNT(*) FILTER (WHERE severity = 'warning') AS total_user_warnings, MIN(occurred_at) FILTER (WHERE severity = 'error') AS first_error_date, MIN(occurred_at) FILTER (WHERE severity = 'warning') AS first_warning_date FROM observability.app_events WHERE tenant_key IN ('prod') AND occurred_at BETWEEN '2026-04-26 15:55:06+02' AND '2026-04-26 21:55:06+02' AND severity IN ('error', 'warning') AND ( NULLIF(payload->>'username', '') IS NOT NULL OR CASE WHEN COALESCE(payload ->> 'user_id', '') ~ '^\d+$' THEN payload->>'user_id' ELSE '' END <> '' OR CASE WHEN COALESCE(payload->>'user', '') ~ '^\d+$' THEN payload ->> 'user' ELSE '' END <> '' OR CASE WHEN COALESCE(payload ->> 'userid', '') ~ '^\d+$' THEN payload->>'userid' ELSE '' END <> '') GROUP BY username_key, user_id_key;
Date: 2026-04-26 21:55:06 Duration: 590ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
-
SELECT LOWER(TRIM(NULLIF (payload ->> 'username', ''))) AS username_key, NULLIF( COALESCE( CASE WHEN COALESCE(payload->>'user_id', '') ~ '^\d+$' THEN payload ->> 'user_id' ELSE '' END, CASE WHEN COALESCE(payload->>'user', '') ~ '^\d+$' THEN payload ->> 'user' ELSE '' END, CASE WHEN COALESCE(payload->>'userid', '') ~ '^\d+$' THEN payload ->> 'userid' ELSE '' END, ''), '' ) AS user_id_key, COUNT(*) FILTER (WHERE severity = 'error') AS total_user_errors, COUNT(*) FILTER (WHERE severity = 'warning') AS total_user_warnings, MIN(occurred_at) FILTER (WHERE severity = 'error') AS first_error_date, MIN(occurred_at) FILTER (WHERE severity = 'warning') AS first_warning_date FROM observability.app_events WHERE tenant_key IN ('prod') AND occurred_at BETWEEN '2026-04-26 16:20:44+02' AND '2026-04-26 22:20:44+02' AND severity IN ('error', 'warning') AND ( NULLIF(payload->>'username', '') IS NOT NULL OR CASE WHEN COALESCE(payload ->> 'user_id', '') ~ '^\d+$' THEN payload->>'user_id' ELSE '' END <> '' OR CASE WHEN COALESCE(payload->>'user', '') ~ '^\d+$' THEN payload ->> 'user' ELSE '' END <> '' OR CASE WHEN COALESCE(payload ->> 'userid', '') ~ '^\d+$' THEN payload->>'userid' ELSE '' END <> '') GROUP BY username_key, user_id_key;
Date: 2026-04-26 22:20:44 Duration: 581ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
Time consuming prepare
Rank Total duration Times executed Min duration Max duration Avg duration Query NO DATASET
Time consuming bind
Rank Total duration Times executed Min duration Max duration Avg duration Query NO DATASET
-
Events
Log levels
Key values
- 114,741 Event entries
- (EVENTLOG entries are formaly LOG level entries that are not queries)
Events distribution (except queries)
Key values
- 0 PANIC entries
- 10 FATAL entries
- 17 ERROR entries
- 0 WARNING entries
- 0 EVENTLOG entries
Most Frequent Errors/Events
Key values
- 17 Max number of times the same event was reported
- 27 Total events found
Rank Times reported Error 1 17 ERROR: duplicate key value violates unique constraint "..."
Times Reported Most Frequent Error / Event #1
Day Hour Count Apr 26 01 1 02 3 03 3 04 1 05 3 06 2 07 1 08 2 11 1 - ERROR: duplicate key value violates unique constraint "metrics_timeseries_tenant_key_metric_name_bucket_start_buck_key"
- ERROR: duplicate key value violates unique constraint "metrics_timeseries_tenant_key_metric_name_bucket_start_buck_key"
- ERROR: duplicate key value violates unique constraint "metrics_timeseries_tenant_key_metric_name_bucket_start_buck_key"
Detail: Key (tenant_key, metric_name, bucket_start, bucket_width_seconds)=(test, http_requests_total, 2026-04-26 00:29:00+02, 60) already exists.
Statement: INSERT INTO observability.metrics_timeseries (tenant_key, metric_name, bucket_start, bucket_width_seconds, sum_value, count_value, histogram) VALUES ($1, $2, $3, $4, $5, $6, $7)Date: 2026-04-26 00:29:22 Database: zemm_monitoring Application: User: labanimal Remote: Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
Detail: Key (tenant_key, metric_name, bucket_start, bucket_width_seconds)=(test, http_requests_total, 2026-04-26 01:05:00+02, 60) already exists.
Statement: INSERT INTO observability.metrics_timeseries (tenant_key, metric_name, bucket_start, bucket_width_seconds, sum_value, count_value, histogram) VALUES ($1, $2, $3, $4, $5, $6, $7)Date: 2026-04-26 01:05:00 Database: zemm_monitoring Application: User: labanimal Remote: Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
Detail: Key (tenant_key, metric_name, bucket_start, bucket_width_seconds)=(test, http_requests_total, 2026-04-26 01:41:00+02, 60) already exists.
Statement: INSERT INTO observability.metrics_timeseries (tenant_key, metric_name, bucket_start, bucket_width_seconds, sum_value, count_value, histogram) VALUES ($1, $2, $3, $4, $5, $6, $7)Date: 2026-04-26 01:41:05 Database: zemm_monitoring Application: User: labanimal Remote: Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
2 10 FATAL: database "..." does not exist
Times Reported Most Frequent Error / Event #2
Day Hour Count Apr 26 01 1 02 1 03 1 04 1 05 1 06 1 07 1 08 1 09 1 10 1 - FATAL: database "zemm_produktiv_7" does not exist
- FATAL: database "zemm_produktiv_7" does not exist
- FATAL: database "zemm_produktiv_7" does not exist
Date: 2026-04-26 00:00:01 Database: zemm_produktiv_7 Application: User: labanimal Remote: 81.169.238.237 Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
Date: 2026-04-26 01:00:01 Database: zemm_produktiv_7 Application: User: labanimal Remote: 81.169.238.237 Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv
Date: 2026-04-26 02:00:01 Database: zemm_produktiv_7 Application: User: labanimal Remote: 81.169.238.237 Log file: /var/log/postgresql/postgresql-2026-04-26_000000.csv