-
Global information
- Generated on Thu Apr 30 06:06:36 2026
- Log file: /var/log/postgresql/postgresql-2026-03-25_000000.csv, ..., /var/log/postgresql/postgresql-2026-04-30_000000.csv
- Parsed 354,683 log entries in 6m35s
- Log start from 2026-04-20 00:00:01 to 2026-04-20 23:59:32
-
Overview
Global Stats
- 71 Number of unique normalized queries
- 24,903 Number of queries
- 23h2m55s Total query duration
- 2026-04-20 00:00:01 First query
- 2026-04-20 23:59:01 Last query
- 18 queries/s at 2026-04-20 10:49:01 Query peak
- 23h2m55s Total query duration
- 0ms Prepare/parse total duration
- 0ms Bind total duration
- 23h2m55s Execute total duration
- 4 Number of events
- 2 Number of unique normalized events
- 3 Max number of times the same event was reported
- 0 Number of cancellation
- 90 Total number of automatic vacuums
- 194 Total number of automatic analyzes
- 930 Number temporary file
- 560.59 MiB Max size of temporary file
- 67.87 MiB Average size of temporary file
- 34,548 Total number of sessions
- 7 sessions at 2026-04-20 06:58:59 Session peak
- 1h52m41s Total duration of sessions
- 195ms Average duration of sessions
- 0 Average queries per session
- 2s401ms Average queries duration per session
- 0ms Average idle time per session
- 34,548 Total number of connections
- 47 connections/s at 2026-04-20 15:52:31 Connection peak
- 3 Total number of databases
SQL Traffic
Key values
- 18 queries/s Query Peak
- 2026-04-20 10:49:01 Date
SELECT Traffic
Key values
- 3 queries/s Query Peak
- 2026-04-20 00:50:24 Date
INSERT/UPDATE/DELETE Traffic
Key values
- 18 queries/s Query Peak
- 2026-04-20 21:27:01 Date
Queries duration
Key values
- 23h2m55s 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 20 00 1,113 507ms 13s688ms 10s439ms 3m52s 3m52s 4m10s 01 1,035 855ms 17s992ms 5s67ms 3m33s 5m5s 5m9s 02 1,025 3s723ms 3s819ms 3s803ms 1m4s 1m8s 1m8s 03 1,032 3s662ms 3s820ms 3s742ms 1m7s 1m7s 1m8s 04 1,032 3s648ms 3s843ms 3s737ms 1m7s 1m8s 1m9s 05 1,032 3s687ms 3s845ms 3s759ms 1m7s 1m8s 1m9s 06 1,034 514ms 3s874ms 3s479ms 1m8s 1m9s 1m9s 07 1,032 3s679ms 5s83ms 3s788ms 1m8s 1m9s 1m12s 08 1,038 562ms 3s768ms 1s742ms 1m3s 1m5s 1m7s 09 1,049 551ms 3s720ms 1s424ms 1m3s 1m3s 1m6s 10 1,056 577ms 1s64ms 934ms 18s89ms 18s89ms 20s256ms 11 1,030 505ms 766ms 665ms 11s954ms 13s400ms 14s614ms 12 1,026 659ms 811ms 678ms 13s91ms 13s91ms 13s189ms 13 1,054 507ms 1s738ms 939ms 28s649ms 28s649ms 28s649ms 14 1,039 521ms 3s947ms 2s4ms 1m7s 1m10s 1m12s 15 1,041 516ms 3s941ms 3s498ms 1m6s 1m8s 1m9s 16 1,033 501ms 3s904ms 3s819ms 1m8s 1m10s 1m10s 17 1,024 3s703ms 3s893ms 3s861ms 1m6s 1m7s 1m9s 18 1,021 3s703ms 3s792ms 3s785ms 1m4s 1m4s 1m6s 19 1,021 3s792ms 3s830ms 3s825ms 1m5s 1m5s 1m8s 20 1,030 3s625ms 3s830ms 3s745ms 1m7s 1m8s 1m8s 21 1,035 535ms 7s638ms 3s584ms 1m7s 1m8s 1m11s 22 1,033 1s68ms 3s913ms 3s602ms 1m7s 1m8s 1m9s 23 1,038 571ms 4s27ms 3s622ms 1m9s 1m10s 1m12s Day Hour SELECT COPY TO Average Duration Latency Percentile(90) Latency Percentile(95) Latency Percentile(99) Apr 20 00 45 0 813ms 2s89ms 3s331ms 3s400ms 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 2 0 529ms 0ms 0ms 514ms 07 2 0 4s381ms 0ms 0ms 0ms 08 10 0 817ms 0ms 0ms 1s823ms 09 28 0 1s29ms 1s447ms 2s167ms 2s895ms 10 34 0 731ms 0ms 1s497ms 4s343ms 11 10 0 698ms 0ms 0ms 1s469ms 12 6 0 742ms 0ms 0ms 1s444ms 13 31 0 803ms 786ms 1s685ms 3s169ms 14 8 0 694ms 0ms 0ms 1s573ms 15 8 0 727ms 0ms 0ms 1s459ms 16 1 0 501ms 0ms 0ms 0ms 17 0 0 0ms 0ms 0ms 0ms 18 0 0 0ms 0ms 0ms 0ms 19 0 0 0ms 0ms 0ms 0ms 20 0 0 0ms 0ms 0ms 0ms 21 2 0 587ms 0ms 0ms 0ms 22 0 0 0ms 0ms 0ms 0ms 23 0 5 1s426ms 0ms 0ms 0ms Day Hour INSERT UPDATE DELETE COPY FROM Average Duration Latency Percentile(90) Latency Percentile(95) Latency Percentile(99) Apr 20 00 0 0 0 0 0ms 0ms 0ms 0ms 01 0 1 0 0 855ms 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 20 00 0 93 93.00 0.00% 01 0 14 14.00 0.00% 02 0 5 5.00 0.00% 03 0 12 12.00 0.00% 04 0 12 12.00 0.00% 05 0 12 12.00 0.00% 06 0 12 12.00 0.00% 07 0 10 10.00 0.00% 08 0 5 5.00 0.00% 09 0 1 1.00 0.00% 10 0 0 0.00 0.00% 11 0 0 0.00 0.00% 12 0 0 0.00 0.00% 13 0 0 0.00 0.00% 14 0 13 13.00 0.00% 15 0 13 13.00 0.00% 16 0 13 13.00 0.00% 17 0 4 4.00 0.00% 18 0 1 1.00 0.00% 19 0 1 1.00 0.00% 20 0 10 10.00 0.00% 21 0 12 12.00 0.00% 22 0 12 12.00 0.00% 23 0 12 12.00 0.00% Day Hour Count Average / Second Apr 20 00 1,210 0.34/s 01 981 0.27/s 02 722 0.20/s 03 895 0.25/s 04 892 0.25/s 05 902 0.25/s 06 1,535 0.43/s 07 1,398 0.39/s 08 2,263 0.63/s 09 3,636 1.01/s 10 1,924 0.53/s 11 2,767 0.77/s 12 1,572 0.44/s 13 3,137 0.87/s 14 1,763 0.49/s 15 1,288 0.36/s 16 1,224 0.34/s 17 1,011 0.28/s 18 600 0.17/s 19 603 0.17/s 20 900 0.25/s 21 1,104 0.31/s 22 1,079 0.30/s 23 1,142 0.32/s Day Hour Count Average Duration Average idle time Apr 20 00 1,210 359ms 0ms 01 981 241ms 0ms 02 722 220ms 0ms 03 895 226ms 0ms 04 892 227ms 0ms 05 902 226ms 0ms 06 1,535 174ms 0ms 07 1,398 194ms 0ms 08 2,263 164ms 0ms 09 3,636 159ms 0ms 10 1,924 168ms 0ms 11 2,767 169ms 0ms 12 1,572 164ms 0ms 13 3,137 175ms 0ms 14 1,763 177ms 0ms 15 1,288 194ms 0ms 16 1,224 206ms 0ms 17 1,011 198ms 0ms 18 600 222ms 0ms 19 603 220ms 0ms 20 900 220ms 0ms 21 1,104 231ms 0ms 22 1,079 216ms 0ms 23 1,142 222ms 0ms -
Connections
Established Connections
Key values
- 47 connections Connection Peak
- 2026-04-20 15:52:31 Date
Connections per database
Key values
- zemm_monitoring Main Database
- 34,548 connections Total
Connections per user
Key values
- labanimal Main User
- 34,548 connections Total
-
Sessions
Simultaneous sessions
Key values
- 7 sessions Session Peak
- 2026-04-20 06:58:59 Date
Histogram of session times
Key values
- 31,564 0-500ms duration
Sessions per database
Key values
- zemm_monitoring Main Database
- 34,548 sessions Total
Sessions per user
Key values
- labanimal Main User
- 34,548 sessions Total
Sessions per host
Key values
- ::1 Main Host
- 34,548 sessions Total
Sessions per application
Key values
- Main Application
- 34,548 sessions Total
Application Count Total Duration Average Duration 28,050 1h35m26s 204ms _backend_cage_autocomplete_api.php_q_2025_limit_12_zemm_produkt 4 103ms 25ms _backend_cage_autocomplete_api.php_q_55-065_limit_12_zemm_produ 4 144ms 36ms _backend_wean_api.php_litter_id_10130227_zemm_produktiv_7_local 20 2s946ms 147ms _backend_wean_api.php_litter_id_10130236_zemm_produktiv_7_local 20 2s999ms 149ms _backend_wean_api.php_litter_id_10130257_zemm_produktiv_7_local 24 3s562ms 148ms _backend_wean_api.php_litter_id_10131933_zemm_produktiv_8_local 2 285ms 142ms _backend_wean_api.php_litter_id_10131934_zemm_produktiv_8_local 5 714ms 142ms _backend_wean_api.php_litter_id_10131935_zemm_produktiv_8_local 2 286ms 143ms _backend_wean_api.php_litter_id_10131936_zemm_produktiv_8_local 7 991ms 141ms _backend_wean_api.php_litter_id_10131937_zemm_produktiv_8_local 7 994ms 142ms _backend_wean_api.php_litter_id_10131938_zemm_produktiv_8_local 7 997ms 142ms _backend_wean_api.php_litter_id_10131939_zemm_produktiv_8_local 7 990ms 141ms _backend_wean_api.php_litter_id_10131941_zemm_produktiv_8_local 5 707ms 141ms _backend_wean_api.php_litter_id_10131942_zemm_produktiv_8_local 2 283ms 141ms _backend_wean_api.php_litter_id_10131979_zemm_produktiv_8_local 16 2s270ms 141ms _backend_wean_api.php_litter_id_10131981_zemm_produktiv_8_local 15 2s112ms 140ms _backend_wean_api.php_litter_id_10131982_zemm_produktiv_8_local 15 2s129ms 141ms _backend_wean_api.php_litter_id_10131983_zemm_produktiv_8_local 15 2s125ms 141ms _backend_wean_api.php_litter_id_10131984_zemm_produktiv_8_local 16 2s275ms 142ms _backend_wean_api.php_litter_id_10131985_zemm_produktiv_8_local 15 2s124ms 141ms _backend_wean_api.php_litter_id_10131986_zemm_produktiv_8_local 10 1s418ms 141ms _backend_wean_api.php_litter_id_10132014_zemm_produktiv_8_local 2 275ms 137ms _backend_wean_api.php_litter_id_10132015_zemm_produktiv_8_local 5 712ms 142ms _backend_wean_api.php_litter_id_10132029_zemm_produktiv_8_local 7 998ms 142ms _backend_wean_api.php_litter_id_10132065_zemm_produktiv_8_local 2 280ms 140ms _backend_wean_api.php_litter_id_10132100_zemm_produktiv_8_local 2 280ms 140ms _backend_wean_api.php_litter_id_10132158_zemm_produktiv_8_local 6 854ms 142ms _backend_wean_api.php_litter_id_10132170_zemm_produktiv_8_local 3 423ms 141ms _backend_wean_api.php_litter_id_10132208_zemm_produktiv_8_local 1 142ms 142ms _backend_wean_api.php_litter_id_10132234_zemm_produktiv_8_local 3 445ms 148ms _backend_wean_api.php_litter_id_10132242_zemm_produktiv_8_local 2 271ms 135ms _backend_wean_api.php_litter_id_10132243_zemm_produktiv_8_local 2 275ms 137ms _desktop__zemm_produktiv_7_localhost_5432 4 301ms 75ms _desktop__zemm_produktiv_8_localhost_5432 13 742ms 57ms _desktop_index.php_aid_10275292_command_animals_breedings_subco 1 45ms 45ms _desktop_index.php_animal_name_36_animal_id_2025_2F001_2F2459_s 2 83ms 41ms _desktop_index.php_animal_name_62_animal_id_2025_2F001_2F4152_s 1 99ms 99ms _desktop_index.php_cages_name_A15.414.1_2A_cages_empty__25_val4 88 29s281ms 332ms _desktop_index.php_cages_name_A15.415.1_2A_cages_empty__25_val4 15 8s615ms 574ms _desktop_index.php_cages_name_A15.415_2A_cages_empty__25_val4_c 3 2s128ms 709ms _desktop_index.php_command_animals_breedings_subcommand_select_ 4 219ms 54ms _desktop_index.php_command_animals_create_subcommand_init_zemm_ 4 259ms 64ms _desktop_index.php_command_animals_edit_subcommand_init_id_1027 1 118ms 118ms _desktop_index.php_command_animals_edit_subcommand_init_id_1029 1 78ms 78ms _desktop_index.php_command_animals_edit_subcommand_link_init_va 4 512ms 128ms _desktop_index.php_command_animals_edit_subcommand_m_init_scree 4 583ms 145ms _desktop_index.php_command_animals_litters_edit_subcommand_init 4 461ms 115ms _desktop_index.php_command_animals_litters_edit_subcommand_m_in 4 1s366ms 341ms _desktop_index.php_command_animals_litters_subcommand_select_ze 4 204ms 51ms _desktop_index.php_command_animals_subcommand_found_val1_101001 2 143ms 71ms _desktop_index.php_command_animals_subcommand_found_val1_101017 5 224ms 44ms _desktop_index.php_command_animals_subcommand_found_val1_101021 1 46ms 46ms _desktop_index.php_command_animals_subcommand_init_zemm_produkt 31 1s396ms 45ms _desktop_index.php_command_animals_subcommand_select_zemm_produ 4 306ms 76ms _desktop_index.php_command_cages_edit_subcommand_init_id_101017 1 70ms 70ms _desktop_index.php_command_cages_edit_subcommand_init_id_101018 1 75ms 75ms _desktop_index.php_command_cages_subcommand_init_zemm_produktiv 4 174ms 43ms _desktop_index.php_command_documents_subcommand_view_id_1010000 1 58ms 58ms _desktop_index.php_command_login_subcommand_init_zemm_produktiv 1,730 53s138ms 30ms _desktop_index.php_command_reports_subcommand_animals_per_room_ 2 272ms 136ms _desktop_index.php_command_reports_subcommand_animals_per_user_ 14 1s548ms 110ms _desktop_index.php_command_reports_subcommand_annual_reports_ze 1 46ms 46ms _desktop_index.php_command_reports_subcommand_fates_zemm_produk 5 595ms 119ms _desktop_index.php_command_reports_subcommand_init_zemm_produkt 11 2s884ms 262ms _desktop_index.php_command_reports_subcommand_task_status_zemm_ 1 116ms 116ms _desktop_index.php_command_tasks_subcommand_edit_id_10134267_ze 4 367ms 91ms _desktop_index.php_command_tasks_subcommand_edit_id_10141843_ze 1 87ms 87ms _desktop_index.php_command_tasks_subcommand_edit_id_10141912_ze 1 88ms 88ms _desktop_index.php_command_tasks_subcommand_edit_id_10142113_ze 1 88ms 88ms _desktop_index.php_command_tasks_subcommand_edit_id_10142142_ze 1 84ms 84ms _desktop_index.php_command_tasks_subcommand_edit_id_10142146_ze 1 80ms 80ms _desktop_index.php_command_tasks_subcommand_edit_id_10142167_ze 1 87ms 87ms _desktop_index.php_command_tasks_subcommand_edit_id_10142178_ze 1 84ms 84ms _desktop_index.php_command_tasks_subcommand_edit_id_10142185_ze 1 83ms 83ms _desktop_index.php_command_tasks_subcommand_edit_id_10142248_ze 1 84ms 84ms _desktop_index.php_command_tasks_subcommand_edit_id_10142307_ze 1 93ms 93ms _desktop_index.php_command_tasks_subcommand_edit_id_10142329_ze 1 89ms 89ms _desktop_index.php_command_tasks_subcommand_edit_id_10142330_ze 1 86ms 86ms _desktop_index.php_command_tasks_subcommand_edit_id_10142336_ze 2 168ms 84ms _desktop_index.php_command_tasks_subcommand_edit_id_10142361_ze 3 260ms 86ms _desktop_index.php_command_tasks_subcommand_init_search_zemm_pr 4 200ms 50ms _desktop_index.php_command_tasks_subcommand_open_zemm_produktiv 98 7s984ms 81ms _desktop_index.php_command_tasks_subcommand_search_zemm_produkt 4 200ms 50ms _desktop_index.php_m_action_animals_3Am_delete_val4_animals_lis 2 90ms 45ms _desktop_index.php_m_action_animals_edit_3Alink_init_row_animal 1 48ms 48ms _desktop_index.php_m_action_cages_3Am_delete_command_animals_su 1 46ms 46ms _desktop_index.php_name_Genotypisierungsproben_20genommen_instr 1 42ms 42ms _desktop_index.php_name_Tiertransport_20innerhalb_20W_C3_BCrzbu 3 179ms 59ms _desktop_index.php_name_Transfer_20von_20Zucht_20in_20Offene_in 2 138ms 69ms _desktop_index.php_name_VP_20von_20..._20bis_20..._20SOM_GCaMP8 1 66ms 66ms _desktop_index.php_name_Verpaarungen_20von_20_E2_80_A6_20bis_20 1 67ms 67ms _desktop_index.php_name__21_21_20Verpaarung_20trennen_20Emx1_2F 2 136ms 68ms _desktop_index.php_val4_documents_command_animals_subcommand_in 2 91ms 45ms _desktop_index.php_view_animal_name_on_animal_name__2AFoxP3DTR_ 1 300ms 300ms _desktop_index.php_view_animal_name_on_view_animal_id_on_animal 6 1s713ms 285ms _desktop_index.php_view_animal_name_on_view_animal_id_on_view_b 66 37s354ms 565ms _desktop_index.php_view_animal_name_on_view_animal_id_on_view_s 1 844ms 844ms _desktop_index.php_zemm_produktiv_7_localhost_5432 73 28s39ms 384ms _desktop_index.php_zemm_produktiv_8_localhost_5432 3,865 13m5s 203ms backend:zemm_produktiv_8@localhost 58 3s193ms 55ms expire_tasks:zemm_produktiv_8@h2940066.stratoserver.net:5432 1 879ms 879ms pg_dump 1 15s478ms 15s478ms psql 11 120ms 10ms taskscron:zemm_produktiv_7@zemm.fbiscience.eu 24 676ms 28ms taskscron:zemm_produktiv_8@h2940066.stratoserver.net:5432 24 7s896ms 329ms -
Checkpoints / Restartpoints
Checkpoints Buffers
Key values
- 18,859 buffers Checkpoint Peak
- 2026-04-20 01:38:43 Date
- 269.914 seconds Highest write time
- 0.047 seconds Sync time
Checkpoints Wal files
Key values
- 8 files Wal files usage Peak
- 2026-04-20 13:48:54 Date
Checkpoints distance
Key values
- 271.87 Mo Distance Peak
- 2026-04-20 13:48:54 Date
Checkpoints Activity
↑ Back to the top of the Checkpoint Activity tableDay Hour Written buffers Write time Sync time Total time Apr 20 00 3,796 380.254s 0.086s 380.399s 01 22,105 594.869s 0.09s 595.08s 02 3,422 342.809s 0.091s 342.961s 03 2,850 286.025s 0.084s 286.165s 04 2,808 281.613s 0.086s 281.753s 05 3,089 309.743s 0.088s 309.885s 06 4,972 498.225s 0.187s 498.475s 07 3,793 380.21s 0.174s 380.431s 08 19,810 899.367s 0.237s 899.661s 09 15,627 1,151.373s 0.299s 1,151.729s 10 6,147 615.766s 0.244s 616.069s 11 5,812 581.964s 0.203s 582.214s 12 7,064 707.523s 0.201s 707.777s 13 73,532 1,793.951s 0.301s 1,794.329s 14 13,865 937.745s 0.225s 938.023s 15 5,605 561.469s 0.142s 561.666s 16 3,927 393.736s 0.115s 393.912s 17 3,892 390.513s 0.124s 390.683s 18 2,619 262.632s 0.081s 262.766s 19 3,881 388.728s 0.078s 388.863s 20 4,851 486.01s 0.086s 486.149s 21 8,790 660.342s 0.096s 660.485s 22 4,380 438.852s 0.126s 439.039s 23 4,418 443.714s 0.126s 443.891s Day Hour Added Removed Recycled Synced files Longest sync Average sync Apr 20 00 0 0 1 426 0.002s 0.012s 01 0 0 7 462 0.002s 0.012s 02 0 0 1 456 0.001s 0.012s 03 0 0 1 431 0.002s 0.012s 04 0 0 1 429 0.002s 0.012s 05 0 0 0 450 0.002s 0.012s 06 0 0 2 1,013 0.002s 0.012s 07 0 0 1 921 0.002s 0.011s 08 0 0 6 1,352 0.002s 0.012s 09 0 0 6 1,681 0.002s 0.012s 10 0 0 2 1,300 0.003s 0.013s 11 0 0 1 1,137 0.003s 0.011s 12 0 0 3 1,049 0.004s 0.012s 13 0 0 27 1,662 0.003s 0.012s 14 0 0 5 1,038 0.028s 0.012s 15 0 0 2 710 0.002s 0.012s 16 0 0 1 567 0.002s 0.013s 17 0 0 1 640 0.003s 0.012s 18 0 0 1 412 0.002s 0.012s 19 0 0 1 396 0.001s 0.012s 20 0 0 1 413 0.003s 0.012s 21 0 0 2 435 0.003s 0.011s 22 0 0 1 483 0.003s 0.012s 23 0 0 2 541 0.003s 0.012s Day Hour Count Avg time (sec) Apr 20 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 20 00 1,435.75 kB 1,814.92 kB 01 9,217.58 kB 38,184.08 kB 02 1,371.67 kB 31,236.50 kB 03 1,205.33 kB 9,751.92 kB 04 1,197.00 kB 3,616.58 kB 05 1,253.50 kB 1,913.33 kB 06 1,909.50 kB 3,239.50 kB 07 1,587.91 kB 2,280.36 kB 08 7,641.83 kB 31,466.67 kB 09 8,257.92 kB 24,662.25 kB 10 2,395.23 kB 9,671.08 kB 11 2,696.18 kB 4,477.55 kB 12 3,232.50 kB 5,752.17 kB 13 37,732.83 kB 70,999.92 kB 14 6,499.92 kB 68,031.75 kB 15 2,257.25 kB 22,170.67 kB 16 1,408.31 kB 7,198.77 kB 17 1,525.92 kB 3,265.08 kB 18 1,189.33 kB 2,450.67 kB 19 1,533.00 kB 3,628.33 kB 20 1,795.75 kB 4,058.25 kB 21 2,918.18 kB 9,676.09 kB 22 1,668.83 kB 4,079.75 kB 23 1,662.00 kB 3,036.75 kB -
Temporary Files
Size of temporary files
Key values
- 830.30 MiB Temp Files size Peak
- 2026-04-20 00:45:35 Date
Number of temporary files
Key values
- 6 per second Temp Files Peak
- 2026-04-20 00:40:36 Date
Temporary Files Activity
↑ Back to the top of the Temporary Files Activity tableDay Hour Count Total size Average size Apr 20 00 146 18.66 GiB 130.89 MiB 01 69 3.98 GiB 59.06 MiB 02 25 1.35 GiB 55.33 MiB 03 60 3.25 GiB 55.41 MiB 04 60 3.25 GiB 55.46 MiB 05 60 3.25 GiB 55.50 MiB 06 60 3.25 GiB 55.54 MiB 07 50 2.71 GiB 55.58 MiB 08 25 1.36 GiB 55.63 MiB 09 5 278.23 MiB 55.65 MiB 10 0 0 0 11 0 0 0 12 0 0 0 13 0 0 0 14 24 1.34 GiB 57.05 MiB 15 31 1.70 GiB 56.11 MiB 16 55 3.01 GiB 55.96 MiB 17 20 1.09 GiB 56.01 MiB 18 5 280.12 MiB 56.02 MiB 19 5 280.33 MiB 56.07 MiB 20 50 2.74 GiB 56.13 MiB 21 60 3.29 GiB 56.17 MiB 22 60 3.29 GiB 56.21 MiB 23 60 3.30 GiB 56.25 MiB Queries generating the most temporary files (N)
Rank Count Total size Min size Max size Avg size Query 1 717 42.81 GiB 45.99 MiB 399.96 MiB 61.14 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 ('prod', 'test') AND collected_at <= '2026-04-19 13:00:18+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', 'test') AND collected_at BETWEEN '2026-04-19 13:00:18+02' AND '2026-04-20 01:00:18+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', 'test') AND collected_at BETWEEN '2026-04-19 13:00:18+02' AND '2026-04-20 01:00:18+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-20 01:00:36 Duration: 17s992ms Database: zemm_monitoring User: labanimal Log file: /var/log/postgresql/postgresql-2026-04-20_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', 'test') AND collected_at <= '2026-04-13 00:00:23+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', 'test') AND collected_at BETWEEN '2026-04-13 00:00:23+02' AND '2026-04-20 00:00:23+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', 'test') AND collected_at BETWEEN '2026-04-13 00:00:23+02' AND '2026-04-20 00:00:23+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-20 00:00:37 Duration: 13s688ms Database: zemm_monitoring User: labanimal Log file: /var/log/postgresql/postgresql-2026-04-20_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', 'test') AND collected_at <= '2026-04-13 00:15:23+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', 'test') AND collected_at BETWEEN '2026-04-13 00:15:23+02' AND '2026-04-20 00:15:23+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', 'test') AND collected_at BETWEEN '2026-04-13 00:15:23+02' AND '2026-04-20 00:15:23+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-20 00:15:36 Duration: 13s53ms Database: zemm_monitoring User: labanimal Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
2 18 1.97 GiB 91.66 MiB 123.13 MiB 112.31 MiB 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, max(severity) 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 ?;-
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', 'test') AND occurred_at BETWEEN '2026-04-13 00:55:25+02' AND '2026-04-20 00:55:25+02' AND severity IN ('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, MAX(severity) 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-20 00:55:27 Duration: 2s368ms Database: zemm_monitoring User: labanimal Log file: /var/log/postgresql/postgresql-2026-04-20_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', 'test') AND occurred_at BETWEEN '2026-04-13 00:20:25+02' AND '2026-04-20 00:20:25+02' AND severity IN ('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, MAX(severity) 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-20 00:20:27 Duration: 2s321ms Database: zemm_monitoring User: labanimal Log file: /var/log/postgresql/postgresql-2026-04-20_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', 'test') AND occurred_at BETWEEN '2026-04-13 00:35:24+02' AND '2026-04-20 00:35:24+02' AND severity IN ('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, MAX(severity) 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-20 00:35:27 Duration: 2s271ms Database: zemm_monitoring User: labanimal Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
Queries generating the largest temporary files
Rank Size Query 1 399.96 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, $2) AND collected_at <= $3 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 ($4, $5) AND collected_at BETWEEN $6 AND $7 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 ($8, $9) AND collected_at BETWEEN $10 AND $11 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 $12 OFFSET $13;[ Date: 2026-04-20 00:50:35 - Queryid: 2399101 ]
2 399.88 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, $2) AND collected_at <= $3 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 ($4, $5) AND collected_at BETWEEN $6 AND $7 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 ($8, $9) AND collected_at BETWEEN $10 AND $11 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 $12 OFFSET $13;[ Date: 2026-04-20 00:40:36 - Queryid: 2395189 ]
3 145.64 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, $2) AND collected_at <= $3 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 ($4, $5) AND collected_at BETWEEN $6 AND $7 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 ($8, $9) AND collected_at BETWEEN $10 AND $11 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 $12 OFFSET $13;[ Date: 2026-04-20 00:15:36 - Queryid: 2386620 ]
4 140.81 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, $2) AND collected_at <= $3 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 ($4, $5) AND collected_at BETWEEN $6 AND $7 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 ($8, $9) AND collected_at BETWEEN $10 AND $11 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 $12 OFFSET $13;[ Date: 2026-04-20 00:15:36 - Queryid: 2386620 ]
5 135.05 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, $2) AND collected_at <= $3 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 ($4, $5) AND collected_at BETWEEN $6 AND $7 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 ($8, $9) AND collected_at BETWEEN $10 AND $11 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 $12 OFFSET $13;[ Date: 2026-04-20 00:00:37 - Queryid: 2381522 ]
6 134.27 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, $2) AND collected_at <= $3 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 ($4, $5) AND collected_at BETWEEN $6 AND $7 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 ($8, $9) AND collected_at BETWEEN $10 AND $11 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 $12 OFFSET $13;[ Date: 2026-04-20 00:00:37 - Queryid: 2381522 ]
7 132.11 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, $2) AND collected_at <= $3 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 ($4, $5) AND collected_at BETWEEN $6 AND $7 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 ($8, $9) AND collected_at BETWEEN $10 AND $11 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 $12 OFFSET $13;[ Date: 2026-04-20 00:50:34 - Database: zemm_monitoring - User: labanimal ]
8 123.13 MiB 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 ($1, $2) AND occurred_at BETWEEN $3 AND $4 AND severity IN ('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, MAX(severity) 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 $5;[ Date: 2026-04-20 00:25:26 - Queryid: 2389951 ]
9 122.97 MiB 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 ($1, $2) AND occurred_at BETWEEN $3 AND $4 AND severity IN ('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, MAX(severity) 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 $5;[ Date: 2026-04-20 00:30:25 - Queryid: 2391756 ]
10 122.80 MiB 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 ($1, $2) AND occurred_at BETWEEN $3 AND $4 AND severity IN ('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, MAX(severity) 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 $5;[ Date: 2026-04-20 00:10:27 - Queryid: 2384971 ]
11 122.74 MiB 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 ($1, $2) AND occurred_at BETWEEN $3 AND $4 AND severity IN ('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, MAX(severity) 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 $5;[ Date: 2026-04-20 00:50:25 - Queryid: 2399029 ]
12 122.68 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, $2) AND collected_at <= $3 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 ($4, $5) AND collected_at BETWEEN $6 AND $7 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 ($8, $9) AND collected_at BETWEEN $10 AND $11 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 $12 OFFSET $13;[ Date: 2026-04-20 00:15:34 - Database: zemm_monitoring - User: labanimal ]
13 122.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, $2) AND collected_at <= $3 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 ($4, $5) AND collected_at BETWEEN $6 AND $7 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 ($8, $9) AND collected_at BETWEEN $10 AND $11 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 $12 OFFSET $13;[ Date: 2026-04-20 00:25:32 - Database: zemm_monitoring - User: labanimal ]
14 122.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, $2) AND collected_at <= $3 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 ($4, $5) AND collected_at BETWEEN $6 AND $7 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 ($8, $9) AND collected_at BETWEEN $10 AND $11 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 $12 OFFSET $13;[ Date: 2026-04-20 00:00:34 - Database: zemm_monitoring - User: labanimal ]
15 122.52 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, $2) AND collected_at <= $3 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 ($4, $5) AND collected_at BETWEEN $6 AND $7 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 ($8, $9) AND collected_at BETWEEN $10 AND $11 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 $12 OFFSET $13;[ Date: 2026-04-20 00:35:32 - Database: zemm_monitoring - User: labanimal ]
16 122.47 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, $2) AND collected_at <= $3 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 ($4, $5) AND collected_at BETWEEN $6 AND $7 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 ($8, $9) AND collected_at BETWEEN $10 AND $11 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 $12 OFFSET $13;[ Date: 2026-04-20 00:10:32 - Database: zemm_monitoring - User: labanimal ]
17 122.44 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, $2) AND collected_at <= $3 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 ($4, $5) AND collected_at BETWEEN $6 AND $7 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 ($8, $9) AND collected_at BETWEEN $10 AND $11 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 $12 OFFSET $13;[ Date: 2026-04-20 00:45:33 - Database: zemm_monitoring - User: labanimal ]
18 122.44 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, $2) AND collected_at <= $3 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 ($4, $5) AND collected_at BETWEEN $6 AND $7 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 ($8, $9) AND collected_at BETWEEN $10 AND $11 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 $12 OFFSET $13;[ Date: 2026-04-20 00:40:34 - Queryid: 2395189 ]
19 122.43 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, $2) AND collected_at <= $3 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 ($4, $5) AND collected_at BETWEEN $6 AND $7 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 ($8, $9) AND collected_at BETWEEN $10 AND $11 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 $12 OFFSET $13;[ Date: 2026-04-20 00:50:33 - Queryid: 2399101 ]
20 122.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, $2) AND collected_at <= $3 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 ($4, $5) AND collected_at BETWEEN $6 AND $7 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 ($8, $9) AND collected_at BETWEEN $10 AND $11 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 $12 OFFSET $13;[ Date: 2026-04-20 00:20:32 - Database: zemm_monitoring - User: labanimal ]
-
Vacuums
Vacuums / Analyzes Distribution
Key values
- 1.77 sec Highest CPU-cost vacuum
Table observability.metrics_timeseries
Database zemm_monitoring - 2026-04-20 21:01:07 Date
- 0 sec Highest CPU-cost analyze
Table
Database zemm_monitoring - Date
Average Autovacuum Duration
Key values
- 1.77 sec Highest CPU-cost vacuum
Table observability.metrics_timeseries
Database zemm_monitoring - 2026-04-20 21:01:07 Date
Analyzes per table
Key values
- pg_catalog.pg_type (54) Main table analyzed (database zemm_produktiv_8)
- 194 analyzes Total
Table Number of analyzes zemm_produktiv_8.pg_catalog.pg_type 54 zemm_produktiv_8.pg_catalog.pg_attribute 41 zemm_produktiv_8.pg_catalog.pg_class 28 zemm_produktiv_8.pg_catalog.pg_depend 25 zemm_produktiv_8.public.breedingsdams 12 zemm_produktiv_8.public.breedingssires 12 fbi_ci_db.pg_catalog.pg_shdepend 3 bucardo.pg_catalog.pg_shdepend 3 zemm_test_3.pg_catalog.pg_shdepend 2 zemm_produktiv_8.public.users 2 zemm_produktiv_8.public.tmptasks 2 zemm_monitoring.observability.metrics_timeseries 2 zemm_produktiv_8.public.cages_search_mview 2 zemm_produktiv_8.public.cost_history 1 zemm_monitoring.observability.app_events 1 zemm_monitoring.observability.uptime_checks 1 postgres.pg_catalog.pg_shdepend 1 zemm_produktiv_8.public.user_ui_prefs 1 zemm_produktiv_8.public.tasks 1 Total 194 Vacuums per table
Key values
- pg_catalog.pg_type (18) Main table vacuumed on database zemm_produktiv_8
- 90 vacuums Total
Index Buffer usage Skipped WAL usage Frozen Table Vacuums scans hits misses dirtied pins frozen records full page bytes pages tuples zemm_produktiv_8.pg_catalog.pg_type 18 18 0 0 0 0 0 920 178 203,807 0 0 zemm_produktiv_8.pg_catalog.pg_attribute 14 14 0 0 0 0 0 1,839 586 387,222 0 0 zemm_produktiv_8.public.breedingssires 12 0 0 0 0 0 0 1,778 195 617,789 0 0 zemm_produktiv_8.public.breedingsdams 12 0 0 0 0 0 0 2,388 244 823,668 0 0 zemm_produktiv_8.pg_catalog.pg_class 9 9 0 0 0 0 0 883 282 336,828 1 1 zemm_produktiv_8.pg_catalog.pg_depend 7 7 0 0 0 0 0 896 314 351,376 0 0 zemm_monitoring.pg_toast.pg_toast_67431 5 0 0 0 0 0 0 4,567 1,532 3,482,738 1,512 9,072 zemm_produktiv_8.pg_toast.pg_toast_2619 4 4 0 0 0 0 0 730 204 1,057,187 53 159 postgres.pg_catalog.pg_shdepend 3 3 0 0 0 0 0 288 111 210,629 0 0 zemm_produktiv_8.public.tasks 1 1 0 0 0 0 0 46,950 11 3,350,635 0 0 zemm_monitoring.observability.metrics_timeseries 1 1 0 0 0 0 0 11,173 5,442 13,244,883 1,111 22,626 zemm_monitoring.pg_toast.pg_toast_67411 1 0 0 0 0 0 0 6,757 2,165 16,257,104 2,161 8,648 zemm_produktiv_8.public.tmptasks 1 1 0 0 0 0 0 76 27 22,658 0 0 zemm_produktiv_8.pg_catalog.pg_statistic 1 1 0 0 0 0 0 218 65 200,214 35 95 zemm_produktiv_8.public.cost_history 1 1 0 0 0 0 0 10,353 3,485 7,869,483 226 5,302 Total 90 60 0 0 0 0 0 89,816 14,841 48,416,221 5,099 45,903 Vacuum throughput per table
Key values
- observability.metrics_timeseries (1.77) Max CPU elapsed for vacuum on database zemm_monitoring
- observability.metrics_timeseries (26.453 ms) Max I/O read time for vacuum on database zemm_monitoring
- pg_toast.pg_toast_67411 (8.519 ms) Max I/O write time for vacuum on database zemm_monitoring
I/O timing (ms) CPU (s) Table read write elapsed zemm_produktiv_8.pg_catalog.pg_type 1.635 0 0 zemm_produktiv_8.pg_catalog.pg_attribute 4.13 0 0.14 zemm_produktiv_8.public.breedingssires 0 0.269 0 zemm_produktiv_8.public.breedingsdams 0 0.185 0 zemm_produktiv_8.pg_catalog.pg_class 2.24 0 0.04 zemm_produktiv_8.pg_catalog.pg_depend 1.521 0 0.07 zemm_monitoring.pg_toast.pg_toast_67431 2.231 0.185 0.38 zemm_produktiv_8.pg_toast.pg_toast_2619 1.228 0 0.04 postgres.pg_catalog.pg_shdepend 1.334 0 0.03 zemm_produktiv_8.public.tasks 0.753 0 0.61 zemm_monitoring.observability.metrics_timeseries 26.453 5.116 1.77 zemm_monitoring.pg_toast.pg_toast_67411 1.325 8.519 0.59 zemm_produktiv_8.public.tmptasks 0.364 0 0 zemm_produktiv_8.pg_catalog.pg_statistic 0.157 0 0.01 zemm_produktiv_8.public.cost_history 2.383 5.768 1.1 Total 45.754 20.042 4.78 Tuples removed per table
Key values
- public.tasks (53946) Main table with removed tuples on database zemm_produktiv_8
- 128421 tuples Total removed
Index Tuples Pages Table Vacuums scans removed remain not yet removable removed remain zemm_produktiv_8.public.tasks 1 1 53,946 56,952 0 0 16,798 zemm_monitoring.observability.metrics_timeseries 1 1 34,281 363,505 0 0 7,690 zemm_produktiv_8.pg_catalog.pg_attribute 14 14 13,974 79,843 0 0 2,576 zemm_produktiv_8.public.cost_history 1 1 13,003 678,235 0 0 11,168 zemm_produktiv_8.pg_catalog.pg_depend 7 7 6,046 29,197 0 0 385 zemm_produktiv_8.pg_catalog.pg_type 18 18 3,650 14,958 0 0 558 postgres.pg_catalog.pg_shdepend 3 3 1,440 11,652 0 0 114 zemm_produktiv_8.pg_catalog.pg_class 9 9 1,331 8,046 0 0 378 zemm_produktiv_8.pg_toast.pg_toast_2619 4 4 385 1,168 0 0 424 zemm_produktiv_8.pg_catalog.pg_statistic 1 1 283 1,272 0 0 144 zemm_produktiv_8.public.tmptasks 1 1 82 936 0 0 119 zemm_produktiv_8.public.breedingssires 12 0 0 270,622 0 0 1,728 zemm_monitoring.pg_toast.pg_toast_67411 1 0 0 114,073 0 0 26,688 zemm_monitoring.pg_toast.pg_toast_67431 5 0 0 2,134,826 0 0 359,891 zemm_produktiv_8.public.breedingsdams 12 0 0 365,597 0 0 2,340 Total 90 60 128,421 4,130,882 0 0 431,001 Pages removed per table
Key values
- unknown (0) Main table with removed pages on database unknown
- 0 pages Total removed
Pages removed per tables
NO DATASET
Table Number of vacuums Index scans Tuples removed Pages removed zemm_produktiv_8.public.breedingssires 12 0 0 0 zemm_produktiv_8.public.tasks 1 1 53946 0 zemm_produktiv_8.pg_catalog.pg_class 9 9 1331 0 zemm_monitoring.observability.metrics_timeseries 1 1 34281 0 zemm_monitoring.pg_toast.pg_toast_67411 1 0 0 0 zemm_produktiv_8.public.tmptasks 1 1 82 0 zemm_produktiv_8.pg_catalog.pg_type 18 18 3650 0 zemm_monitoring.pg_toast.pg_toast_67431 5 0 0 0 zemm_produktiv_8.pg_catalog.pg_statistic 1 1 283 0 zemm_produktiv_8.pg_catalog.pg_attribute 14 14 13974 0 postgres.pg_catalog.pg_shdepend 3 3 1440 0 zemm_produktiv_8.pg_catalog.pg_depend 7 7 6046 0 zemm_produktiv_8.pg_toast.pg_toast_2619 4 4 385 0 zemm_produktiv_8.public.breedingsdams 12 0 0 0 zemm_produktiv_8.public.cost_history 1 1 13003 0 Total 90 60 128,421 0 Autovacuum Activity
↑ Back to the top of the Autovacuum Activity tableDay Hour VACUUMs ANALYZEs Apr 20 00 1 0 01 1 1 02 0 0 03 0 0 04 0 0 05 1 0 06 6 20 07 4 12 08 8 21 09 6 18 10 8 19 11 5 19 12 8 15 13 32 49 14 2 9 15 3 4 16 1 0 17 1 4 18 0 0 19 0 0 20 1 1 21 1 0 22 0 0 23 1 2 - 1.77 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
- 187 Total read queries
- 24,716 Total write queries
Queries by database
Key values
- zemm_monitoring Main database
- 24,738 Requests
- 23h21s (zemm_monitoring)
- Main time consuming database
Queries by user
Key values
- labanimal Main user
- 623,966 Requests
User Request type Count Duration deploy Total 58 14m47s cte 4 1m18s ddl 30 4m31s others 9 22s849ms select 9 6m3s labanimal Total 623,966 17d55m6s copy from 8 18s286ms copy to 96 4m30s cte 3,350 3h38m47s ddl 617,645 16d20h21m20s others 179 2m6s select 2,641 47m12s tcl 4 2s749ms update 29 30s595ms postgres Total 156 3m29s copy to 156 3m29s Duration by user
Key values
- 17d55m6s (labanimal) Main time consuming user
User Request type Count Duration deploy Total 58 14m47s cte 4 1m18s ddl 30 4m31s others 9 22s849ms select 9 6m3s labanimal Total 623,966 17d55m6s copy from 8 18s286ms copy to 96 4m30s cte 3,350 3h38m47s ddl 617,645 16d20h21m20s others 179 2m6s select 2,641 47m12s tcl 4 2s749ms update 29 30s595ms postgres Total 156 3m29s copy to 156 3m29s Queries by host
Key values
- unknown Main host
- 623,934 Requests
- 17d51m32s (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 30 3m27s select 1 2m56s update 29 30s595ms [local] Total 214 18m17s copy to 156 3m29s cte 4 1m18s ddl 30 4m31s others 9 22s849ms select 9 6m3s unknown Total 623,934 17d51m32s copy from 8 18s286ms copy to 96 4m30s cte 3,350 3h38m47s ddl 617,643 16d20h21m14s others 179 2m6s select 2,640 44m16s tcl 4 2s749ms Queries by application
Key values
- unknown Main application
- 24,747 Requests
- 23h26s (unknown)
- Main time consuming application
Application Request type Count Duration _desktop_index.php_view_animal_name_on_view_animal_id_on_view_b Total 32 23s414ms select 32 23s414ms _desktop_index.php_zemm_produktiv_7_localhost_5432 Total 6 11s838ms cte 4 10s664ms select 2 1s174ms _desktop_index.php_zemm_produktiv_8_localhost_5432 Total 112 1m45s cte 7 10s714ms select 105 1m34s expire_tasks:zemm_produktiv_8@h2940066.stratoserver.net:5432 Total 1 855ms update 1 855ms pg_dump Total 5 7s134ms copy to 5 7s134ms unknown Total 24,747 23h26s cte 219 13m12s ddl 24,480 22h46m35s select 48 38s185ms Number of cancelled queries
Key values
- 0 per second Cancelled query Peak
- 2026-04-20 06:23:42 Date
Number of cancelled queries (5 minutes period)
NO DATASET
-
Top Queries
Histogram of query times
Key values
- 209 1000-10000ms duration
Slowest individual queries
Rank Duration Query 1 17s992ms 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', 'test') AND collected_at <= '2026-04-19 13:00:18+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', 'test') AND collected_at BETWEEN '2026-04-19 13:00:18+02' AND '2026-04-20 01:00:18+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', 'test') AND collected_at BETWEEN '2026-04-19 13:00:18+02' AND '2026-04-20 01:00:18+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-20 01:00:36 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
2 17s992ms CREATE SCHEMA IF NOT EXISTS observability;[ Date: 2026-04-20 01:01:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
3 17s992ms 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-20 01:01:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
4 17s992ms CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);[ Date: 2026-04-20 01:01:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
5 17s992ms CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);[ Date: 2026-04-20 01:01:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
6 17s992ms 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-20 01:01:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
7 17s992ms CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);[ Date: 2026-04-20 01:01:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
8 17s992ms CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);[ Date: 2026-04-20 01:01:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
9 17s992ms 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-20 01:01:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
10 17s992ms CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);[ Date: 2026-04-20 01:01:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
11 17s992ms 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-20 01:01:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
12 17s992ms 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-20 01:01:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
13 17s992ms 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-20 01:01:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
14 17s992ms 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-20 01:01:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
15 17s992ms ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS label text;[ Date: 2026-04-20 01:01:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
16 17s992ms ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS payload jsonb;[ Date: 2026-04-20 01:01:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
17 17s992ms CREATE INDEX IF NOT EXISTS idx_uptime_checks_endpoint ON observability.uptime_checks (endpoint, checked_at DESC);[ Date: 2026-04-20 01:01:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
18 17s992ms CREATE INDEX IF NOT EXISTS idx_uptime_checks_key ON observability.uptime_checks (check_key, checked_at DESC);[ Date: 2026-04-20 01:01:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
19 17s992ms CREATE SCHEMA IF NOT EXISTS observability;[ Date: 2026-04-20 01:02:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
20 17s992ms 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-20 01:02: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 1h20m23s 1,440 505ms 17s992ms 3s349ms alter table observability.uptime_checks add column if not exists payload jsonb;Times Reported Time consuming queries #1
Day Hour Count Duration Avg duration Apr 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS payload jsonb;
Date: 2026-04-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS payload jsonb;
Date: 2026-04-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS payload jsonb;
Date: 2026-04-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
2 1h20m23s 1,440 505ms 17s992ms 3s349ms 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 #2
Day Hour Count Duration Avg duration Apr 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
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-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
3 1h20m23s 1,440 505ms 17s992ms 3s349ms create index if not exists idx_uptime_checks_endpoint on observability.uptime_checks (endpoint, checked_at desc);Times Reported Time consuming queries #3
Day Hour Count Duration Avg duration Apr 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_endpoint ON observability.uptime_checks (endpoint, checked_at DESC);
Date: 2026-04-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_endpoint ON observability.uptime_checks (endpoint, checked_at DESC);
Date: 2026-04-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_endpoint ON observability.uptime_checks (endpoint, checked_at DESC);
Date: 2026-04-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
4 1h20m23s 1,440 505ms 17s992ms 3s349ms 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 #4
Day Hour Count Duration Avg duration Apr 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
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-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
5 1h20m23s 1,440 505ms 17s992ms 3s349ms 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 #5
Day Hour Count Duration Avg duration Apr 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
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-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
6 1h20m23s 1,440 505ms 17s992ms 3s349ms create index if not exists idx_metrics_timeseries_bucket on observability.metrics_timeseries (bucket_start);Times Reported Time consuming queries #6
Day Hour Count Duration Avg duration Apr 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-04-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-04-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-04-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
7 1h20m23s 1,440 505ms 17s992ms 3s349ms 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 #7
Day Hour Count Duration Avg duration Apr 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
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-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
8 1h20m23s 1,440 505ms 17s992ms 3s349ms alter table observability.uptime_checks add column if not exists label text;Times Reported Time consuming queries #8
Day Hour Count Duration Avg duration Apr 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS label text;
Date: 2026-04-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS label text;
Date: 2026-04-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS label text;
Date: 2026-04-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
9 1h20m23s 1,440 505ms 17s992ms 3s349ms create index if not exists idx_app_events_type on observability.app_events (event_type);Times Reported Time consuming queries #9
Day Hour Count Duration Avg duration Apr 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-04-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-04-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-04-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
10 1h20m23s 1,440 505ms 17s992ms 3s349ms 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 #10
Day Hour Count Duration Avg duration Apr 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
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-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
11 1h20m23s 1,440 505ms 17s992ms 3s349ms 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 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
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-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
12 1h20m23s 1,440 505ms 17s992ms 3s349ms create index if not exists idx_app_events_tenant on observability.app_events (tenant_key, occurred_at desc);Times Reported Time consuming queries #12
Day Hour Count Duration Avg duration Apr 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-04-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-04-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-04-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
13 1h20m23s 1,440 505ms 17s992ms 3s349ms create schema if not exists observability;Times Reported Time consuming queries #13
Day Hour Count Duration Avg duration Apr 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-04-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-04-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-04-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
14 1h20m23s 1,440 505ms 17s992ms 3s349ms 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 #14
Day Hour Count Duration Avg duration Apr 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
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-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
15 1h20m23s 1,440 505ms 17s992ms 3s349ms create index if not exists idx_metrics_timeseries_metric on observability.metrics_timeseries (metric_name);Times Reported Time consuming queries #15
Day Hour Count Duration Avg duration Apr 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-04-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-04-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-04-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
16 1h20m23s 1,440 505ms 17s992ms 3s349ms 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 #16
Day Hour Count Duration Avg duration Apr 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);
Date: 2026-04-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
17 1h20m23s 1,440 505ms 17s992ms 3s349ms create index if not exists idx_uptime_checks_key on observability.uptime_checks (check_key, checked_at desc);Times Reported Time consuming queries #17
Day Hour Count Duration Avg duration Apr 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_key ON observability.uptime_checks (check_key, checked_at DESC);
Date: 2026-04-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_key ON observability.uptime_checks (check_key, checked_at DESC);
Date: 2026-04-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_key ON observability.uptime_checks (check_key, checked_at DESC);
Date: 2026-04-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
18 12m22s 168 3s625ms 17s992ms 4s418ms 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 20 01 12 2m16s 11s363ms 02 14 1m8s 4s906ms 03 5 18s903ms 3s780ms 04 12 44s895ms 3s741ms 05 12 44s845ms 3s737ms 06 12 45s159ms 3s763ms 07 12 45s758ms 3s813ms 08 10 37s948ms 3s794ms 09 5 18s710ms 3s742ms 10 1 3s689ms 3s689ms 15 4 15s566ms 3s891ms 16 6 23s123ms 3s853ms 17 11 42s154ms 3s832ms 18 4 15s10ms 3s752ms 19 1 3s792ms 3s792ms 20 1 3s830ms 3s830ms 21 10 37s200ms 3s720ms 22 12 44s912ms 3s742ms 23 12 45s452ms 3s787ms 00 12 46s224ms 3s852ms [ User: labanimal - Total duration: 12m22s - Times executed: 168 ]
-
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', 'test') AND collected_at <= '2026-04-19 13:00:18+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', 'test') AND collected_at BETWEEN '2026-04-19 13:00:18+02' AND '2026-04-20 01:00:18+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', 'test') AND collected_at BETWEEN '2026-04-19 13:00:18+02' AND '2026-04-20 01:00:18+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-20 01:00:36 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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', 'test') AND collected_at <= '2026-04-13 00:00:23+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', 'test') AND collected_at BETWEEN '2026-04-13 00:00:23+02' AND '2026-04-20 00:00:23+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', 'test') AND collected_at BETWEEN '2026-04-13 00:00:23+02' AND '2026-04-20 00:00:23+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-20 00:00:37 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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', 'test') AND collected_at <= '2026-04-13 00:15:23+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', 'test') AND collected_at BETWEEN '2026-04-13 00:15:23+02' AND '2026-04-20 00:15:23+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', 'test') AND collected_at BETWEEN '2026-04-13 00:15:23+02' AND '2026-04-20 00:15:23+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-20 00:15:36 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
19 30s773ms 40 751ms 816ms 769ms select count(distinct animal_id) AS "count" from ( select animals_search_mview.*, b.unbreeding_date, a.id as animal, user_is_tgm (animals_search_mview.owner, ?) as is_owner, user_is_tgm (animals_search_mview.editor, ?) as is_editor, user_is_tgm (animals_search_mview.tourist, ?) as is_tourist, case when not exists ( select ? from scoresheet_diary sd where sd.animals_id = animals_search_mview.id) then ? else ? end as isscored from animals_search_mview left join strains on strains.name = animals_search_mview.strain left join license_history lh on lh.anid = animals_search_mview.id left join animals a on a."animalID" = animals_search_mview.animal_id left join breedings b on b.id = animals_search_mview.last_mating) data where fate = ? and alive = ? and deleted = ? and (is_owner or is_editor or is_tourist);Times Reported Time consuming queries #19
Day Hour Count Duration Avg duration Apr 20 10 3 2s271ms 757ms 11 17 13s6ms 765ms 12 4 3s45ms 761ms 13 3 2s325ms 775ms 14 6 4s761ms 793ms 15 3 2s316ms 772ms 16 4 3s46ms 761ms [ User: labanimal - Total duration: 30s773ms - Times executed: 40 ]
[ Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 - Total duration: 18s525ms - Times executed: 24 ]
[ Application: _desktop_index.php_view_animal_name_on_view_animal_id_on_view_b - Total duration: 12s248ms - Times executed: 16 ]
-
SELECT COUNT(DISTINCT animal_id) AS "count" FROM ( SELECT animals_search_mview.*, b.unbreeding_date, a.id as animal, user_is_tgm (animals_search_mview.owner, 10100206) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100206) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100206) AS is_tourist, CASE WHEN NOT EXISTS ( SELECT 1 FROM scoresheet_diary sd WHERE sd.animals_id = animals_search_mview.id) THEN 'f' ELSE 't' END AS isscored FROM animals_search_mview LEFT JOIN strains ON strains.name = animals_search_mview.strain LEFT JOIN license_history lh ON lh.anid = animals_search_mview.id LEFT JOIN animals a ON a."animalID" = animals_search_mview.animal_id LEFT JOIN breedings b ON b.id = animals_search_mview.last_mating) data WHERE fate = 5 AND alive = 't' AND deleted = 'f' AND (is_owner OR is_editor OR is_tourist);
Date: 2026-04-20 13:33:34 Duration: 816ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
SELECT COUNT(DISTINCT animal_id) AS "count" FROM ( SELECT animals_search_mview.*, b.unbreeding_date, a.id as animal, user_is_tgm (animals_search_mview.owner, 10100206) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100206) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100206) AS is_tourist, CASE WHEN NOT EXISTS ( SELECT 1 FROM scoresheet_diary sd WHERE sd.animals_id = animals_search_mview.id) THEN 'f' ELSE 't' END AS isscored FROM animals_search_mview LEFT JOIN strains ON strains.name = animals_search_mview.strain LEFT JOIN license_history lh ON lh.anid = animals_search_mview.id LEFT JOIN animals a ON a."animalID" = animals_search_mview.animal_id LEFT JOIN breedings b ON b.id = animals_search_mview.last_mating) data WHERE fate = 5 AND alive = 't' AND deleted = 'f' AND (is_owner OR is_editor OR is_tourist);
Date: 2026-04-20 13:40:32 Duration: 813ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
SELECT COUNT(DISTINCT animal_id) AS "count" FROM ( SELECT animals_search_mview.*, b.unbreeding_date, a.id as animal, user_is_tgm (animals_search_mview.owner, 10100206) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100206) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100206) AS is_tourist, CASE WHEN NOT EXISTS ( SELECT 1 FROM scoresheet_diary sd WHERE sd.animals_id = animals_search_mview.id) THEN 'f' ELSE 't' END AS isscored FROM animals_search_mview LEFT JOIN strains ON strains.name = animals_search_mview.strain LEFT JOIN license_history lh ON lh.anid = animals_search_mview.id LEFT JOIN animals a ON a."animalID" = animals_search_mview.animal_id LEFT JOIN breedings b ON b.id = animals_search_mview.last_mating) data WHERE fate = 5 AND alive = 't' AND deleted = 'f' AND (is_owner OR is_editor OR is_tourist);
Date: 2026-04-20 12:52:08 Duration: 811ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
20 28s246ms 40 678ms 792ms 706ms select distinct * from ( select animals_search_mview.*, b.unbreeding_date, fates.loc as fate_name, user_is_tgm (animals_search_mview.owner, ?) as is_owner, user_is_tgm (animals_search_mview.editor, ?) as is_editor, user_is_tgm (animals_search_mview.tourist, ?) as is_tourist, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, strains.deleted as straindeleted, string_agg(l."application_id" || ? || l."title" || ? || date(lh."timestamp")::varchar, ?) as licensehistory, case when not exists ( select ? from scoresheet_diary sd where sd.animals_id = animals_search_mview.id) then ? else ? end as isscored from animals_search_mview inner join fates on fates.id = animals_search_mview.fate left join strains on strains.name = animals_search_mview.strain left join license_history lh on lh.anid = animals_search_mview.id left join licenses l on l.id = lh.licid left join breedings b on b.id = animals_search_mview.last_mating group by animals_search_mview.id, b.unbreeding_date, fates.loc, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, straindeleted) data where data.fate = ? and data.alive = ? and data.deleted = ? and (is_owner or is_editor or is_tourist) and (data.straindeleted = ? or data.straindeleted is null) order by data.cage_name, data.animal_id, data.name;Times Reported Time consuming queries #20
Day Hour Count Duration Avg duration Apr 20 10 3 2s71ms 690ms 11 17 11s853ms 697ms 12 4 2s778ms 694ms 13 3 2s131ms 710ms 14 6 4s490ms 748ms 15 3 2s145ms 715ms 16 4 2s775ms 693ms [ User: labanimal - Total duration: 28s246ms - Times executed: 40 ]
[ Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 - Total duration: 17s80ms - Times executed: 24 ]
[ Application: _desktop_index.php_view_animal_name_on_view_animal_id_on_view_b - Total duration: 11s166ms - Times executed: 16 ]
-
SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 10100206) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100206) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100206) AS is_tourist, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, strains.deleted as straindeleted, STRING_AGG(l."application_id" || ':' || l."title" || ' - ' || Date(lh."timestamp")::varchar, '; ') AS licensehistory, CASE WHEN NOT EXISTS ( SELECT 1 FROM scoresheet_diary sd WHERE sd.animals_id = animals_search_mview.id) THEN 'f' ELSE 't' END AS isscored FROM animals_search_mview INNER JOIN fates ON fates.id = animals_search_mview.fate LEFT JOIN strains ON strains.name = animals_search_mview.strain LEFT JOIN license_history lh ON lh.anid = animals_search_mview.id LEFT JOIN licenses l ON l.id = lh.licid left join breedings b ON b.id = animals_search_mview.last_mating GROUP BY animals_search_mview.id, b.unbreeding_date, fates.loc, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, straindeleted) data WHERE data.fate = 5 AND data.alive = 't' AND data.deleted = 'f' AND (is_owner OR is_editor OR is_tourist) and (data.straindeleted = 'f' or data.straindeleted is null) ORDER BY data.cage_name, data.animal_id, data.name;
Date: 2026-04-20 13:33:35 Duration: 792ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 10100206) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100206) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100206) AS is_tourist, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, strains.deleted as straindeleted, STRING_AGG(l."application_id" || ':' || l."title" || ' - ' || Date(lh."timestamp")::varchar, '; ') AS licensehistory, CASE WHEN NOT EXISTS ( SELECT 1 FROM scoresheet_diary sd WHERE sd.animals_id = animals_search_mview.id) THEN 'f' ELSE 't' END AS isscored FROM animals_search_mview INNER JOIN fates ON fates.id = animals_search_mview.fate LEFT JOIN strains ON strains.name = animals_search_mview.strain LEFT JOIN license_history lh ON lh.anid = animals_search_mview.id LEFT JOIN licenses l ON l.id = lh.licid left join breedings b ON b.id = animals_search_mview.last_mating GROUP BY animals_search_mview.id, b.unbreeding_date, fates.loc, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, straindeleted) data WHERE data.fate = 5 AND data.alive = 't' AND data.deleted = 'f' AND (is_owner OR is_editor OR is_tourist) and (data.straindeleted = 'f' or data.straindeleted is null) ORDER BY data.cage_name, data.animal_id, data.name;
Date: 2026-04-20 13:40:33 Duration: 779ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 10100206) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100206) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100206) AS is_tourist, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, strains.deleted as straindeleted, STRING_AGG(l."application_id" || ':' || l."title" || ' - ' || Date(lh."timestamp")::varchar, '; ') AS licensehistory, CASE WHEN NOT EXISTS ( SELECT 1 FROM scoresheet_diary sd WHERE sd.animals_id = animals_search_mview.id) THEN 'f' ELSE 't' END AS isscored FROM animals_search_mview INNER JOIN fates ON fates.id = animals_search_mview.fate LEFT JOIN strains ON strains.name = animals_search_mview.strain LEFT JOIN license_history lh ON lh.anid = animals_search_mview.id LEFT JOIN licenses l ON l.id = lh.licid left join breedings b ON b.id = animals_search_mview.last_mating GROUP BY animals_search_mview.id, b.unbreeding_date, fates.loc, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, straindeleted) data WHERE data.fate = 5 AND data.alive = 't' AND data.deleted = 'f' AND (is_owner OR is_editor OR is_tourist) and (data.straindeleted = 'f' or data.straindeleted is null) ORDER BY data.cage_name, data.animal_id, data.name;
Date: 2026-04-20 14:23:59 Duration: 773ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
Most frequent queries (N)
Rank Times executed Total duration Min duration Max duration Avg duration Query 1 1,440 1h20m23s 505ms 17s992ms 3s349ms alter table observability.uptime_checks add column if not exists payload jsonb;Times Reported Time consuming queries #1
Day Hour Count Duration Avg duration Apr 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS payload jsonb;
Date: 2026-04-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS payload jsonb;
Date: 2026-04-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS payload jsonb;
Date: 2026-04-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
2 1,440 1h20m23s 505ms 17s992ms 3s349ms 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 #2
Day Hour Count Duration Avg duration Apr 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
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-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
3 1,440 1h20m23s 505ms 17s992ms 3s349ms create index if not exists idx_uptime_checks_endpoint on observability.uptime_checks (endpoint, checked_at desc);Times Reported Time consuming queries #3
Day Hour Count Duration Avg duration Apr 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_endpoint ON observability.uptime_checks (endpoint, checked_at DESC);
Date: 2026-04-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_endpoint ON observability.uptime_checks (endpoint, checked_at DESC);
Date: 2026-04-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_endpoint ON observability.uptime_checks (endpoint, checked_at DESC);
Date: 2026-04-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
4 1,440 1h20m23s 505ms 17s992ms 3s349ms 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 #4
Day Hour Count Duration Avg duration Apr 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
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-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
5 1,440 1h20m23s 505ms 17s992ms 3s349ms 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 #5
Day Hour Count Duration Avg duration Apr 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
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-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
6 1,440 1h20m23s 505ms 17s992ms 3s349ms create index if not exists idx_metrics_timeseries_bucket on observability.metrics_timeseries (bucket_start);Times Reported Time consuming queries #6
Day Hour Count Duration Avg duration Apr 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-04-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-04-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-04-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
7 1,440 1h20m23s 505ms 17s992ms 3s349ms 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 #7
Day Hour Count Duration Avg duration Apr 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
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-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
8 1,440 1h20m23s 505ms 17s992ms 3s349ms alter table observability.uptime_checks add column if not exists label text;Times Reported Time consuming queries #8
Day Hour Count Duration Avg duration Apr 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS label text;
Date: 2026-04-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS label text;
Date: 2026-04-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS label text;
Date: 2026-04-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
9 1,440 1h20m23s 505ms 17s992ms 3s349ms create index if not exists idx_app_events_type on observability.app_events (event_type);Times Reported Time consuming queries #9
Day Hour Count Duration Avg duration Apr 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-04-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-04-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-04-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
10 1,440 1h20m23s 505ms 17s992ms 3s349ms 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 #10
Day Hour Count Duration Avg duration Apr 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
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-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
11 1,440 1h20m23s 505ms 17s992ms 3s349ms 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 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
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-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
12 1,440 1h20m23s 505ms 17s992ms 3s349ms create index if not exists idx_app_events_tenant on observability.app_events (tenant_key, occurred_at desc);Times Reported Time consuming queries #12
Day Hour Count Duration Avg duration Apr 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-04-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-04-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-04-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
13 1,440 1h20m23s 505ms 17s992ms 3s349ms create schema if not exists observability;Times Reported Time consuming queries #13
Day Hour Count Duration Avg duration Apr 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-04-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-04-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-04-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
14 1,440 1h20m23s 505ms 17s992ms 3s349ms 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 #14
Day Hour Count Duration Avg duration Apr 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
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-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
15 1,440 1h20m23s 505ms 17s992ms 3s349ms create index if not exists idx_metrics_timeseries_metric on observability.metrics_timeseries (metric_name);Times Reported Time consuming queries #15
Day Hour Count Duration Avg duration Apr 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-04-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-04-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-04-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
16 1,440 1h20m23s 505ms 17s992ms 3s349ms 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 #16
Day Hour Count Duration Avg duration Apr 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);
Date: 2026-04-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
17 1,440 1h20m23s 505ms 17s992ms 3s349ms create index if not exists idx_uptime_checks_key on observability.uptime_checks (check_key, checked_at desc);Times Reported Time consuming queries #17
Day Hour Count Duration Avg duration Apr 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_key ON observability.uptime_checks (check_key, checked_at DESC);
Date: 2026-04-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_key ON observability.uptime_checks (check_key, checked_at DESC);
Date: 2026-04-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_key ON observability.uptime_checks (check_key, checked_at DESC);
Date: 2026-04-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
18 168 12m22s 3s625ms 17s992ms 4s418ms 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 20 01 12 2m16s 11s363ms 02 14 1m8s 4s906ms 03 5 18s903ms 3s780ms 04 12 44s895ms 3s741ms 05 12 44s845ms 3s737ms 06 12 45s159ms 3s763ms 07 12 45s758ms 3s813ms 08 10 37s948ms 3s794ms 09 5 18s710ms 3s742ms 10 1 3s689ms 3s689ms 15 4 15s566ms 3s891ms 16 6 23s123ms 3s853ms 17 11 42s154ms 3s832ms 18 4 15s10ms 3s752ms 19 1 3s792ms 3s792ms 20 1 3s830ms 3s830ms 21 10 37s200ms 3s720ms 22 12 44s912ms 3s742ms 23 12 45s452ms 3s787ms 00 12 46s224ms 3s852ms [ User: labanimal - Total duration: 12m22s - Times executed: 168 ]
-
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', 'test') AND collected_at <= '2026-04-19 13:00:18+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', 'test') AND collected_at BETWEEN '2026-04-19 13:00:18+02' AND '2026-04-20 01:00:18+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', 'test') AND collected_at BETWEEN '2026-04-19 13:00:18+02' AND '2026-04-20 01:00:18+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-20 01:00:36 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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', 'test') AND collected_at <= '2026-04-13 00:00:23+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', 'test') AND collected_at BETWEEN '2026-04-13 00:00:23+02' AND '2026-04-20 00:00:23+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', 'test') AND collected_at BETWEEN '2026-04-13 00:00:23+02' AND '2026-04-20 00:00:23+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-20 00:00:37 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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', 'test') AND collected_at <= '2026-04-13 00:15:23+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', 'test') AND collected_at BETWEEN '2026-04-13 00:15:23+02' AND '2026-04-20 00:15:23+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', 'test') AND collected_at BETWEEN '2026-04-13 00:15:23+02' AND '2026-04-20 00:15:23+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-20 00:15:36 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
19 40 30s773ms 751ms 816ms 769ms select count(distinct animal_id) AS "count" from ( select animals_search_mview.*, b.unbreeding_date, a.id as animal, user_is_tgm (animals_search_mview.owner, ?) as is_owner, user_is_tgm (animals_search_mview.editor, ?) as is_editor, user_is_tgm (animals_search_mview.tourist, ?) as is_tourist, case when not exists ( select ? from scoresheet_diary sd where sd.animals_id = animals_search_mview.id) then ? else ? end as isscored from animals_search_mview left join strains on strains.name = animals_search_mview.strain left join license_history lh on lh.anid = animals_search_mview.id left join animals a on a."animalID" = animals_search_mview.animal_id left join breedings b on b.id = animals_search_mview.last_mating) data where fate = ? and alive = ? and deleted = ? and (is_owner or is_editor or is_tourist);Times Reported Time consuming queries #19
Day Hour Count Duration Avg duration Apr 20 10 3 2s271ms 757ms 11 17 13s6ms 765ms 12 4 3s45ms 761ms 13 3 2s325ms 775ms 14 6 4s761ms 793ms 15 3 2s316ms 772ms 16 4 3s46ms 761ms [ User: labanimal - Total duration: 30s773ms - Times executed: 40 ]
[ Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 - Total duration: 18s525ms - Times executed: 24 ]
[ Application: _desktop_index.php_view_animal_name_on_view_animal_id_on_view_b - Total duration: 12s248ms - Times executed: 16 ]
-
SELECT COUNT(DISTINCT animal_id) AS "count" FROM ( SELECT animals_search_mview.*, b.unbreeding_date, a.id as animal, user_is_tgm (animals_search_mview.owner, 10100206) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100206) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100206) AS is_tourist, CASE WHEN NOT EXISTS ( SELECT 1 FROM scoresheet_diary sd WHERE sd.animals_id = animals_search_mview.id) THEN 'f' ELSE 't' END AS isscored FROM animals_search_mview LEFT JOIN strains ON strains.name = animals_search_mview.strain LEFT JOIN license_history lh ON lh.anid = animals_search_mview.id LEFT JOIN animals a ON a."animalID" = animals_search_mview.animal_id LEFT JOIN breedings b ON b.id = animals_search_mview.last_mating) data WHERE fate = 5 AND alive = 't' AND deleted = 'f' AND (is_owner OR is_editor OR is_tourist);
Date: 2026-04-20 13:33:34 Duration: 816ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
SELECT COUNT(DISTINCT animal_id) AS "count" FROM ( SELECT animals_search_mview.*, b.unbreeding_date, a.id as animal, user_is_tgm (animals_search_mview.owner, 10100206) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100206) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100206) AS is_tourist, CASE WHEN NOT EXISTS ( SELECT 1 FROM scoresheet_diary sd WHERE sd.animals_id = animals_search_mview.id) THEN 'f' ELSE 't' END AS isscored FROM animals_search_mview LEFT JOIN strains ON strains.name = animals_search_mview.strain LEFT JOIN license_history lh ON lh.anid = animals_search_mview.id LEFT JOIN animals a ON a."animalID" = animals_search_mview.animal_id LEFT JOIN breedings b ON b.id = animals_search_mview.last_mating) data WHERE fate = 5 AND alive = 't' AND deleted = 'f' AND (is_owner OR is_editor OR is_tourist);
Date: 2026-04-20 13:40:32 Duration: 813ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
SELECT COUNT(DISTINCT animal_id) AS "count" FROM ( SELECT animals_search_mview.*, b.unbreeding_date, a.id as animal, user_is_tgm (animals_search_mview.owner, 10100206) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100206) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100206) AS is_tourist, CASE WHEN NOT EXISTS ( SELECT 1 FROM scoresheet_diary sd WHERE sd.animals_id = animals_search_mview.id) THEN 'f' ELSE 't' END AS isscored FROM animals_search_mview LEFT JOIN strains ON strains.name = animals_search_mview.strain LEFT JOIN license_history lh ON lh.anid = animals_search_mview.id LEFT JOIN animals a ON a."animalID" = animals_search_mview.animal_id LEFT JOIN breedings b ON b.id = animals_search_mview.last_mating) data WHERE fate = 5 AND alive = 't' AND deleted = 'f' AND (is_owner OR is_editor OR is_tourist);
Date: 2026-04-20 12:52:08 Duration: 811ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
20 40 28s246ms 678ms 792ms 706ms select distinct * from ( select animals_search_mview.*, b.unbreeding_date, fates.loc as fate_name, user_is_tgm (animals_search_mview.owner, ?) as is_owner, user_is_tgm (animals_search_mview.editor, ?) as is_editor, user_is_tgm (animals_search_mview.tourist, ?) as is_tourist, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, strains.deleted as straindeleted, string_agg(l."application_id" || ? || l."title" || ? || date(lh."timestamp")::varchar, ?) as licensehistory, case when not exists ( select ? from scoresheet_diary sd where sd.animals_id = animals_search_mview.id) then ? else ? end as isscored from animals_search_mview inner join fates on fates.id = animals_search_mview.fate left join strains on strains.name = animals_search_mview.strain left join license_history lh on lh.anid = animals_search_mview.id left join licenses l on l.id = lh.licid left join breedings b on b.id = animals_search_mview.last_mating group by animals_search_mview.id, b.unbreeding_date, fates.loc, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, straindeleted) data where data.fate = ? and data.alive = ? and data.deleted = ? and (is_owner or is_editor or is_tourist) and (data.straindeleted = ? or data.straindeleted is null) order by data.cage_name, data.animal_id, data.name;Times Reported Time consuming queries #20
Day Hour Count Duration Avg duration Apr 20 10 3 2s71ms 690ms 11 17 11s853ms 697ms 12 4 2s778ms 694ms 13 3 2s131ms 710ms 14 6 4s490ms 748ms 15 3 2s145ms 715ms 16 4 2s775ms 693ms [ User: labanimal - Total duration: 28s246ms - Times executed: 40 ]
[ Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 - Total duration: 17s80ms - Times executed: 24 ]
[ Application: _desktop_index.php_view_animal_name_on_view_animal_id_on_view_b - Total duration: 11s166ms - Times executed: 16 ]
-
SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 10100206) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100206) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100206) AS is_tourist, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, strains.deleted as straindeleted, STRING_AGG(l."application_id" || ':' || l."title" || ' - ' || Date(lh."timestamp")::varchar, '; ') AS licensehistory, CASE WHEN NOT EXISTS ( SELECT 1 FROM scoresheet_diary sd WHERE sd.animals_id = animals_search_mview.id) THEN 'f' ELSE 't' END AS isscored FROM animals_search_mview INNER JOIN fates ON fates.id = animals_search_mview.fate LEFT JOIN strains ON strains.name = animals_search_mview.strain LEFT JOIN license_history lh ON lh.anid = animals_search_mview.id LEFT JOIN licenses l ON l.id = lh.licid left join breedings b ON b.id = animals_search_mview.last_mating GROUP BY animals_search_mview.id, b.unbreeding_date, fates.loc, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, straindeleted) data WHERE data.fate = 5 AND data.alive = 't' AND data.deleted = 'f' AND (is_owner OR is_editor OR is_tourist) and (data.straindeleted = 'f' or data.straindeleted is null) ORDER BY data.cage_name, data.animal_id, data.name;
Date: 2026-04-20 13:33:35 Duration: 792ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 10100206) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100206) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100206) AS is_tourist, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, strains.deleted as straindeleted, STRING_AGG(l."application_id" || ':' || l."title" || ' - ' || Date(lh."timestamp")::varchar, '; ') AS licensehistory, CASE WHEN NOT EXISTS ( SELECT 1 FROM scoresheet_diary sd WHERE sd.animals_id = animals_search_mview.id) THEN 'f' ELSE 't' END AS isscored FROM animals_search_mview INNER JOIN fates ON fates.id = animals_search_mview.fate LEFT JOIN strains ON strains.name = animals_search_mview.strain LEFT JOIN license_history lh ON lh.anid = animals_search_mview.id LEFT JOIN licenses l ON l.id = lh.licid left join breedings b ON b.id = animals_search_mview.last_mating GROUP BY animals_search_mview.id, b.unbreeding_date, fates.loc, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, straindeleted) data WHERE data.fate = 5 AND data.alive = 't' AND data.deleted = 'f' AND (is_owner OR is_editor OR is_tourist) and (data.straindeleted = 'f' or data.straindeleted is null) ORDER BY data.cage_name, data.animal_id, data.name;
Date: 2026-04-20 13:40:33 Duration: 779ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 10100206) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100206) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100206) AS is_tourist, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, strains.deleted as straindeleted, STRING_AGG(l."application_id" || ':' || l."title" || ' - ' || Date(lh."timestamp")::varchar, '; ') AS licensehistory, CASE WHEN NOT EXISTS ( SELECT 1 FROM scoresheet_diary sd WHERE sd.animals_id = animals_search_mview.id) THEN 'f' ELSE 't' END AS isscored FROM animals_search_mview INNER JOIN fates ON fates.id = animals_search_mview.fate LEFT JOIN strains ON strains.name = animals_search_mview.strain LEFT JOIN license_history lh ON lh.anid = animals_search_mview.id LEFT JOIN licenses l ON l.id = lh.licid left join breedings b ON b.id = animals_search_mview.last_mating GROUP BY animals_search_mview.id, b.unbreeding_date, fates.loc, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, straindeleted) data WHERE data.fate = 5 AND data.alive = 't' AND data.deleted = 'f' AND (is_owner OR is_editor OR is_tourist) and (data.straindeleted = 'f' or data.straindeleted is null) ORDER BY data.cage_name, data.animal_id, data.name;
Date: 2026-04-20 14:23:59 Duration: 773ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
Normalized slowest queries (N)
Rank Min duration Max duration Avg duration Times executed Total duration Query 1 3s625ms 17s992ms 4s418ms 168 12m22s 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 20 01 12 2m16s 11s363ms 02 14 1m8s 4s906ms 03 5 18s903ms 3s780ms 04 12 44s895ms 3s741ms 05 12 44s845ms 3s737ms 06 12 45s159ms 3s763ms 07 12 45s758ms 3s813ms 08 10 37s948ms 3s794ms 09 5 18s710ms 3s742ms 10 1 3s689ms 3s689ms 15 4 15s566ms 3s891ms 16 6 23s123ms 3s853ms 17 11 42s154ms 3s832ms 18 4 15s10ms 3s752ms 19 1 3s792ms 3s792ms 20 1 3s830ms 3s830ms 21 10 37s200ms 3s720ms 22 12 44s912ms 3s742ms 23 12 45s452ms 3s787ms 00 12 46s224ms 3s852ms [ User: labanimal - Total duration: 12m22s - Times executed: 168 ]
-
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', 'test') AND collected_at <= '2026-04-19 13:00:18+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', 'test') AND collected_at BETWEEN '2026-04-19 13:00:18+02' AND '2026-04-20 01:00:18+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', 'test') AND collected_at BETWEEN '2026-04-19 13:00:18+02' AND '2026-04-20 01:00:18+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-20 01:00:36 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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', 'test') AND collected_at <= '2026-04-13 00:00:23+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', 'test') AND collected_at BETWEEN '2026-04-13 00:00:23+02' AND '2026-04-20 00:00:23+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', 'test') AND collected_at BETWEEN '2026-04-13 00:00:23+02' AND '2026-04-20 00:00:23+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-20 00:00:37 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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', 'test') AND collected_at <= '2026-04-13 00:15:23+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', 'test') AND collected_at BETWEEN '2026-04-13 00:15:23+02' AND '2026-04-20 00:15:23+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', 'test') AND collected_at BETWEEN '2026-04-13 00:15:23+02' AND '2026-04-20 00:15:23+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-20 00:15:36 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
2 505ms 17s992ms 3s349ms 1,440 1h20m23s alter table observability.uptime_checks add column if not exists payload jsonb;Times Reported Time consuming queries #2
Day Hour Count Duration Avg duration Apr 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS payload jsonb;
Date: 2026-04-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS payload jsonb;
Date: 2026-04-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS payload jsonb;
Date: 2026-04-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
3 505ms 17s992ms 3s349ms 1,440 1h20m23s 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 #3
Day Hour Count Duration Avg duration Apr 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
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-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
4 505ms 17s992ms 3s349ms 1,440 1h20m23s create index if not exists idx_uptime_checks_endpoint on observability.uptime_checks (endpoint, checked_at desc);Times Reported Time consuming queries #4
Day Hour Count Duration Avg duration Apr 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_endpoint ON observability.uptime_checks (endpoint, checked_at DESC);
Date: 2026-04-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_endpoint ON observability.uptime_checks (endpoint, checked_at DESC);
Date: 2026-04-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_endpoint ON observability.uptime_checks (endpoint, checked_at DESC);
Date: 2026-04-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
5 505ms 17s992ms 3s349ms 1,440 1h20m23s 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 #5
Day Hour Count Duration Avg duration Apr 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
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-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
6 505ms 17s992ms 3s349ms 1,440 1h20m23s 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 #6
Day Hour Count Duration Avg duration Apr 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
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-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
7 505ms 17s992ms 3s349ms 1,440 1h20m23s 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 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-04-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-04-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-04-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
8 505ms 17s992ms 3s349ms 1,440 1h20m23s 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 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
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-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
9 505ms 17s992ms 3s349ms 1,440 1h20m23s alter table observability.uptime_checks add column if not exists label text;Times Reported Time consuming queries #9
Day Hour Count Duration Avg duration Apr 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS label text;
Date: 2026-04-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS label text;
Date: 2026-04-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS label text;
Date: 2026-04-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
10 505ms 17s992ms 3s349ms 1,440 1h20m23s create index if not exists idx_app_events_type on observability.app_events (event_type);Times Reported Time consuming queries #10
Day Hour Count Duration Avg duration Apr 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-04-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-04-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-04-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
11 505ms 17s992ms 3s349ms 1,440 1h20m23s 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 #11
Day Hour Count Duration Avg duration Apr 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
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-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
12 505ms 17s992ms 3s349ms 1,440 1h20m23s 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 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
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-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
13 505ms 17s992ms 3s349ms 1,440 1h20m23s create index if not exists idx_app_events_tenant on observability.app_events (tenant_key, occurred_at desc);Times Reported Time consuming queries #13
Day Hour Count Duration Avg duration Apr 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-04-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-04-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-04-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
14 505ms 17s992ms 3s349ms 1,440 1h20m23s create schema if not exists observability;Times Reported Time consuming queries #14
Day Hour Count Duration Avg duration Apr 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-04-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-04-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-04-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
15 505ms 17s992ms 3s349ms 1,440 1h20m23s 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 #15
Day Hour Count Duration Avg duration Apr 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
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-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
16 505ms 17s992ms 3s349ms 1,440 1h20m23s create index if not exists idx_metrics_timeseries_metric on observability.metrics_timeseries (metric_name);Times Reported Time consuming queries #16
Day Hour Count Duration Avg duration Apr 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-04-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-04-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-04-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
17 505ms 17s992ms 3s349ms 1,440 1h20m23s 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 #17
Day Hour Count Duration Avg duration Apr 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);
Date: 2026-04-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
18 505ms 17s992ms 3s349ms 1,440 1h20m23s create index if not exists idx_uptime_checks_key on observability.uptime_checks (check_key, checked_at desc);Times Reported Time consuming queries #18
Day Hour Count Duration Avg duration Apr 20 01 60 11m10s 11s180ms 02 60 5m4s 5s74ms 03 60 3m48s 3s803ms 04 60 3m44s 3s742ms 05 60 3m44s 3s737ms 06 60 3m45s 3s759ms 07 60 3m28s 3s481ms 08 60 3m47s 3s786ms 09 60 1m44s 1s742ms 10 60 1m25s 1s432ms 11 60 56s474ms 941ms 12 60 39s895ms 664ms 13 60 40s687ms 678ms 14 60 56s482ms 941ms 15 60 2m1s 2s16ms 16 60 3m32s 3s538ms 17 60 3m49s 3s826ms 18 60 3m51s 3s862ms 19 60 3m47s 3s785ms 20 60 3m49s 3s825ms 21 60 3m44s 3s745ms 22 60 3m35s 3s584ms 23 60 3m36s 3s602ms 00 60 3m38s 3s633ms [ User: labanimal - Total duration: 1h20m23s - Times executed: 1439 ]
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_key ON observability.uptime_checks (check_key, checked_at DESC);
Date: 2026-04-20 01:05:01 Duration: 17s992ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_key ON observability.uptime_checks (check_key, checked_at DESC);
Date: 2026-04-20 00:05:01 Duration: 13s688ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_key ON observability.uptime_checks (check_key, checked_at DESC);
Date: 2026-04-20 00:20:01 Duration: 13s53ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
19 751ms 816ms 769ms 40 30s773ms select count(distinct animal_id) AS "count" from ( select animals_search_mview.*, b.unbreeding_date, a.id as animal, user_is_tgm (animals_search_mview.owner, ?) as is_owner, user_is_tgm (animals_search_mview.editor, ?) as is_editor, user_is_tgm (animals_search_mview.tourist, ?) as is_tourist, case when not exists ( select ? from scoresheet_diary sd where sd.animals_id = animals_search_mview.id) then ? else ? end as isscored from animals_search_mview left join strains on strains.name = animals_search_mview.strain left join license_history lh on lh.anid = animals_search_mview.id left join animals a on a."animalID" = animals_search_mview.animal_id left join breedings b on b.id = animals_search_mview.last_mating) data where fate = ? and alive = ? and deleted = ? and (is_owner or is_editor or is_tourist);Times Reported Time consuming queries #19
Day Hour Count Duration Avg duration Apr 20 10 3 2s271ms 757ms 11 17 13s6ms 765ms 12 4 3s45ms 761ms 13 3 2s325ms 775ms 14 6 4s761ms 793ms 15 3 2s316ms 772ms 16 4 3s46ms 761ms [ User: labanimal - Total duration: 30s773ms - Times executed: 40 ]
[ Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 - Total duration: 18s525ms - Times executed: 24 ]
[ Application: _desktop_index.php_view_animal_name_on_view_animal_id_on_view_b - Total duration: 12s248ms - Times executed: 16 ]
-
SELECT COUNT(DISTINCT animal_id) AS "count" FROM ( SELECT animals_search_mview.*, b.unbreeding_date, a.id as animal, user_is_tgm (animals_search_mview.owner, 10100206) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100206) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100206) AS is_tourist, CASE WHEN NOT EXISTS ( SELECT 1 FROM scoresheet_diary sd WHERE sd.animals_id = animals_search_mview.id) THEN 'f' ELSE 't' END AS isscored FROM animals_search_mview LEFT JOIN strains ON strains.name = animals_search_mview.strain LEFT JOIN license_history lh ON lh.anid = animals_search_mview.id LEFT JOIN animals a ON a."animalID" = animals_search_mview.animal_id LEFT JOIN breedings b ON b.id = animals_search_mview.last_mating) data WHERE fate = 5 AND alive = 't' AND deleted = 'f' AND (is_owner OR is_editor OR is_tourist);
Date: 2026-04-20 13:33:34 Duration: 816ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
SELECT COUNT(DISTINCT animal_id) AS "count" FROM ( SELECT animals_search_mview.*, b.unbreeding_date, a.id as animal, user_is_tgm (animals_search_mview.owner, 10100206) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100206) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100206) AS is_tourist, CASE WHEN NOT EXISTS ( SELECT 1 FROM scoresheet_diary sd WHERE sd.animals_id = animals_search_mview.id) THEN 'f' ELSE 't' END AS isscored FROM animals_search_mview LEFT JOIN strains ON strains.name = animals_search_mview.strain LEFT JOIN license_history lh ON lh.anid = animals_search_mview.id LEFT JOIN animals a ON a."animalID" = animals_search_mview.animal_id LEFT JOIN breedings b ON b.id = animals_search_mview.last_mating) data WHERE fate = 5 AND alive = 't' AND deleted = 'f' AND (is_owner OR is_editor OR is_tourist);
Date: 2026-04-20 13:40:32 Duration: 813ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
SELECT COUNT(DISTINCT animal_id) AS "count" FROM ( SELECT animals_search_mview.*, b.unbreeding_date, a.id as animal, user_is_tgm (animals_search_mview.owner, 10100206) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100206) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100206) AS is_tourist, CASE WHEN NOT EXISTS ( SELECT 1 FROM scoresheet_diary sd WHERE sd.animals_id = animals_search_mview.id) THEN 'f' ELSE 't' END AS isscored FROM animals_search_mview LEFT JOIN strains ON strains.name = animals_search_mview.strain LEFT JOIN license_history lh ON lh.anid = animals_search_mview.id LEFT JOIN animals a ON a."animalID" = animals_search_mview.animal_id LEFT JOIN breedings b ON b.id = animals_search_mview.last_mating) data WHERE fate = 5 AND alive = 't' AND deleted = 'f' AND (is_owner OR is_editor OR is_tourist);
Date: 2026-04-20 12:52:08 Duration: 811ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
20 678ms 792ms 706ms 40 28s246ms select distinct * from ( select animals_search_mview.*, b.unbreeding_date, fates.loc as fate_name, user_is_tgm (animals_search_mview.owner, ?) as is_owner, user_is_tgm (animals_search_mview.editor, ?) as is_editor, user_is_tgm (animals_search_mview.tourist, ?) as is_tourist, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, strains.deleted as straindeleted, string_agg(l."application_id" || ? || l."title" || ? || date(lh."timestamp")::varchar, ?) as licensehistory, case when not exists ( select ? from scoresheet_diary sd where sd.animals_id = animals_search_mview.id) then ? else ? end as isscored from animals_search_mview inner join fates on fates.id = animals_search_mview.fate left join strains on strains.name = animals_search_mview.strain left join license_history lh on lh.anid = animals_search_mview.id left join licenses l on l.id = lh.licid left join breedings b on b.id = animals_search_mview.last_mating group by animals_search_mview.id, b.unbreeding_date, fates.loc, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, straindeleted) data where data.fate = ? and data.alive = ? and data.deleted = ? and (is_owner or is_editor or is_tourist) and (data.straindeleted = ? or data.straindeleted is null) order by data.cage_name, data.animal_id, data.name;Times Reported Time consuming queries #20
Day Hour Count Duration Avg duration Apr 20 10 3 2s71ms 690ms 11 17 11s853ms 697ms 12 4 2s778ms 694ms 13 3 2s131ms 710ms 14 6 4s490ms 748ms 15 3 2s145ms 715ms 16 4 2s775ms 693ms [ User: labanimal - Total duration: 28s246ms - Times executed: 40 ]
[ Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 - Total duration: 17s80ms - Times executed: 24 ]
[ Application: _desktop_index.php_view_animal_name_on_view_animal_id_on_view_b - Total duration: 11s166ms - Times executed: 16 ]
-
SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 10100206) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100206) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100206) AS is_tourist, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, strains.deleted as straindeleted, STRING_AGG(l."application_id" || ':' || l."title" || ' - ' || Date(lh."timestamp")::varchar, '; ') AS licensehistory, CASE WHEN NOT EXISTS ( SELECT 1 FROM scoresheet_diary sd WHERE sd.animals_id = animals_search_mview.id) THEN 'f' ELSE 't' END AS isscored FROM animals_search_mview INNER JOIN fates ON fates.id = animals_search_mview.fate LEFT JOIN strains ON strains.name = animals_search_mview.strain LEFT JOIN license_history lh ON lh.anid = animals_search_mview.id LEFT JOIN licenses l ON l.id = lh.licid left join breedings b ON b.id = animals_search_mview.last_mating GROUP BY animals_search_mview.id, b.unbreeding_date, fates.loc, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, straindeleted) data WHERE data.fate = 5 AND data.alive = 't' AND data.deleted = 'f' AND (is_owner OR is_editor OR is_tourist) and (data.straindeleted = 'f' or data.straindeleted is null) ORDER BY data.cage_name, data.animal_id, data.name;
Date: 2026-04-20 13:33:35 Duration: 792ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 10100206) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100206) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100206) AS is_tourist, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, strains.deleted as straindeleted, STRING_AGG(l."application_id" || ':' || l."title" || ' - ' || Date(lh."timestamp")::varchar, '; ') AS licensehistory, CASE WHEN NOT EXISTS ( SELECT 1 FROM scoresheet_diary sd WHERE sd.animals_id = animals_search_mview.id) THEN 'f' ELSE 't' END AS isscored FROM animals_search_mview INNER JOIN fates ON fates.id = animals_search_mview.fate LEFT JOIN strains ON strains.name = animals_search_mview.strain LEFT JOIN license_history lh ON lh.anid = animals_search_mview.id LEFT JOIN licenses l ON l.id = lh.licid left join breedings b ON b.id = animals_search_mview.last_mating GROUP BY animals_search_mview.id, b.unbreeding_date, fates.loc, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, straindeleted) data WHERE data.fate = 5 AND data.alive = 't' AND data.deleted = 'f' AND (is_owner OR is_editor OR is_tourist) and (data.straindeleted = 'f' or data.straindeleted is null) ORDER BY data.cage_name, data.animal_id, data.name;
Date: 2026-04-20 13:40:33 Duration: 779ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
-
SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 10100206) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100206) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100206) AS is_tourist, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, strains.deleted as straindeleted, STRING_AGG(l."application_id" || ':' || l."title" || ' - ' || Date(lh."timestamp")::varchar, '; ') AS licensehistory, CASE WHEN NOT EXISTS ( SELECT 1 FROM scoresheet_diary sd WHERE sd.animals_id = animals_search_mview.id) THEN 'f' ELSE 't' END AS isscored FROM animals_search_mview INNER JOIN fates ON fates.id = animals_search_mview.fate LEFT JOIN strains ON strains.name = animals_search_mview.strain LEFT JOIN license_history lh ON lh.anid = animals_search_mview.id LEFT JOIN licenses l ON l.id = lh.licid left join breedings b ON b.id = animals_search_mview.last_mating GROUP BY animals_search_mview.id, b.unbreeding_date, fates.loc, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, straindeleted) data WHERE data.fate = 5 AND data.alive = 't' AND data.deleted = 'f' AND (is_owner OR is_editor OR is_tourist) and (data.straindeleted = 'f' or data.straindeleted is null) ORDER BY data.cage_name, data.animal_id, data.name;
Date: 2026-04-20 14:23:59 Duration: 773ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-20_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
- 164,888 Event entries
- (EVENTLOG entries are formaly LOG level entries that are not queries)
Events distribution (except queries)
Key values
- 0 PANIC entries
- 0 FATAL entries
- 4 ERROR entries
- 0 WARNING entries
- 0 EVENTLOG entries
Most Frequent Errors/Events
Key values
- 3 Max number of times the same event was reported
- 4 Total events found
Rank Times reported Error 1 3 ERROR: duplicate key value violates unique constraint "..."
Times Reported Most Frequent Error / Event #1
Day Hour Count Apr 20 01 3 - 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-20 00: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-20 00:05:23 Database: zemm_monitoring Application: User: labanimal Remote: Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
Detail: Key (tenant_key, metric_name, bucket_start, bucket_width_seconds)=(test, http_requests_total, 2026-04-20 00:25: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-20 00:25:23 Database: zemm_monitoring Application: User: labanimal Remote: Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
Detail: Key (tenant_key, metric_name, bucket_start, bucket_width_seconds)=(test, http_requests_total, 2026-04-20 00:35: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-20 00:35:23 Database: zemm_monitoring Application: User: labanimal Remote: Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv
2 1 ERROR: invalid input syntax for type date: ...
Times Reported Most Frequent Error / Event #2
Day Hour Count Apr 20 10 1 - ERROR: invalid input syntax for type date: ""
Statement: SELECT p_update_animals(456, '10296069', '', NULL, '', false,'', '', false, '', '', NULL, 5, '', NULL, '10100097', false,'','',NULL, '','',NULL,0);
Date: 2026-04-20 09:01:06 Database: zemm_produktiv_8 Application: _desktop_index.php_m_action_animals_edit_3Alink_init_row_animal User: labanimal Remote: Log file: /var/log/postgresql/postgresql-2026-04-20_000000.csv