-
Global information
- Generated on Thu Apr 30 06:05:20 2026
- Log file: /var/log/postgresql/postgresql-2026-03-25_000000.csv, ..., /var/log/postgresql/postgresql-2026-04-30_000000.csv
- Parsed 243,189 log entries in 5m19s
- Log start from 2026-03-30 00:00:01 to 2026-03-30 23:59:56
-
Overview
Global Stats
- 37 Number of unique normalized queries
- 18,851 Number of queries
- 7h35m56s Total query duration
- 2026-03-30 00:00:01 First query
- 2026-03-30 23:59:01 Last query
- 14 queries/s at 2026-03-30 15:56:01 Query peak
- 7h35m56s Total query duration
- 0ms Prepare/parse total duration
- 0ms Bind total duration
- 7h35m56s Execute total duration
- 54 Number of events
- 1 Number of unique normalized events
- 54 Max number of times the same event was reported
- 0 Number of cancellation
- 56 Total number of automatic vacuums
- 146 Total number of automatic analyzes
- 19 Number temporary file
- 136.60 MiB Max size of temporary file
- 87.99 MiB Average size of temporary file
- 23,070 Total number of sessions
- 4 sessions at 2026-03-30 14:55:03 Session peak
- 1h3m56s Total duration of sessions
- 166ms Average duration of sessions
- 0 Average queries per session
- 1s185ms Average queries duration per session
- 0ms Average idle time per session
- 23,124 Total number of connections
- 43 connections/s at 2026-03-30 18:19:49 Connection peak
- 3 Total number of databases
SQL Traffic
Key values
- 14 queries/s Query Peak
- 2026-03-30 15:56:01 Date
SELECT Traffic
Key values
- 2 queries/s Query Peak
- 2026-03-30 16:30:24 Date
INSERT/UPDATE/DELETE Traffic
Key values
- 13 queries/s Query Peak
- 2026-03-30 05:31:01 Date
Queries duration
Key values
- 7h35m56s 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) Mar 30 00 780 1s434ms 1s434ms 1s434ms 18s649ms 18s649ms 18s649ms 01 781 0ms 977ms 473ms 12s712ms 12s712ms 12s712ms 02 780 977ms 977ms 977ms 12s712ms 12s712ms 12s712ms 03 780 977ms 977ms 977ms 12s712ms 12s712ms 12s712ms 04 780 977ms 977ms 977ms 12s712ms 12s712ms 12s712ms 05 780 977ms 977ms 977ms 12s712ms 12s712ms 12s712ms 06 780 977ms 977ms 977ms 12s712ms 12s712ms 12s712ms 07 782 663ms 977ms 825ms 12s712ms 12s712ms 14s99ms 08 790 663ms 2s298ms 1s683ms 30s751ms 31s997ms 35s690ms 09 783 660ms 2s186ms 1s999ms 28s428ms 28s428ms 30s473ms 10 784 638ms 711ms 655ms 8s584ms 8s584ms 9s918ms 11 786 640ms 730ms 647ms 8s452ms 8s452ms 12s565ms 12 789 633ms 1s64ms 686ms 9s581ms 13s834ms 18s266ms 13 781 737ms 2s288ms 1s48ms 29s754ms 29s754ms 29s754ms 14 780 2s288ms 2s288ms 2s288ms 29s754ms 29s754ms 29s754ms 15 794 543ms 2s288ms 695ms 9s615ms 29s754ms 31s94ms 16 794 545ms 718ms 604ms 8s648ms 8s648ms 16s608ms 17 825 506ms 7s857ms 3s890ms 1m42s 1m42s 1m42s 18 780 7s857ms 7s857ms 7s857ms 1m42s 1m42s 1m42s 19 795 640ms 7s857ms 1s722ms 1m42s 1m42s 1m44s 20 782 809ms 833ms 823ms 10s839ms 10s839ms 11s649ms 21 780 822ms 822ms 822ms 10s690ms 10s690ms 10s690ms 22 780 822ms 822ms 822ms 10s690ms 10s690ms 10s690ms 23 785 545ms 1s980ms 860ms 10s690ms 17s683ms 17s683ms Day Hour SELECT COPY TO Average Duration Latency Percentile(90) Latency Percentile(95) Latency Percentile(99) Mar 30 00 0 0 0ms 0ms 0ms 0ms 01 0 0 0ms 0ms 0ms 0ms 02 0 0 0ms 0ms 0ms 0ms 03 0 0 0ms 0ms 0ms 0ms 04 0 0 0ms 0ms 0ms 0ms 05 0 0 0ms 0ms 0ms 0ms 06 0 0 0ms 0ms 0ms 0ms 07 2 0 693ms 0ms 0ms 0ms 08 0 0 0ms 0ms 0ms 0ms 09 2 0 682ms 0ms 0ms 0ms 10 4 0 674ms 0ms 0ms 1s334ms 11 6 0 685ms 0ms 0ms 0ms 12 9 0 758ms 0ms 0ms 1s330ms 13 0 0 0ms 0ms 0ms 0ms 14 0 0 0ms 0ms 0ms 0ms 15 14 0 606ms 0ms 1s116ms 1s339ms 16 14 0 679ms 0ms 0ms 0ms 17 35 0 888ms 0ms 2s717ms 4s66ms 18 0 0 0ms 0ms 0ms 0ms 19 12 0 2s249ms 0ms 1s273ms 7s115ms 20 0 0 0ms 0ms 0ms 0ms 21 0 0 0ms 0ms 0ms 0ms 22 0 0 0ms 0ms 0ms 0ms 23 0 5 1s288ms 0ms 0ms 0ms Day Hour INSERT UPDATE DELETE COPY FROM Average Duration Latency Percentile(90) Latency Percentile(95) Latency Percentile(99) Mar 30 00 0 0 0 0 0ms 0ms 0ms 0ms 01 0 1 0 0 977ms 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 Mar 30 00 0 0 0.00 0.00% 01 0 0 0.00 0.00% 02 0 0 0.00 0.00% 03 0 0 0.00 0.00% 04 0 0 0.00 0.00% 05 0 0 0.00 0.00% 06 0 0 0.00 0.00% 07 0 0 0.00 0.00% 08 0 0 0.00 0.00% 09 0 0 0.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 0 0.00 0.00% 15 0 0 0.00 0.00% 16 0 0 0.00 0.00% 17 0 16 16.00 0.00% 18 0 0 0.00 0.00% 19 0 0 0.00 0.00% 20 0 0 0.00 0.00% 21 0 0 0.00 0.00% 22 0 0 0.00 0.00% 23 0 0 0.00 0.00% Day Hour Count Average / Second Mar 30 00 396 0.11/s 01 247 0.07/s 02 244 0.07/s 03 244 0.07/s 04 244 0.07/s 05 244 0.07/s 06 850 0.24/s 07 694 0.19/s 08 879 0.24/s 09 785 0.22/s 10 948 0.26/s 11 1,409 0.39/s 12 1,624 0.45/s 13 2,082 0.58/s 14 1,253 0.35/s 15 1,836 0.51/s 16 1,513 0.42/s 17 1,646 0.46/s 18 962 0.27/s 19 1,564 0.43/s 20 1,613 0.45/s 21 895 0.25/s 22 457 0.13/s 23 495 0.14/s Day Hour Count Average Duration Average idle time Mar 30 00 396 199ms 0ms 01 247 292ms 0ms 02 244 290ms 0ms 03 244 291ms 0ms 04 244 295ms 0ms 05 244 297ms 0ms 06 850 152ms 0ms 07 694 215ms 0ms 08 879 219ms 0ms 09 785 160ms 0ms 10 946 154ms 0ms 11 1,409 169ms 0ms 12 1,624 132ms 0ms 13 2,082 123ms 0ms 14 1,253 131ms 0ms 15 1,836 128ms 0ms 16 1,513 125ms 0ms 17 1,642 262ms 0ms 18 962 123ms 0ms 19 1,558 187ms 0ms 20 1,601 122ms 0ms 21 885 131ms 0ms 22 449 198ms 0ms 23 483 226ms 0ms -
Connections
Established Connections
Key values
- 43 connections Connection Peak
- 2026-03-30 18:19:49 Date
Connections per database
Key values
- zemm_monitoring Main Database
- 23,124 connections Total
Connections per user
Key values
- labanimal Main User
- 23,124 connections Total
-
Sessions
Simultaneous sessions
Key values
- 4 sessions Session Peak
- 2026-03-30 14:55:03 Date
Histogram of session times
Key values
- 20,969 0-500ms duration
Sessions per database
Key values
- zemm_monitoring Main Database
- 23,070 sessions Total
Sessions per user
Key values
- labanimal Main User
- 23,070 sessions Total
Sessions per host
Key values
- ::1 Main Host
- 23,070 sessions Total
Sessions per application
Key values
- Main Application
- 23,070 sessions Total
Application Count Total Duration Average Duration 19,084 53m 166ms _backend_cage_autocomplete_api.php_q_2025_limit_12_zemm_produkt 5 123ms 24ms _backend_cage_autocomplete_api.php_q_55-065_limit_12_zemm_produ 5 133ms 26ms _backend_wean_api.php_litter_id_10130227_zemm_produktiv_7_local 25 3s498ms 139ms _backend_wean_api.php_litter_id_10130236_zemm_produktiv_7_local 25 3s650ms 146ms _backend_wean_api.php_litter_id_10130257_zemm_produktiv_7_local 30 4s395ms 146ms _backend_wean_api.php_litter_id_10131591_zemm_produktiv_8_local 3 423ms 141ms _desktop__zemm_produktiv_7_localhost_5432 7 487ms 69ms _desktop__zemm_produktiv_8_localhost_5432 18 1s133ms 62ms _desktop_index.php_animal_name_19_animal_id_2025_2F001_2F9413_s 1 39ms 39ms _desktop_index.php_command_admin_subcommand_strains_management_ 1 83ms 83ms _desktop_index.php_command_animals_breedings_subcommand_init_ze 1 44ms 44ms _desktop_index.php_command_animals_breedings_subcommand_select_ 5 272ms 54ms _desktop_index.php_command_animals_create_subcommand_init_zemm_ 5 303ms 60ms _desktop_index.php_command_animals_edit_subcommand_init_id_1028 1 101ms 101ms _desktop_index.php_command_animals_edit_subcommand_init_id_1029 1 97ms 97ms _desktop_index.php_command_animals_edit_subcommand_init_id_1030 1 101ms 101ms _desktop_index.php_command_animals_edit_subcommand_link_init_va 5 569ms 113ms _desktop_index.php_command_animals_edit_subcommand_m_init_scree 5 605ms 121ms _desktop_index.php_command_animals_litters_edit_subcommand_init 5 526ms 105ms _desktop_index.php_command_animals_litters_edit_subcommand_m_in 5 1s621ms 324ms _desktop_index.php_command_animals_litters_subcommand_select_ze 5 260ms 52ms _desktop_index.php_command_animals_subcommand_found_val1_101003 1 48ms 48ms _desktop_index.php_command_animals_subcommand_found_val1_1831_v 1 45ms 45ms _desktop_index.php_command_animals_subcommand_init_zemm_produkt 2 94ms 47ms _desktop_index.php_command_animals_subcommand_select_zemm_produ 11 667ms 60ms _desktop_index.php_command_licences_subcommand_create_zemm_prod 12 858ms 71ms _desktop_index.php_command_licences_subcommand_edit_id_10100062 1 73ms 73ms _desktop_index.php_command_licences_subcommand_edit_id_10100119 17 1s168ms 68ms _desktop_index.php_command_licences_subcommand_edit_id_303_zemm 1 52ms 52ms _desktop_index.php_command_licences_subcommand_search_zemm_prod 1 65ms 65ms _desktop_index.php_command_login_subcommand_init_zemm_produktiv 299 9s191ms 30ms _desktop_index.php_command_reports_subcommand_animals_per_user_ 5 539ms 107ms _desktop_index.php_command_reports_subcommand_fates_zemm_produk 6 743ms 123ms _desktop_index.php_command_reports_subcommand_init_zemm_produkt 11 3s123ms 283ms _desktop_index.php_command_reports_subcommand_room_utilisation_ 2 227ms 113ms _desktop_index.php_command_tasks_subcommand_edit_id_10134267_ze 5 450ms 90ms _desktop_index.php_command_tasks_subcommand_edit_id_10140427_ze 5 416ms 83ms _desktop_index.php_command_tasks_subcommand_edit_id_10141945_ze 1 72ms 72ms _desktop_index.php_command_tasks_subcommand_edit_id_10141992_ze 2 166ms 83ms _desktop_index.php_command_tasks_subcommand_found_val1_51_val2_ 4 175ms 43ms _desktop_index.php_command_tasks_subcommand_init_search_zemm_pr 5 247ms 49ms _desktop_index.php_command_tasks_subcommand_init_zemm_produktiv 1 75ms 75ms _desktop_index.php_command_tasks_subcommand_open_zemm_produktiv 62 5s527ms 89ms _desktop_index.php_command_tasks_subcommand_search_zemm_produkt 5 227ms 45ms _desktop_index.php_command_tasks_subcommand_select_tasks_zemm_p 2 4s933ms 2s466ms _desktop_index.php_lic_filter_1_command_licences_subcommand_sel 1 76ms 76ms _desktop_index.php_name_Abt_C3_B6ten_20v._20Tieren_20ohne_20Ver 1 47ms 47ms _desktop_index.php_name_Genotypisierungsproben_20genommen_instr 3 138ms 46ms _desktop_index.php_name_Tiertransport_20durch_20das_20ZEMM_20-_ 1 47ms 47ms _desktop_index.php_name_Tiertransport_20durch_20das_20ZEMM_inst 3 168ms 56ms _desktop_index.php_search_status_2_no_subtasks_true_command_tas 1 47ms 47ms _desktop_index.php_species_1_max_animals_1_license_id_10100062_ 1 74ms 74ms _desktop_index.php_unweaned_only_true_val4_animals_litters_sear 1 45ms 45ms _desktop_index.php_val4_documents_command_documents_subcommand_ 2 141ms 70ms _desktop_index.php_view_animal_name_on_view_animal_id_on_animal 4 967ms 241ms _desktop_index.php_view_animal_name_on_view_animal_id_on_view_b 21 5s789ms 275ms _desktop_index.php_view_animal_name_on_view_animal_id_on_view_s 3 2s451ms 817ms _desktop_index.php_zemm_produktiv_7_localhost_5432 175 31s170ms 178ms _desktop_index.php_zemm_produktiv_8_localhost_5432 2,994 8m59s 180ms backend:zemm_produktiv_7@localhost 14 604ms 43ms backend:zemm_produktiv_8@localhost 69 3s945ms 57ms expire_tasks:zemm_produktiv_8@h2940066.stratoserver.net:5432 1 1s2ms 1s2ms pg_dump 2 13s498ms 6s749ms psql 20 242ms 12ms taskscron:zemm_produktiv_7@zemm.fbiscience.eu 24 629ms 26ms taskscron:zemm_produktiv_8@h2940066.stratoserver.net:5432 24 7s459ms 310ms -
Checkpoints / Restartpoints
Checkpoints Buffers
Key values
- 40,658 buffers Checkpoint Peak
- 2026-03-30 17:34:21 Date
- 269.663 seconds Highest write time
- 0.026 seconds Sync time
Checkpoints Wal files
Key values
- 8 files Wal files usage Peak
- 2026-03-30 17:34:21 Date
Checkpoints distance
Key values
- 265.51 Mo Distance Peak
- 2026-03-30 17:34:21 Date
Checkpoints Activity
↑ Back to the top of the Checkpoint Activity tableDay Hour Written buffers Write time Sync time Total time Mar 30 00 2,794 280.218s 0.089s 280.367s 01 20,739 486.442s 0.07s 486.57s 02 2,220 222.66s 0.069s 222.782s 03 2,187 219.346s 0.068s 219.468s 04 2,508 251.403s 0.073s 251.527s 05 2,137 214.339s 0.076s 214.464s 06 4,448 445.831s 0.184s 446.072s 07 4,374 438.077s 0.184s 438.313s 08 3,270 327.882s 0.154s 328.089s 09 3,158 316.72s 0.132s 316.912s 10 2,860 286.79s 0.161s 287.002s 11 3,506 351.634s 0.198s 351.88s 12 4,017 402.312s 0.171s 402.534s 13 8,161 680.825s 0.199s 681.074s 14 4,258 426.495s 0.176s 426.725s 15 4,426 443.454s 0.156s 443.662s 16 5,663 567.314s 0.17s 567.535s 17 43,400 544.123s 0.147s 544.327s 18 2,406 241.297s 0.087s 241.435s 19 7,175 641.234s 0.134s 641.425s 20 4,819 482.447s 0.113s 482.616s 21 3,105 311.21s 0.083s 311.343s 22 3,074 308.222s 0.088s 308.368s 23 3,364 337.26s 0.075s 337.386s Day Hour Added Removed Recycled Synced files Longest sync Average sync Mar 30 00 0 0 1 415 0.002s 0.013s 01 0 0 7 338 0.002s 0.011s 02 0 0 0 344 0.001s 0.012s 03 0 0 1 341 0.001s 0.012s 04 0 0 1 345 0.001s 0.012s 05 0 0 1 316 0.002s 0.011s 06 0 0 1 984 0.003s 0.012s 07 0 0 1 949 0.002s 0.012s 08 0 0 1 732 0.003s 0.012s 09 0 0 1 630 0.003s 0.012s 10 0 0 1 744 0.002s 0.012s 11 0 0 1 1,006 0.002s 0.012s 12 0 0 1 960 0.002s 0.012s 13 0 0 2 1,104 0.003s 0.012s 14 0 0 2 991 0.002s 0.012s 15 0 0 1 853 0.002s 0.012s 16 0 0 2 879 0.002s 0.012s 17 0 0 9 683 0.002s 0.012s 18 0 0 1 364 0.002s 0.012s 19 0 0 2 584 0.005s 0.012s 20 0 0 1 550 0.002s 0.012s 21 0 0 1 355 0.002s 0.012s 22 0 0 1 358 0.002s 0.012s 23 0 0 1 344 0.002s 0.012s Day Hour Count Avg time (sec) Mar 30 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 Mar 30 00 1,141.62 kB 2,510.85 kB 01 9,361.09 kB 34,854.73 kB 02 1,071.58 kB 32,852.00 kB 03 1,061.92 kB 10,042.17 kB 04 1,125.75 kB 3,617.08 kB 05 1,090.55 kB 1,858.82 kB 06 1,670.92 kB 1,893.67 kB 07 1,709.25 kB 2,411.58 kB 08 1,364.17 kB 2,354.33 kB 09 1,335.17 kB 2,017.00 kB 10 1,294.17 kB 1,700.25 kB 11 1,486.00 kB 1,866.67 kB 12 1,665.17 kB 2,093.67 kB 13 2,727.92 kB 4,107.17 kB 14 1,810.83 kB 7,166.58 kB 15 1,759.17 kB 3,246.42 kB 16 2,042.83 kB 3,302.00 kB 17 12,496.83 kB 55,416.42 kB 18 1,090.08 kB 43,988.00 kB 19 2,726.00 kB 14,198.00 kB 20 1,896.25 kB 6,543.50 kB 21 1,292.00 kB 2,892.75 kB 22 1,313.17 kB 1,899.58 kB 23 1,372.42 kB 2,225.25 kB -
Temporary Files
Size of temporary files
Key values
- 448.17 MiB Temp Files size Peak
- 2026-03-30 17:25:43 Date
Number of temporary files
Key values
- 5 per second Temp Files Peak
- 2026-03-30 17:28:23 Date
Temporary Files Activity
↑ Back to the top of the Temporary Files Activity tableDay Hour Count Total size Average size Mar 30 00 0 0 0 01 0 0 0 02 0 0 0 03 0 0 0 04 0 0 0 05 0 0 0 06 0 0 0 07 0 0 0 08 0 0 0 09 0 0 0 10 0 0 0 11 0 0 0 12 0 0 0 13 0 0 0 14 0 0 0 15 0 0 0 16 0 0 0 17 19 1.63 GiB 87.99 MiB 18 0 0 0 19 0 0 0 20 0 0 0 21 0 0 0 22 0 0 0 23 0 0 0 Queries generating the most temporary files (N)
Rank Count Total size Min size Max size Avg size Query 1 10 941.47 MiB 71.02 MiB 130.08 MiB 94.15 MiB with ranked as ( select tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at, row_number() over (partition by tenant_key, fingerprint order by collected_at asc) as rn_first, row_number() over (partition by tenant_key, fingerprint order by collected_at desc) as rn_last from observability.db_top_queries where tenant_key in (...) and collected_at between ? and ? ), snapshots as ( select tenant_key, fingerprint, max(query) filter (where rn_last = ?) as query, max(collected_at) filter (where rn_last = ?) as last_seen, max(total_time_ms) filter (where rn_first = ?) as first_total_time_ms, max(total_time_ms) filter (where rn_last = ?) as last_total_time_ms, max(calls) filter (where rn_first = ?) as first_calls, max(calls) filter (where rn_last = ?) as last_calls, max(rows_returned) filter (where rn_first = ?) as first_rows_returned, max(rows_returned) filter (where rn_last = ?) as last_rows_returned from ranked group by tenant_key, fingerprint ), deltas as ( select tenant_key, fingerprint, query, last_seen, greatest (coalesce(last_total_time_ms, ?) - coalesce(first_total_time_ms, ?), ?) as total_time_ms, greatest (coalesce(last_calls, ?) - coalesce(first_calls, ?), ?) as calls, greatest (coalesce(last_rows_returned, ?) - coalesce(first_rows_returned, ?), ?) as rows_returned from snapshots ) 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 ranked AS ( SELECT tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at, ROW_NUMBER() OVER (PARTITION BY tenant_key, fingerprint ORDER BY collected_at ASC) AS rn_first, ROW_NUMBER() OVER (PARTITION BY tenant_key, fingerprint ORDER BY collected_at DESC) AS rn_last FROM observability.db_top_queries WHERE tenant_key IN ('test') AND collected_at BETWEEN '2026-03-23 17:27:01+01' AND '2026-03-30 17:27:01+02' ), snapshots AS ( SELECT tenant_key, fingerprint, MAX(query) FILTER (WHERE rn_last = 1) AS query, MAX(collected_at) FILTER (WHERE rn_last = 1) AS last_seen, MAX(total_time_ms) FILTER (WHERE rn_first = 1) AS first_total_time_ms, MAX(total_time_ms) FILTER (WHERE rn_last = 1) AS last_total_time_ms, MAX(calls) FILTER (WHERE rn_first = 1) AS first_calls, MAX(calls) FILTER (WHERE rn_last = 1) AS last_calls, MAX(rows_returned) FILTER (WHERE rn_first = 1) AS first_rows_returned, MAX(rows_returned) FILTER (WHERE rn_last = 1) AS last_rows_returned FROM ranked GROUP BY tenant_key, fingerprint ), deltas AS ( SELECT tenant_key, fingerprint, query, last_seen, GREATEST (COALESCE(last_total_time_ms, 0) - COALESCE(first_total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(last_calls, 0) - COALESCE(first_calls, 0), 0) AS calls, GREATEST (COALESCE(last_rows_returned, 0) - COALESCE(first_rows_returned, 0), 0) AS rows_returned FROM snapshots ) 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-03-30 17:27:03 Duration: 2s108ms Database: zemm_monitoring User: labanimal Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
WITH ranked AS ( SELECT tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at, ROW_NUMBER() OVER (PARTITION BY tenant_key, fingerprint ORDER BY collected_at ASC) AS rn_first, ROW_NUMBER() OVER (PARTITION BY tenant_key, fingerprint ORDER BY collected_at DESC) AS rn_last FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at BETWEEN '2026-03-23 17:25:41+01' AND '2026-03-30 17:25:41+02' ), snapshots AS ( SELECT tenant_key, fingerprint, MAX(query) FILTER (WHERE rn_last = 1) AS query, MAX(collected_at) FILTER (WHERE rn_last = 1) AS last_seen, MAX(total_time_ms) FILTER (WHERE rn_first = 1) AS first_total_time_ms, MAX(total_time_ms) FILTER (WHERE rn_last = 1) AS last_total_time_ms, MAX(calls) FILTER (WHERE rn_first = 1) AS first_calls, MAX(calls) FILTER (WHERE rn_last = 1) AS last_calls, MAX(rows_returned) FILTER (WHERE rn_first = 1) AS first_rows_returned, MAX(rows_returned) FILTER (WHERE rn_last = 1) AS last_rows_returned FROM ranked GROUP BY tenant_key, fingerprint ), deltas AS ( SELECT tenant_key, fingerprint, query, last_seen, GREATEST (COALESCE(last_total_time_ms, 0) - COALESCE(first_total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(last_calls, 0) - COALESCE(first_calls, 0), 0) AS calls, GREATEST (COALESCE(last_rows_returned, 0) - COALESCE(first_rows_returned, 0), 0) AS rows_returned FROM snapshots ) 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-03-30 17:25:43 Duration: 2s102ms Database: zemm_monitoring User: labanimal Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
WITH ranked AS ( SELECT tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at, ROW_NUMBER() OVER (PARTITION BY tenant_key, fingerprint ORDER BY collected_at ASC) AS rn_first, ROW_NUMBER() OVER (PARTITION BY tenant_key, fingerprint ORDER BY collected_at DESC) AS rn_last FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at BETWEEN '2026-03-23 17:28:21+01' AND '2026-03-30 17:28:21+02' ), snapshots AS ( SELECT tenant_key, fingerprint, MAX(query) FILTER (WHERE rn_last = 1) AS query, MAX(collected_at) FILTER (WHERE rn_last = 1) AS last_seen, MAX(total_time_ms) FILTER (WHERE rn_first = 1) AS first_total_time_ms, MAX(total_time_ms) FILTER (WHERE rn_last = 1) AS last_total_time_ms, MAX(calls) FILTER (WHERE rn_first = 1) AS first_calls, MAX(calls) FILTER (WHERE rn_last = 1) AS last_calls, MAX(rows_returned) FILTER (WHERE rn_first = 1) AS first_rows_returned, MAX(rows_returned) FILTER (WHERE rn_last = 1) AS last_rows_returned FROM ranked GROUP BY tenant_key, fingerprint ), deltas AS ( SELECT tenant_key, fingerprint, query, last_seen, GREATEST (COALESCE(last_total_time_ms, 0) - COALESCE(first_total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(last_calls, 0) - COALESCE(first_calls, 0), 0) AS calls, GREATEST (COALESCE(last_rows_returned, 0) - COALESCE(first_rows_returned, 0), 0) AS rows_returned FROM snapshots ) 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-03-30 17:28:23 Duration: 1s608ms Database: zemm_monitoring User: labanimal Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
Queries generating the largest temporary files
Rank Size Query 1 130.08 MiB WITH ranked AS ( SELECT tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at, ROW_NUMBER() OVER (PARTITION BY tenant_key, fingerprint ORDER BY collected_at ASC) AS rn_first, ROW_NUMBER() OVER (PARTITION BY tenant_key, fingerprint ORDER BY collected_at DESC) AS rn_last FROM observability.db_top_queries WHERE tenant_key IN ($1) AND collected_at BETWEEN $2 AND $3 ), snapshots AS ( SELECT tenant_key, fingerprint, MAX(query) FILTER (WHERE rn_last = 1) AS query, MAX(collected_at) FILTER (WHERE rn_last = 1) AS last_seen, MAX(total_time_ms) FILTER (WHERE rn_first = 1) AS first_total_time_ms, MAX(total_time_ms) FILTER (WHERE rn_last = 1) AS last_total_time_ms, MAX(calls) FILTER (WHERE rn_first = 1) AS first_calls, MAX(calls) FILTER (WHERE rn_last = 1) AS last_calls, MAX(rows_returned) FILTER (WHERE rn_first = 1) AS first_rows_returned, MAX(rows_returned) FILTER (WHERE rn_last = 1) AS last_rows_returned FROM ranked GROUP BY tenant_key, fingerprint ), deltas AS ( SELECT tenant_key, fingerprint, query, last_seen, GREATEST (COALESCE(last_total_time_ms, 0) - COALESCE(first_total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(last_calls, 0) - COALESCE(first_calls, 0), 0) AS calls, GREATEST (COALESCE(last_rows_returned, 0) - COALESCE(first_rows_returned, 0), 0) AS rows_returned FROM snapshots ) 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 $4 OFFSET $5;[ Date: 2026-03-30 17:27:03 - Queryid: 1608512 ]
2 126.77 MiB WITH ranked AS ( SELECT tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at, ROW_NUMBER() OVER (PARTITION BY tenant_key, fingerprint ORDER BY collected_at ASC) AS rn_first, ROW_NUMBER() OVER (PARTITION BY tenant_key, fingerprint ORDER BY collected_at DESC) AS rn_last FROM observability.db_top_queries WHERE tenant_key IN ($1) AND collected_at BETWEEN $2 AND $3 ), snapshots AS ( SELECT tenant_key, fingerprint, MAX(query) FILTER (WHERE rn_last = 1) AS query, MAX(collected_at) FILTER (WHERE rn_last = 1) AS last_seen, MAX(total_time_ms) FILTER (WHERE rn_first = 1) AS first_total_time_ms, MAX(total_time_ms) FILTER (WHERE rn_last = 1) AS last_total_time_ms, MAX(calls) FILTER (WHERE rn_first = 1) AS first_calls, MAX(calls) FILTER (WHERE rn_last = 1) AS last_calls, MAX(rows_returned) FILTER (WHERE rn_first = 1) AS first_rows_returned, MAX(rows_returned) FILTER (WHERE rn_last = 1) AS last_rows_returned FROM ranked GROUP BY tenant_key, fingerprint ), deltas AS ( SELECT tenant_key, fingerprint, query, last_seen, GREATEST (COALESCE(last_total_time_ms, 0) - COALESCE(first_total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(last_calls, 0) - COALESCE(first_calls, 0), 0) AS calls, GREATEST (COALESCE(last_rows_returned, 0) - COALESCE(first_rows_returned, 0), 0) AS rows_returned FROM snapshots ) 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 $4 OFFSET $5;[ Date: 2026-03-30 17:27:03 - Queryid: 1608512 ]
3 99.18 MiB WITH ranked AS ( SELECT tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at, ROW_NUMBER() OVER (PARTITION BY tenant_key, fingerprint ORDER BY collected_at ASC) AS rn_first, ROW_NUMBER() OVER (PARTITION BY tenant_key, fingerprint ORDER BY collected_at DESC) AS rn_last FROM observability.db_top_queries WHERE tenant_key IN ($1) AND collected_at BETWEEN $2 AND $3 ), snapshots AS ( SELECT tenant_key, fingerprint, MAX(query) FILTER (WHERE rn_last = 1) AS query, MAX(collected_at) FILTER (WHERE rn_last = 1) AS last_seen, MAX(total_time_ms) FILTER (WHERE rn_first = 1) AS first_total_time_ms, MAX(total_time_ms) FILTER (WHERE rn_last = 1) AS last_total_time_ms, MAX(calls) FILTER (WHERE rn_first = 1) AS first_calls, MAX(calls) FILTER (WHERE rn_last = 1) AS last_calls, MAX(rows_returned) FILTER (WHERE rn_first = 1) AS first_rows_returned, MAX(rows_returned) FILTER (WHERE rn_last = 1) AS last_rows_returned FROM ranked GROUP BY tenant_key, fingerprint ), deltas AS ( SELECT tenant_key, fingerprint, query, last_seen, GREATEST (COALESCE(last_total_time_ms, 0) - COALESCE(first_total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(last_calls, 0) - COALESCE(first_calls, 0), 0) AS calls, GREATEST (COALESCE(last_rows_returned, 0) - COALESCE(first_rows_returned, 0), 0) AS rows_returned FROM snapshots ) 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 $4 OFFSET $5;[ Date: 2026-03-30 17:25:43 - Queryid: 1608237 ]
4 97.73 MiB WITH ranked AS ( SELECT tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at, ROW_NUMBER() OVER (PARTITION BY tenant_key, fingerprint ORDER BY collected_at ASC) AS rn_first, ROW_NUMBER() OVER (PARTITION BY tenant_key, fingerprint ORDER BY collected_at DESC) AS rn_last FROM observability.db_top_queries WHERE tenant_key IN ($1) AND collected_at BETWEEN $2 AND $3 ), snapshots AS ( SELECT tenant_key, fingerprint, MAX(query) FILTER (WHERE rn_last = 1) AS query, MAX(collected_at) FILTER (WHERE rn_last = 1) AS last_seen, MAX(total_time_ms) FILTER (WHERE rn_first = 1) AS first_total_time_ms, MAX(total_time_ms) FILTER (WHERE rn_last = 1) AS last_total_time_ms, MAX(calls) FILTER (WHERE rn_first = 1) AS first_calls, MAX(calls) FILTER (WHERE rn_last = 1) AS last_calls, MAX(rows_returned) FILTER (WHERE rn_first = 1) AS first_rows_returned, MAX(rows_returned) FILTER (WHERE rn_last = 1) AS last_rows_returned FROM ranked GROUP BY tenant_key, fingerprint ), deltas AS ( SELECT tenant_key, fingerprint, query, last_seen, GREATEST (COALESCE(last_total_time_ms, 0) - COALESCE(first_total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(last_calls, 0) - COALESCE(first_calls, 0), 0) AS calls, GREATEST (COALESCE(last_rows_returned, 0) - COALESCE(first_rows_returned, 0), 0) AS rows_returned FROM snapshots ) 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 $4 OFFSET $5;[ Date: 2026-03-30 17:25:43 - Queryid: 1608237 ]
5 90.73 MiB WITH ranked AS ( SELECT tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at, ROW_NUMBER() OVER (PARTITION BY tenant_key, fingerprint ORDER BY collected_at ASC) AS rn_first, ROW_NUMBER() OVER (PARTITION BY tenant_key, fingerprint ORDER BY collected_at DESC) AS rn_last FROM observability.db_top_queries WHERE tenant_key IN ($1) AND collected_at BETWEEN $2 AND $3 ), snapshots AS ( SELECT tenant_key, fingerprint, MAX(query) FILTER (WHERE rn_last = 1) AS query, MAX(collected_at) FILTER (WHERE rn_last = 1) AS last_seen, MAX(total_time_ms) FILTER (WHERE rn_first = 1) AS first_total_time_ms, MAX(total_time_ms) FILTER (WHERE rn_last = 1) AS last_total_time_ms, MAX(calls) FILTER (WHERE rn_first = 1) AS first_calls, MAX(calls) FILTER (WHERE rn_last = 1) AS last_calls, MAX(rows_returned) FILTER (WHERE rn_first = 1) AS first_rows_returned, MAX(rows_returned) FILTER (WHERE rn_last = 1) AS last_rows_returned FROM ranked GROUP BY tenant_key, fingerprint ), deltas AS ( SELECT tenant_key, fingerprint, query, last_seen, GREATEST (COALESCE(last_total_time_ms, 0) - COALESCE(first_total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(last_calls, 0) - COALESCE(first_calls, 0), 0) AS calls, GREATEST (COALESCE(last_rows_returned, 0) - COALESCE(first_rows_returned, 0), 0) AS rows_returned FROM snapshots ) 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 $4 OFFSET $5;[ Date: 2026-03-30 17:25:43 - Queryid: 1608237 ]
6 84.82 MiB WITH ranked AS ( SELECT tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at, ROW_NUMBER() OVER (PARTITION BY tenant_key, fingerprint ORDER BY collected_at ASC) AS rn_first, ROW_NUMBER() OVER (PARTITION BY tenant_key, fingerprint ORDER BY collected_at DESC) AS rn_last FROM observability.db_top_queries WHERE tenant_key IN ($1) AND collected_at BETWEEN $2 AND $3 ), snapshots AS ( SELECT tenant_key, fingerprint, MAX(query) FILTER (WHERE rn_last = 1) AS query, MAX(collected_at) FILTER (WHERE rn_last = 1) AS last_seen, MAX(total_time_ms) FILTER (WHERE rn_first = 1) AS first_total_time_ms, MAX(total_time_ms) FILTER (WHERE rn_last = 1) AS last_total_time_ms, MAX(calls) FILTER (WHERE rn_first = 1) AS first_calls, MAX(calls) FILTER (WHERE rn_last = 1) AS last_calls, MAX(rows_returned) FILTER (WHERE rn_first = 1) AS first_rows_returned, MAX(rows_returned) FILTER (WHERE rn_last = 1) AS last_rows_returned FROM ranked GROUP BY tenant_key, fingerprint ), deltas AS ( SELECT tenant_key, fingerprint, query, last_seen, GREATEST (COALESCE(last_total_time_ms, 0) - COALESCE(first_total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(last_calls, 0) - COALESCE(first_calls, 0), 0) AS calls, GREATEST (COALESCE(last_rows_returned, 0) - COALESCE(first_rows_returned, 0), 0) AS rows_returned FROM snapshots ) 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 $4 OFFSET $5;[ Date: 2026-03-30 17:28:23 - Queryid: 1608881 ]
7 84.59 MiB WITH ranked AS ( SELECT tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at, ROW_NUMBER() OVER (PARTITION BY tenant_key, fingerprint ORDER BY collected_at ASC) AS rn_first, ROW_NUMBER() OVER (PARTITION BY tenant_key, fingerprint ORDER BY collected_at DESC) AS rn_last FROM observability.db_top_queries WHERE tenant_key IN ($1) AND collected_at BETWEEN $2 AND $3 ), snapshots AS ( SELECT tenant_key, fingerprint, MAX(query) FILTER (WHERE rn_last = 1) AS query, MAX(collected_at) FILTER (WHERE rn_last = 1) AS last_seen, MAX(total_time_ms) FILTER (WHERE rn_first = 1) AS first_total_time_ms, MAX(total_time_ms) FILTER (WHERE rn_last = 1) AS last_total_time_ms, MAX(calls) FILTER (WHERE rn_first = 1) AS first_calls, MAX(calls) FILTER (WHERE rn_last = 1) AS last_calls, MAX(rows_returned) FILTER (WHERE rn_first = 1) AS first_rows_returned, MAX(rows_returned) FILTER (WHERE rn_last = 1) AS last_rows_returned FROM ranked GROUP BY tenant_key, fingerprint ), deltas AS ( SELECT tenant_key, fingerprint, query, last_seen, GREATEST (COALESCE(last_total_time_ms, 0) - COALESCE(first_total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(last_calls, 0) - COALESCE(first_calls, 0), 0) AS calls, GREATEST (COALESCE(last_rows_returned, 0) - COALESCE(first_rows_returned, 0), 0) AS rows_returned FROM snapshots ) 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 $4 OFFSET $5;[ Date: 2026-03-30 17:28:23 - Queryid: 1608881 ]
8 79.46 MiB WITH ranked AS ( SELECT tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at, ROW_NUMBER() OVER (PARTITION BY tenant_key, fingerprint ORDER BY collected_at ASC) AS rn_first, ROW_NUMBER() OVER (PARTITION BY tenant_key, fingerprint ORDER BY collected_at DESC) AS rn_last FROM observability.db_top_queries WHERE tenant_key IN ($1) AND collected_at BETWEEN $2 AND $3 ), snapshots AS ( SELECT tenant_key, fingerprint, MAX(query) FILTER (WHERE rn_last = 1) AS query, MAX(collected_at) FILTER (WHERE rn_last = 1) AS last_seen, MAX(total_time_ms) FILTER (WHERE rn_first = 1) AS first_total_time_ms, MAX(total_time_ms) FILTER (WHERE rn_last = 1) AS last_total_time_ms, MAX(calls) FILTER (WHERE rn_first = 1) AS first_calls, MAX(calls) FILTER (WHERE rn_last = 1) AS last_calls, MAX(rows_returned) FILTER (WHERE rn_first = 1) AS first_rows_returned, MAX(rows_returned) FILTER (WHERE rn_last = 1) AS last_rows_returned FROM ranked GROUP BY tenant_key, fingerprint ), deltas AS ( SELECT tenant_key, fingerprint, query, last_seen, GREATEST (COALESCE(last_total_time_ms, 0) - COALESCE(first_total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(last_calls, 0) - COALESCE(first_calls, 0), 0) AS calls, GREATEST (COALESCE(last_rows_returned, 0) - COALESCE(first_rows_returned, 0), 0) AS rows_returned FROM snapshots ) 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 $4 OFFSET $5;[ Date: 2026-03-30 17:28:23 - Queryid: 1608881 ]
9 77.09 MiB WITH ranked AS ( SELECT tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at, ROW_NUMBER() OVER (PARTITION BY tenant_key, fingerprint ORDER BY collected_at ASC) AS rn_first, ROW_NUMBER() OVER (PARTITION BY tenant_key, fingerprint ORDER BY collected_at DESC) AS rn_last FROM observability.db_top_queries WHERE tenant_key IN ($1) AND collected_at BETWEEN $2 AND $3 ), snapshots AS ( SELECT tenant_key, fingerprint, MAX(query) FILTER (WHERE rn_last = 1) AS query, MAX(collected_at) FILTER (WHERE rn_last = 1) AS last_seen, MAX(total_time_ms) FILTER (WHERE rn_first = 1) AS first_total_time_ms, MAX(total_time_ms) FILTER (WHERE rn_last = 1) AS last_total_time_ms, MAX(calls) FILTER (WHERE rn_first = 1) AS first_calls, MAX(calls) FILTER (WHERE rn_last = 1) AS last_calls, MAX(rows_returned) FILTER (WHERE rn_first = 1) AS first_rows_returned, MAX(rows_returned) FILTER (WHERE rn_last = 1) AS last_rows_returned FROM ranked GROUP BY tenant_key, fingerprint ), deltas AS ( SELECT tenant_key, fingerprint, query, last_seen, GREATEST (COALESCE(last_total_time_ms, 0) - COALESCE(first_total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(last_calls, 0) - COALESCE(first_calls, 0), 0) AS calls, GREATEST (COALESCE(last_rows_returned, 0) - COALESCE(first_rows_returned, 0), 0) AS rows_returned FROM snapshots ) 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 $4 OFFSET $5;[ Date: 2026-03-30 17:28:23 - Queryid: 1608881 ]
10 71.02 MiB WITH ranked AS ( SELECT tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at, ROW_NUMBER() OVER (PARTITION BY tenant_key, fingerprint ORDER BY collected_at ASC) AS rn_first, ROW_NUMBER() OVER (PARTITION BY tenant_key, fingerprint ORDER BY collected_at DESC) AS rn_last FROM observability.db_top_queries WHERE tenant_key IN ($1) AND collected_at BETWEEN $2 AND $3 ), snapshots AS ( SELECT tenant_key, fingerprint, MAX(query) FILTER (WHERE rn_last = 1) AS query, MAX(collected_at) FILTER (WHERE rn_last = 1) AS last_seen, MAX(total_time_ms) FILTER (WHERE rn_first = 1) AS first_total_time_ms, MAX(total_time_ms) FILTER (WHERE rn_last = 1) AS last_total_time_ms, MAX(calls) FILTER (WHERE rn_first = 1) AS first_calls, MAX(calls) FILTER (WHERE rn_last = 1) AS last_calls, MAX(rows_returned) FILTER (WHERE rn_first = 1) AS first_rows_returned, MAX(rows_returned) FILTER (WHERE rn_last = 1) AS last_rows_returned FROM ranked GROUP BY tenant_key, fingerprint ), deltas AS ( SELECT tenant_key, fingerprint, query, last_seen, GREATEST (COALESCE(last_total_time_ms, 0) - COALESCE(first_total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(last_calls, 0) - COALESCE(first_calls, 0), 0) AS calls, GREATEST (COALESCE(last_rows_returned, 0) - COALESCE(first_rows_returned, 0), 0) AS rows_returned FROM snapshots ) 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 $4 OFFSET $5;[ Date: 2026-03-30 17:25:43 - Queryid: 1608237 ]
-
Vacuums
Vacuums / Analyzes Distribution
Key values
- 0.56 sec Highest CPU-cost vacuum
Table public.tasks
Database zemm_produktiv_8 - 2026-03-30 01:30:09 Date
- 0 sec Highest CPU-cost analyze
Table
Database zemm_produktiv_8 - Date
Average Autovacuum Duration
Key values
- 0.56 sec Highest CPU-cost vacuum
Table public.tasks
Database zemm_produktiv_8 - 2026-03-30 01:30:09 Date
Analyzes per table
Key values
- pg_catalog.pg_type (45) Main table analyzed (database zemm_produktiv_8)
- 146 analyzes Total
Table Number of analyzes zemm_produktiv_8.pg_catalog.pg_type 45 zemm_produktiv_8.pg_catalog.pg_attribute 34 zemm_produktiv_8.pg_catalog.pg_class 23 zemm_produktiv_8.pg_catalog.pg_depend 21 zemm_produktiv_8.public.tmptasks 3 invdb.pg_catalog.pg_shdepend 3 zemm_produktiv_8.public.users 2 zemm_monitoring.observability.metrics_timeseries 2 bucardo.pg_catalog.pg_shdepend 2 zemm_test_2.pg_catalog.pg_shdepend 1 template1.pg_catalog.pg_shdepend 1 zemm_produktiv_8.public.cages_search_mview 1 zemm_produktiv_8.public.tasks 1 zemm_produktiv_7.pg_catalog.pg_shdepend 1 zemm_produktiv_7.pg_catalog.pg_class 1 zemm_monitoring.observability.nginx_counters 1 zemm_produktiv_7.pg_catalog.pg_attribute 1 zemm_monitoring.observability.phpfpm_counters 1 zemm_produktiv_8.public.cages 1 zemm_produktiv_7.pg_catalog.pg_type 1 Total 146 Vacuums per table
Key values
- pg_catalog.pg_type (15) Main table vacuumed on database zemm_produktiv_8
- 56 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 15 15 0 0 0 0 0 780 167 182,245 0 0 zemm_produktiv_8.pg_catalog.pg_attribute 12 12 0 0 0 0 0 1,596 543 362,298 0 0 zemm_produktiv_8.pg_catalog.pg_class 7 7 0 0 0 0 0 679 216 257,413 0 0 zemm_monitoring.pg_toast.pg_toast_67431 7 0 0 0 0 0 0 4,753 1,599 3,629,926 1,567 9,402 zemm_produktiv_8.pg_catalog.pg_depend 6 6 0 0 0 0 0 759 251 276,253 0 0 zemm_produktiv_8.pg_toast.pg_toast_2619 4 4 0 0 0 0 0 754 192 1,079,517 45 145 bucardo.pg_catalog.pg_shdepend 2 2 0 0 0 0 0 184 61 119,421 0 0 fbi_ci_db.pg_catalog.pg_shdepend 1 1 0 0 0 0 0 103 36 74,800 0 0 zemm_produktiv_8.public.tasks 1 1 0 0 0 0 0 43,009 20 3,081,857 0 0 zemm_produktiv_8.public.cages_search_mview 1 1 0 0 0 0 0 559 284 1,008,118 18 481 Total 56 49 0 0 0 0 0 53,176 3,369 10,071,848 1,630 10,028 Vacuum throughput per table
Key values
- public.tasks (0.56) Max CPU elapsed for vacuum on database zemm_produktiv_8
- unknown (0 ms) Max I/O read time for vacuum on database zemm_produktiv_8
- unknown (0 ms) Max I/O write time for vacuum on database zemm_produktiv_8
I/O timing (ms) CPU (s) Table read write elapsed zemm_produktiv_8.pg_catalog.pg_type 0 0 0 zemm_produktiv_8.pg_catalog.pg_attribute 0 0 0.12 zemm_produktiv_8.pg_catalog.pg_class 0 0 0 zemm_monitoring.pg_toast.pg_toast_67431 0 0 0.35 zemm_produktiv_8.pg_catalog.pg_depend 0 0 0.06 zemm_produktiv_8.pg_toast.pg_toast_2619 0 0 0.04 bucardo.pg_catalog.pg_shdepend 0 0 0.01 fbi_ci_db.pg_catalog.pg_shdepend 0 0 0.01 zemm_produktiv_8.public.tasks 0 0 0.56 zemm_produktiv_8.public.cages_search_mview 0 0 0.07 Total 0 0 1.22 Tuples removed per table
Key values
- public.tasks (53495) Main table with removed tuples on database zemm_produktiv_8
- 76906 tuples Total removed
Index Tuples Pages Table Vacuums scans removed remain not yet removable removed remain zemm_produktiv_8.public.tasks 1 1 53,495 56,567 0 0 16,648 zemm_produktiv_8.pg_catalog.pg_attribute 12 12 12,195 68,272 0 0 2,208 zemm_produktiv_8.pg_catalog.pg_depend 6 6 5,263 25,026 0 0 330 zemm_produktiv_8.pg_catalog.pg_type 15 15 3,010 12,465 0 0 465 zemm_produktiv_8.pg_catalog.pg_class 7 7 1,127 6,258 0 0 294 bucardo.pg_catalog.pg_shdepend 2 2 728 7,698 0 0 76 fbi_ci_db.pg_catalog.pg_shdepend 1 1 589 3,849 0 0 38 zemm_produktiv_8.pg_toast.pg_toast_2619 4 4 444 1,164 0 0 424 zemm_produktiv_8.public.cages_search_mview 1 1 55 13,629 0 0 219 zemm_monitoring.pg_toast.pg_toast_67431 7 0 0 1,751,264 0 0 292,988 Total 56 49 76,906 1,946,192 0 0 313,690 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.pg_catalog.pg_class 7 7 1127 0 zemm_produktiv_8.pg_catalog.pg_attribute 12 12 12195 0 zemm_produktiv_8.pg_catalog.pg_depend 6 6 5263 0 zemm_produktiv_8.pg_toast.pg_toast_2619 4 4 444 0 zemm_produktiv_8.pg_catalog.pg_type 15 15 3010 0 fbi_ci_db.pg_catalog.pg_shdepend 1 1 589 0 zemm_produktiv_8.public.tasks 1 1 53495 0 zemm_monitoring.pg_toast.pg_toast_67431 7 0 0 0 zemm_produktiv_8.public.cages_search_mview 1 1 55 0 bucardo.pg_catalog.pg_shdepend 2 2 728 0 Total 56 49 76,906 0 Autovacuum Activity
↑ Back to the top of the Autovacuum Activity tableDay Hour VACUUMs ANALYZEs Mar 30 00 0 0 01 2 1 02 0 0 03 0 0 04 1 0 05 0 0 06 7 18 07 2 8 08 3 7 09 2 5 10 2 3 11 2 8 12 5 14 13 11 27 14 5 19 15 3 8 16 6 16 17 2 7 18 0 0 19 0 5 20 2 0 21 0 0 22 0 0 23 1 0 - 0.56 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
- 98 Total read queries
- 18,753 Total write queries
Queries by database
Key values
- zemm_monitoring Main database
- 18,734 Requests
- 7h33m48s (zemm_monitoring)
- Main time consuming database
Queries by user
Key values
- labanimal Main user
- 130,103 Requests
User Request type Count Duration labanimal Total 130,103 1d13h39m23s copy to 8 22s174ms cte 72 2m1s ddl 129,480 1d13h26m57s select 536 9m54s update 7 7s608ms postgres Total 35 45s282ms copy to 35 45s282ms Duration by user
Key values
- 1d13h39m23s (labanimal) Main time consuming user
User Request type Count Duration labanimal Total 130,103 1d13h39m23s copy to 8 22s174ms cte 72 2m1s ddl 129,480 1d13h26m57s select 536 9m54s update 7 7s608ms postgres Total 35 45s282ms copy to 35 45s282ms Queries by host
Key values
- unknown Main host
- 130,096 Requests
- 1d13h39m16s (unknown)
- Main time consuming host
Queries by application
Key values
- unknown Main application
- 18,736 Requests
- 7h33m49s (unknown)
- Main time consuming application
Application Request type Count Duration _desktop_index.php_command_tasks_subcommand_select_tasks_zemm_p Total 2 2s865ms select 2 2s865ms _desktop_index.php_view_animal_name_on_view_animal_id_on_view_b Total 2 1s365ms select 2 1s365ms _desktop_index.php_zemm_produktiv_7_localhost_5432 Total 5 4s107ms cte 5 4s107ms _desktop_index.php_zemm_produktiv_8_localhost_5432 Total 100 1m50s cte 12 26s792ms select 88 1m24s expire_tasks:zemm_produktiv_8@h2940066.stratoserver.net:5432 Total 1 977ms update 1 977ms pg_dump Total 5 6s443ms copy to 5 6s443ms unknown Total 18,736 7h33m49s cte 10 10s792ms ddl 18,720 7h33m34s select 6 4s163ms Number of cancelled queries
Key values
- 0 per second Cancelled query Peak
- 2026-03-30 09:48:00 Date
Number of cancelled queries (5 minutes period)
NO DATASET
-
Top Queries
Histogram of query times
Key values
- 100 500-1000ms duration
Slowest individual queries
Rank Duration Query 1 7s857ms SELECT a.id, a.name, a."animalID", a.dummy_strain_info, a."birthDate", a.sex, tr.rfid FROM animals a LEFT OUTER JOIN cages c ON c.id = a."homeCage" LEFT OUTER JOIN ( SELECT max(id) AS id, maps_to FROM transponders WHERE extraction_date IS NULL GROUP BY maps_to) tr_sel ON tr_sel.maps_to = a.id LEFT OUTER JOIN transponders tr ON tr.id = tr_sel.id WHERE NOT (a.deleted) AND c.id = 12632 AND CASE WHEN user_is_tgm (a.owner, 10100194) THEN TRUE WHEN user_is_tgm (a.editor, 10100194) THEN TRUE WHEN user_is_tgm (a.tourist, 10100194) THEN TRUE ELSE FALSE END ORDER BY a.id;[ Date: 2026-03-30 17:31:35 - Database: zemm_produktiv_8 - User: labanimal - Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 - Bind query: yes ]
2 7s857ms CREATE SCHEMA IF NOT EXISTS observability;[ Date: 2026-03-30 17:32:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
3 7s857ms 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-03-30 17:32:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
4 7s857ms CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);[ Date: 2026-03-30 17:32:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
5 7s857ms CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);[ Date: 2026-03-30 17:32:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
6 7s857ms 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-03-30 17:32:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
7 7s857ms CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);[ Date: 2026-03-30 17:32:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
8 7s857ms CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);[ Date: 2026-03-30 17:32:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
9 7s857ms 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-03-30 17:32:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
10 7s857ms CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);[ Date: 2026-03-30 17:32:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
11 7s857ms 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-03-30 17:32:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
12 7s857ms 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-03-30 17:32:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
13 7s857ms 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-03-30 17:32:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
14 7s857ms 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-03-30 17:32:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
15 7s857ms CREATE SCHEMA IF NOT EXISTS observability;[ Date: 2026-03-30 17:33:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
16 7s857ms 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-03-30 17:33:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
17 7s857ms CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);[ Date: 2026-03-30 17:33:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
18 7s857ms CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);[ Date: 2026-03-30 17:33:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
19 7s857ms 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-03-30 17:33:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
20 7s857ms CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);[ Date: 2026-03-30 17:33: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 34m53s 1,440 545ms 7s857ms 1s453ms create table if not exists observability.phpfpm_counters ( id bigserial primary key, payload jsonb not null, collected_at timestamptz not null default now() );Times Reported Time consuming queries #1
Day Hour Count Duration Avg duration Mar 30 01 60 1m26s 1s434ms 02 60 28s358ms 472ms 03 60 58s672ms 977ms 04 60 58s672ms 977ms 05 60 58s672ms 977ms 06 60 58s672ms 977ms 07 60 58s672ms 977ms 08 60 49s561ms 826ms 09 60 1m40s 1s676ms 10 60 2m 2s2ms 11 60 39s318ms 655ms 12 60 38s836ms 647ms 13 60 41s162ms 686ms 14 60 1m2s 1s47ms 15 60 2m17s 2s288ms 16 60 41s821ms 697ms 17 60 36s198ms 603ms 18 60 4m3s 4s61ms 19 60 7m51s 7s857ms 20 60 1m43s 1s717ms 21 60 49s437ms 823ms 22 60 49s339ms 822ms 23 60 49s339ms 822ms 00 60 51s491ms 858ms [ User: labanimal - Total duration: 34m53s - Times executed: 1409 ]
-
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-03-30 19:05:02 Duration: 7s857ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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-03-30 19:34:01 Duration: 3s539ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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-03-30 19:35:01 Duration: 3s538ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
2 34m53s 1,440 545ms 7s857ms 1s453ms create table if not exists observability.db_top_queries ( id bigserial primary key, tenant_key text not null, fingerprint text, query text, mean_time_ms double precision, total_time_ms double precision, calls bigint, rows_returned bigint, collected_at timestamptz not null default now() );Times Reported Time consuming queries #2
Day Hour Count Duration Avg duration Mar 30 01 60 1m26s 1s434ms 02 60 28s358ms 472ms 03 60 58s672ms 977ms 04 60 58s672ms 977ms 05 60 58s672ms 977ms 06 60 58s672ms 977ms 07 60 58s672ms 977ms 08 60 49s561ms 826ms 09 60 1m40s 1s676ms 10 60 2m 2s2ms 11 60 39s318ms 655ms 12 60 38s836ms 647ms 13 60 41s162ms 686ms 14 60 1m2s 1s47ms 15 60 2m17s 2s288ms 16 60 41s821ms 697ms 17 60 36s198ms 603ms 18 60 4m3s 4s61ms 19 60 7m51s 7s857ms 20 60 1m43s 1s717ms 21 60 49s437ms 823ms 22 60 49s339ms 822ms 23 60 49s339ms 822ms 00 60 51s491ms 858ms [ User: labanimal - Total duration: 34m53s - Times executed: 1409 ]
-
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-03-30 19:05:02 Duration: 7s857ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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-03-30 19:34:01 Duration: 3s539ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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-03-30 19:35:01 Duration: 3s538ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
3 34m53s 1,440 545ms 7s857ms 1s453ms create index if not exists idx_db_top_queries_tenant on observability.db_top_queries (tenant_key, collected_at desc);Times Reported Time consuming queries #3
Day Hour Count Duration Avg duration Mar 30 01 60 1m26s 1s434ms 02 60 28s358ms 472ms 03 60 58s672ms 977ms 04 60 58s672ms 977ms 05 60 58s672ms 977ms 06 60 58s672ms 977ms 07 60 58s672ms 977ms 08 60 49s561ms 826ms 09 60 1m40s 1s676ms 10 60 2m 2s2ms 11 60 39s318ms 655ms 12 60 38s836ms 647ms 13 60 41s162ms 686ms 14 60 1m2s 1s47ms 15 60 2m17s 2s288ms 16 60 41s821ms 697ms 17 60 36s198ms 603ms 18 60 4m3s 4s61ms 19 60 7m51s 7s857ms 20 60 1m43s 1s717ms 21 60 49s437ms 823ms 22 60 49s339ms 822ms 23 60 49s339ms 822ms 00 60 51s491ms 858ms [ User: labanimal - Total duration: 34m53s - Times executed: 1409 ]
-
CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);
Date: 2026-03-30 19:05:02 Duration: 7s857ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);
Date: 2026-03-30 19:34:01 Duration: 3s539ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);
Date: 2026-03-30 19:35:01 Duration: 3s538ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
4 34m53s 1,440 545ms 7s857ms 1s453ms create index if not exists idx_metrics_timeseries_metric on observability.metrics_timeseries (metric_name);Times Reported Time consuming queries #4
Day Hour Count Duration Avg duration Mar 30 01 60 1m26s 1s434ms 02 60 28s358ms 472ms 03 60 58s672ms 977ms 04 60 58s672ms 977ms 05 60 58s672ms 977ms 06 60 58s672ms 977ms 07 60 58s672ms 977ms 08 60 49s561ms 826ms 09 60 1m40s 1s676ms 10 60 2m 2s2ms 11 60 39s318ms 655ms 12 60 38s836ms 647ms 13 60 41s162ms 686ms 14 60 1m2s 1s47ms 15 60 2m17s 2s288ms 16 60 41s821ms 697ms 17 60 36s198ms 603ms 18 60 4m3s 4s61ms 19 60 7m51s 7s857ms 20 60 1m43s 1s717ms 21 60 49s437ms 823ms 22 60 49s339ms 822ms 23 60 49s339ms 822ms 00 60 51s491ms 858ms [ User: labanimal - Total duration: 34m53s - Times executed: 1409 ]
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-03-30 19:05:02 Duration: 7s857ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-03-30 19:34:01 Duration: 3s539ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-03-30 19:35:01 Duration: 3s538ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
5 34m53s 1,440 545ms 7s857ms 1s453ms create index if not exists idx_metrics_timeseries_bucket on observability.metrics_timeseries (bucket_start);Times Reported Time consuming queries #5
Day Hour Count Duration Avg duration Mar 30 01 60 1m26s 1s434ms 02 60 28s358ms 472ms 03 60 58s672ms 977ms 04 60 58s672ms 977ms 05 60 58s672ms 977ms 06 60 58s672ms 977ms 07 60 58s672ms 977ms 08 60 49s561ms 826ms 09 60 1m40s 1s676ms 10 60 2m 2s2ms 11 60 39s318ms 655ms 12 60 38s836ms 647ms 13 60 41s162ms 686ms 14 60 1m2s 1s47ms 15 60 2m17s 2s288ms 16 60 41s821ms 697ms 17 60 36s198ms 603ms 18 60 4m3s 4s61ms 19 60 7m51s 7s857ms 20 60 1m43s 1s717ms 21 60 49s437ms 823ms 22 60 49s339ms 822ms 23 60 49s339ms 822ms 00 60 51s491ms 858ms [ User: labanimal - Total duration: 34m53s - Times executed: 1409 ]
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-03-30 19:05:02 Duration: 7s857ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-03-30 19:34:01 Duration: 3s539ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-03-30 19:35:01 Duration: 3s538ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
6 34m53s 1,440 545ms 7s857ms 1s453ms 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 #6
Day Hour Count Duration Avg duration Mar 30 01 60 1m26s 1s434ms 02 60 28s358ms 472ms 03 60 58s672ms 977ms 04 60 58s672ms 977ms 05 60 58s672ms 977ms 06 60 58s672ms 977ms 07 60 58s672ms 977ms 08 60 49s561ms 826ms 09 60 1m40s 1s676ms 10 60 2m 2s2ms 11 60 39s318ms 655ms 12 60 38s836ms 647ms 13 60 41s162ms 686ms 14 60 1m2s 1s47ms 15 60 2m17s 2s288ms 16 60 41s821ms 697ms 17 60 36s198ms 603ms 18 60 4m3s 4s61ms 19 60 7m51s 7s857ms 20 60 1m43s 1s717ms 21 60 49s437ms 823ms 22 60 49s339ms 822ms 23 60 49s339ms 822ms 00 60 51s491ms 858ms [ User: labanimal - Total duration: 34m53s - Times executed: 1409 ]
-
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-03-30 19:05:02 Duration: 7s857ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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-03-30 19:34:01 Duration: 3s539ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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-03-30 19:35:01 Duration: 3s538ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
7 34m53s 1,440 545ms 7s857ms 1s453ms create index if not exists idx_app_events_tenant on observability.app_events (tenant_key, occurred_at desc);Times Reported Time consuming queries #7
Day Hour Count Duration Avg duration Mar 30 01 60 1m26s 1s434ms 02 60 28s358ms 472ms 03 60 58s672ms 977ms 04 60 58s672ms 977ms 05 60 58s672ms 977ms 06 60 58s672ms 977ms 07 60 58s672ms 977ms 08 60 49s561ms 826ms 09 60 1m40s 1s676ms 10 60 2m 2s2ms 11 60 39s318ms 655ms 12 60 38s836ms 647ms 13 60 41s162ms 686ms 14 60 1m2s 1s47ms 15 60 2m17s 2s288ms 16 60 41s821ms 697ms 17 60 36s198ms 603ms 18 60 4m3s 4s61ms 19 60 7m51s 7s857ms 20 60 1m43s 1s717ms 21 60 49s437ms 823ms 22 60 49s339ms 822ms 23 60 49s339ms 822ms 00 60 51s491ms 858ms [ User: labanimal - Total duration: 34m53s - Times executed: 1409 ]
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-03-30 19:05:02 Duration: 7s857ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-03-30 19:34:01 Duration: 3s539ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-03-30 19:35:01 Duration: 3s538ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
8 34m53s 1,440 545ms 7s857ms 1s453ms 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 #8
Day Hour Count Duration Avg duration Mar 30 01 60 1m26s 1s434ms 02 60 28s358ms 472ms 03 60 58s672ms 977ms 04 60 58s672ms 977ms 05 60 58s672ms 977ms 06 60 58s672ms 977ms 07 60 58s672ms 977ms 08 60 49s561ms 826ms 09 60 1m40s 1s676ms 10 60 2m 2s2ms 11 60 39s318ms 655ms 12 60 38s836ms 647ms 13 60 41s162ms 686ms 14 60 1m2s 1s47ms 15 60 2m17s 2s288ms 16 60 41s821ms 697ms 17 60 36s198ms 603ms 18 60 4m3s 4s61ms 19 60 7m51s 7s857ms 20 60 1m43s 1s717ms 21 60 49s437ms 823ms 22 60 49s339ms 822ms 23 60 49s339ms 822ms 00 60 51s491ms 858ms [ User: labanimal - Total duration: 34m53s - Times executed: 1409 ]
-
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-03-30 19:05:02 Duration: 7s857ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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-03-30 19:34:01 Duration: 3s539ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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-03-30 19:35:01 Duration: 3s538ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
9 34m53s 1,440 545ms 7s857ms 1s453ms 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 #9
Day Hour Count Duration Avg duration Mar 30 01 60 1m26s 1s434ms 02 60 28s358ms 472ms 03 60 58s672ms 977ms 04 60 58s672ms 977ms 05 60 58s672ms 977ms 06 60 58s672ms 977ms 07 60 58s672ms 977ms 08 60 49s561ms 826ms 09 60 1m40s 1s676ms 10 60 2m 2s2ms 11 60 39s318ms 655ms 12 60 38s836ms 647ms 13 60 41s162ms 686ms 14 60 1m2s 1s47ms 15 60 2m17s 2s288ms 16 60 41s821ms 697ms 17 60 36s198ms 603ms 18 60 4m3s 4s61ms 19 60 7m51s 7s857ms 20 60 1m43s 1s717ms 21 60 49s437ms 823ms 22 60 49s339ms 822ms 23 60 49s339ms 822ms 00 60 51s491ms 858ms [ User: labanimal - Total duration: 34m53s - Times executed: 1409 ]
-
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-03-30 19:05:02 Duration: 7s857ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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-03-30 19:34:01 Duration: 3s539ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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-03-30 19:35:01 Duration: 3s538ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
10 34m53s 1,440 545ms 7s857ms 1s453ms 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 Mar 30 01 60 1m26s 1s434ms 02 60 28s358ms 472ms 03 60 58s672ms 977ms 04 60 58s672ms 977ms 05 60 58s672ms 977ms 06 60 58s672ms 977ms 07 60 58s672ms 977ms 08 60 49s561ms 826ms 09 60 1m40s 1s676ms 10 60 2m 2s2ms 11 60 39s318ms 655ms 12 60 38s836ms 647ms 13 60 41s162ms 686ms 14 60 1m2s 1s47ms 15 60 2m17s 2s288ms 16 60 41s821ms 697ms 17 60 36s198ms 603ms 18 60 4m3s 4s61ms 19 60 7m51s 7s857ms 20 60 1m43s 1s717ms 21 60 49s437ms 823ms 22 60 49s339ms 822ms 23 60 49s339ms 822ms 00 60 51s491ms 858ms [ User: labanimal - Total duration: 34m53s - Times executed: 1409 ]
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-03-30 19:05:02 Duration: 7s857ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-03-30 19:34:01 Duration: 3s539ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-03-30 19:35:01 Duration: 3s538ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
11 34m53s 1,440 545ms 7s857ms 1s453ms 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 #11
Day Hour Count Duration Avg duration Mar 30 01 60 1m26s 1s434ms 02 60 28s358ms 472ms 03 60 58s672ms 977ms 04 60 58s672ms 977ms 05 60 58s672ms 977ms 06 60 58s672ms 977ms 07 60 58s672ms 977ms 08 60 49s561ms 826ms 09 60 1m40s 1s676ms 10 60 2m 2s2ms 11 60 39s318ms 655ms 12 60 38s836ms 647ms 13 60 41s162ms 686ms 14 60 1m2s 1s47ms 15 60 2m17s 2s288ms 16 60 41s821ms 697ms 17 60 36s198ms 603ms 18 60 4m3s 4s61ms 19 60 7m51s 7s857ms 20 60 1m43s 1s717ms 21 60 49s437ms 823ms 22 60 49s339ms 822ms 23 60 49s339ms 822ms 00 60 51s491ms 858ms [ User: labanimal - Total duration: 34m53s - Times executed: 1409 ]
-
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-03-30 19:05:02 Duration: 7s857ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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-03-30 19:34:01 Duration: 3s539ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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-03-30 19:35:01 Duration: 3s538ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
12 34m53s 1,440 545ms 7s857ms 1s453ms 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 #12
Day Hour Count Duration Avg duration Mar 30 01 60 1m26s 1s434ms 02 60 28s358ms 472ms 03 60 58s672ms 977ms 04 60 58s672ms 977ms 05 60 58s672ms 977ms 06 60 58s672ms 977ms 07 60 58s672ms 977ms 08 60 49s561ms 826ms 09 60 1m40s 1s676ms 10 60 2m 2s2ms 11 60 39s318ms 655ms 12 60 38s836ms 647ms 13 60 41s162ms 686ms 14 60 1m2s 1s47ms 15 60 2m17s 2s288ms 16 60 41s821ms 697ms 17 60 36s198ms 603ms 18 60 4m3s 4s61ms 19 60 7m51s 7s857ms 20 60 1m43s 1s717ms 21 60 49s437ms 823ms 22 60 49s339ms 822ms 23 60 49s339ms 822ms 00 60 51s491ms 858ms [ User: labanimal - Total duration: 34m53s - Times executed: 1409 ]
-
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-03-30 19:05:02 Duration: 7s857ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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-03-30 19:34:01 Duration: 3s539ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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-03-30 19:35:01 Duration: 3s538ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
13 34m53s 1,440 545ms 7s857ms 1s453ms create schema if not exists observability;Times Reported Time consuming queries #13
Day Hour Count Duration Avg duration Mar 30 01 60 1m26s 1s434ms 02 60 28s358ms 472ms 03 60 58s672ms 977ms 04 60 58s672ms 977ms 05 60 58s672ms 977ms 06 60 58s672ms 977ms 07 60 58s672ms 977ms 08 60 49s561ms 826ms 09 60 1m40s 1s676ms 10 60 2m 2s2ms 11 60 39s318ms 655ms 12 60 38s836ms 647ms 13 60 41s162ms 686ms 14 60 1m2s 1s47ms 15 60 2m17s 2s288ms 16 60 41s821ms 697ms 17 60 36s198ms 603ms 18 60 4m3s 4s61ms 19 60 7m51s 7s857ms 20 60 1m43s 1s717ms 21 60 49s437ms 823ms 22 60 49s339ms 822ms 23 60 49s339ms 822ms 00 60 51s491ms 858ms [ User: labanimal - Total duration: 34m53s - Times executed: 1409 ]
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-03-30 19:05:02 Duration: 7s857ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-03-30 19:34:01 Duration: 3s539ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-03-30 19:35:01 Duration: 3s538ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
14 26s356ms 37 695ms 766ms 712ms 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 #14
Day Hour Count Duration Avg duration Mar 30 08 1 723ms 723ms 10 1 705ms 705ms 11 2 1s407ms 703ms 12 3 2s152ms 717ms 13 4 2s939ms 734ms 16 3 2s92ms 697ms 17 7 4s959ms 708ms 18 14 9s960ms 711ms 20 2 1s417ms 708ms [ User: labanimal - Total duration: 26s356ms - Times executed: 37 ]
[ Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 - Total duration: 25s643ms - Times executed: 36 ]
[ Application: _desktop_index.php_view_animal_name_on_view_animal_id_on_view_b - Total duration: 712ms - Times executed: 1 ]
-
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, 14) AS is_owner, user_is_tgm (animals_search_mview.editor, 14) AS is_editor, user_is_tgm (animals_search_mview.tourist, 14) 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-03-30 12:42:53 Duration: 766ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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, 14) AS is_owner, user_is_tgm (animals_search_mview.editor, 14) AS is_editor, user_is_tgm (animals_search_mview.tourist, 14) 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-03-30 12:42:55 Duration: 740ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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, 14) AS is_owner, user_is_tgm (animals_search_mview.editor, 14) AS is_editor, user_is_tgm (animals_search_mview.tourist, 14) 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-03-30 12:42:51 Duration: 736ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
15 24s503ms 11 2s175ms 2s298ms 2s227ms with damdam as ( select breedingid, string_agg(cast(dam as text), ?) as dam from breedingsdams inner join ( select id, owner, editor, tourist, "animalID", name, "dummy_strain_info", generation, "dummy_line_info", "dummy_backcross_info" from animals) as dam on dam.id = breedingsdams.dam and case when user_is_tgm (dam.owner, ?) then true when user_is_tgm (dam.editor, ?) then true when user_is_tgm (dam.tourist, ?) then true else false end group by breedingid ), siresire as ( select breedingid, string_agg(cast(sire as text), ?) as sire from breedingssires inner join ( select id, owner, editor, tourist, "animalID", name, "dummy_strain_info", generation, "dummy_line_info", "dummy_backcross_info" from animals) as sire on sire.id = breedingssires.sire and case when user_is_tgm (sire.owner, ?) then true when user_is_tgm (sire.editor, ?) then true when user_is_tgm (sire.tourist, ?) then true else false end group by breedingid ), cagess as ( select id, "cageName" from cages) ( select breedings.id, breedings.breeding_date, breedings.unbreeding_date, breedings.plug_date, cagess."cageName" as cage_name, breedings.deleted, damdam.dam, siresire.sire from damdam, siresire, cagess, breedings where breedings.deleted != true and cagess.id = breedings.cage and damdam.breedingid = breedings.id and siresire.breedingid = breedings.id group by breedings.id, cagess."cageName", breeding_date, unbreeding_date, plug_date, damdam.dam, siresire.sire order by breeding_date, plug_date);Times Reported Time consuming queries #15
Day Hour Count Duration Avg duration Mar 30 09 10 22s317ms 2s231ms 10 1 2s186ms 2s186ms [ User: labanimal - Total duration: 24s503ms - Times executed: 11 ]
[ Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 - Total duration: 24s503ms - Times executed: 11 ]
-
WITH damdam AS ( SELECT breedingid, string_agg(cast(dam as text), ';') AS dam FROM breedingsdams INNER JOIN ( SELECT id, owner, editor, tourist, "animalID", name, "dummy_strain_info", generation, "dummy_line_info", "dummy_backcross_info" FROM animals) AS dam ON dam.id = breedingsdams.dam AND CASE WHEN user_is_tgm (dam.owner, 10100116) THEN TRUE WHEN user_is_tgm (dam.editor, 10100116) THEN TRUE WHEN user_is_tgm (dam.tourist, 10100116) THEN TRUE ELSE FALSE END GROUP BY breedingid ), siresire AS ( SELECT breedingid, string_agg(cast(sire as text), ';') AS sire FROM breedingssires INNER JOIN ( select id, owner, editor, tourist, "animalID", name, "dummy_strain_info", generation, "dummy_line_info", "dummy_backcross_info" FROM animals) AS sire ON sire.id = breedingssires.sire AND CASE WHEN user_is_tgm (sire.owner, 10100116) THEN TRUE WHEN user_is_tgm (sire.editor, 10100116) THEN TRUE WHEN user_is_tgm (sire.tourist, 10100116) THEN TRUE ELSE FALSE END GROUP BY breedingid ), cagess AS ( select id, "cageName" FROM cages) ( SELECT breedings.id, breedings.breeding_date, breedings.unbreeding_date, breedings.plug_date, cagess."cageName" as cage_name, breedings.deleted, damdam.dam, siresire.sire FROM damdam, siresire, cagess, breedings WHERE breedings.deleted != true AND cagess.id = breedings.cage AND damdam.breedingid = breedings.id AND siresire.breedingid = breedings.id GROUP BY breedings.id, cagess."cageName", breeding_date, unbreeding_date, plug_date, damdam.dam, siresire.sire ORDER BY breeding_date, plug_date);
Date: 2026-03-30 08:28:58 Duration: 2s298ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
WITH damdam AS ( SELECT breedingid, string_agg(cast(dam as text), ';') AS dam FROM breedingsdams INNER JOIN ( SELECT id, owner, editor, tourist, "animalID", name, "dummy_strain_info", generation, "dummy_line_info", "dummy_backcross_info" FROM animals) AS dam ON dam.id = breedingsdams.dam AND CASE WHEN user_is_tgm (dam.owner, 10100116) THEN TRUE WHEN user_is_tgm (dam.editor, 10100116) THEN TRUE WHEN user_is_tgm (dam.tourist, 10100116) THEN TRUE ELSE FALSE END GROUP BY breedingid ), siresire AS ( SELECT breedingid, string_agg(cast(sire as text), ';') AS sire FROM breedingssires INNER JOIN ( select id, owner, editor, tourist, "animalID", name, "dummy_strain_info", generation, "dummy_line_info", "dummy_backcross_info" FROM animals) AS sire ON sire.id = breedingssires.sire AND CASE WHEN user_is_tgm (sire.owner, 10100116) THEN TRUE WHEN user_is_tgm (sire.editor, 10100116) THEN TRUE WHEN user_is_tgm (sire.tourist, 10100116) THEN TRUE ELSE FALSE END GROUP BY breedingid ), cagess AS ( select id, "cageName" FROM cages) ( SELECT breedings.id, breedings.breeding_date, breedings.unbreeding_date, breedings.plug_date, cagess."cageName" as cage_name, breedings.deleted, damdam.dam, siresire.sire FROM damdam, siresire, cagess, breedings WHERE breedings.deleted != true AND cagess.id = breedings.cage AND damdam.breedingid = breedings.id AND siresire.breedingid = breedings.id GROUP BY breedings.id, cagess."cageName", breeding_date, unbreeding_date, plug_date, damdam.dam, siresire.sire ORDER BY breeding_date, plug_date);
Date: 2026-03-30 08:34:44 Duration: 2s291ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
WITH damdam AS ( SELECT breedingid, string_agg(cast(dam as text), ';') AS dam FROM breedingsdams INNER JOIN ( SELECT id, owner, editor, tourist, "animalID", name, "dummy_strain_info", generation, "dummy_line_info", "dummy_backcross_info" FROM animals) AS dam ON dam.id = breedingsdams.dam AND CASE WHEN user_is_tgm (dam.owner, 10100116) THEN TRUE WHEN user_is_tgm (dam.editor, 10100116) THEN TRUE WHEN user_is_tgm (dam.tourist, 10100116) THEN TRUE ELSE FALSE END GROUP BY breedingid ), siresire AS ( SELECT breedingid, string_agg(cast(sire as text), ';') AS sire FROM breedingssires INNER JOIN ( select id, owner, editor, tourist, "animalID", name, "dummy_strain_info", generation, "dummy_line_info", "dummy_backcross_info" FROM animals) AS sire ON sire.id = breedingssires.sire AND CASE WHEN user_is_tgm (sire.owner, 10100116) THEN TRUE WHEN user_is_tgm (sire.editor, 10100116) THEN TRUE WHEN user_is_tgm (sire.tourist, 10100116) THEN TRUE ELSE FALSE END GROUP BY breedingid ), cagess AS ( select id, "cageName" FROM cages) ( SELECT breedings.id, breedings.breeding_date, breedings.unbreeding_date, breedings.plug_date, cagess."cageName" as cage_name, breedings.deleted, damdam.dam, siresire.sire FROM damdam, siresire, cagess, breedings WHERE breedings.deleted != true AND cagess.id = breedings.cage AND damdam.breedingid = breedings.id AND siresire.breedingid = breedings.id GROUP BY breedings.id, cagess."cageName", breeding_date, unbreeding_date, plug_date, damdam.dam, siresire.sire ORDER BY breeding_date, plug_date);
Date: 2026-03-30 08:29:05 Duration: 2s267ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
16 24s288ms 37 633ms 738ms 656ms 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 #16
Day Hour Count Duration Avg duration Mar 30 08 1 663ms 663ms 10 1 660ms 660ms 11 2 1s289ms 644ms 12 3 1s960ms 653ms 13 4 2s823ms 705ms 16 3 1s915ms 638ms 17 7 4s560ms 651ms 18 14 9s113ms 650ms 20 2 1s301ms 650ms [ User: labanimal - Total duration: 24s288ms - Times executed: 37 ]
[ Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 - Total duration: 23s635ms - Times executed: 36 ]
[ Application: _desktop_index.php_view_animal_name_on_view_animal_id_on_view_b - Total duration: 652ms - Times executed: 1 ]
-
SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 14) AS is_owner, user_is_tgm (animals_search_mview.editor, 14) AS is_editor, user_is_tgm (animals_search_mview.tourist, 14) 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-03-30 12:42:53 Duration: 738ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 14) AS is_owner, user_is_tgm (animals_search_mview.editor, 14) AS is_editor, user_is_tgm (animals_search_mview.tourist, 14) 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-03-30 12:42:55 Duration: 737ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 14) AS is_owner, user_is_tgm (animals_search_mview.editor, 14) AS is_editor, user_is_tgm (animals_search_mview.tourist, 14) 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-03-30 12:42:52 Duration: 714ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
17 14s298ms 4 3s536ms 3s647ms 3s574ms select * from litters_search_mview l where not (deleted) and case when user_is_tgm (l.owner, ?) then true when user_is_tgm (l.editor, ?) then true when user_is_tgm (l.tourist, ?) then true else false end order by bday desc, dam_name, sire_name;Times Reported Time consuming queries #17
Day Hour Count Duration Avg duration Mar 30 20 4 14s298ms 3s574ms [ User: labanimal - Total duration: 14s298ms - Times executed: 4 ]
[ Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 - Total duration: 14s298ms - Times executed: 4 ]
-
SELECT * FROM litters_search_mview l WHERE NOT (deleted) AND CASE WHEN user_is_tgm (l.owner, 64) THEN TRUE WHEN user_is_tgm (l.editor, 64) THEN TRUE WHEN user_is_tgm (l.tourist, 64) THEN TRUE ELSE FALSE END ORDER BY bday DESC, dam_name, sire_name;
Date: 2026-03-30 19:32:20 Duration: 3s647ms 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-03-30_010000.csv
-
SELECT * FROM litters_search_mview l WHERE NOT (deleted) AND CASE WHEN user_is_tgm (l.owner, 64) THEN TRUE WHEN user_is_tgm (l.editor, 64) THEN TRUE WHEN user_is_tgm (l.tourist, 64) THEN TRUE ELSE FALSE END ORDER BY bday DESC, dam_name, sire_name;
Date: 2026-03-30 19:33:30 Duration: 3s576ms 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-03-30_010000.csv
-
SELECT * FROM litters_search_mview l WHERE NOT (deleted) AND CASE WHEN user_is_tgm (l.owner, 64) THEN TRUE WHEN user_is_tgm (l.editor, 64) THEN TRUE WHEN user_is_tgm (l.tourist, 64) THEN TRUE ELSE FALSE END ORDER BY bday DESC, dam_name, sire_name;
Date: 2026-03-30 19:33:34 Duration: 3s539ms 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-03-30_010000.csv
18 7s857ms 1 7s857ms 7s857ms 7s857ms select a.id, a.name, a."animalID", a.dummy_strain_info, a."birthDate", a.sex, tr.rfid from animals a left outer join cages c on c.id = a."homeCage" left outer join ( select max(id) as id, maps_to from transponders where extraction_date is null group by maps_to) tr_sel on tr_sel.maps_to = a.id left outer join transponders tr on tr.id = tr_sel.id where not (a.deleted) and c.id = ? and case when user_is_tgm (a.owner, ?) then true when user_is_tgm (a.editor, ?) then true when user_is_tgm (a.tourist, ?) then true else false end order by a.id;Times Reported Time consuming queries #18
Day Hour Count Duration Avg duration Mar 30 18 1 7s857ms 7s857ms [ User: labanimal - Total duration: 7s857ms - Times executed: 1 ]
[ Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 - Total duration: 7s857ms - Times executed: 1 ]
-
SELECT a.id, a.name, a."animalID", a.dummy_strain_info, a."birthDate", a.sex, tr.rfid FROM animals a LEFT OUTER JOIN cages c ON c.id = a."homeCage" LEFT OUTER JOIN ( SELECT max(id) AS id, maps_to FROM transponders WHERE extraction_date IS NULL GROUP BY maps_to) tr_sel ON tr_sel.maps_to = a.id LEFT OUTER JOIN transponders tr ON tr.id = tr_sel.id WHERE NOT (a.deleted) AND c.id = 12632 AND CASE WHEN user_is_tgm (a.owner, 10100194) THEN TRUE WHEN user_is_tgm (a.editor, 10100194) THEN TRUE WHEN user_is_tgm (a.tourist, 10100194) THEN TRUE ELSE FALSE END ORDER BY a.id;
Date: 2026-03-30 17:31:35 Duration: 7s857ms 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-03-30_010000.csv
19 7s115ms 2 3s538ms 3s576ms 3s557ms select * from litters_search_mview l where not (deleted) and case when user_is_tgm (l.owner, ?) then true when user_is_tgm (l.editor, ?) then true when user_is_tgm (l.tourist, ?) then true else false end and (offspring - case when male_wean is null then ? else male_wean end - case when female_wean is null then ? else female_wean end - case when male_dead is null then ? else male_dead end - case when female_dead is null then ? else female_dead end - case when female_deceased is null then ? else female_deceased end - case when male_deceased is null then ? else male_deceased end) <= ? order by bday desc, dam_name, sire_name;Times Reported Time consuming queries #19
Day Hour Count Duration Avg duration Mar 30 20 2 7s115ms 3s557ms [ User: labanimal - Total duration: 7s115ms - Times executed: 2 ]
[ Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 - Total duration: 7s115ms - Times executed: 2 ]
-
SELECT * FROM litters_search_mview l WHERE NOT (deleted) AND CASE WHEN user_is_tgm (l.owner, 64) THEN TRUE WHEN user_is_tgm (l.editor, 64) THEN TRUE WHEN user_is_tgm (l.tourist, 64) THEN TRUE ELSE FALSE END AND (offspring - CASE WHEN male_wean IS NULL THEN 0 ELSE male_wean END - CASE WHEN female_wean IS NULL THEN 0 ELSE female_wean END - CASE WHEN male_dead IS NULL THEN 0 ELSE male_dead END - CASE WHEN female_dead IS NULL THEN 0 ELSE female_dead END - CASE WHEN female_deceased IS NULL THEN 0 ELSE female_deceased END - CASE WHEN male_deceased IS NULL THEN 0 ELSE male_deceased END) <= 0 ORDER BY bday DESC, dam_name, sire_name;
Date: 2026-03-30 19:34:22 Duration: 3s576ms 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-03-30_010000.csv
-
SELECT * FROM litters_search_mview l WHERE NOT (deleted) AND CASE WHEN user_is_tgm (l.owner, 64) THEN TRUE WHEN user_is_tgm (l.editor, 64) THEN TRUE WHEN user_is_tgm (l.tourist, 64) THEN TRUE ELSE FALSE END AND (offspring - CASE WHEN male_wean IS NULL THEN 0 ELSE male_wean END - CASE WHEN female_wean IS NULL THEN 0 ELSE female_wean END - CASE WHEN male_dead IS NULL THEN 0 ELSE male_dead END - CASE WHEN female_dead IS NULL THEN 0 ELSE female_dead END - CASE WHEN female_deceased IS NULL THEN 0 ELSE female_deceased END - CASE WHEN male_deceased IS NULL THEN 0 ELSE male_deceased END) <= 0 ORDER BY bday DESC, dam_name, sire_name;
Date: 2026-03-30 19:34:26 Duration: 3s538ms 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-03-30_010000.csv
20 6s395ms 6 809ms 2s288ms 1s65ms with damdam as ( select breedingid, string_agg(cast(dam as text), ?) as dam from breedingsdams inner join ( select id, owner, editor, tourist, "animalID", name, "dummy_strain_info", generation, "dummy_line_info", "dummy_backcross_info" from animals) as dam on dam.id = breedingsdams.dam and case when user_is_tgm (dam.owner, ?) then true when user_is_tgm (dam.editor, ?) then true when user_is_tgm (dam.tourist, ?) then true else false end group by breedingid ), siresire as ( select breedingid, string_agg(cast(sire as text), ?) as sire from breedingssires inner join ( select id, owner, editor, tourist, "animalID", name, "dummy_strain_info", generation, "dummy_line_info", "dummy_backcross_info" from animals) as sire on sire.id = breedingssires.sire and case when user_is_tgm (sire.owner, ?) then true when user_is_tgm (sire.editor, ?) then true when user_is_tgm (sire.tourist, ?) then true else false end group by breedingid ), cagess as ( select id, "cageName" from cages) ( select breedings.id, breedings.breeding_date, breedings.unbreeding_date, breedings.plug_date, cagess."cageName" as cage_name, breedings.deleted, damdam.dam, siresire.sire from damdam, siresire, cagess, breedings where breedings.deleted != true and cagess.id = breedings.cage and damdam.breedingid = breedings.id and siresire.breedingid = breedings.id and breedings."unbreeding_date" is null group by breedings.id, cagess."cageName", breeding_date, unbreeding_date, plug_date, damdam.dam, siresire.sire order by breeding_date, plug_date);Times Reported Time consuming queries #20
Day Hour Count Duration Avg duration Mar 30 14 1 2s288ms 2s288ms 20 3 2s474ms 824ms 21 2 1s632ms 816ms [ User: labanimal - Total duration: 6s395ms - Times executed: 6 ]
[ Application: _desktop_index.php_zemm_produktiv_7_localhost_5432 - Total duration: 4s107ms - Times executed: 5 ]
[ Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 - Total duration: 2s288ms - Times executed: 1 ]
-
WITH damdam AS ( SELECT breedingid, string_agg(cast(dam as text), ';') AS dam FROM breedingsdams INNER JOIN ( SELECT id, owner, editor, tourist, "animalID", name, "dummy_strain_info", generation, "dummy_line_info", "dummy_backcross_info" FROM animals) AS dam ON dam.id = breedingsdams.dam AND CASE WHEN user_is_tgm (dam.owner, 10100003) THEN TRUE WHEN user_is_tgm (dam.editor, 10100003) THEN TRUE WHEN user_is_tgm (dam.tourist, 10100003) THEN TRUE ELSE FALSE END GROUP BY breedingid ), siresire AS ( SELECT breedingid, string_agg(cast(sire as text), ';') AS sire FROM breedingssires INNER JOIN ( select id, owner, editor, tourist, "animalID", name, "dummy_strain_info", generation, "dummy_line_info", "dummy_backcross_info" FROM animals) AS sire ON sire.id = breedingssires.sire AND CASE WHEN user_is_tgm (sire.owner, 10100003) THEN TRUE WHEN user_is_tgm (sire.editor, 10100003) THEN TRUE WHEN user_is_tgm (sire.tourist, 10100003) THEN TRUE ELSE FALSE END GROUP BY breedingid ), cagess AS ( select id, "cageName" FROM cages) ( SELECT breedings.id, breedings.breeding_date, breedings.unbreeding_date, breedings.plug_date, cagess."cageName" as cage_name, breedings.deleted, damdam.dam, siresire.sire FROM damdam, siresire, cagess, breedings WHERE breedings.deleted != true AND cagess.id = breedings.cage AND damdam.breedingid = breedings.id AND siresire.breedingid = breedings.id AND breedings."unbreeding_date" IS NULL GROUP BY breedings.id, cagess."cageName", breeding_date, unbreeding_date, plug_date, damdam.dam, siresire.sire ORDER BY breeding_date, plug_date);
Date: 2026-03-30 13:47:38 Duration: 2s288ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
WITH damdam AS ( SELECT breedingid, string_agg(cast(dam as text), ';') AS dam FROM breedingsdams INNER JOIN ( SELECT id, owner, editor, tourist, "animalID", name, "dummy_strain_info", generation, "dummy_line_info", "dummy_backcross_info" FROM animals) AS dam ON dam.id = breedingsdams.dam AND CASE WHEN user_is_tgm (dam.owner, 1) THEN TRUE WHEN user_is_tgm (dam.editor, 1) THEN TRUE WHEN user_is_tgm (dam.tourist, 1) THEN TRUE ELSE FALSE END GROUP BY breedingid ), siresire AS ( SELECT breedingid, string_agg(cast(sire as text), ';') AS sire FROM breedingssires INNER JOIN ( select id, owner, editor, tourist, "animalID", name, "dummy_strain_info", generation, "dummy_line_info", "dummy_backcross_info" FROM animals) AS sire ON sire.id = breedingssires.sire AND CASE WHEN user_is_tgm (sire.owner, 1) THEN TRUE WHEN user_is_tgm (sire.editor, 1) THEN TRUE WHEN user_is_tgm (sire.tourist, 1) THEN TRUE ELSE FALSE END GROUP BY breedingid ), cagess AS ( select id, "cageName" FROM cages) ( SELECT breedings.id, breedings.breeding_date, breedings.unbreeding_date, breedings.plug_date, cagess."cageName" as cage_name, breedings.deleted, damdam.dam, siresire.sire FROM damdam, siresire, cagess, breedings WHERE breedings.deleted != true AND cagess.id = breedings.cage AND damdam.breedingid = breedings.id AND siresire.breedingid = breedings.id AND breedings."unbreeding_date" IS NULL GROUP BY breedings.id, cagess."cageName", breeding_date, unbreeding_date, plug_date, damdam.dam, siresire.sire ORDER BY breeding_date, plug_date);
Date: 2026-03-30 19:35:08 Duration: 833ms Database: zemm_produktiv_7 User: labanimal Application: _desktop_index.php_zemm_produktiv_7_localhost_5432 Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
WITH damdam AS ( SELECT breedingid, string_agg(cast(dam as text), ';') AS dam FROM breedingsdams INNER JOIN ( SELECT id, owner, editor, tourist, "animalID", name, "dummy_strain_info", generation, "dummy_line_info", "dummy_backcross_info" FROM animals) AS dam ON dam.id = breedingsdams.dam AND CASE WHEN user_is_tgm (dam.owner, 1) THEN TRUE WHEN user_is_tgm (dam.editor, 1) THEN TRUE WHEN user_is_tgm (dam.tourist, 1) THEN TRUE ELSE FALSE END GROUP BY breedingid ), siresire AS ( SELECT breedingid, string_agg(cast(sire as text), ';') AS sire FROM breedingssires INNER JOIN ( select id, owner, editor, tourist, "animalID", name, "dummy_strain_info", generation, "dummy_line_info", "dummy_backcross_info" FROM animals) AS sire ON sire.id = breedingssires.sire AND CASE WHEN user_is_tgm (sire.owner, 1) THEN TRUE WHEN user_is_tgm (sire.editor, 1) THEN TRUE WHEN user_is_tgm (sire.tourist, 1) THEN TRUE ELSE FALSE END GROUP BY breedingid ), cagess AS ( select id, "cageName" FROM cages) ( SELECT breedings.id, breedings.breeding_date, breedings.unbreeding_date, breedings.plug_date, cagess."cageName" as cage_name, breedings.deleted, damdam.dam, siresire.sire FROM damdam, siresire, cagess, breedings WHERE breedings.deleted != true AND cagess.id = breedings.cage AND damdam.breedingid = breedings.id AND siresire.breedingid = breedings.id AND breedings."unbreeding_date" IS NULL GROUP BY breedings.id, cagess."cageName", breeding_date, unbreeding_date, plug_date, damdam.dam, siresire.sire ORDER BY breeding_date, plug_date);
Date: 2026-03-30 19:26:21 Duration: 827ms Database: zemm_produktiv_7 User: labanimal Application: _desktop_index.php_zemm_produktiv_7_localhost_5432 Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
Most frequent queries (N)
Rank Times executed Total duration Min duration Max duration Avg duration Query 1 1,440 34m53s 545ms 7s857ms 1s453ms create table if not exists observability.phpfpm_counters ( id bigserial primary key, payload jsonb not null, collected_at timestamptz not null default now() );Times Reported Time consuming queries #1
Day Hour Count Duration Avg duration Mar 30 01 60 1m26s 1s434ms 02 60 28s358ms 472ms 03 60 58s672ms 977ms 04 60 58s672ms 977ms 05 60 58s672ms 977ms 06 60 58s672ms 977ms 07 60 58s672ms 977ms 08 60 49s561ms 826ms 09 60 1m40s 1s676ms 10 60 2m 2s2ms 11 60 39s318ms 655ms 12 60 38s836ms 647ms 13 60 41s162ms 686ms 14 60 1m2s 1s47ms 15 60 2m17s 2s288ms 16 60 41s821ms 697ms 17 60 36s198ms 603ms 18 60 4m3s 4s61ms 19 60 7m51s 7s857ms 20 60 1m43s 1s717ms 21 60 49s437ms 823ms 22 60 49s339ms 822ms 23 60 49s339ms 822ms 00 60 51s491ms 858ms [ User: labanimal - Total duration: 34m53s - Times executed: 1409 ]
-
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-03-30 19:05:02 Duration: 7s857ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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-03-30 19:34:01 Duration: 3s539ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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-03-30 19:35:01 Duration: 3s538ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
2 1,440 34m53s 545ms 7s857ms 1s453ms create table if not exists observability.db_top_queries ( id bigserial primary key, tenant_key text not null, fingerprint text, query text, mean_time_ms double precision, total_time_ms double precision, calls bigint, rows_returned bigint, collected_at timestamptz not null default now() );Times Reported Time consuming queries #2
Day Hour Count Duration Avg duration Mar 30 01 60 1m26s 1s434ms 02 60 28s358ms 472ms 03 60 58s672ms 977ms 04 60 58s672ms 977ms 05 60 58s672ms 977ms 06 60 58s672ms 977ms 07 60 58s672ms 977ms 08 60 49s561ms 826ms 09 60 1m40s 1s676ms 10 60 2m 2s2ms 11 60 39s318ms 655ms 12 60 38s836ms 647ms 13 60 41s162ms 686ms 14 60 1m2s 1s47ms 15 60 2m17s 2s288ms 16 60 41s821ms 697ms 17 60 36s198ms 603ms 18 60 4m3s 4s61ms 19 60 7m51s 7s857ms 20 60 1m43s 1s717ms 21 60 49s437ms 823ms 22 60 49s339ms 822ms 23 60 49s339ms 822ms 00 60 51s491ms 858ms [ User: labanimal - Total duration: 34m53s - Times executed: 1409 ]
-
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-03-30 19:05:02 Duration: 7s857ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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-03-30 19:34:01 Duration: 3s539ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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-03-30 19:35:01 Duration: 3s538ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
3 1,440 34m53s 545ms 7s857ms 1s453ms create index if not exists idx_db_top_queries_tenant on observability.db_top_queries (tenant_key, collected_at desc);Times Reported Time consuming queries #3
Day Hour Count Duration Avg duration Mar 30 01 60 1m26s 1s434ms 02 60 28s358ms 472ms 03 60 58s672ms 977ms 04 60 58s672ms 977ms 05 60 58s672ms 977ms 06 60 58s672ms 977ms 07 60 58s672ms 977ms 08 60 49s561ms 826ms 09 60 1m40s 1s676ms 10 60 2m 2s2ms 11 60 39s318ms 655ms 12 60 38s836ms 647ms 13 60 41s162ms 686ms 14 60 1m2s 1s47ms 15 60 2m17s 2s288ms 16 60 41s821ms 697ms 17 60 36s198ms 603ms 18 60 4m3s 4s61ms 19 60 7m51s 7s857ms 20 60 1m43s 1s717ms 21 60 49s437ms 823ms 22 60 49s339ms 822ms 23 60 49s339ms 822ms 00 60 51s491ms 858ms [ User: labanimal - Total duration: 34m53s - Times executed: 1409 ]
-
CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);
Date: 2026-03-30 19:05:02 Duration: 7s857ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);
Date: 2026-03-30 19:34:01 Duration: 3s539ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);
Date: 2026-03-30 19:35:01 Duration: 3s538ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
4 1,440 34m53s 545ms 7s857ms 1s453ms create index if not exists idx_metrics_timeseries_metric on observability.metrics_timeseries (metric_name);Times Reported Time consuming queries #4
Day Hour Count Duration Avg duration Mar 30 01 60 1m26s 1s434ms 02 60 28s358ms 472ms 03 60 58s672ms 977ms 04 60 58s672ms 977ms 05 60 58s672ms 977ms 06 60 58s672ms 977ms 07 60 58s672ms 977ms 08 60 49s561ms 826ms 09 60 1m40s 1s676ms 10 60 2m 2s2ms 11 60 39s318ms 655ms 12 60 38s836ms 647ms 13 60 41s162ms 686ms 14 60 1m2s 1s47ms 15 60 2m17s 2s288ms 16 60 41s821ms 697ms 17 60 36s198ms 603ms 18 60 4m3s 4s61ms 19 60 7m51s 7s857ms 20 60 1m43s 1s717ms 21 60 49s437ms 823ms 22 60 49s339ms 822ms 23 60 49s339ms 822ms 00 60 51s491ms 858ms [ User: labanimal - Total duration: 34m53s - Times executed: 1409 ]
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-03-30 19:05:02 Duration: 7s857ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-03-30 19:34:01 Duration: 3s539ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-03-30 19:35:01 Duration: 3s538ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
5 1,440 34m53s 545ms 7s857ms 1s453ms create index if not exists idx_metrics_timeseries_bucket on observability.metrics_timeseries (bucket_start);Times Reported Time consuming queries #5
Day Hour Count Duration Avg duration Mar 30 01 60 1m26s 1s434ms 02 60 28s358ms 472ms 03 60 58s672ms 977ms 04 60 58s672ms 977ms 05 60 58s672ms 977ms 06 60 58s672ms 977ms 07 60 58s672ms 977ms 08 60 49s561ms 826ms 09 60 1m40s 1s676ms 10 60 2m 2s2ms 11 60 39s318ms 655ms 12 60 38s836ms 647ms 13 60 41s162ms 686ms 14 60 1m2s 1s47ms 15 60 2m17s 2s288ms 16 60 41s821ms 697ms 17 60 36s198ms 603ms 18 60 4m3s 4s61ms 19 60 7m51s 7s857ms 20 60 1m43s 1s717ms 21 60 49s437ms 823ms 22 60 49s339ms 822ms 23 60 49s339ms 822ms 00 60 51s491ms 858ms [ User: labanimal - Total duration: 34m53s - Times executed: 1409 ]
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-03-30 19:05:02 Duration: 7s857ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-03-30 19:34:01 Duration: 3s539ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-03-30 19:35:01 Duration: 3s538ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
6 1,440 34m53s 545ms 7s857ms 1s453ms 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 #6
Day Hour Count Duration Avg duration Mar 30 01 60 1m26s 1s434ms 02 60 28s358ms 472ms 03 60 58s672ms 977ms 04 60 58s672ms 977ms 05 60 58s672ms 977ms 06 60 58s672ms 977ms 07 60 58s672ms 977ms 08 60 49s561ms 826ms 09 60 1m40s 1s676ms 10 60 2m 2s2ms 11 60 39s318ms 655ms 12 60 38s836ms 647ms 13 60 41s162ms 686ms 14 60 1m2s 1s47ms 15 60 2m17s 2s288ms 16 60 41s821ms 697ms 17 60 36s198ms 603ms 18 60 4m3s 4s61ms 19 60 7m51s 7s857ms 20 60 1m43s 1s717ms 21 60 49s437ms 823ms 22 60 49s339ms 822ms 23 60 49s339ms 822ms 00 60 51s491ms 858ms [ User: labanimal - Total duration: 34m53s - Times executed: 1409 ]
-
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-03-30 19:05:02 Duration: 7s857ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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-03-30 19:34:01 Duration: 3s539ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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-03-30 19:35:01 Duration: 3s538ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
7 1,440 34m53s 545ms 7s857ms 1s453ms create index if not exists idx_app_events_tenant on observability.app_events (tenant_key, occurred_at desc);Times Reported Time consuming queries #7
Day Hour Count Duration Avg duration Mar 30 01 60 1m26s 1s434ms 02 60 28s358ms 472ms 03 60 58s672ms 977ms 04 60 58s672ms 977ms 05 60 58s672ms 977ms 06 60 58s672ms 977ms 07 60 58s672ms 977ms 08 60 49s561ms 826ms 09 60 1m40s 1s676ms 10 60 2m 2s2ms 11 60 39s318ms 655ms 12 60 38s836ms 647ms 13 60 41s162ms 686ms 14 60 1m2s 1s47ms 15 60 2m17s 2s288ms 16 60 41s821ms 697ms 17 60 36s198ms 603ms 18 60 4m3s 4s61ms 19 60 7m51s 7s857ms 20 60 1m43s 1s717ms 21 60 49s437ms 823ms 22 60 49s339ms 822ms 23 60 49s339ms 822ms 00 60 51s491ms 858ms [ User: labanimal - Total duration: 34m53s - Times executed: 1409 ]
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-03-30 19:05:02 Duration: 7s857ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-03-30 19:34:01 Duration: 3s539ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-03-30 19:35:01 Duration: 3s538ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
8 1,440 34m53s 545ms 7s857ms 1s453ms 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 #8
Day Hour Count Duration Avg duration Mar 30 01 60 1m26s 1s434ms 02 60 28s358ms 472ms 03 60 58s672ms 977ms 04 60 58s672ms 977ms 05 60 58s672ms 977ms 06 60 58s672ms 977ms 07 60 58s672ms 977ms 08 60 49s561ms 826ms 09 60 1m40s 1s676ms 10 60 2m 2s2ms 11 60 39s318ms 655ms 12 60 38s836ms 647ms 13 60 41s162ms 686ms 14 60 1m2s 1s47ms 15 60 2m17s 2s288ms 16 60 41s821ms 697ms 17 60 36s198ms 603ms 18 60 4m3s 4s61ms 19 60 7m51s 7s857ms 20 60 1m43s 1s717ms 21 60 49s437ms 823ms 22 60 49s339ms 822ms 23 60 49s339ms 822ms 00 60 51s491ms 858ms [ User: labanimal - Total duration: 34m53s - Times executed: 1409 ]
-
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-03-30 19:05:02 Duration: 7s857ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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-03-30 19:34:01 Duration: 3s539ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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-03-30 19:35:01 Duration: 3s538ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
9 1,440 34m53s 545ms 7s857ms 1s453ms 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 #9
Day Hour Count Duration Avg duration Mar 30 01 60 1m26s 1s434ms 02 60 28s358ms 472ms 03 60 58s672ms 977ms 04 60 58s672ms 977ms 05 60 58s672ms 977ms 06 60 58s672ms 977ms 07 60 58s672ms 977ms 08 60 49s561ms 826ms 09 60 1m40s 1s676ms 10 60 2m 2s2ms 11 60 39s318ms 655ms 12 60 38s836ms 647ms 13 60 41s162ms 686ms 14 60 1m2s 1s47ms 15 60 2m17s 2s288ms 16 60 41s821ms 697ms 17 60 36s198ms 603ms 18 60 4m3s 4s61ms 19 60 7m51s 7s857ms 20 60 1m43s 1s717ms 21 60 49s437ms 823ms 22 60 49s339ms 822ms 23 60 49s339ms 822ms 00 60 51s491ms 858ms [ User: labanimal - Total duration: 34m53s - Times executed: 1409 ]
-
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-03-30 19:05:02 Duration: 7s857ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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-03-30 19:34:01 Duration: 3s539ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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-03-30 19:35:01 Duration: 3s538ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
10 1,440 34m53s 545ms 7s857ms 1s453ms 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 Mar 30 01 60 1m26s 1s434ms 02 60 28s358ms 472ms 03 60 58s672ms 977ms 04 60 58s672ms 977ms 05 60 58s672ms 977ms 06 60 58s672ms 977ms 07 60 58s672ms 977ms 08 60 49s561ms 826ms 09 60 1m40s 1s676ms 10 60 2m 2s2ms 11 60 39s318ms 655ms 12 60 38s836ms 647ms 13 60 41s162ms 686ms 14 60 1m2s 1s47ms 15 60 2m17s 2s288ms 16 60 41s821ms 697ms 17 60 36s198ms 603ms 18 60 4m3s 4s61ms 19 60 7m51s 7s857ms 20 60 1m43s 1s717ms 21 60 49s437ms 823ms 22 60 49s339ms 822ms 23 60 49s339ms 822ms 00 60 51s491ms 858ms [ User: labanimal - Total duration: 34m53s - Times executed: 1409 ]
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-03-30 19:05:02 Duration: 7s857ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-03-30 19:34:01 Duration: 3s539ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-03-30 19:35:01 Duration: 3s538ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
11 1,440 34m53s 545ms 7s857ms 1s453ms 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 #11
Day Hour Count Duration Avg duration Mar 30 01 60 1m26s 1s434ms 02 60 28s358ms 472ms 03 60 58s672ms 977ms 04 60 58s672ms 977ms 05 60 58s672ms 977ms 06 60 58s672ms 977ms 07 60 58s672ms 977ms 08 60 49s561ms 826ms 09 60 1m40s 1s676ms 10 60 2m 2s2ms 11 60 39s318ms 655ms 12 60 38s836ms 647ms 13 60 41s162ms 686ms 14 60 1m2s 1s47ms 15 60 2m17s 2s288ms 16 60 41s821ms 697ms 17 60 36s198ms 603ms 18 60 4m3s 4s61ms 19 60 7m51s 7s857ms 20 60 1m43s 1s717ms 21 60 49s437ms 823ms 22 60 49s339ms 822ms 23 60 49s339ms 822ms 00 60 51s491ms 858ms [ User: labanimal - Total duration: 34m53s - Times executed: 1409 ]
-
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-03-30 19:05:02 Duration: 7s857ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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-03-30 19:34:01 Duration: 3s539ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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-03-30 19:35:01 Duration: 3s538ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
12 1,440 34m53s 545ms 7s857ms 1s453ms 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 #12
Day Hour Count Duration Avg duration Mar 30 01 60 1m26s 1s434ms 02 60 28s358ms 472ms 03 60 58s672ms 977ms 04 60 58s672ms 977ms 05 60 58s672ms 977ms 06 60 58s672ms 977ms 07 60 58s672ms 977ms 08 60 49s561ms 826ms 09 60 1m40s 1s676ms 10 60 2m 2s2ms 11 60 39s318ms 655ms 12 60 38s836ms 647ms 13 60 41s162ms 686ms 14 60 1m2s 1s47ms 15 60 2m17s 2s288ms 16 60 41s821ms 697ms 17 60 36s198ms 603ms 18 60 4m3s 4s61ms 19 60 7m51s 7s857ms 20 60 1m43s 1s717ms 21 60 49s437ms 823ms 22 60 49s339ms 822ms 23 60 49s339ms 822ms 00 60 51s491ms 858ms [ User: labanimal - Total duration: 34m53s - Times executed: 1409 ]
-
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-03-30 19:05:02 Duration: 7s857ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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-03-30 19:34:01 Duration: 3s539ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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-03-30 19:35:01 Duration: 3s538ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
13 1,440 34m53s 545ms 7s857ms 1s453ms create schema if not exists observability;Times Reported Time consuming queries #13
Day Hour Count Duration Avg duration Mar 30 01 60 1m26s 1s434ms 02 60 28s358ms 472ms 03 60 58s672ms 977ms 04 60 58s672ms 977ms 05 60 58s672ms 977ms 06 60 58s672ms 977ms 07 60 58s672ms 977ms 08 60 49s561ms 826ms 09 60 1m40s 1s676ms 10 60 2m 2s2ms 11 60 39s318ms 655ms 12 60 38s836ms 647ms 13 60 41s162ms 686ms 14 60 1m2s 1s47ms 15 60 2m17s 2s288ms 16 60 41s821ms 697ms 17 60 36s198ms 603ms 18 60 4m3s 4s61ms 19 60 7m51s 7s857ms 20 60 1m43s 1s717ms 21 60 49s437ms 823ms 22 60 49s339ms 822ms 23 60 49s339ms 822ms 00 60 51s491ms 858ms [ User: labanimal - Total duration: 34m53s - Times executed: 1409 ]
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-03-30 19:05:02 Duration: 7s857ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-03-30 19:34:01 Duration: 3s539ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-03-30 19:35:01 Duration: 3s538ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
14 37 26s356ms 695ms 766ms 712ms 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 #14
Day Hour Count Duration Avg duration Mar 30 08 1 723ms 723ms 10 1 705ms 705ms 11 2 1s407ms 703ms 12 3 2s152ms 717ms 13 4 2s939ms 734ms 16 3 2s92ms 697ms 17 7 4s959ms 708ms 18 14 9s960ms 711ms 20 2 1s417ms 708ms [ User: labanimal - Total duration: 26s356ms - Times executed: 37 ]
[ Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 - Total duration: 25s643ms - Times executed: 36 ]
[ Application: _desktop_index.php_view_animal_name_on_view_animal_id_on_view_b - Total duration: 712ms - Times executed: 1 ]
-
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, 14) AS is_owner, user_is_tgm (animals_search_mview.editor, 14) AS is_editor, user_is_tgm (animals_search_mview.tourist, 14) 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-03-30 12:42:53 Duration: 766ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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, 14) AS is_owner, user_is_tgm (animals_search_mview.editor, 14) AS is_editor, user_is_tgm (animals_search_mview.tourist, 14) 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-03-30 12:42:55 Duration: 740ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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, 14) AS is_owner, user_is_tgm (animals_search_mview.editor, 14) AS is_editor, user_is_tgm (animals_search_mview.tourist, 14) 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-03-30 12:42:51 Duration: 736ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
15 37 24s288ms 633ms 738ms 656ms 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 #15
Day Hour Count Duration Avg duration Mar 30 08 1 663ms 663ms 10 1 660ms 660ms 11 2 1s289ms 644ms 12 3 1s960ms 653ms 13 4 2s823ms 705ms 16 3 1s915ms 638ms 17 7 4s560ms 651ms 18 14 9s113ms 650ms 20 2 1s301ms 650ms [ User: labanimal - Total duration: 24s288ms - Times executed: 37 ]
[ Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 - Total duration: 23s635ms - Times executed: 36 ]
[ Application: _desktop_index.php_view_animal_name_on_view_animal_id_on_view_b - Total duration: 652ms - Times executed: 1 ]
-
SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 14) AS is_owner, user_is_tgm (animals_search_mview.editor, 14) AS is_editor, user_is_tgm (animals_search_mview.tourist, 14) 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-03-30 12:42:53 Duration: 738ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 14) AS is_owner, user_is_tgm (animals_search_mview.editor, 14) AS is_editor, user_is_tgm (animals_search_mview.tourist, 14) 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-03-30 12:42:55 Duration: 737ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 14) AS is_owner, user_is_tgm (animals_search_mview.editor, 14) AS is_editor, user_is_tgm (animals_search_mview.tourist, 14) 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-03-30 12:42:52 Duration: 714ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
16 11 24s503ms 2s175ms 2s298ms 2s227ms with damdam as ( select breedingid, string_agg(cast(dam as text), ?) as dam from breedingsdams inner join ( select id, owner, editor, tourist, "animalID", name, "dummy_strain_info", generation, "dummy_line_info", "dummy_backcross_info" from animals) as dam on dam.id = breedingsdams.dam and case when user_is_tgm (dam.owner, ?) then true when user_is_tgm (dam.editor, ?) then true when user_is_tgm (dam.tourist, ?) then true else false end group by breedingid ), siresire as ( select breedingid, string_agg(cast(sire as text), ?) as sire from breedingssires inner join ( select id, owner, editor, tourist, "animalID", name, "dummy_strain_info", generation, "dummy_line_info", "dummy_backcross_info" from animals) as sire on sire.id = breedingssires.sire and case when user_is_tgm (sire.owner, ?) then true when user_is_tgm (sire.editor, ?) then true when user_is_tgm (sire.tourist, ?) then true else false end group by breedingid ), cagess as ( select id, "cageName" from cages) ( select breedings.id, breedings.breeding_date, breedings.unbreeding_date, breedings.plug_date, cagess."cageName" as cage_name, breedings.deleted, damdam.dam, siresire.sire from damdam, siresire, cagess, breedings where breedings.deleted != true and cagess.id = breedings.cage and damdam.breedingid = breedings.id and siresire.breedingid = breedings.id group by breedings.id, cagess."cageName", breeding_date, unbreeding_date, plug_date, damdam.dam, siresire.sire order by breeding_date, plug_date);Times Reported Time consuming queries #16
Day Hour Count Duration Avg duration Mar 30 09 10 22s317ms 2s231ms 10 1 2s186ms 2s186ms [ User: labanimal - Total duration: 24s503ms - Times executed: 11 ]
[ Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 - Total duration: 24s503ms - Times executed: 11 ]
-
WITH damdam AS ( SELECT breedingid, string_agg(cast(dam as text), ';') AS dam FROM breedingsdams INNER JOIN ( SELECT id, owner, editor, tourist, "animalID", name, "dummy_strain_info", generation, "dummy_line_info", "dummy_backcross_info" FROM animals) AS dam ON dam.id = breedingsdams.dam AND CASE WHEN user_is_tgm (dam.owner, 10100116) THEN TRUE WHEN user_is_tgm (dam.editor, 10100116) THEN TRUE WHEN user_is_tgm (dam.tourist, 10100116) THEN TRUE ELSE FALSE END GROUP BY breedingid ), siresire AS ( SELECT breedingid, string_agg(cast(sire as text), ';') AS sire FROM breedingssires INNER JOIN ( select id, owner, editor, tourist, "animalID", name, "dummy_strain_info", generation, "dummy_line_info", "dummy_backcross_info" FROM animals) AS sire ON sire.id = breedingssires.sire AND CASE WHEN user_is_tgm (sire.owner, 10100116) THEN TRUE WHEN user_is_tgm (sire.editor, 10100116) THEN TRUE WHEN user_is_tgm (sire.tourist, 10100116) THEN TRUE ELSE FALSE END GROUP BY breedingid ), cagess AS ( select id, "cageName" FROM cages) ( SELECT breedings.id, breedings.breeding_date, breedings.unbreeding_date, breedings.plug_date, cagess."cageName" as cage_name, breedings.deleted, damdam.dam, siresire.sire FROM damdam, siresire, cagess, breedings WHERE breedings.deleted != true AND cagess.id = breedings.cage AND damdam.breedingid = breedings.id AND siresire.breedingid = breedings.id GROUP BY breedings.id, cagess."cageName", breeding_date, unbreeding_date, plug_date, damdam.dam, siresire.sire ORDER BY breeding_date, plug_date);
Date: 2026-03-30 08:28:58 Duration: 2s298ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
WITH damdam AS ( SELECT breedingid, string_agg(cast(dam as text), ';') AS dam FROM breedingsdams INNER JOIN ( SELECT id, owner, editor, tourist, "animalID", name, "dummy_strain_info", generation, "dummy_line_info", "dummy_backcross_info" FROM animals) AS dam ON dam.id = breedingsdams.dam AND CASE WHEN user_is_tgm (dam.owner, 10100116) THEN TRUE WHEN user_is_tgm (dam.editor, 10100116) THEN TRUE WHEN user_is_tgm (dam.tourist, 10100116) THEN TRUE ELSE FALSE END GROUP BY breedingid ), siresire AS ( SELECT breedingid, string_agg(cast(sire as text), ';') AS sire FROM breedingssires INNER JOIN ( select id, owner, editor, tourist, "animalID", name, "dummy_strain_info", generation, "dummy_line_info", "dummy_backcross_info" FROM animals) AS sire ON sire.id = breedingssires.sire AND CASE WHEN user_is_tgm (sire.owner, 10100116) THEN TRUE WHEN user_is_tgm (sire.editor, 10100116) THEN TRUE WHEN user_is_tgm (sire.tourist, 10100116) THEN TRUE ELSE FALSE END GROUP BY breedingid ), cagess AS ( select id, "cageName" FROM cages) ( SELECT breedings.id, breedings.breeding_date, breedings.unbreeding_date, breedings.plug_date, cagess."cageName" as cage_name, breedings.deleted, damdam.dam, siresire.sire FROM damdam, siresire, cagess, breedings WHERE breedings.deleted != true AND cagess.id = breedings.cage AND damdam.breedingid = breedings.id AND siresire.breedingid = breedings.id GROUP BY breedings.id, cagess."cageName", breeding_date, unbreeding_date, plug_date, damdam.dam, siresire.sire ORDER BY breeding_date, plug_date);
Date: 2026-03-30 08:34:44 Duration: 2s291ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
WITH damdam AS ( SELECT breedingid, string_agg(cast(dam as text), ';') AS dam FROM breedingsdams INNER JOIN ( SELECT id, owner, editor, tourist, "animalID", name, "dummy_strain_info", generation, "dummy_line_info", "dummy_backcross_info" FROM animals) AS dam ON dam.id = breedingsdams.dam AND CASE WHEN user_is_tgm (dam.owner, 10100116) THEN TRUE WHEN user_is_tgm (dam.editor, 10100116) THEN TRUE WHEN user_is_tgm (dam.tourist, 10100116) THEN TRUE ELSE FALSE END GROUP BY breedingid ), siresire AS ( SELECT breedingid, string_agg(cast(sire as text), ';') AS sire FROM breedingssires INNER JOIN ( select id, owner, editor, tourist, "animalID", name, "dummy_strain_info", generation, "dummy_line_info", "dummy_backcross_info" FROM animals) AS sire ON sire.id = breedingssires.sire AND CASE WHEN user_is_tgm (sire.owner, 10100116) THEN TRUE WHEN user_is_tgm (sire.editor, 10100116) THEN TRUE WHEN user_is_tgm (sire.tourist, 10100116) THEN TRUE ELSE FALSE END GROUP BY breedingid ), cagess AS ( select id, "cageName" FROM cages) ( SELECT breedings.id, breedings.breeding_date, breedings.unbreeding_date, breedings.plug_date, cagess."cageName" as cage_name, breedings.deleted, damdam.dam, siresire.sire FROM damdam, siresire, cagess, breedings WHERE breedings.deleted != true AND cagess.id = breedings.cage AND damdam.breedingid = breedings.id AND siresire.breedingid = breedings.id GROUP BY breedings.id, cagess."cageName", breeding_date, unbreeding_date, plug_date, damdam.dam, siresire.sire ORDER BY breeding_date, plug_date);
Date: 2026-03-30 08:29:05 Duration: 2s267ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
17 6 6s395ms 809ms 2s288ms 1s65ms with damdam as ( select breedingid, string_agg(cast(dam as text), ?) as dam from breedingsdams inner join ( select id, owner, editor, tourist, "animalID", name, "dummy_strain_info", generation, "dummy_line_info", "dummy_backcross_info" from animals) as dam on dam.id = breedingsdams.dam and case when user_is_tgm (dam.owner, ?) then true when user_is_tgm (dam.editor, ?) then true when user_is_tgm (dam.tourist, ?) then true else false end group by breedingid ), siresire as ( select breedingid, string_agg(cast(sire as text), ?) as sire from breedingssires inner join ( select id, owner, editor, tourist, "animalID", name, "dummy_strain_info", generation, "dummy_line_info", "dummy_backcross_info" from animals) as sire on sire.id = breedingssires.sire and case when user_is_tgm (sire.owner, ?) then true when user_is_tgm (sire.editor, ?) then true when user_is_tgm (sire.tourist, ?) then true else false end group by breedingid ), cagess as ( select id, "cageName" from cages) ( select breedings.id, breedings.breeding_date, breedings.unbreeding_date, breedings.plug_date, cagess."cageName" as cage_name, breedings.deleted, damdam.dam, siresire.sire from damdam, siresire, cagess, breedings where breedings.deleted != true and cagess.id = breedings.cage and damdam.breedingid = breedings.id and siresire.breedingid = breedings.id and breedings."unbreeding_date" is null group by breedings.id, cagess."cageName", breeding_date, unbreeding_date, plug_date, damdam.dam, siresire.sire order by breeding_date, plug_date);Times Reported Time consuming queries #17
Day Hour Count Duration Avg duration Mar 30 14 1 2s288ms 2s288ms 20 3 2s474ms 824ms 21 2 1s632ms 816ms [ User: labanimal - Total duration: 6s395ms - Times executed: 6 ]
[ Application: _desktop_index.php_zemm_produktiv_7_localhost_5432 - Total duration: 4s107ms - Times executed: 5 ]
[ Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 - Total duration: 2s288ms - Times executed: 1 ]
-
WITH damdam AS ( SELECT breedingid, string_agg(cast(dam as text), ';') AS dam FROM breedingsdams INNER JOIN ( SELECT id, owner, editor, tourist, "animalID", name, "dummy_strain_info", generation, "dummy_line_info", "dummy_backcross_info" FROM animals) AS dam ON dam.id = breedingsdams.dam AND CASE WHEN user_is_tgm (dam.owner, 10100003) THEN TRUE WHEN user_is_tgm (dam.editor, 10100003) THEN TRUE WHEN user_is_tgm (dam.tourist, 10100003) THEN TRUE ELSE FALSE END GROUP BY breedingid ), siresire AS ( SELECT breedingid, string_agg(cast(sire as text), ';') AS sire FROM breedingssires INNER JOIN ( select id, owner, editor, tourist, "animalID", name, "dummy_strain_info", generation, "dummy_line_info", "dummy_backcross_info" FROM animals) AS sire ON sire.id = breedingssires.sire AND CASE WHEN user_is_tgm (sire.owner, 10100003) THEN TRUE WHEN user_is_tgm (sire.editor, 10100003) THEN TRUE WHEN user_is_tgm (sire.tourist, 10100003) THEN TRUE ELSE FALSE END GROUP BY breedingid ), cagess AS ( select id, "cageName" FROM cages) ( SELECT breedings.id, breedings.breeding_date, breedings.unbreeding_date, breedings.plug_date, cagess."cageName" as cage_name, breedings.deleted, damdam.dam, siresire.sire FROM damdam, siresire, cagess, breedings WHERE breedings.deleted != true AND cagess.id = breedings.cage AND damdam.breedingid = breedings.id AND siresire.breedingid = breedings.id AND breedings."unbreeding_date" IS NULL GROUP BY breedings.id, cagess."cageName", breeding_date, unbreeding_date, plug_date, damdam.dam, siresire.sire ORDER BY breeding_date, plug_date);
Date: 2026-03-30 13:47:38 Duration: 2s288ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
WITH damdam AS ( SELECT breedingid, string_agg(cast(dam as text), ';') AS dam FROM breedingsdams INNER JOIN ( SELECT id, owner, editor, tourist, "animalID", name, "dummy_strain_info", generation, "dummy_line_info", "dummy_backcross_info" FROM animals) AS dam ON dam.id = breedingsdams.dam AND CASE WHEN user_is_tgm (dam.owner, 1) THEN TRUE WHEN user_is_tgm (dam.editor, 1) THEN TRUE WHEN user_is_tgm (dam.tourist, 1) THEN TRUE ELSE FALSE END GROUP BY breedingid ), siresire AS ( SELECT breedingid, string_agg(cast(sire as text), ';') AS sire FROM breedingssires INNER JOIN ( select id, owner, editor, tourist, "animalID", name, "dummy_strain_info", generation, "dummy_line_info", "dummy_backcross_info" FROM animals) AS sire ON sire.id = breedingssires.sire AND CASE WHEN user_is_tgm (sire.owner, 1) THEN TRUE WHEN user_is_tgm (sire.editor, 1) THEN TRUE WHEN user_is_tgm (sire.tourist, 1) THEN TRUE ELSE FALSE END GROUP BY breedingid ), cagess AS ( select id, "cageName" FROM cages) ( SELECT breedings.id, breedings.breeding_date, breedings.unbreeding_date, breedings.plug_date, cagess."cageName" as cage_name, breedings.deleted, damdam.dam, siresire.sire FROM damdam, siresire, cagess, breedings WHERE breedings.deleted != true AND cagess.id = breedings.cage AND damdam.breedingid = breedings.id AND siresire.breedingid = breedings.id AND breedings."unbreeding_date" IS NULL GROUP BY breedings.id, cagess."cageName", breeding_date, unbreeding_date, plug_date, damdam.dam, siresire.sire ORDER BY breeding_date, plug_date);
Date: 2026-03-30 19:35:08 Duration: 833ms Database: zemm_produktiv_7 User: labanimal Application: _desktop_index.php_zemm_produktiv_7_localhost_5432 Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
WITH damdam AS ( SELECT breedingid, string_agg(cast(dam as text), ';') AS dam FROM breedingsdams INNER JOIN ( SELECT id, owner, editor, tourist, "animalID", name, "dummy_strain_info", generation, "dummy_line_info", "dummy_backcross_info" FROM animals) AS dam ON dam.id = breedingsdams.dam AND CASE WHEN user_is_tgm (dam.owner, 1) THEN TRUE WHEN user_is_tgm (dam.editor, 1) THEN TRUE WHEN user_is_tgm (dam.tourist, 1) THEN TRUE ELSE FALSE END GROUP BY breedingid ), siresire AS ( SELECT breedingid, string_agg(cast(sire as text), ';') AS sire FROM breedingssires INNER JOIN ( select id, owner, editor, tourist, "animalID", name, "dummy_strain_info", generation, "dummy_line_info", "dummy_backcross_info" FROM animals) AS sire ON sire.id = breedingssires.sire AND CASE WHEN user_is_tgm (sire.owner, 1) THEN TRUE WHEN user_is_tgm (sire.editor, 1) THEN TRUE WHEN user_is_tgm (sire.tourist, 1) THEN TRUE ELSE FALSE END GROUP BY breedingid ), cagess AS ( select id, "cageName" FROM cages) ( SELECT breedings.id, breedings.breeding_date, breedings.unbreeding_date, breedings.plug_date, cagess."cageName" as cage_name, breedings.deleted, damdam.dam, siresire.sire FROM damdam, siresire, cagess, breedings WHERE breedings.deleted != true AND cagess.id = breedings.cage AND damdam.breedingid = breedings.id AND siresire.breedingid = breedings.id AND breedings."unbreeding_date" IS NULL GROUP BY breedings.id, cagess."cageName", breeding_date, unbreeding_date, plug_date, damdam.dam, siresire.sire ORDER BY breeding_date, plug_date);
Date: 2026-03-30 19:26:21 Duration: 827ms Database: zemm_produktiv_7 User: labanimal Application: _desktop_index.php_zemm_produktiv_7_localhost_5432 Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
18 4 14s298ms 3s536ms 3s647ms 3s574ms select * from litters_search_mview l where not (deleted) and case when user_is_tgm (l.owner, ?) then true when user_is_tgm (l.editor, ?) then true when user_is_tgm (l.tourist, ?) then true else false end order by bday desc, dam_name, sire_name;Times Reported Time consuming queries #18
Day Hour Count Duration Avg duration Mar 30 20 4 14s298ms 3s574ms [ User: labanimal - Total duration: 14s298ms - Times executed: 4 ]
[ Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 - Total duration: 14s298ms - Times executed: 4 ]
-
SELECT * FROM litters_search_mview l WHERE NOT (deleted) AND CASE WHEN user_is_tgm (l.owner, 64) THEN TRUE WHEN user_is_tgm (l.editor, 64) THEN TRUE WHEN user_is_tgm (l.tourist, 64) THEN TRUE ELSE FALSE END ORDER BY bday DESC, dam_name, sire_name;
Date: 2026-03-30 19:32:20 Duration: 3s647ms 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-03-30_010000.csv
-
SELECT * FROM litters_search_mview l WHERE NOT (deleted) AND CASE WHEN user_is_tgm (l.owner, 64) THEN TRUE WHEN user_is_tgm (l.editor, 64) THEN TRUE WHEN user_is_tgm (l.tourist, 64) THEN TRUE ELSE FALSE END ORDER BY bday DESC, dam_name, sire_name;
Date: 2026-03-30 19:33:30 Duration: 3s576ms 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-03-30_010000.csv
-
SELECT * FROM litters_search_mview l WHERE NOT (deleted) AND CASE WHEN user_is_tgm (l.owner, 64) THEN TRUE WHEN user_is_tgm (l.editor, 64) THEN TRUE WHEN user_is_tgm (l.tourist, 64) THEN TRUE ELSE FALSE END ORDER BY bday DESC, dam_name, sire_name;
Date: 2026-03-30 19:33:34 Duration: 3s539ms 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-03-30_010000.csv
19 4 6s340ms 521ms 2s108ms 1s585ms with ranked as ( select tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at, row_number() over (partition by tenant_key, fingerprint order by collected_at asc) as rn_first, row_number() over (partition by tenant_key, fingerprint order by collected_at desc) as rn_last from observability.db_top_queries where tenant_key in (...) and collected_at between ? and ? ), snapshots as ( select tenant_key, fingerprint, max(query) filter (where rn_last = ?) as query, max(collected_at) filter (where rn_last = ?) as last_seen, max(total_time_ms) filter (where rn_first = ?) as first_total_time_ms, max(total_time_ms) filter (where rn_last = ?) as last_total_time_ms, max(calls) filter (where rn_first = ?) as first_calls, max(calls) filter (where rn_last = ?) as last_calls, max(rows_returned) filter (where rn_first = ?) as first_rows_returned, max(rows_returned) filter (where rn_last = ?) as last_rows_returned from ranked group by tenant_key, fingerprint ), deltas as ( select tenant_key, fingerprint, query, last_seen, greatest (coalesce(last_total_time_ms, ?) - coalesce(first_total_time_ms, ?), ?) as total_time_ms, greatest (coalesce(last_calls, ?) - coalesce(first_calls, ?), ?) as calls, greatest (coalesce(last_rows_returned, ?) - coalesce(first_rows_returned, ?), ?) as rows_returned from snapshots ) 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 #19
Day Hour Count Duration Avg duration Mar 30 18 4 6s340ms 1s585ms [ User: labanimal - Total duration: 6s340ms - Times executed: 4 ]
-
WITH ranked AS ( SELECT tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at, ROW_NUMBER() OVER (PARTITION BY tenant_key, fingerprint ORDER BY collected_at ASC) AS rn_first, ROW_NUMBER() OVER (PARTITION BY tenant_key, fingerprint ORDER BY collected_at DESC) AS rn_last FROM observability.db_top_queries WHERE tenant_key IN ('test') AND collected_at BETWEEN '2026-03-23 17:27:01+01' AND '2026-03-30 17:27:01+02' ), snapshots AS ( SELECT tenant_key, fingerprint, MAX(query) FILTER (WHERE rn_last = 1) AS query, MAX(collected_at) FILTER (WHERE rn_last = 1) AS last_seen, MAX(total_time_ms) FILTER (WHERE rn_first = 1) AS first_total_time_ms, MAX(total_time_ms) FILTER (WHERE rn_last = 1) AS last_total_time_ms, MAX(calls) FILTER (WHERE rn_first = 1) AS first_calls, MAX(calls) FILTER (WHERE rn_last = 1) AS last_calls, MAX(rows_returned) FILTER (WHERE rn_first = 1) AS first_rows_returned, MAX(rows_returned) FILTER (WHERE rn_last = 1) AS last_rows_returned FROM ranked GROUP BY tenant_key, fingerprint ), deltas AS ( SELECT tenant_key, fingerprint, query, last_seen, GREATEST (COALESCE(last_total_time_ms, 0) - COALESCE(first_total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(last_calls, 0) - COALESCE(first_calls, 0), 0) AS calls, GREATEST (COALESCE(last_rows_returned, 0) - COALESCE(first_rows_returned, 0), 0) AS rows_returned FROM snapshots ) 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-03-30 17:27:03 Duration: 2s108ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
WITH ranked AS ( SELECT tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at, ROW_NUMBER() OVER (PARTITION BY tenant_key, fingerprint ORDER BY collected_at ASC) AS rn_first, ROW_NUMBER() OVER (PARTITION BY tenant_key, fingerprint ORDER BY collected_at DESC) AS rn_last FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at BETWEEN '2026-03-23 17:25:41+01' AND '2026-03-30 17:25:41+02' ), snapshots AS ( SELECT tenant_key, fingerprint, MAX(query) FILTER (WHERE rn_last = 1) AS query, MAX(collected_at) FILTER (WHERE rn_last = 1) AS last_seen, MAX(total_time_ms) FILTER (WHERE rn_first = 1) AS first_total_time_ms, MAX(total_time_ms) FILTER (WHERE rn_last = 1) AS last_total_time_ms, MAX(calls) FILTER (WHERE rn_first = 1) AS first_calls, MAX(calls) FILTER (WHERE rn_last = 1) AS last_calls, MAX(rows_returned) FILTER (WHERE rn_first = 1) AS first_rows_returned, MAX(rows_returned) FILTER (WHERE rn_last = 1) AS last_rows_returned FROM ranked GROUP BY tenant_key, fingerprint ), deltas AS ( SELECT tenant_key, fingerprint, query, last_seen, GREATEST (COALESCE(last_total_time_ms, 0) - COALESCE(first_total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(last_calls, 0) - COALESCE(first_calls, 0), 0) AS calls, GREATEST (COALESCE(last_rows_returned, 0) - COALESCE(first_rows_returned, 0), 0) AS rows_returned FROM snapshots ) 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-03-30 17:25:43 Duration: 2s102ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
WITH ranked AS ( SELECT tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at, ROW_NUMBER() OVER (PARTITION BY tenant_key, fingerprint ORDER BY collected_at ASC) AS rn_first, ROW_NUMBER() OVER (PARTITION BY tenant_key, fingerprint ORDER BY collected_at DESC) AS rn_last FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at BETWEEN '2026-03-23 17:28:21+01' AND '2026-03-30 17:28:21+02' ), snapshots AS ( SELECT tenant_key, fingerprint, MAX(query) FILTER (WHERE rn_last = 1) AS query, MAX(collected_at) FILTER (WHERE rn_last = 1) AS last_seen, MAX(total_time_ms) FILTER (WHERE rn_first = 1) AS first_total_time_ms, MAX(total_time_ms) FILTER (WHERE rn_last = 1) AS last_total_time_ms, MAX(calls) FILTER (WHERE rn_first = 1) AS first_calls, MAX(calls) FILTER (WHERE rn_last = 1) AS last_calls, MAX(rows_returned) FILTER (WHERE rn_first = 1) AS first_rows_returned, MAX(rows_returned) FILTER (WHERE rn_last = 1) AS last_rows_returned FROM ranked GROUP BY tenant_key, fingerprint ), deltas AS ( SELECT tenant_key, fingerprint, query, last_seen, GREATEST (COALESCE(last_total_time_ms, 0) - COALESCE(first_total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(last_calls, 0) - COALESCE(first_calls, 0), 0) AS calls, GREATEST (COALESCE(last_rows_returned, 0) - COALESCE(first_rows_returned, 0), 0) AS rows_returned FROM snapshots ) 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-03-30 17:28:23 Duration: 1s608ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
20 4 2s298ms 572ms 575ms 574ms 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 deleted = ? and strain ilike ? and (is_owner or is_editor or is_tourist);Times Reported Time consuming queries #20
Day Hour Count Duration Avg duration Mar 30 16 4 2s298ms 574ms [ User: labanimal - Total duration: 2s298ms - Times executed: 4 ]
[ Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 - Total duration: 2s298ms - Times executed: 4 ]
-
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, 10100179) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100179) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100179) 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 deleted = 'f' AND strain ILIKE '%gp5-dthr%' AND (is_owner OR is_editor OR is_tourist);
Date: 2026-03-30 15:44:28 Duration: 575ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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, 10100179) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100179) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100179) 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 deleted = 'f' AND strain ILIKE '%gp5-dthr%' AND (is_owner OR is_editor OR is_tourist);
Date: 2026-03-30 15:44:30 Duration: 575ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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, 10100179) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100179) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100179) 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 deleted = 'f' AND strain ILIKE '%gp5-dthr%' AND (is_owner OR is_editor OR is_tourist);
Date: 2026-03-30 15:56:00 Duration: 574ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
Normalized slowest queries (N)
Rank Min duration Max duration Avg duration Times executed Total duration Query 1 7s857ms 7s857ms 7s857ms 1 7s857ms select a.id, a.name, a."animalID", a.dummy_strain_info, a."birthDate", a.sex, tr.rfid from animals a left outer join cages c on c.id = a."homeCage" left outer join ( select max(id) as id, maps_to from transponders where extraction_date is null group by maps_to) tr_sel on tr_sel.maps_to = a.id left outer join transponders tr on tr.id = tr_sel.id where not (a.deleted) and c.id = ? and case when user_is_tgm (a.owner, ?) then true when user_is_tgm (a.editor, ?) then true when user_is_tgm (a.tourist, ?) then true else false end order by a.id;Times Reported Time consuming queries #1
Day Hour Count Duration Avg duration Mar 30 18 1 7s857ms 7s857ms [ User: labanimal - Total duration: 7s857ms - Times executed: 1 ]
[ Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 - Total duration: 7s857ms - Times executed: 1 ]
-
SELECT a.id, a.name, a."animalID", a.dummy_strain_info, a."birthDate", a.sex, tr.rfid FROM animals a LEFT OUTER JOIN cages c ON c.id = a."homeCage" LEFT OUTER JOIN ( SELECT max(id) AS id, maps_to FROM transponders WHERE extraction_date IS NULL GROUP BY maps_to) tr_sel ON tr_sel.maps_to = a.id LEFT OUTER JOIN transponders tr ON tr.id = tr_sel.id WHERE NOT (a.deleted) AND c.id = 12632 AND CASE WHEN user_is_tgm (a.owner, 10100194) THEN TRUE WHEN user_is_tgm (a.editor, 10100194) THEN TRUE WHEN user_is_tgm (a.tourist, 10100194) THEN TRUE ELSE FALSE END ORDER BY a.id;
Date: 2026-03-30 17:31:35 Duration: 7s857ms 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-03-30_010000.csv
2 3s536ms 3s647ms 3s574ms 4 14s298ms select * from litters_search_mview l where not (deleted) and case when user_is_tgm (l.owner, ?) then true when user_is_tgm (l.editor, ?) then true when user_is_tgm (l.tourist, ?) then true else false end order by bday desc, dam_name, sire_name;Times Reported Time consuming queries #2
Day Hour Count Duration Avg duration Mar 30 20 4 14s298ms 3s574ms [ User: labanimal - Total duration: 14s298ms - Times executed: 4 ]
[ Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 - Total duration: 14s298ms - Times executed: 4 ]
-
SELECT * FROM litters_search_mview l WHERE NOT (deleted) AND CASE WHEN user_is_tgm (l.owner, 64) THEN TRUE WHEN user_is_tgm (l.editor, 64) THEN TRUE WHEN user_is_tgm (l.tourist, 64) THEN TRUE ELSE FALSE END ORDER BY bday DESC, dam_name, sire_name;
Date: 2026-03-30 19:32:20 Duration: 3s647ms 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-03-30_010000.csv
-
SELECT * FROM litters_search_mview l WHERE NOT (deleted) AND CASE WHEN user_is_tgm (l.owner, 64) THEN TRUE WHEN user_is_tgm (l.editor, 64) THEN TRUE WHEN user_is_tgm (l.tourist, 64) THEN TRUE ELSE FALSE END ORDER BY bday DESC, dam_name, sire_name;
Date: 2026-03-30 19:33:30 Duration: 3s576ms 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-03-30_010000.csv
-
SELECT * FROM litters_search_mview l WHERE NOT (deleted) AND CASE WHEN user_is_tgm (l.owner, 64) THEN TRUE WHEN user_is_tgm (l.editor, 64) THEN TRUE WHEN user_is_tgm (l.tourist, 64) THEN TRUE ELSE FALSE END ORDER BY bday DESC, dam_name, sire_name;
Date: 2026-03-30 19:33:34 Duration: 3s539ms 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-03-30_010000.csv
3 3s538ms 3s576ms 3s557ms 2 7s115ms select * from litters_search_mview l where not (deleted) and case when user_is_tgm (l.owner, ?) then true when user_is_tgm (l.editor, ?) then true when user_is_tgm (l.tourist, ?) then true else false end and (offspring - case when male_wean is null then ? else male_wean end - case when female_wean is null then ? else female_wean end - case when male_dead is null then ? else male_dead end - case when female_dead is null then ? else female_dead end - case when female_deceased is null then ? else female_deceased end - case when male_deceased is null then ? else male_deceased end) <= ? order by bday desc, dam_name, sire_name;Times Reported Time consuming queries #3
Day Hour Count Duration Avg duration Mar 30 20 2 7s115ms 3s557ms [ User: labanimal - Total duration: 7s115ms - Times executed: 2 ]
[ Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 - Total duration: 7s115ms - Times executed: 2 ]
-
SELECT * FROM litters_search_mview l WHERE NOT (deleted) AND CASE WHEN user_is_tgm (l.owner, 64) THEN TRUE WHEN user_is_tgm (l.editor, 64) THEN TRUE WHEN user_is_tgm (l.tourist, 64) THEN TRUE ELSE FALSE END AND (offspring - CASE WHEN male_wean IS NULL THEN 0 ELSE male_wean END - CASE WHEN female_wean IS NULL THEN 0 ELSE female_wean END - CASE WHEN male_dead IS NULL THEN 0 ELSE male_dead END - CASE WHEN female_dead IS NULL THEN 0 ELSE female_dead END - CASE WHEN female_deceased IS NULL THEN 0 ELSE female_deceased END - CASE WHEN male_deceased IS NULL THEN 0 ELSE male_deceased END) <= 0 ORDER BY bday DESC, dam_name, sire_name;
Date: 2026-03-30 19:34:22 Duration: 3s576ms 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-03-30_010000.csv
-
SELECT * FROM litters_search_mview l WHERE NOT (deleted) AND CASE WHEN user_is_tgm (l.owner, 64) THEN TRUE WHEN user_is_tgm (l.editor, 64) THEN TRUE WHEN user_is_tgm (l.tourist, 64) THEN TRUE ELSE FALSE END AND (offspring - CASE WHEN male_wean IS NULL THEN 0 ELSE male_wean END - CASE WHEN female_wean IS NULL THEN 0 ELSE female_wean END - CASE WHEN male_dead IS NULL THEN 0 ELSE male_dead END - CASE WHEN female_dead IS NULL THEN 0 ELSE female_dead END - CASE WHEN female_deceased IS NULL THEN 0 ELSE female_deceased END - CASE WHEN male_deceased IS NULL THEN 0 ELSE male_deceased END) <= 0 ORDER BY bday DESC, dam_name, sire_name;
Date: 2026-03-30 19:34:26 Duration: 3s538ms 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-03-30_010000.csv
4 2s175ms 2s298ms 2s227ms 11 24s503ms with damdam as ( select breedingid, string_agg(cast(dam as text), ?) as dam from breedingsdams inner join ( select id, owner, editor, tourist, "animalID", name, "dummy_strain_info", generation, "dummy_line_info", "dummy_backcross_info" from animals) as dam on dam.id = breedingsdams.dam and case when user_is_tgm (dam.owner, ?) then true when user_is_tgm (dam.editor, ?) then true when user_is_tgm (dam.tourist, ?) then true else false end group by breedingid ), siresire as ( select breedingid, string_agg(cast(sire as text), ?) as sire from breedingssires inner join ( select id, owner, editor, tourist, "animalID", name, "dummy_strain_info", generation, "dummy_line_info", "dummy_backcross_info" from animals) as sire on sire.id = breedingssires.sire and case when user_is_tgm (sire.owner, ?) then true when user_is_tgm (sire.editor, ?) then true when user_is_tgm (sire.tourist, ?) then true else false end group by breedingid ), cagess as ( select id, "cageName" from cages) ( select breedings.id, breedings.breeding_date, breedings.unbreeding_date, breedings.plug_date, cagess."cageName" as cage_name, breedings.deleted, damdam.dam, siresire.sire from damdam, siresire, cagess, breedings where breedings.deleted != true and cagess.id = breedings.cage and damdam.breedingid = breedings.id and siresire.breedingid = breedings.id group by breedings.id, cagess."cageName", breeding_date, unbreeding_date, plug_date, damdam.dam, siresire.sire order by breeding_date, plug_date);Times Reported Time consuming queries #4
Day Hour Count Duration Avg duration Mar 30 09 10 22s317ms 2s231ms 10 1 2s186ms 2s186ms [ User: labanimal - Total duration: 24s503ms - Times executed: 11 ]
[ Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 - Total duration: 24s503ms - Times executed: 11 ]
-
WITH damdam AS ( SELECT breedingid, string_agg(cast(dam as text), ';') AS dam FROM breedingsdams INNER JOIN ( SELECT id, owner, editor, tourist, "animalID", name, "dummy_strain_info", generation, "dummy_line_info", "dummy_backcross_info" FROM animals) AS dam ON dam.id = breedingsdams.dam AND CASE WHEN user_is_tgm (dam.owner, 10100116) THEN TRUE WHEN user_is_tgm (dam.editor, 10100116) THEN TRUE WHEN user_is_tgm (dam.tourist, 10100116) THEN TRUE ELSE FALSE END GROUP BY breedingid ), siresire AS ( SELECT breedingid, string_agg(cast(sire as text), ';') AS sire FROM breedingssires INNER JOIN ( select id, owner, editor, tourist, "animalID", name, "dummy_strain_info", generation, "dummy_line_info", "dummy_backcross_info" FROM animals) AS sire ON sire.id = breedingssires.sire AND CASE WHEN user_is_tgm (sire.owner, 10100116) THEN TRUE WHEN user_is_tgm (sire.editor, 10100116) THEN TRUE WHEN user_is_tgm (sire.tourist, 10100116) THEN TRUE ELSE FALSE END GROUP BY breedingid ), cagess AS ( select id, "cageName" FROM cages) ( SELECT breedings.id, breedings.breeding_date, breedings.unbreeding_date, breedings.plug_date, cagess."cageName" as cage_name, breedings.deleted, damdam.dam, siresire.sire FROM damdam, siresire, cagess, breedings WHERE breedings.deleted != true AND cagess.id = breedings.cage AND damdam.breedingid = breedings.id AND siresire.breedingid = breedings.id GROUP BY breedings.id, cagess."cageName", breeding_date, unbreeding_date, plug_date, damdam.dam, siresire.sire ORDER BY breeding_date, plug_date);
Date: 2026-03-30 08:28:58 Duration: 2s298ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
WITH damdam AS ( SELECT breedingid, string_agg(cast(dam as text), ';') AS dam FROM breedingsdams INNER JOIN ( SELECT id, owner, editor, tourist, "animalID", name, "dummy_strain_info", generation, "dummy_line_info", "dummy_backcross_info" FROM animals) AS dam ON dam.id = breedingsdams.dam AND CASE WHEN user_is_tgm (dam.owner, 10100116) THEN TRUE WHEN user_is_tgm (dam.editor, 10100116) THEN TRUE WHEN user_is_tgm (dam.tourist, 10100116) THEN TRUE ELSE FALSE END GROUP BY breedingid ), siresire AS ( SELECT breedingid, string_agg(cast(sire as text), ';') AS sire FROM breedingssires INNER JOIN ( select id, owner, editor, tourist, "animalID", name, "dummy_strain_info", generation, "dummy_line_info", "dummy_backcross_info" FROM animals) AS sire ON sire.id = breedingssires.sire AND CASE WHEN user_is_tgm (sire.owner, 10100116) THEN TRUE WHEN user_is_tgm (sire.editor, 10100116) THEN TRUE WHEN user_is_tgm (sire.tourist, 10100116) THEN TRUE ELSE FALSE END GROUP BY breedingid ), cagess AS ( select id, "cageName" FROM cages) ( SELECT breedings.id, breedings.breeding_date, breedings.unbreeding_date, breedings.plug_date, cagess."cageName" as cage_name, breedings.deleted, damdam.dam, siresire.sire FROM damdam, siresire, cagess, breedings WHERE breedings.deleted != true AND cagess.id = breedings.cage AND damdam.breedingid = breedings.id AND siresire.breedingid = breedings.id GROUP BY breedings.id, cagess."cageName", breeding_date, unbreeding_date, plug_date, damdam.dam, siresire.sire ORDER BY breeding_date, plug_date);
Date: 2026-03-30 08:34:44 Duration: 2s291ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
WITH damdam AS ( SELECT breedingid, string_agg(cast(dam as text), ';') AS dam FROM breedingsdams INNER JOIN ( SELECT id, owner, editor, tourist, "animalID", name, "dummy_strain_info", generation, "dummy_line_info", "dummy_backcross_info" FROM animals) AS dam ON dam.id = breedingsdams.dam AND CASE WHEN user_is_tgm (dam.owner, 10100116) THEN TRUE WHEN user_is_tgm (dam.editor, 10100116) THEN TRUE WHEN user_is_tgm (dam.tourist, 10100116) THEN TRUE ELSE FALSE END GROUP BY breedingid ), siresire AS ( SELECT breedingid, string_agg(cast(sire as text), ';') AS sire FROM breedingssires INNER JOIN ( select id, owner, editor, tourist, "animalID", name, "dummy_strain_info", generation, "dummy_line_info", "dummy_backcross_info" FROM animals) AS sire ON sire.id = breedingssires.sire AND CASE WHEN user_is_tgm (sire.owner, 10100116) THEN TRUE WHEN user_is_tgm (sire.editor, 10100116) THEN TRUE WHEN user_is_tgm (sire.tourist, 10100116) THEN TRUE ELSE FALSE END GROUP BY breedingid ), cagess AS ( select id, "cageName" FROM cages) ( SELECT breedings.id, breedings.breeding_date, breedings.unbreeding_date, breedings.plug_date, cagess."cageName" as cage_name, breedings.deleted, damdam.dam, siresire.sire FROM damdam, siresire, cagess, breedings WHERE breedings.deleted != true AND cagess.id = breedings.cage AND damdam.breedingid = breedings.id AND siresire.breedingid = breedings.id GROUP BY breedings.id, cagess."cageName", breeding_date, unbreeding_date, plug_date, damdam.dam, siresire.sire ORDER BY breeding_date, plug_date);
Date: 2026-03-30 08:29:05 Duration: 2s267ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
5 521ms 2s108ms 1s585ms 4 6s340ms with ranked as ( select tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at, row_number() over (partition by tenant_key, fingerprint order by collected_at asc) as rn_first, row_number() over (partition by tenant_key, fingerprint order by collected_at desc) as rn_last from observability.db_top_queries where tenant_key in (...) and collected_at between ? and ? ), snapshots as ( select tenant_key, fingerprint, max(query) filter (where rn_last = ?) as query, max(collected_at) filter (where rn_last = ?) as last_seen, max(total_time_ms) filter (where rn_first = ?) as first_total_time_ms, max(total_time_ms) filter (where rn_last = ?) as last_total_time_ms, max(calls) filter (where rn_first = ?) as first_calls, max(calls) filter (where rn_last = ?) as last_calls, max(rows_returned) filter (where rn_first = ?) as first_rows_returned, max(rows_returned) filter (where rn_last = ?) as last_rows_returned from ranked group by tenant_key, fingerprint ), deltas as ( select tenant_key, fingerprint, query, last_seen, greatest (coalesce(last_total_time_ms, ?) - coalesce(first_total_time_ms, ?), ?) as total_time_ms, greatest (coalesce(last_calls, ?) - coalesce(first_calls, ?), ?) as calls, greatest (coalesce(last_rows_returned, ?) - coalesce(first_rows_returned, ?), ?) as rows_returned from snapshots ) 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 #5
Day Hour Count Duration Avg duration Mar 30 18 4 6s340ms 1s585ms [ User: labanimal - Total duration: 6s340ms - Times executed: 4 ]
-
WITH ranked AS ( SELECT tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at, ROW_NUMBER() OVER (PARTITION BY tenant_key, fingerprint ORDER BY collected_at ASC) AS rn_first, ROW_NUMBER() OVER (PARTITION BY tenant_key, fingerprint ORDER BY collected_at DESC) AS rn_last FROM observability.db_top_queries WHERE tenant_key IN ('test') AND collected_at BETWEEN '2026-03-23 17:27:01+01' AND '2026-03-30 17:27:01+02' ), snapshots AS ( SELECT tenant_key, fingerprint, MAX(query) FILTER (WHERE rn_last = 1) AS query, MAX(collected_at) FILTER (WHERE rn_last = 1) AS last_seen, MAX(total_time_ms) FILTER (WHERE rn_first = 1) AS first_total_time_ms, MAX(total_time_ms) FILTER (WHERE rn_last = 1) AS last_total_time_ms, MAX(calls) FILTER (WHERE rn_first = 1) AS first_calls, MAX(calls) FILTER (WHERE rn_last = 1) AS last_calls, MAX(rows_returned) FILTER (WHERE rn_first = 1) AS first_rows_returned, MAX(rows_returned) FILTER (WHERE rn_last = 1) AS last_rows_returned FROM ranked GROUP BY tenant_key, fingerprint ), deltas AS ( SELECT tenant_key, fingerprint, query, last_seen, GREATEST (COALESCE(last_total_time_ms, 0) - COALESCE(first_total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(last_calls, 0) - COALESCE(first_calls, 0), 0) AS calls, GREATEST (COALESCE(last_rows_returned, 0) - COALESCE(first_rows_returned, 0), 0) AS rows_returned FROM snapshots ) 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-03-30 17:27:03 Duration: 2s108ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
WITH ranked AS ( SELECT tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at, ROW_NUMBER() OVER (PARTITION BY tenant_key, fingerprint ORDER BY collected_at ASC) AS rn_first, ROW_NUMBER() OVER (PARTITION BY tenant_key, fingerprint ORDER BY collected_at DESC) AS rn_last FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at BETWEEN '2026-03-23 17:25:41+01' AND '2026-03-30 17:25:41+02' ), snapshots AS ( SELECT tenant_key, fingerprint, MAX(query) FILTER (WHERE rn_last = 1) AS query, MAX(collected_at) FILTER (WHERE rn_last = 1) AS last_seen, MAX(total_time_ms) FILTER (WHERE rn_first = 1) AS first_total_time_ms, MAX(total_time_ms) FILTER (WHERE rn_last = 1) AS last_total_time_ms, MAX(calls) FILTER (WHERE rn_first = 1) AS first_calls, MAX(calls) FILTER (WHERE rn_last = 1) AS last_calls, MAX(rows_returned) FILTER (WHERE rn_first = 1) AS first_rows_returned, MAX(rows_returned) FILTER (WHERE rn_last = 1) AS last_rows_returned FROM ranked GROUP BY tenant_key, fingerprint ), deltas AS ( SELECT tenant_key, fingerprint, query, last_seen, GREATEST (COALESCE(last_total_time_ms, 0) - COALESCE(first_total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(last_calls, 0) - COALESCE(first_calls, 0), 0) AS calls, GREATEST (COALESCE(last_rows_returned, 0) - COALESCE(first_rows_returned, 0), 0) AS rows_returned FROM snapshots ) 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-03-30 17:25:43 Duration: 2s102ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
WITH ranked AS ( SELECT tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at, ROW_NUMBER() OVER (PARTITION BY tenant_key, fingerprint ORDER BY collected_at ASC) AS rn_first, ROW_NUMBER() OVER (PARTITION BY tenant_key, fingerprint ORDER BY collected_at DESC) AS rn_last FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at BETWEEN '2026-03-23 17:28:21+01' AND '2026-03-30 17:28:21+02' ), snapshots AS ( SELECT tenant_key, fingerprint, MAX(query) FILTER (WHERE rn_last = 1) AS query, MAX(collected_at) FILTER (WHERE rn_last = 1) AS last_seen, MAX(total_time_ms) FILTER (WHERE rn_first = 1) AS first_total_time_ms, MAX(total_time_ms) FILTER (WHERE rn_last = 1) AS last_total_time_ms, MAX(calls) FILTER (WHERE rn_first = 1) AS first_calls, MAX(calls) FILTER (WHERE rn_last = 1) AS last_calls, MAX(rows_returned) FILTER (WHERE rn_first = 1) AS first_rows_returned, MAX(rows_returned) FILTER (WHERE rn_last = 1) AS last_rows_returned FROM ranked GROUP BY tenant_key, fingerprint ), deltas AS ( SELECT tenant_key, fingerprint, query, last_seen, GREATEST (COALESCE(last_total_time_ms, 0) - COALESCE(first_total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(last_calls, 0) - COALESCE(first_calls, 0), 0) AS calls, GREATEST (COALESCE(last_rows_returned, 0) - COALESCE(first_rows_returned, 0), 0) AS rows_returned FROM snapshots ) 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-03-30 17:28:23 Duration: 1s608ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
6 545ms 7s857ms 1s453ms 1,440 34m53s 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 Mar 30 01 60 1m26s 1s434ms 02 60 28s358ms 472ms 03 60 58s672ms 977ms 04 60 58s672ms 977ms 05 60 58s672ms 977ms 06 60 58s672ms 977ms 07 60 58s672ms 977ms 08 60 49s561ms 826ms 09 60 1m40s 1s676ms 10 60 2m 2s2ms 11 60 39s318ms 655ms 12 60 38s836ms 647ms 13 60 41s162ms 686ms 14 60 1m2s 1s47ms 15 60 2m17s 2s288ms 16 60 41s821ms 697ms 17 60 36s198ms 603ms 18 60 4m3s 4s61ms 19 60 7m51s 7s857ms 20 60 1m43s 1s717ms 21 60 49s437ms 823ms 22 60 49s339ms 822ms 23 60 49s339ms 822ms 00 60 51s491ms 858ms [ User: labanimal - Total duration: 34m53s - Times executed: 1409 ]
-
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-03-30 19:05:02 Duration: 7s857ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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-03-30 19:34:01 Duration: 3s539ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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-03-30 19:35:01 Duration: 3s538ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
7 545ms 7s857ms 1s453ms 1,440 34m53s 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 #7
Day Hour Count Duration Avg duration Mar 30 01 60 1m26s 1s434ms 02 60 28s358ms 472ms 03 60 58s672ms 977ms 04 60 58s672ms 977ms 05 60 58s672ms 977ms 06 60 58s672ms 977ms 07 60 58s672ms 977ms 08 60 49s561ms 826ms 09 60 1m40s 1s676ms 10 60 2m 2s2ms 11 60 39s318ms 655ms 12 60 38s836ms 647ms 13 60 41s162ms 686ms 14 60 1m2s 1s47ms 15 60 2m17s 2s288ms 16 60 41s821ms 697ms 17 60 36s198ms 603ms 18 60 4m3s 4s61ms 19 60 7m51s 7s857ms 20 60 1m43s 1s717ms 21 60 49s437ms 823ms 22 60 49s339ms 822ms 23 60 49s339ms 822ms 00 60 51s491ms 858ms [ User: labanimal - Total duration: 34m53s - Times executed: 1409 ]
-
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-03-30 19:05:02 Duration: 7s857ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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-03-30 19:34:01 Duration: 3s539ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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-03-30 19:35:01 Duration: 3s538ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
8 545ms 7s857ms 1s453ms 1,440 34m53s 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 #8
Day Hour Count Duration Avg duration Mar 30 01 60 1m26s 1s434ms 02 60 28s358ms 472ms 03 60 58s672ms 977ms 04 60 58s672ms 977ms 05 60 58s672ms 977ms 06 60 58s672ms 977ms 07 60 58s672ms 977ms 08 60 49s561ms 826ms 09 60 1m40s 1s676ms 10 60 2m 2s2ms 11 60 39s318ms 655ms 12 60 38s836ms 647ms 13 60 41s162ms 686ms 14 60 1m2s 1s47ms 15 60 2m17s 2s288ms 16 60 41s821ms 697ms 17 60 36s198ms 603ms 18 60 4m3s 4s61ms 19 60 7m51s 7s857ms 20 60 1m43s 1s717ms 21 60 49s437ms 823ms 22 60 49s339ms 822ms 23 60 49s339ms 822ms 00 60 51s491ms 858ms [ User: labanimal - Total duration: 34m53s - Times executed: 1409 ]
-
CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);
Date: 2026-03-30 19:05:02 Duration: 7s857ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);
Date: 2026-03-30 19:34:01 Duration: 3s539ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);
Date: 2026-03-30 19:35:01 Duration: 3s538ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
9 545ms 7s857ms 1s453ms 1,440 34m53s create index if not exists idx_metrics_timeseries_metric on observability.metrics_timeseries (metric_name);Times Reported Time consuming queries #9
Day Hour Count Duration Avg duration Mar 30 01 60 1m26s 1s434ms 02 60 28s358ms 472ms 03 60 58s672ms 977ms 04 60 58s672ms 977ms 05 60 58s672ms 977ms 06 60 58s672ms 977ms 07 60 58s672ms 977ms 08 60 49s561ms 826ms 09 60 1m40s 1s676ms 10 60 2m 2s2ms 11 60 39s318ms 655ms 12 60 38s836ms 647ms 13 60 41s162ms 686ms 14 60 1m2s 1s47ms 15 60 2m17s 2s288ms 16 60 41s821ms 697ms 17 60 36s198ms 603ms 18 60 4m3s 4s61ms 19 60 7m51s 7s857ms 20 60 1m43s 1s717ms 21 60 49s437ms 823ms 22 60 49s339ms 822ms 23 60 49s339ms 822ms 00 60 51s491ms 858ms [ User: labanimal - Total duration: 34m53s - Times executed: 1409 ]
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-03-30 19:05:02 Duration: 7s857ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-03-30 19:34:01 Duration: 3s539ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-03-30 19:35:01 Duration: 3s538ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
10 545ms 7s857ms 1s453ms 1,440 34m53s create index if not exists idx_metrics_timeseries_bucket on observability.metrics_timeseries (bucket_start);Times Reported Time consuming queries #10
Day Hour Count Duration Avg duration Mar 30 01 60 1m26s 1s434ms 02 60 28s358ms 472ms 03 60 58s672ms 977ms 04 60 58s672ms 977ms 05 60 58s672ms 977ms 06 60 58s672ms 977ms 07 60 58s672ms 977ms 08 60 49s561ms 826ms 09 60 1m40s 1s676ms 10 60 2m 2s2ms 11 60 39s318ms 655ms 12 60 38s836ms 647ms 13 60 41s162ms 686ms 14 60 1m2s 1s47ms 15 60 2m17s 2s288ms 16 60 41s821ms 697ms 17 60 36s198ms 603ms 18 60 4m3s 4s61ms 19 60 7m51s 7s857ms 20 60 1m43s 1s717ms 21 60 49s437ms 823ms 22 60 49s339ms 822ms 23 60 49s339ms 822ms 00 60 51s491ms 858ms [ User: labanimal - Total duration: 34m53s - Times executed: 1409 ]
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-03-30 19:05:02 Duration: 7s857ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-03-30 19:34:01 Duration: 3s539ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-03-30 19:35:01 Duration: 3s538ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
11 545ms 7s857ms 1s453ms 1,440 34m53s 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 #11
Day Hour Count Duration Avg duration Mar 30 01 60 1m26s 1s434ms 02 60 28s358ms 472ms 03 60 58s672ms 977ms 04 60 58s672ms 977ms 05 60 58s672ms 977ms 06 60 58s672ms 977ms 07 60 58s672ms 977ms 08 60 49s561ms 826ms 09 60 1m40s 1s676ms 10 60 2m 2s2ms 11 60 39s318ms 655ms 12 60 38s836ms 647ms 13 60 41s162ms 686ms 14 60 1m2s 1s47ms 15 60 2m17s 2s288ms 16 60 41s821ms 697ms 17 60 36s198ms 603ms 18 60 4m3s 4s61ms 19 60 7m51s 7s857ms 20 60 1m43s 1s717ms 21 60 49s437ms 823ms 22 60 49s339ms 822ms 23 60 49s339ms 822ms 00 60 51s491ms 858ms [ User: labanimal - Total duration: 34m53s - Times executed: 1409 ]
-
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-03-30 19:05:02 Duration: 7s857ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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-03-30 19:34:01 Duration: 3s539ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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-03-30 19:35:01 Duration: 3s538ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
12 545ms 7s857ms 1s453ms 1,440 34m53s 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 Mar 30 01 60 1m26s 1s434ms 02 60 28s358ms 472ms 03 60 58s672ms 977ms 04 60 58s672ms 977ms 05 60 58s672ms 977ms 06 60 58s672ms 977ms 07 60 58s672ms 977ms 08 60 49s561ms 826ms 09 60 1m40s 1s676ms 10 60 2m 2s2ms 11 60 39s318ms 655ms 12 60 38s836ms 647ms 13 60 41s162ms 686ms 14 60 1m2s 1s47ms 15 60 2m17s 2s288ms 16 60 41s821ms 697ms 17 60 36s198ms 603ms 18 60 4m3s 4s61ms 19 60 7m51s 7s857ms 20 60 1m43s 1s717ms 21 60 49s437ms 823ms 22 60 49s339ms 822ms 23 60 49s339ms 822ms 00 60 51s491ms 858ms [ User: labanimal - Total duration: 34m53s - Times executed: 1409 ]
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-03-30 19:05:02 Duration: 7s857ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-03-30 19:34:01 Duration: 3s539ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-03-30 19:35:01 Duration: 3s538ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
13 545ms 7s857ms 1s453ms 1,440 34m53s 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 #13
Day Hour Count Duration Avg duration Mar 30 01 60 1m26s 1s434ms 02 60 28s358ms 472ms 03 60 58s672ms 977ms 04 60 58s672ms 977ms 05 60 58s672ms 977ms 06 60 58s672ms 977ms 07 60 58s672ms 977ms 08 60 49s561ms 826ms 09 60 1m40s 1s676ms 10 60 2m 2s2ms 11 60 39s318ms 655ms 12 60 38s836ms 647ms 13 60 41s162ms 686ms 14 60 1m2s 1s47ms 15 60 2m17s 2s288ms 16 60 41s821ms 697ms 17 60 36s198ms 603ms 18 60 4m3s 4s61ms 19 60 7m51s 7s857ms 20 60 1m43s 1s717ms 21 60 49s437ms 823ms 22 60 49s339ms 822ms 23 60 49s339ms 822ms 00 60 51s491ms 858ms [ User: labanimal - Total duration: 34m53s - Times executed: 1409 ]
-
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-03-30 19:05:02 Duration: 7s857ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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-03-30 19:34:01 Duration: 3s539ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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-03-30 19:35:01 Duration: 3s538ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
14 545ms 7s857ms 1s453ms 1,440 34m53s 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 #14
Day Hour Count Duration Avg duration Mar 30 01 60 1m26s 1s434ms 02 60 28s358ms 472ms 03 60 58s672ms 977ms 04 60 58s672ms 977ms 05 60 58s672ms 977ms 06 60 58s672ms 977ms 07 60 58s672ms 977ms 08 60 49s561ms 826ms 09 60 1m40s 1s676ms 10 60 2m 2s2ms 11 60 39s318ms 655ms 12 60 38s836ms 647ms 13 60 41s162ms 686ms 14 60 1m2s 1s47ms 15 60 2m17s 2s288ms 16 60 41s821ms 697ms 17 60 36s198ms 603ms 18 60 4m3s 4s61ms 19 60 7m51s 7s857ms 20 60 1m43s 1s717ms 21 60 49s437ms 823ms 22 60 49s339ms 822ms 23 60 49s339ms 822ms 00 60 51s491ms 858ms [ User: labanimal - Total duration: 34m53s - Times executed: 1409 ]
-
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-03-30 19:05:02 Duration: 7s857ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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-03-30 19:34:01 Duration: 3s539ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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-03-30 19:35:01 Duration: 3s538ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
15 545ms 7s857ms 1s453ms 1,440 34m53s create index if not exists idx_app_events_type on observability.app_events (event_type);Times Reported Time consuming queries #15
Day Hour Count Duration Avg duration Mar 30 01 60 1m26s 1s434ms 02 60 28s358ms 472ms 03 60 58s672ms 977ms 04 60 58s672ms 977ms 05 60 58s672ms 977ms 06 60 58s672ms 977ms 07 60 58s672ms 977ms 08 60 49s561ms 826ms 09 60 1m40s 1s676ms 10 60 2m 2s2ms 11 60 39s318ms 655ms 12 60 38s836ms 647ms 13 60 41s162ms 686ms 14 60 1m2s 1s47ms 15 60 2m17s 2s288ms 16 60 41s821ms 697ms 17 60 36s198ms 603ms 18 60 4m3s 4s61ms 19 60 7m51s 7s857ms 20 60 1m43s 1s717ms 21 60 49s437ms 823ms 22 60 49s339ms 822ms 23 60 49s339ms 822ms 00 60 51s491ms 858ms [ User: labanimal - Total duration: 34m53s - Times executed: 1409 ]
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-03-30 19:05:02 Duration: 7s857ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-03-30 19:34:01 Duration: 3s539ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-03-30 19:35:01 Duration: 3s538ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
16 545ms 7s857ms 1s453ms 1,440 34m53s create table if not exists observability.system_metrics ( id bigserial primary key, payload jsonb not null, collected_at timestamptz not null default now() );Times Reported Time consuming queries #16
Day Hour Count Duration Avg duration Mar 30 01 60 1m26s 1s434ms 02 60 28s358ms 472ms 03 60 58s672ms 977ms 04 60 58s672ms 977ms 05 60 58s672ms 977ms 06 60 58s672ms 977ms 07 60 58s672ms 977ms 08 60 49s561ms 826ms 09 60 1m40s 1s676ms 10 60 2m 2s2ms 11 60 39s318ms 655ms 12 60 38s836ms 647ms 13 60 41s162ms 686ms 14 60 1m2s 1s47ms 15 60 2m17s 2s288ms 16 60 41s821ms 697ms 17 60 36s198ms 603ms 18 60 4m3s 4s61ms 19 60 7m51s 7s857ms 20 60 1m43s 1s717ms 21 60 49s437ms 823ms 22 60 49s339ms 822ms 23 60 49s339ms 822ms 00 60 51s491ms 858ms [ User: labanimal - Total duration: 34m53s - Times executed: 1409 ]
-
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-03-30 19:05:02 Duration: 7s857ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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-03-30 19:34:01 Duration: 3s539ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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-03-30 19:35:01 Duration: 3s538ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
17 545ms 7s857ms 1s453ms 1,440 34m53s create table if not exists observability.nginx_counters ( id bigserial primary key, payload jsonb not null, collected_at timestamptz not null default now() );Times Reported Time consuming queries #17
Day Hour Count Duration Avg duration Mar 30 01 60 1m26s 1s434ms 02 60 28s358ms 472ms 03 60 58s672ms 977ms 04 60 58s672ms 977ms 05 60 58s672ms 977ms 06 60 58s672ms 977ms 07 60 58s672ms 977ms 08 60 49s561ms 826ms 09 60 1m40s 1s676ms 10 60 2m 2s2ms 11 60 39s318ms 655ms 12 60 38s836ms 647ms 13 60 41s162ms 686ms 14 60 1m2s 1s47ms 15 60 2m17s 2s288ms 16 60 41s821ms 697ms 17 60 36s198ms 603ms 18 60 4m3s 4s61ms 19 60 7m51s 7s857ms 20 60 1m43s 1s717ms 21 60 49s437ms 823ms 22 60 49s339ms 822ms 23 60 49s339ms 822ms 00 60 51s491ms 858ms [ User: labanimal - Total duration: 34m53s - Times executed: 1409 ]
-
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-03-30 19:05:02 Duration: 7s857ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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-03-30 19:34:01 Duration: 3s539ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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-03-30 19:35:01 Duration: 3s538ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
18 545ms 7s857ms 1s453ms 1,440 34m53s create schema if not exists observability;Times Reported Time consuming queries #18
Day Hour Count Duration Avg duration Mar 30 01 60 1m26s 1s434ms 02 60 28s358ms 472ms 03 60 58s672ms 977ms 04 60 58s672ms 977ms 05 60 58s672ms 977ms 06 60 58s672ms 977ms 07 60 58s672ms 977ms 08 60 49s561ms 826ms 09 60 1m40s 1s676ms 10 60 2m 2s2ms 11 60 39s318ms 655ms 12 60 38s836ms 647ms 13 60 41s162ms 686ms 14 60 1m2s 1s47ms 15 60 2m17s 2s288ms 16 60 41s821ms 697ms 17 60 36s198ms 603ms 18 60 4m3s 4s61ms 19 60 7m51s 7s857ms 20 60 1m43s 1s717ms 21 60 49s437ms 823ms 22 60 49s339ms 822ms 23 60 49s339ms 822ms 00 60 51s491ms 858ms [ User: labanimal - Total duration: 34m53s - Times executed: 1409 ]
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-03-30 19:05:02 Duration: 7s857ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-03-30 19:34:01 Duration: 3s539ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-03-30 19:35:01 Duration: 3s538ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
19 809ms 2s288ms 1s65ms 6 6s395ms with damdam as ( select breedingid, string_agg(cast(dam as text), ?) as dam from breedingsdams inner join ( select id, owner, editor, tourist, "animalID", name, "dummy_strain_info", generation, "dummy_line_info", "dummy_backcross_info" from animals) as dam on dam.id = breedingsdams.dam and case when user_is_tgm (dam.owner, ?) then true when user_is_tgm (dam.editor, ?) then true when user_is_tgm (dam.tourist, ?) then true else false end group by breedingid ), siresire as ( select breedingid, string_agg(cast(sire as text), ?) as sire from breedingssires inner join ( select id, owner, editor, tourist, "animalID", name, "dummy_strain_info", generation, "dummy_line_info", "dummy_backcross_info" from animals) as sire on sire.id = breedingssires.sire and case when user_is_tgm (sire.owner, ?) then true when user_is_tgm (sire.editor, ?) then true when user_is_tgm (sire.tourist, ?) then true else false end group by breedingid ), cagess as ( select id, "cageName" from cages) ( select breedings.id, breedings.breeding_date, breedings.unbreeding_date, breedings.plug_date, cagess."cageName" as cage_name, breedings.deleted, damdam.dam, siresire.sire from damdam, siresire, cagess, breedings where breedings.deleted != true and cagess.id = breedings.cage and damdam.breedingid = breedings.id and siresire.breedingid = breedings.id and breedings."unbreeding_date" is null group by breedings.id, cagess."cageName", breeding_date, unbreeding_date, plug_date, damdam.dam, siresire.sire order by breeding_date, plug_date);Times Reported Time consuming queries #19
Day Hour Count Duration Avg duration Mar 30 14 1 2s288ms 2s288ms 20 3 2s474ms 824ms 21 2 1s632ms 816ms [ User: labanimal - Total duration: 6s395ms - Times executed: 6 ]
[ Application: _desktop_index.php_zemm_produktiv_7_localhost_5432 - Total duration: 4s107ms - Times executed: 5 ]
[ Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 - Total duration: 2s288ms - Times executed: 1 ]
-
WITH damdam AS ( SELECT breedingid, string_agg(cast(dam as text), ';') AS dam FROM breedingsdams INNER JOIN ( SELECT id, owner, editor, tourist, "animalID", name, "dummy_strain_info", generation, "dummy_line_info", "dummy_backcross_info" FROM animals) AS dam ON dam.id = breedingsdams.dam AND CASE WHEN user_is_tgm (dam.owner, 10100003) THEN TRUE WHEN user_is_tgm (dam.editor, 10100003) THEN TRUE WHEN user_is_tgm (dam.tourist, 10100003) THEN TRUE ELSE FALSE END GROUP BY breedingid ), siresire AS ( SELECT breedingid, string_agg(cast(sire as text), ';') AS sire FROM breedingssires INNER JOIN ( select id, owner, editor, tourist, "animalID", name, "dummy_strain_info", generation, "dummy_line_info", "dummy_backcross_info" FROM animals) AS sire ON sire.id = breedingssires.sire AND CASE WHEN user_is_tgm (sire.owner, 10100003) THEN TRUE WHEN user_is_tgm (sire.editor, 10100003) THEN TRUE WHEN user_is_tgm (sire.tourist, 10100003) THEN TRUE ELSE FALSE END GROUP BY breedingid ), cagess AS ( select id, "cageName" FROM cages) ( SELECT breedings.id, breedings.breeding_date, breedings.unbreeding_date, breedings.plug_date, cagess."cageName" as cage_name, breedings.deleted, damdam.dam, siresire.sire FROM damdam, siresire, cagess, breedings WHERE breedings.deleted != true AND cagess.id = breedings.cage AND damdam.breedingid = breedings.id AND siresire.breedingid = breedings.id AND breedings."unbreeding_date" IS NULL GROUP BY breedings.id, cagess."cageName", breeding_date, unbreeding_date, plug_date, damdam.dam, siresire.sire ORDER BY breeding_date, plug_date);
Date: 2026-03-30 13:47:38 Duration: 2s288ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
WITH damdam AS ( SELECT breedingid, string_agg(cast(dam as text), ';') AS dam FROM breedingsdams INNER JOIN ( SELECT id, owner, editor, tourist, "animalID", name, "dummy_strain_info", generation, "dummy_line_info", "dummy_backcross_info" FROM animals) AS dam ON dam.id = breedingsdams.dam AND CASE WHEN user_is_tgm (dam.owner, 1) THEN TRUE WHEN user_is_tgm (dam.editor, 1) THEN TRUE WHEN user_is_tgm (dam.tourist, 1) THEN TRUE ELSE FALSE END GROUP BY breedingid ), siresire AS ( SELECT breedingid, string_agg(cast(sire as text), ';') AS sire FROM breedingssires INNER JOIN ( select id, owner, editor, tourist, "animalID", name, "dummy_strain_info", generation, "dummy_line_info", "dummy_backcross_info" FROM animals) AS sire ON sire.id = breedingssires.sire AND CASE WHEN user_is_tgm (sire.owner, 1) THEN TRUE WHEN user_is_tgm (sire.editor, 1) THEN TRUE WHEN user_is_tgm (sire.tourist, 1) THEN TRUE ELSE FALSE END GROUP BY breedingid ), cagess AS ( select id, "cageName" FROM cages) ( SELECT breedings.id, breedings.breeding_date, breedings.unbreeding_date, breedings.plug_date, cagess."cageName" as cage_name, breedings.deleted, damdam.dam, siresire.sire FROM damdam, siresire, cagess, breedings WHERE breedings.deleted != true AND cagess.id = breedings.cage AND damdam.breedingid = breedings.id AND siresire.breedingid = breedings.id AND breedings."unbreeding_date" IS NULL GROUP BY breedings.id, cagess."cageName", breeding_date, unbreeding_date, plug_date, damdam.dam, siresire.sire ORDER BY breeding_date, plug_date);
Date: 2026-03-30 19:35:08 Duration: 833ms Database: zemm_produktiv_7 User: labanimal Application: _desktop_index.php_zemm_produktiv_7_localhost_5432 Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
-
WITH damdam AS ( SELECT breedingid, string_agg(cast(dam as text), ';') AS dam FROM breedingsdams INNER JOIN ( SELECT id, owner, editor, tourist, "animalID", name, "dummy_strain_info", generation, "dummy_line_info", "dummy_backcross_info" FROM animals) AS dam ON dam.id = breedingsdams.dam AND CASE WHEN user_is_tgm (dam.owner, 1) THEN TRUE WHEN user_is_tgm (dam.editor, 1) THEN TRUE WHEN user_is_tgm (dam.tourist, 1) THEN TRUE ELSE FALSE END GROUP BY breedingid ), siresire AS ( SELECT breedingid, string_agg(cast(sire as text), ';') AS sire FROM breedingssires INNER JOIN ( select id, owner, editor, tourist, "animalID", name, "dummy_strain_info", generation, "dummy_line_info", "dummy_backcross_info" FROM animals) AS sire ON sire.id = breedingssires.sire AND CASE WHEN user_is_tgm (sire.owner, 1) THEN TRUE WHEN user_is_tgm (sire.editor, 1) THEN TRUE WHEN user_is_tgm (sire.tourist, 1) THEN TRUE ELSE FALSE END GROUP BY breedingid ), cagess AS ( select id, "cageName" FROM cages) ( SELECT breedings.id, breedings.breeding_date, breedings.unbreeding_date, breedings.plug_date, cagess."cageName" as cage_name, breedings.deleted, damdam.dam, siresire.sire FROM damdam, siresire, cagess, breedings WHERE breedings.deleted != true AND cagess.id = breedings.cage AND damdam.breedingid = breedings.id AND siresire.breedingid = breedings.id AND breedings."unbreeding_date" IS NULL GROUP BY breedings.id, cagess."cageName", breeding_date, unbreeding_date, plug_date, damdam.dam, siresire.sire ORDER BY breeding_date, plug_date);
Date: 2026-03-30 19:26:21 Duration: 827ms Database: zemm_produktiv_7 User: labanimal Application: _desktop_index.php_zemm_produktiv_7_localhost_5432 Bind query: yes Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
20 695ms 766ms 712ms 37 26s356ms 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 #20
Day Hour Count Duration Avg duration Mar 30 08 1 723ms 723ms 10 1 705ms 705ms 11 2 1s407ms 703ms 12 3 2s152ms 717ms 13 4 2s939ms 734ms 16 3 2s92ms 697ms 17 7 4s959ms 708ms 18 14 9s960ms 711ms 20 2 1s417ms 708ms [ User: labanimal - Total duration: 26s356ms - Times executed: 37 ]
[ Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 - Total duration: 25s643ms - Times executed: 36 ]
[ Application: _desktop_index.php_view_animal_name_on_view_animal_id_on_view_b - Total duration: 712ms - Times executed: 1 ]
-
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, 14) AS is_owner, user_is_tgm (animals_search_mview.editor, 14) AS is_editor, user_is_tgm (animals_search_mview.tourist, 14) 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-03-30 12:42:53 Duration: 766ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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, 14) AS is_owner, user_is_tgm (animals_search_mview.editor, 14) AS is_editor, user_is_tgm (animals_search_mview.tourist, 14) 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-03-30 12:42:55 Duration: 740ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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, 14) AS is_owner, user_is_tgm (animals_search_mview.editor, 14) AS is_editor, user_is_tgm (animals_search_mview.tourist, 14) 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-03-30 12:42:51 Duration: 736ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Log file: /var/log/postgresql/postgresql-2026-03-30_010000.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
- 112,142 Event entries
- (EVENTLOG entries are formaly LOG level entries that are not queries)
Events distribution (except queries)
Key values
- 0 PANIC entries
- 54 FATAL entries
- 0 ERROR entries
- 0 WARNING entries
- 0 EVENTLOG entries
Most Frequent Errors/Events
Key values
- 54 Max number of times the same event was reported
- 54 Total events found
Rank Times reported Error 1 54 FATAL: database "..." does not exist
Times Reported Most Frequent Error / Event #1
Day Hour Count Mar 30 11 2 18 4 20 6 21 12 22 10 23 8 00 12 - FATAL: database "monitoring" does not exist
- FATAL: database "monitoring" does not exist
- FATAL: database "monitoring" does not exist
Date: 2026-03-30 10:02:15 Database: monitoring Application: User: labanimal Remote: Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
Date: 2026-03-30 10:02:35 Database: monitoring Application: User: labanimal Remote: Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv
Date: 2026-03-30 17:28:19 Database: monitoring Application: User: labanimal Remote: Log file: /var/log/postgresql/postgresql-2026-03-30_010000.csv