-
Global information
- Generated on Thu Apr 30 06:07:11 2026
- Log file: /var/log/postgresql/postgresql-2026-03-25_000000.csv, ..., /var/log/postgresql/postgresql-2026-04-30_000000.csv
- Parsed 328,793 log entries in 7m10s
- Log start from 2026-04-28 00:00:01 to 2026-04-28 23:59:03
-
Overview
Global Stats
- 62 Number of unique normalized queries
- 24,773 Number of queries
- 18h56m48s Total query duration
- 2026-04-28 00:00:01 First query
- 2026-04-28 23:59:01 Last query
- 18 queries/s at 2026-04-28 11:17:01 Query peak
- 18h56m48s Total query duration
- 0ms Prepare/parse total duration
- 0ms Bind total duration
- 18h56m48s Execute total duration
- 2 Number of events
- 2 Number of unique normalized events
- 1 Max number of times the same event was reported
- 0 Number of cancellation
- 86 Total number of automatic vacuums
- 210 Total number of automatic analyzes
- 750 Number temporary file
- 78.35 MiB Max size of temporary file
- 63.59 MiB Average size of temporary file
- 31,403 Total number of sessions
- 7 sessions at 2026-04-28 11:39:01 Session peak
- 1h39m37s Total duration of sessions
- 190ms Average duration of sessions
- 0 Average queries per session
- 2s172ms Average queries duration per session
- 0ms Average idle time per session
- 31,403 Total number of connections
- 36 connections/s at 2026-04-28 00:37:41 Connection peak
- 3 Total number of databases
SQL Traffic
Key values
- 18 queries/s Query Peak
- 2026-04-28 11:17:01 Date
SELECT Traffic
Key values
- 2 queries/s Query Peak
- 2026-04-28 09:13:32 Date
INSERT/UPDATE/DELETE Traffic
Key values
- 18 queries/s Query Peak
- 2026-04-28 23:22:01 Date
Queries duration
Key values
- 18h56m48s Total query duration
Prepared queries ratio
Key values
- 0.00 Ratio of bind vs prepare
- 0.00 % Ratio between prepared and "usual" statements
General Activity
↑ Back to the top of the General Activity tableDay Hour Count Min duration Max duration Avg duration Latency Percentile(90) Latency Percentile(95) Latency Percentile(99) Apr 28 00 1,033 0ms 5s64ms 4s47ms 1m19s 1m20s 1m30s 01 1,021 995ms 4s221ms 2s660ms 1m11s 1m11s 1m12s 02 1,020 995ms 995ms 995ms 16s922ms 16s922ms 16s922ms 03 1,020 995ms 995ms 995ms 16s922ms 16s922ms 16s922ms 04 1,020 995ms 995ms 995ms 16s922ms 16s922ms 16s922ms 05 1,033 995ms 4s601ms 3s385ms 1m16s 1m19s 1m27s 06 1,035 741ms 4s582ms 4s35ms 1m20s 1m20s 1m22s 07 1,052 556ms 4s534ms 3s318ms 1m18s 1m20s 1m23s 08 1,040 500ms 4s568ms 4s23ms 1m17s 1m20s 1m21s 09 1,047 657ms 4s834ms 2s887ms 1m20s 1m22s 1m26s 10 1,069 584ms 8s970ms 2s93ms 1m20s 1m24s 2m34s 11 1,048 710ms 4s761ms 3s787ms 1m22s 1m23s 1m25s 12 1,035 711ms 4s836ms 4s371ms 1m22s 1m22s 1m26s 13 1,028 526ms 4s530ms 2s338ms 1m17s 1m18s 1m21s 14 1,040 553ms 4s844ms 1s383ms 45s176ms 1m15s 1m22s 15 1,037 523ms 5s2ms 4s378ms 1m25s 1m27s 1m29s 16 1,033 725ms 4s715ms 4s537ms 1m21s 1m23s 1m24s 17 1,021 725ms 4s420ms 4s358ms 1m15s 1m15s 1m15s 18 1,029 4s359ms 4s846ms 4s546ms 1m22s 1m25s 1m27s 19 1,021 545ms 4s538ms 811ms 9s277ms 1m17s 1m17s 20 1,020 545ms 545ms 545ms 9s277ms 9s277ms 9s277ms 21 1,020 545ms 545ms 545ms 9s277ms 9s277ms 9s277ms 22 1,020 545ms 545ms 545ms 9s277ms 9s277ms 9s277ms 23 1,031 545ms 4s853ms 4s328ms 1m22s 1m22s 1m29s Day Hour SELECT COPY TO Average Duration Latency Percentile(90) Latency Percentile(95) Latency Percentile(99) Apr 28 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 2 0 876ms 0ms 0ms 0ms 07 14 0 801ms 0ms 1s9ms 1s697ms 08 5 0 735ms 0ms 0ms 1s10ms 09 15 0 816ms 0ms 762ms 1s669ms 10 44 0 1s212ms 1s506ms 3s58ms 8s970ms 11 16 0 874ms 0ms 1s518ms 1s588ms 12 4 0 775ms 0ms 0ms 0ms 13 5 0 667ms 0ms 0ms 540ms 14 16 0 1s208ms 0ms 2s238ms 3s22ms 15 3 0 696ms 0ms 0ms 523ms 16 2 0 785ms 0ms 0ms 0ms 17 0 0 0ms 0ms 0ms 0ms 18 0 0 0ms 0ms 0ms 0ms 19 1 0 545ms 0ms 0ms 0ms 20 0 0 0ms 0ms 0ms 0ms 21 0 0 0ms 0ms 0ms 0ms 22 0 0 0ms 0ms 0ms 0ms 23 0 5 1s449ms 0ms 0ms 0ms Day Hour INSERT UPDATE DELETE COPY FROM Average Duration Latency Percentile(90) Latency Percentile(95) Latency Percentile(99) Apr 28 00 0 0 0 0 0ms 0ms 0ms 0ms 01 0 1 0 0 995ms 0ms 0ms 0ms 02 0 0 0 0 0ms 0ms 0ms 0ms 03 0 0 0 0 0ms 0ms 0ms 0ms 04 0 0 0 0 0ms 0ms 0ms 0ms 05 0 0 0 0 0ms 0ms 0ms 0ms 06 0 0 0 0 0ms 0ms 0ms 0ms 07 0 0 0 0 0ms 0ms 0ms 0ms 08 0 0 0 0 0ms 0ms 0ms 0ms 09 0 0 0 0 0ms 0ms 0ms 0ms 10 0 0 0 0 0ms 0ms 0ms 0ms 11 0 0 0 0 0ms 0ms 0ms 0ms 12 0 0 0 0 0ms 0ms 0ms 0ms 13 0 0 0 0 0ms 0ms 0ms 0ms 14 0 0 0 0 0ms 0ms 0ms 0ms 15 0 0 0 0 0ms 0ms 0ms 0ms 16 0 0 0 0 0ms 0ms 0ms 0ms 17 0 0 0 0 0ms 0ms 0ms 0ms 18 0 0 0 0 0ms 0ms 0ms 0ms 19 0 0 0 0 0ms 0ms 0ms 0ms 20 0 0 0 0 0ms 0ms 0ms 0ms 21 0 0 0 0 0ms 0ms 0ms 0ms 22 0 0 0 0 0ms 0ms 0ms 0ms 23 0 0 0 0 0ms 0ms 0ms 0ms Day Hour Prepare Bind Bind/Prepare Percentage of prepare Apr 28 00 0 13 13.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 13 13.00 0.00% 06 0 12 12.00 0.00% 07 0 23 23.00 0.00% 08 0 12 12.00 0.00% 09 0 9 9.00 0.00% 10 0 4 4.00 0.00% 11 0 12 12.00 0.00% 12 0 11 11.00 0.00% 13 0 3 3.00 0.00% 14 0 3 3.00 0.00% 15 0 13 13.00 0.00% 16 0 11 11.00 0.00% 17 0 1 1.00 0.00% 18 0 9 9.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 6 6.00 0.00% Day Hour Count Average / Second Apr 28 00 923 0.26/s 01 546 0.15/s 02 562 0.16/s 03 543 0.15/s 04 543 0.15/s 05 989 0.27/s 06 1,405 0.39/s 07 1,776 0.49/s 08 2,033 0.56/s 09 2,084 0.58/s 10 2,589 0.72/s 11 2,465 0.68/s 12 2,039 0.57/s 13 2,939 0.82/s 14 1,985 0.55/s 15 1,442 0.40/s 16 1,713 0.48/s 17 1,059 0.29/s 18 839 0.23/s 19 556 0.15/s 20 546 0.15/s 21 543 0.15/s 22 564 0.16/s 23 720 0.20/s Day Hour Count Average Duration Average idle time Apr 28 00 923 229ms 0ms 01 546 236ms 0ms 02 562 227ms 0ms 03 543 234ms 0ms 04 543 233ms 0ms 05 989 222ms 0ms 06 1,405 186ms 0ms 07 1,776 207ms 0ms 08 2,033 159ms 0ms 09 2,084 159ms 0ms 10 2,589 183ms 0ms 11 2,465 160ms 0ms 12 2,039 166ms 0ms 13 2,939 170ms 0ms 14 1,985 162ms 0ms 15 1,442 213ms 0ms 16 1,713 180ms 0ms 17 1,059 171ms 0ms 18 839 260ms 0ms 19 556 232ms 0ms 20 546 233ms 0ms 21 543 235ms 0ms 22 564 228ms 0ms 23 720 259ms 0ms -
Connections
Established Connections
Key values
- 36 connections Connection Peak
- 2026-04-28 00:37:41 Date
Connections per database
Key values
- zemm_monitoring Main Database
- 31,403 connections Total
Connections per user
Key values
- labanimal Main User
- 31,403 connections Total
-
Sessions
Simultaneous sessions
Key values
- 7 sessions Session Peak
- 2026-04-28 11:39:01 Date
Histogram of session times
Key values
- 28,773 0-500ms duration
Sessions per database
Key values
- zemm_monitoring Main Database
- 31,403 sessions Total
Sessions per user
Key values
- labanimal Main User
- 31,403 sessions Total
Sessions per host
Key values
- ::1 Main Host
- 31,403 sessions Total
Sessions per application
Key values
- Main Application
- 31,403 sessions Total
Application Count Total Duration Average Duration 25,321 1h25m50s 203ms _backend_cage_autocomplete_api.php_q_2025_limit_12_zemm_dev_loc 2 53ms 26ms _backend_cage_autocomplete_api.php_q_Kadavertruhe_limit_12_zemm 2 75ms 37ms _backend_wean_api.php_litter_id_10130227_zemm_dev_localhost_543 10 1s499ms 149ms _backend_wean_api.php_litter_id_10130236_zemm_dev_localhost_543 10 1s473ms 147ms _backend_wean_api.php_litter_id_10130257_zemm_dev_localhost_543 12 1s844ms 153ms _desktop__zemm_dev_localhost_5432 2 127ms 63ms _desktop__zemm_produktiv_8_localhost_5432 20 1s121ms 56ms _desktop_index.php_cages_name_49-2_2A_cages_empty__25_val4_cage 7 486ms 69ms _desktop_index.php_cages_name_A15_2A_cages_empty__25_val4_cages 1 152ms 152ms _desktop_index.php_command_animals_breedings_subcommand_add_bre 3 141ms 47ms _desktop_index.php_command_animals_breedings_subcommand_select_ 2 111ms 55ms _desktop_index.php_command_animals_create_subcommand_init_zemm_ 2 132ms 66ms _desktop_index.php_command_animals_edit_subcommand_init_id_1029 1 100ms 100ms _desktop_index.php_command_animals_edit_subcommand_link_init_va 2 229ms 114ms _desktop_index.php_command_animals_edit_subcommand_m_init_scree 2 284ms 142ms _desktop_index.php_command_animals_litters_edit_subcommand_init 2 219ms 109ms _desktop_index.php_command_animals_litters_edit_subcommand_m_in 2 693ms 346ms _desktop_index.php_command_animals_litters_subcommand_select_ze 2 95ms 47ms _desktop_index.php_command_animals_subcommand_found_val1_101002 1 41ms 41ms _desktop_index.php_command_animals_subcommand_init_zemm_produkt 22 959ms 43ms _desktop_index.php_command_animals_subcommand_select_zemm_dev_l 2 128ms 64ms _desktop_index.php_command_login_subcommand_init_zemm_dev_local 9 309ms 34ms _desktop_index.php_command_login_subcommand_init_zemm_produktiv 1,737 51s718ms 29ms _desktop_index.php_command_reports_subcommand_animals_per_room_ 1 124ms 124ms _desktop_index.php_command_reports_subcommand_animals_per_user_ 5 599ms 119ms _desktop_index.php_command_reports_subcommand_fates_zemm_dev_lo 2 261ms 130ms _desktop_index.php_command_reports_subcommand_init_zemm_dev_loc 4 3s400ms 850ms _desktop_index.php_command_reports_subcommand_init_zemm_produkt 3 403ms 134ms _desktop_index.php_command_reports_subcommand_task_status_zemm_ 5 771ms 154ms _desktop_index.php_command_strains_subcommand_edit_id_1408_zemm 1 64ms 64ms _desktop_index.php_command_tasks_subcommand_create_task_id_49_z 1 59ms 59ms _desktop_index.php_command_tasks_subcommand_edit_id_10124831_ze 1 87ms 87ms _desktop_index.php_command_tasks_subcommand_edit_id_10134267_ze 2 184ms 92ms _desktop_index.php_command_tasks_subcommand_edit_id_10142330_ze 1 86ms 86ms _desktop_index.php_command_tasks_subcommand_edit_id_10142501_ze 1 82ms 82ms _desktop_index.php_command_tasks_subcommand_edit_id_10142508_ze 1 93ms 93ms _desktop_index.php_command_tasks_subcommand_edit_id_10142536_ze 1 87ms 87ms _desktop_index.php_command_tasks_subcommand_edit_id_10142572_ze 3 262ms 87ms _desktop_index.php_command_tasks_subcommand_edit_id_10142581_ze 2 175ms 87ms _desktop_index.php_command_tasks_subcommand_edit_id_10142593_ze 2 176ms 88ms _desktop_index.php_command_tasks_subcommand_edit_id_10142596_ze 1 88ms 88ms _desktop_index.php_command_tasks_subcommand_edit_id_10142597_ze 1 87ms 87ms _desktop_index.php_command_tasks_subcommand_init_search_zemm_de 2 109ms 54ms _desktop_index.php_command_tasks_subcommand_init_zemm_produktiv 16 972ms 60ms _desktop_index.php_command_tasks_subcommand_open_zemm_produktiv 87 6s647ms 76ms _desktop_index.php_command_tasks_subcommand_search_zemm_produkt 2 86ms 43ms _desktop_index.php_m_action_animals_litters_edit_3Am_init_val4_ 1 41ms 41ms _desktop_index.php_name_Tiertransport_20durch_20das_20ZEMM_inst 1 72ms 72ms _desktop_index.php_name_Transfer_20von_20Zucht_20in_20Offene_in 1 49ms 49ms _desktop_index.php_name_VP_20von_20..._20bis_20..._20Ntsr1_2Fri 1 62ms 62ms _desktop_index.php_name_VP_20von_20_E2_80_A6_20bis_20_E2_80_A6_ 2 102ms 51ms _desktop_index.php_name_Verpaarungen_20f_C3_BCr_20Versuchsvorha 3 170ms 56ms _desktop_index.php_name_Verpaarungen_20zur_20Zucht_20Emx1_2FEmx 1 48ms 48ms _desktop_index.php_name_Verpaarungen_20zur_20Zucht_instructions 2 102ms 51ms _desktop_index.php_search_name_VP_20von_20_E2_80_A6_20bis_20_E2 3 218ms 72ms _desktop_index.php_search_status__25_issuer_user_name_Huang_2C_ 3 343ms 114ms _desktop_index.php_search_status__25_issuer_user_name_Kirmse_2C 2 148ms 74ms _desktop_index.php_search_status__25_no_subtasks_true_command_t 1 1s567ms 1s567ms _desktop_index.php_val4_strain_command_tasks_subcommand_init_ze 1 50ms 50ms _desktop_index.php_view_animal_name_on_view_animal_id_on_animal 4 1s67ms 266ms _desktop_index.php_view_animal_name_on_view_animal_id_on_view_b 15 5s956ms 397ms _desktop_index.php_zemm_dev_localhost_5432 32 16s274ms 508ms _desktop_index.php_zemm_produktiv_8_localhost_5432 3,924 11m32s 176ms backend:zemm_produktiv_8@localhost 34 2s771ms 81ms expire_tasks:zemm_produktiv_8@h2940066.stratoserver.net:5432 1 1s18ms 1s18ms pg_dump 1 12s123ms 12s123ms psql 25 1s700ms 68ms taskscron:zemm_produktiv_8@h2940066.stratoserver.net:5432 24 13s937ms 580ms -
Checkpoints / Restartpoints
Checkpoints Buffers
Key values
- 18,888 buffers Checkpoint Peak
- 2026-04-28 01:35:52 Date
- 269.886 seconds Highest write time
- 0.034 seconds Sync time
Checkpoints Wal files
Key values
- 6 files Wal files usage Peak
- 2026-04-28 01:35:52 Date
Checkpoints distance
Key values
- 179.42 Mo Distance Peak
- 2026-04-28 01:35:52 Date
Checkpoints Activity
↑ Back to the top of the Checkpoint Activity tableDay Hour Written buffers Write time Sync time Total time Apr 28 00 3,278 328.379s 0.087s 328.52s 01 21,447 526.405s 0.091s 526.552s 02 2,671 267.781s 0.088s 267.921s 03 2,933 293.91s 0.083s 294.047s 04 2,633 263.959s 0.084s 264.099s 05 8,747 595.915s 0.087s 596.053s 06 19,237 859.662s 0.194s 859.92s 07 30,586 928.046s 0.176s 928.274s 08 31,645 988.385s 0.2s 988.653s 09 20,016 958.978s 0.242s 959.281s 10 5,671 567.762s 0.2s 568.021s 11 6,447 645.57s 0.204s 645.831s 12 4,837 486.703s 0.186s 486.943s 13 6,463 648.127s 0.26s 648.44s 14 4,765 477.017s 0.209s 477.272s 15 6,654 666.47s 0.148s 666.678s 16 4,666 467.758s 0.155s 467.963s 17 5,171 517.744s 0.147s 517.944s 18 4,263 427.169s 0.094s 427.312s 19 2,949 295.653s 0.089s 295.795s 20 3,253 326.092s 0.086s 326.231s 21 2,170 217.581s 0.098s 217.733s 22 2,199 220.501s 0.093s 220.647s 23 7,003 506.47s 0.089s 506.612s Day Hour Added Removed Recycled Synced files Longest sync Average sync Apr 28 00 0 0 1 420 0.002s 0.012s 01 0 0 6 457 0.003s 0.012s 02 0 0 1 434 0.002s 0.012s 03 0 0 1 422 0.002s 0.012s 04 0 0 1 420 0.002s 0.012s 05 0 0 2 434 0.002s 0.012s 06 0 0 5 1,028 0.007s 0.012s 07 0 0 9 984 0.003s 0.011s 08 0 0 9 1,147 0.004s 0.012s 09 0 0 5 1,372 0.004s 0.013s 10 0 0 1 1,156 0.002s 0.012s 11 0 0 2 1,152 0.002s 0.012s 12 0 0 1 1,048 0.002s 0.012s 13 0 0 2 1,485 0.003s 0.012s 14 0 0 1 1,251 0.002s 0.011s 15 0 0 2 798 0.004s 0.013s 16 0 0 1 840 0.002s 0.012s 17 0 0 1 796 0.003s 0.012s 18 0 0 1 473 0.002s 0.012s 19 0 0 1 435 0.003s 0.012s 20 0 0 1 424 0.001s 0.012s 21 0 0 1 420 0.004s 0.012s 22 0 0 1 452 0.003s 0.012s 23 0 0 1 443 0.002s 0.012s Day Hour Count Avg time (sec) Apr 28 00 0 0s 01 0 0s 02 0 0s 03 0 0s 04 0 0s 05 0 0s 06 0 0s 07 0 0s 08 0 0s 09 0 0s 10 0 0s 11 0 0s 12 0 0s 13 0 0s 14 0 0s 15 0 0s 16 0 0s 17 0 0s 18 0 0s 19 0 0s 20 0 0s 21 0 0s 22 0 0s 23 0 0s Day Hour Mean distance Mean estimate Apr 28 00 1,225.33 kB 1,354.58 kB 01 8,709.92 kB 36,658.17 kB 02 1,099.42 kB 29,941.08 kB 03 1,150.92 kB 9,247.92 kB 04 1,088.83 kB 3,430.08 kB 05 2,712.75 kB 10,051.25 kB 06 7,176.33 kB 21,562.00 kB 07 13,881.64 kB 54,149.82 kB 08 11,332.17 kB 43,726.67 kB 09 6,424.38 kB 34,453.00 kB 10 2,128.75 kB 10,716.33 kB 11 2,241.42 kB 4,667.08 kB 12 1,748.33 kB 2,604.75 kB 13 2,401.58 kB 2,930.92 kB 14 1,884.55 kB 2,405.00 kB 15 2,161.92 kB 5,460.08 kB 16 1,697.42 kB 2,659.92 kB 17 1,623.42 kB 2,412.67 kB 18 1,554.67 kB 3,675.92 kB 19 1,217.50 kB 1,902.00 kB 20 1,273.58 kB 1,657.92 kB 21 1,012.58 kB 1,299.25 kB 22 1,023.58 kB 1,102.00 kB 23 2,354.58 kB 10,105.75 kB -
Temporary Files
Size of temporary files
Key values
- 321.41 MiB Temp Files size Peak
- 2026-04-28 23:22:01 Date
Number of temporary files
Key values
- 5 per second Temp Files Peak
- 2026-04-28 08:39:40 Date
Temporary Files Activity
↑ Back to the top of the Temporary Files Activity tableDay Hour Count Total size Average size Apr 28 00 65 3.90 GiB 61.50 MiB 01 0 0 0 02 0 0 0 03 0 0 0 04 0 0 0 05 65 4.03 GiB 63.52 MiB 06 60 3.73 GiB 63.58 MiB 07 90 5.59 GiB 63.62 MiB 08 60 3.73 GiB 63.66 MiB 09 45 2.80 GiB 63.70 MiB 10 20 1.24 GiB 63.73 MiB 11 60 3.74 GiB 63.79 MiB 12 55 3.43 GiB 63.83 MiB 13 15 957.81 MiB 63.85 MiB 14 15 958.97 MiB 63.93 MiB 15 65 4.06 GiB 63.95 MiB 16 55 3.44 GiB 63.99 MiB 17 5 320.07 MiB 64.01 MiB 18 45 2.82 GiB 64.07 MiB 19 0 0 0 20 0 0 0 21 0 0 0 22 0 0 0 23 30 1.88 GiB 64.28 MiB Queries generating the most temporary files (N)
Rank Count Total size Min size Max size Avg size Query 1 600 36.36 GiB 46.79 MiB 72.31 MiB 62.06 MiB with start_snap as ( select distinct on (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at from observability.db_top_queries where tenant_key in (...) and collected_at <= ? order by tenant_key, fingerprint, collected_at desc ), fallback_start as ( select distinct on (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at from observability.db_top_queries where tenant_key in (...) and collected_at between ? and ? order by tenant_key, fingerprint, collected_at asc ), end_snap as ( select distinct on (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at from observability.db_top_queries where tenant_key in (...) and collected_at between ? and ? order by tenant_key, fingerprint, collected_at desc ), deltas as ( select e.tenant_key, e.fingerprint, e.query, e.collected_at as last_seen, greatest (coalesce(e.total_time_ms, ?) - coalesce(s.total_time_ms, fs.total_time_ms, ?), ?) as total_time_ms, greatest (coalesce(e.calls, ?) - coalesce(s.calls, fs.calls, ?), ?) as calls, greatest (coalesce(e.rows_returned, ?) - coalesce(s.rows_returned, fs.rows_returned, ?), ?) as rows_returned from end_snap e left join start_snap s on s.tenant_key = e.tenant_key and s.fingerprint = e.fingerprint left join fallback_start fs on fs.tenant_key = e.tenant_key and fs.fingerprint = e.fingerprint and s.tenant_key is null ) select fingerprint, max(query) as query, max(last_seen) as last_seen, sum(total_time_ms) as total_time_ms, sum(calls) as calls, sum(rows_returned) as rows_returned, case when sum(calls) > ? then sum(total_time_ms) / sum(calls) else ? end as mean_time_ms, array_agg(distinct tenant_key order by tenant_key) as tenant_keys from deltas where total_time_ms > ? or calls > ? group by fingerprint order by total_time_ms desc, calls desc limit ? offset ?;-
WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at <= '2026-04-27 00:37:41+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at BETWEEN '2026-04-27 00:37:41+02' AND '2026-04-28 00:37:41+02' ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at BETWEEN '2026-04-27 00:37:41+02' AND '2026-04-28 00:37:41+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT '20' OFFSET '0';
Date: 2026-04-28 00:37:46 Duration: 5s64ms Database: zemm_monitoring User: labanimal Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at <= '2026-04-28 09:38:49+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at BETWEEN '2026-04-28 09:38:49+02' AND '2026-04-28 15:38:49+02' ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at BETWEEN '2026-04-28 09:38:49+02' AND '2026-04-28 15:38:49+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT '20' OFFSET '0';
Date: 2026-04-28 15:38:54 Duration: 5s2ms Database: zemm_monitoring User: labanimal Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at <= '2026-04-28 04:00:49+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at BETWEEN '2026-04-28 04:00:49+02' AND '2026-04-28 10:00:49+02' ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at BETWEEN '2026-04-28 04:00:49+02' AND '2026-04-28 10:00:49+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT '20' OFFSET '0';
Date: 2026-04-28 10:00:54 Duration: 4s916ms Database: zemm_monitoring User: labanimal Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
Queries generating the largest temporary files
Rank Size Query 1 72.31 MiB WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($1) AND collected_at <= $2 ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($3) AND collected_at BETWEEN $4 AND $5 ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($6) AND collected_at BETWEEN $7 AND $8 ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT $9 OFFSET $10;[ Date: 2026-04-28 06:12:18 - Queryid: 2931983 ]
2 71.23 MiB WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($1) AND collected_at <= $2 ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($3) AND collected_at BETWEEN $4 AND $5 ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($6) AND collected_at BETWEEN $7 AND $8 ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT $9 OFFSET $10;[ Date: 2026-04-28 14:58:19 - Queryid: 3602906 ]
3 70.84 MiB WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($1) AND collected_at <= $2 ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($3) AND collected_at BETWEEN $4 AND $5 ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($6) AND collected_at BETWEEN $7 AND $8 ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT $9 OFFSET $10;[ Date: 2026-04-28 15:28:35 - Queryid: 3894601 ]
4 70.37 MiB WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($1) AND collected_at <= $2 ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($3) AND collected_at BETWEEN $4 AND $5 ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($6) AND collected_at BETWEEN $7 AND $8 ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT $9 OFFSET $10;[ Date: 2026-04-28 12:45:18 - Queryid: 2375378 ]
5 70.12 MiB WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($1) AND collected_at <= $2 ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($3) AND collected_at BETWEEN $4 AND $5 ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($6) AND collected_at BETWEEN $7 AND $8 ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT $9 OFFSET $10;[ Date: 2026-04-28 18:10:50 - Queryid: 1201492 ]
6 69.91 MiB WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($1) AND collected_at <= $2 ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($3) AND collected_at BETWEEN $4 AND $5 ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($6) AND collected_at BETWEEN $7 AND $8 ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT $9 OFFSET $10;[ Date: 2026-04-28 05:16:09 - Queryid: 2415826 ]
7 69.79 MiB WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($1) AND collected_at <= $2 ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($3) AND collected_at BETWEEN $4 AND $5 ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($6) AND collected_at BETWEEN $7 AND $8 ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT $9 OFFSET $10;[ Date: 2026-04-28 12:50:27 - Queryid: 2422897 ]
8 69.77 MiB WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($1) AND collected_at <= $2 ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($3) AND collected_at BETWEEN $4 AND $5 ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($6) AND collected_at BETWEEN $7 AND $8 ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT $9 OFFSET $10;[ Date: 2026-04-28 16:19:31 - Queryid: 174454 ]
9 69.64 MiB WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($1) AND collected_at <= $2 ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($3) AND collected_at BETWEEN $4 AND $5 ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($6) AND collected_at BETWEEN $7 AND $8 ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT $9 OFFSET $10;[ Date: 2026-04-28 15:38:53 - Queryid: 3992080 ]
10 69.62 MiB WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($1) AND collected_at <= $2 ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($3) AND collected_at BETWEEN $4 AND $5 ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($6) AND collected_at BETWEEN $7 AND $8 ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT $9 OFFSET $10;[ Date: 2026-04-28 15:28:34 - Queryid: 3894601 ]
11 69.28 MiB WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($1) AND collected_at <= $2 ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($3) AND collected_at BETWEEN $4 AND $5 ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($6) AND collected_at BETWEEN $7 AND $8 ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT $9 OFFSET $10;[ Date: 2026-04-28 16:29:50 - Queryid: 269674 ]
12 68.59 MiB WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($1) AND collected_at <= $2 ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($3) AND collected_at BETWEEN $4 AND $5 ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($6) AND collected_at BETWEEN $7 AND $8 ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT $9 OFFSET $10;[ Date: 2026-04-28 12:45:18 - Queryid: 2375378 ]
13 68.54 MiB WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($1) AND collected_at <= $2 ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($3) AND collected_at BETWEEN $4 AND $5 ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($6) AND collected_at BETWEEN $7 AND $8 ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT $9 OFFSET $10;[ Date: 2026-04-28 05:16:14 - Queryid: 2416346 ]
14 68.42 MiB WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($1) AND collected_at <= $2 ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($3) AND collected_at BETWEEN $4 AND $5 ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($6) AND collected_at BETWEEN $7 AND $8 ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT $9 OFFSET $10;[ Date: 2026-04-28 10:58:28 - Queryid: 1389362 ]
15 67.98 MiB WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($1) AND collected_at <= $2 ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($3) AND collected_at BETWEEN $4 AND $5 ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($6) AND collected_at BETWEEN $7 AND $8 ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT $9 OFFSET $10;[ Date: 2026-04-28 18:31:19 - Queryid: 1390070 ]
16 67.92 MiB WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($1) AND collected_at <= $2 ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($3) AND collected_at BETWEEN $4 AND $5 ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($6) AND collected_at BETWEEN $7 AND $8 ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT $9 OFFSET $10;[ Date: 2026-04-28 18:05:50 - Queryid: 1155557 ]
17 67.86 MiB WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($1) AND collected_at <= $2 ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($3) AND collected_at BETWEEN $4 AND $5 ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($6) AND collected_at BETWEEN $7 AND $8 ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT $9 OFFSET $10;[ Date: 2026-04-28 23:01:46 - Queryid: 3882561 ]
18 67.84 MiB WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($1) AND collected_at <= $2 ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($3) AND collected_at BETWEEN $4 AND $5 ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($6) AND collected_at BETWEEN $7 AND $8 ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT $9 OFFSET $10;[ Date: 2026-04-28 16:34:59 - Queryid: 317053 ]
19 67.81 MiB WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($1) AND collected_at <= $2 ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($3) AND collected_at BETWEEN $4 AND $5 ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($6) AND collected_at BETWEEN $7 AND $8 ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT $9 OFFSET $10;[ Date: 2026-04-28 16:29:50 - Queryid: 269674 ]
20 67.80 MiB WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($1) AND collected_at <= $2 ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($3) AND collected_at BETWEEN $4 AND $5 ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ($6) AND collected_at BETWEEN $7 AND $8 ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT $9 OFFSET $10;[ Date: 2026-04-28 15:23:34 - Queryid: 3848611 ]
-
Vacuums
Vacuums / Analyzes Distribution
Key values
- 0.60 sec Highest CPU-cost vacuum
Table public.tasks
Database zemm_produktiv_8 - 2026-04-28 01:30:32 Date
- 0 sec Highest CPU-cost analyze
Table
Database zemm_produktiv_8 - Date
Average Autovacuum Duration
Key values
- 0.60 sec Highest CPU-cost vacuum
Table public.tasks
Database zemm_produktiv_8 - 2026-04-28 01:30:32 Date
Analyzes per table
Key values
- pg_catalog.pg_type (61) Main table analyzed (database zemm_produktiv_8)
- 210 analyzes Total
Table Number of analyzes zemm_produktiv_8.pg_catalog.pg_type 61 zemm_produktiv_8.pg_catalog.pg_attribute 46 zemm_produktiv_8.pg_catalog.pg_class 33 zemm_produktiv_8.pg_catalog.pg_depend 30 zemm_produktiv_8.public.breedingssires 7 zemm_produktiv_8.public.breedingsdams 7 zemm_produktiv_8.public.tmptasks 3 zemm_monitoring.observability.metrics_timeseries 2 zemm_produktiv_8.public.cages_search_mview 2 zemm_produktiv_8.public.users 2 postgres.pg_catalog.pg_shdepend 2 zemm_produktiv_8.pg_catalog.pg_shdepend 1 zemm_produktiv_8.public.login_tracker 1 zemm_monitoring.observability.uptime_checks 1 zemm_produktiv_8.public.cages 1 fbi_ci_db.pg_catalog.pg_shdepend 1 fbi_unire.pg_catalog.pg_shdepend 1 template1.pg_catalog.pg_shdepend 1 template0.pg_catalog.pg_shdepend 1 zemm_produktiv_8.public.tasks 1 zemm_dev.pg_catalog.pg_shdepend 1 zemm_monitoring.observability.nginx_counters 1 zemm_monitoring.pg_catalog.pg_shdepend 1 zemm_produktiv_8.public.cost_history 1 zemm_produktiv_8.public.monitoring_session_activity 1 zemm_dev.public.login_tracker 1 Total 210 Vacuums per table
Key values
- pg_catalog.pg_type (21) Main table vacuumed on database zemm_produktiv_8
- 86 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 21 21 0 0 0 0 0 1,087 229 233,424 0 0 zemm_produktiv_8.pg_catalog.pg_attribute 15 15 0 0 0 0 0 1,984 642 442,014 1 3 zemm_produktiv_8.pg_catalog.pg_class 10 10 0 0 0 0 0 976 322 377,938 0 0 zemm_produktiv_8.pg_catalog.pg_depend 8 8 0 0 0 0 0 1,052 311 403,132 2 4 zemm_produktiv_8.public.breedingssires 7 0 0 0 0 0 0 1,043 174 567,166 0 0 zemm_produktiv_8.public.breedingsdams 7 0 0 0 0 0 0 1,393 224 763,762 0 0 zemm_produktiv_8.pg_toast.pg_toast_2619 5 5 0 0 0 0 0 912 243 1,377,044 61 186 zemm_monitoring.pg_toast.pg_toast_67431 4 0 0 0 0 0 0 3,922 1,313 2,993,025 1,297 7,782 fbi_unibi.pg_catalog.pg_shdepend 3 3 0 0 0 0 0 202 64 131,735 0 0 zemm_monitoring.pg_toast.pg_toast_2619 1 1 0 0 0 0 0 95 21 137,108 5 20 zemm_produktiv_8.public.tmptasks 1 1 0 0 0 0 0 96 35 25,553 3 3 zemm_produktiv_8.public.users 1 1 0 0 0 0 0 159 76 184,794 43 108 zemm_produktiv_8.public.tasks 1 1 0 0 0 0 0 46,760 34 3,380,644 0 0 zemm_monitoring.observability.uptime_checks 1 0 0 0 0 0 0 1,478 1,459 2,432,311 9 180 zemm_monitoring.observability.phpfpm_counters 1 0 0 0 0 0 0 1,167 1,167 1,097,710 0 0 Total 86 66 0 0 0 0 0 62,326 6,314 14,547,360 1,421 8,286 Vacuum throughput per table
Key values
- public.tasks (0.6) Max CPU elapsed for vacuum on database zemm_produktiv_8
- pg_catalog.pg_attribute (4.012 ms) Max I/O read time for vacuum on database zemm_produktiv_8
- pg_toast.pg_toast_67431 (0.249 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 1.561 0 0 zemm_produktiv_8.pg_catalog.pg_attribute 4.012 0 0.16 zemm_produktiv_8.pg_catalog.pg_class 3.974 0 0.04 zemm_produktiv_8.pg_catalog.pg_depend 2.996 0 0.06 zemm_produktiv_8.public.breedingssires 0 0.163 0 zemm_produktiv_8.public.breedingsdams 0 0.106 0 zemm_produktiv_8.pg_toast.pg_toast_2619 2.019 0 0.05 zemm_monitoring.pg_toast.pg_toast_67431 1.989 0.249 0.32 fbi_unibi.pg_catalog.pg_shdepend 3.324 0 0.01 zemm_monitoring.pg_toast.pg_toast_2619 0.72 0 0 zemm_produktiv_8.public.tmptasks 0.623 0 0.01 zemm_produktiv_8.public.users 0.816 0 0.02 zemm_produktiv_8.public.tasks 1.21 0 0.6 zemm_monitoring.observability.uptime_checks 0.561 0 0.36 zemm_monitoring.observability.phpfpm_counters 0.74 0 0.28 Total 24.545 0.518 1.91 Tuples removed per table
Key values
- public.tasks (54129) Main table with removed tuples on database zemm_produktiv_8
- 83208 tuples Total removed
Index Tuples Pages Table Vacuums scans removed remain not yet removable removed remain zemm_produktiv_8.public.tasks 1 1 54,129 57,168 0 0 16,872 zemm_produktiv_8.pg_catalog.pg_attribute 15 15 14,885 85,605 0 0 2,760 zemm_produktiv_8.pg_catalog.pg_depend 8 8 6,970 33,368 0 0 440 zemm_produktiv_8.pg_catalog.pg_type 21 21 4,242 17,451 0 0 651 zemm_produktiv_8.pg_catalog.pg_class 10 10 1,503 8,940 0 0 420 fbi_unibi.pg_catalog.pg_shdepend 3 3 654 14,109 0 0 114 zemm_produktiv_8.pg_toast.pg_toast_2619 5 5 491 1,448 0 0 530 zemm_produktiv_8.public.users 1 1 175 756 0 0 108 zemm_produktiv_8.public.tmptasks 1 1 94 772 0 10 115 zemm_monitoring.pg_toast.pg_toast_2619 1 1 65 84 0 0 36 zemm_produktiv_8.public.breedingssires 7 0 0 158,344 0 0 1,015 zemm_monitoring.observability.uptime_checks 1 0 0 146,691 0 0 7,554 zemm_produktiv_8.public.breedingsdams 7 0 0 213,893 0 0 1,365 zemm_monitoring.pg_toast.pg_toast_67431 4 0 0 1,976,156 0 0 334,077 zemm_monitoring.observability.phpfpm_counters 1 0 0 89,921 0 0 5,745 Total 86 66 83,208 2,804,706 0 10 371,802 Pages removed per table
Key values
- public.tmptasks (10) Main table with removed pages on database zemm_produktiv_8
- 10 pages Total removed
Table Number of vacuums Index scans Tuples removed Pages removed zemm_produktiv_8.public.tmptasks 1 1 94 10 zemm_monitoring.pg_toast.pg_toast_2619 1 1 65 0 zemm_produktiv_8.pg_catalog.pg_class 10 10 1503 0 fbi_unibi.pg_catalog.pg_shdepend 3 3 654 0 zemm_produktiv_8.public.users 1 1 175 0 zemm_produktiv_8.pg_catalog.pg_type 21 21 4242 0 zemm_produktiv_8.public.breedingssires 7 0 0 0 zemm_produktiv_8.public.tasks 1 1 54129 0 zemm_produktiv_8.pg_catalog.pg_attribute 15 15 14885 0 zemm_monitoring.observability.uptime_checks 1 0 0 0 zemm_produktiv_8.pg_toast.pg_toast_2619 5 5 491 0 zemm_produktiv_8.pg_catalog.pg_depend 8 8 6970 0 zemm_produktiv_8.public.breedingsdams 7 0 0 0 zemm_monitoring.pg_toast.pg_toast_67431 4 0 0 0 zemm_monitoring.observability.phpfpm_counters 1 0 0 0 Total 86 66 83,208 10 Autovacuum Activity
↑ Back to the top of the Autovacuum Activity tableDay Hour VACUUMs ANALYZEs Apr 28 00 0 0 01 1 1 02 0 1 03 1 0 04 0 0 05 0 3 06 7 11 07 11 20 08 12 28 09 9 14 10 6 22 11 8 24 12 5 17 13 10 29 14 6 13 15 0 3 16 5 12 17 4 12 18 0 0 19 0 0 20 1 0 21 0 0 22 0 0 23 0 0 - 0.60 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
- 127 Total read queries
- 24,645 Total write queries
Queries by database
Key values
- zemm_monitoring Main database
- 24,635 Requests
- 18h54m5s (zemm_monitoring)
- Main time consuming database
Queries by user
Key values
- labanimal Main user
- 824,450 Requests
User Request type Count Duration deploy Total 241 27m39s cte 4 1m18s ddl 134 11m50s others 88 5m56s select 9 6m3s labanimal Total 824,450 25d11h18m33s copy from 28 3m52s copy to 194 9m13s cte 5,292 6h1m2s ddl 814,713 25d3h48m11s others 668 12m56s select 3,475 1h1m50s tcl 11 9s269ms update 37 39s612ms postgres Total 200 4m35s copy to 200 4m35s Duration by user
Key values
- 25d11h18m33s (labanimal) Main time consuming user
User Request type Count Duration deploy Total 241 27m39s cte 4 1m18s ddl 134 11m50s others 88 5m56s select 9 6m3s labanimal Total 824,450 25d11h18m33s copy from 28 3m52s copy to 194 9m13s cte 5,292 6h1m2s ddl 814,713 25d3h48m11s others 668 12m56s select 3,475 1h1m50s tcl 11 9s269ms update 37 39s612ms postgres Total 200 4m35s copy to 200 4m35s Queries by host
Key values
- unknown Main host
- 824,410 Requests
- 25d11h14m50s (unknown)
- Main time consuming host
Host Request type Count Duration 127.0.0.1 Total 2 6s311ms ddl 2 6s311ms 81.169.238.237 Total 38 3m36s select 1 2m56s update 37 39s612ms [local] Total 441 32m14s copy to 200 4m35s cte 4 1m18s ddl 134 11m50s others 88 5m56s select 9 6m3s unknown Total 824,410 25d11h14m50s copy from 28 3m52s copy to 194 9m13s cte 5,292 6h1m2s ddl 814,711 25d3h48m5s others 668 12m56s select 3,474 58m53s tcl 11 9s269ms Queries by application
Key values
- unknown Main application
- 24,635 Requests
- 18h54m5s (unknown)
- Main time consuming application
Application Request type Count Duration _desktop_index.php_command_reports_subcommand_init_zemm_dev_loc Total 4 3s159ms select 4 3s159ms _desktop_index.php_search_status__25_no_subtasks_true_command_t Total 1 1s527ms select 1 1s527ms _desktop_index.php_zemm_dev_localhost_5432 Total 2 7s970ms cte 2 7s970ms _desktop_index.php_zemm_produktiv_8_localhost_5432 Total 122 2m9s cte 5 10s782ms select 117 1m58s expire_tasks:zemm_produktiv_8@h2940066.stratoserver.net:5432 Total 1 995ms update 1 995ms pg_dump Total 5 7s249ms copy to 5 7s249ms psql Total 3 12s907ms ddl 2 8s605ms others 1 4s302ms unknown Total 24,635 18h54m5s cte 150 11m9s ddl 24,480 18h42m52s select 5 3s276ms Number of cancelled queries
Key values
- 0 per second Cancelled query Peak
- 2026-04-28 09:17:40 Date
Number of cancelled queries (5 minutes period)
NO DATASET
-
Top Queries
Histogram of query times
Key values
- 185 1000-10000ms duration
Slowest individual queries
Rank Duration Query 1 8s970ms 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, 10100106) THEN TRUE WHEN user_is_tgm (a.editor, 10100106) THEN TRUE WHEN user_is_tgm (a.tourist, 10100106) THEN TRUE ELSE FALSE END ORDER BY a.id;[ Date: 2026-04-28 10:33:33 - Database: zemm_produktiv_8 - User: labanimal - Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 - Bind query: yes ]
2 8s970ms CREATE SCHEMA IF NOT EXISTS observability;[ Date: 2026-04-28 10:34:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
3 8s970ms CREATE TABLE IF NOT EXISTS observability.metrics_timeseries ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, metric_name text NOT NULL, bucket_start timestamptz NOT NULL, bucket_width_seconds integer NOT NULL DEFAULT 60, sum_value double precision NOT NULL DEFAULT 0, count_value bigint NOT NULL DEFAULT 0, histogram jsonb, created_at timestamptz NOT NULL DEFAULT NOW(), updated_at timestamptz NOT NULL DEFAULT NOW(), UNIQUE (tenant_key, metric_name, bucket_start, bucket_width_seconds) );[ Date: 2026-04-28 10:34:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
4 8s970ms CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);[ Date: 2026-04-28 10:34:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
5 8s970ms CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);[ Date: 2026-04-28 10:34:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
6 8s970ms CREATE TABLE IF NOT EXISTS observability.app_events ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, event_type text NOT NULL, severity text NOT NULL, message text NOT NULL, payload jsonb, occurred_at timestamptz NOT NULL DEFAULT NOW(), created_at timestamptz NOT NULL DEFAULT NOW() );[ Date: 2026-04-28 10:34:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
7 8s970ms CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);[ Date: 2026-04-28 10:34:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
8 8s970ms CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);[ Date: 2026-04-28 10:34:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
9 8s970ms CREATE TABLE IF NOT EXISTS observability.db_top_queries ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, fingerprint text, query text, mean_time_ms double precision, total_time_ms double precision, calls bigint, rows_returned bigint, collected_at timestamptz NOT NULL DEFAULT NOW() );[ Date: 2026-04-28 10:34:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
10 8s970ms CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);[ Date: 2026-04-28 10:34:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
11 8s970ms CREATE TABLE IF NOT EXISTS observability.nginx_counters ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );[ Date: 2026-04-28 10:34:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
12 8s970ms CREATE TABLE IF NOT EXISTS observability.phpfpm_counters ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );[ Date: 2026-04-28 10:34:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
13 8s970ms CREATE TABLE IF NOT EXISTS observability.system_metrics ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );[ Date: 2026-04-28 10:34:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
14 8s970ms CREATE TABLE IF NOT EXISTS observability.uptime_checks ( id bigserial PRIMARY KEY, endpoint text NOT NULL, status text NOT NULL, latency_ms double precision, checked_at timestamptz NOT NULL DEFAULT NOW() );[ Date: 2026-04-28 10:34:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
15 8s970ms ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS label text;[ Date: 2026-04-28 10:34:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
16 8s970ms ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS payload jsonb;[ Date: 2026-04-28 10:34:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
17 8s970ms CREATE INDEX IF NOT EXISTS idx_uptime_checks_endpoint ON observability.uptime_checks (endpoint, checked_at DESC);[ Date: 2026-04-28 10:34:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
18 8s970ms CREATE INDEX IF NOT EXISTS idx_uptime_checks_key ON observability.uptime_checks (check_key, checked_at DESC);[ Date: 2026-04-28 10:34:01 - Database: zemm_monitoring - User: labanimal - Bind query: yes ]
19 6s958ms SELECT * FROM litters_search_mview l WHERE NOT (deleted) AND CASE WHEN user_is_tgm (l.owner, 10100176) THEN TRUE WHEN user_is_tgm (l.editor, 10100176) THEN TRUE WHEN user_is_tgm (l.tourist, 10100176) THEN TRUE ELSE FALSE END ORDER BY bday DESC, dam_name, sire_name;[ Date: 2026-04-28 10:18:23 - Database: zemm_produktiv_8 - User: labanimal - Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 - Bind query: yes ]
20 6s879ms 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-04-28 10:01:05 - Database: zemm_dev - User: labanimal - Application: _desktop_index.php_zemm_dev_localhost_5432 - Bind query: yes ]
Time consuming queries (N)
Rank Total duration Times executed Min duration Max duration Avg duration Query 1 1h6m3s 1,440 500ms 8s970ms 2s752ms 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 #1
Day Hour Count Duration Avg duration Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
CREATE TABLE IF NOT EXISTS observability.db_top_queries ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, fingerprint text, query text, mean_time_ms double precision, total_time_ms double precision, calls bigint, rows_returned bigint, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.db_top_queries ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, fingerprint text, query text, mean_time_ms double precision, total_time_ms double precision, calls bigint, rows_returned bigint, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.db_top_queries ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, fingerprint text, query text, mean_time_ms double precision, total_time_ms double precision, calls bigint, rows_returned bigint, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
2 1h6m3s 1,440 500ms 8s970ms 2s752ms create table if not exists observability.phpfpm_counters ( id bigserial primary key, payload jsonb not null, collected_at timestamptz not null default now() );Times Reported Time consuming queries #2
Day Hour Count Duration Avg duration Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
CREATE TABLE IF NOT EXISTS observability.phpfpm_counters ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.phpfpm_counters ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.phpfpm_counters ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
3 1h6m3s 1,440 500ms 8s970ms 2s752ms create index if not exists idx_metrics_timeseries_bucket on observability.metrics_timeseries (bucket_start);Times Reported Time consuming queries #3
Day Hour Count Duration Avg duration Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
4 1h6m3s 1,440 500ms 8s970ms 2s752ms 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 #4
Day Hour Count Duration Avg duration Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
CREATE TABLE IF NOT EXISTS observability.uptime_checks ( id bigserial PRIMARY KEY, endpoint text NOT NULL, status text NOT NULL, latency_ms double precision, checked_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.uptime_checks ( id bigserial PRIMARY KEY, endpoint text NOT NULL, status text NOT NULL, latency_ms double precision, checked_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.uptime_checks ( id bigserial PRIMARY KEY, endpoint text NOT NULL, status text NOT NULL, latency_ms double precision, checked_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
5 1h6m3s 1,440 500ms 8s970ms 2s752ms alter table observability.uptime_checks add column if not exists label text;Times Reported Time consuming queries #5
Day Hour Count Duration Avg duration Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS label text;
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS label text;
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS label text;
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
6 1h6m3s 1,440 500ms 8s970ms 2s752ms alter table observability.uptime_checks add column if not exists payload jsonb;Times Reported Time consuming queries #6
Day Hour Count Duration Avg duration Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS payload jsonb;
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS payload jsonb;
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS payload jsonb;
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
7 1h6m3s 1,440 500ms 8s970ms 2s752ms 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 #7
Day Hour Count Duration Avg duration Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
CREATE TABLE IF NOT EXISTS observability.system_metrics ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.system_metrics ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.system_metrics ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
8 1h6m3s 1,440 500ms 8s970ms 2s752ms create index if not exists idx_uptime_checks_endpoint on observability.uptime_checks (endpoint, checked_at desc);Times Reported Time consuming queries #8
Day Hour Count Duration Avg duration Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_endpoint ON observability.uptime_checks (endpoint, checked_at DESC);
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_endpoint ON observability.uptime_checks (endpoint, checked_at DESC);
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_endpoint ON observability.uptime_checks (endpoint, checked_at DESC);
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
9 1h6m3s 1,440 500ms 8s970ms 2s752ms 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 Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
10 1h6m3s 1,440 500ms 8s970ms 2s752ms create index if not exists idx_uptime_checks_key on observability.uptime_checks (check_key, checked_at desc);Times Reported Time consuming queries #10
Day Hour Count Duration Avg duration Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_key ON observability.uptime_checks (check_key, checked_at DESC);
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_key ON observability.uptime_checks (check_key, checked_at DESC);
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_key ON observability.uptime_checks (check_key, checked_at DESC);
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
11 1h6m3s 1,440 500ms 8s970ms 2s752ms 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 #11
Day Hour Count Duration Avg duration Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
12 1h6m3s 1,440 500ms 8s970ms 2s752ms create table if not exists observability.metrics_timeseries ( id bigserial primary key, tenant_key text not null, metric_name text not null, bucket_start timestamptz not null, bucket_width_seconds integer not null default ?, sum_value double precision not null default ?, count_value bigint not null default ?, histogram jsonb, created_at timestamptz not null default now(), updated_at timestamptz not null default now(), unique (tenant_key, metric_name, bucket_start, bucket_width_seconds) );Times Reported Time consuming queries #12
Day Hour Count Duration Avg duration Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
CREATE TABLE IF NOT EXISTS observability.metrics_timeseries ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, metric_name text NOT NULL, bucket_start timestamptz NOT NULL, bucket_width_seconds integer NOT NULL DEFAULT 60, sum_value double precision NOT NULL DEFAULT 0, count_value bigint NOT NULL DEFAULT 0, histogram jsonb, created_at timestamptz NOT NULL DEFAULT NOW(), updated_at timestamptz NOT NULL DEFAULT NOW(), UNIQUE (tenant_key, metric_name, bucket_start, bucket_width_seconds) );
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.metrics_timeseries ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, metric_name text NOT NULL, bucket_start timestamptz NOT NULL, bucket_width_seconds integer NOT NULL DEFAULT 60, sum_value double precision NOT NULL DEFAULT 0, count_value bigint NOT NULL DEFAULT 0, histogram jsonb, created_at timestamptz NOT NULL DEFAULT NOW(), updated_at timestamptz NOT NULL DEFAULT NOW(), UNIQUE (tenant_key, metric_name, bucket_start, bucket_width_seconds) );
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.metrics_timeseries ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, metric_name text NOT NULL, bucket_start timestamptz NOT NULL, bucket_width_seconds integer NOT NULL DEFAULT 60, sum_value double precision NOT NULL DEFAULT 0, count_value bigint NOT NULL DEFAULT 0, histogram jsonb, created_at timestamptz NOT NULL DEFAULT NOW(), updated_at timestamptz NOT NULL DEFAULT NOW(), UNIQUE (tenant_key, metric_name, bucket_start, bucket_width_seconds) );
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
13 1h6m3s 1,440 500ms 8s970ms 2s752ms create index if not exists idx_app_events_type on observability.app_events (event_type);Times Reported Time consuming queries #13
Day Hour Count Duration Avg duration Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
14 1h6m3s 1,440 500ms 8s970ms 2s752ms 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 #14
Day Hour Count Duration Avg duration Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
CREATE TABLE IF NOT EXISTS observability.app_events ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, event_type text NOT NULL, severity text NOT NULL, message text NOT NULL, payload jsonb, occurred_at timestamptz NOT NULL DEFAULT NOW(), created_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.app_events ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, event_type text NOT NULL, severity text NOT NULL, message text NOT NULL, payload jsonb, occurred_at timestamptz NOT NULL DEFAULT NOW(), created_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.app_events ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, event_type text NOT NULL, severity text NOT NULL, message text NOT NULL, payload jsonb, occurred_at timestamptz NOT NULL DEFAULT NOW(), created_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
15 1h6m3s 1,440 500ms 8s970ms 2s752ms create index if not exists idx_app_events_tenant on observability.app_events (tenant_key, occurred_at desc);Times Reported Time consuming queries #15
Day Hour Count Duration Avg duration Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
16 1h6m3s 1,440 500ms 8s970ms 2s752ms create schema if not exists observability;Times Reported Time consuming queries #16
Day Hour Count Duration Avg duration Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
17 1h6m3s 1,440 500ms 8s970ms 2s752ms create table if not exists observability.nginx_counters ( id bigserial primary key, payload jsonb not null, collected_at timestamptz not null default now() );Times Reported Time consuming queries #17
Day Hour Count Duration Avg duration Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
CREATE TABLE IF NOT EXISTS observability.nginx_counters ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.nginx_counters ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.nginx_counters ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
18 11m9s 150 4s30ms 5s64ms 4s464ms with start_snap as ( select distinct on (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at from observability.db_top_queries where tenant_key in (...) and collected_at <= ? order by tenant_key, fingerprint, collected_at desc ), fallback_start as ( select distinct on (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at from observability.db_top_queries where tenant_key in (...) and collected_at between ? and ? order by tenant_key, fingerprint, collected_at asc ), end_snap as ( select distinct on (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at from observability.db_top_queries where tenant_key in (...) and collected_at between ? and ? order by tenant_key, fingerprint, collected_at desc ), deltas as ( select e.tenant_key, e.fingerprint, e.query, e.collected_at as last_seen, greatest (coalesce(e.total_time_ms, ?) - coalesce(s.total_time_ms, fs.total_time_ms, ?), ?) as total_time_ms, greatest (coalesce(e.calls, ?) - coalesce(s.calls, fs.calls, ?), ?) as calls, greatest (coalesce(e.rows_returned, ?) - coalesce(s.rows_returned, fs.rows_returned, ?), ?) as rows_returned from end_snap e left join start_snap s on s.tenant_key = e.tenant_key and s.fingerprint = e.fingerprint left join fallback_start fs on fs.tenant_key = e.tenant_key and fs.fingerprint = e.fingerprint and s.tenant_key is null ) select fingerprint, max(query) as query, max(last_seen) as last_seen, sum(total_time_ms) as total_time_ms, sum(calls) as calls, sum(rows_returned) as rows_returned, case when sum(calls) > ? then sum(total_time_ms) / sum(calls) else ? end as mean_time_ms, array_agg(distinct tenant_key order by tenant_key) as tenant_keys from deltas where total_time_ms > ? or calls > ? group by fingerprint order by total_time_ms desc, calls desc limit ? offset ?;Times Reported Time consuming queries #18
Day Hour Count Duration Avg duration Apr 28 01 13 57s39ms 4s387ms 06 13 56s293ms 4s330ms 07 12 53s83ms 4s423ms 08 18 1m17s 4s316ms 09 12 52s477ms 4s373ms 10 9 39s769ms 4s418ms 11 4 18s836ms 4s709ms 12 12 54s463ms 4s538ms 13 11 49s717ms 4s519ms 14 3 13s526ms 4s508ms 15 3 13s904ms 4s634ms 16 13 1m 4s627ms 17 11 49s829ms 4s529ms 18 1 4s420ms 4s420ms 19 9 40s919ms 4s546ms 00 6 27s543ms 4s590ms [ User: labanimal - Total duration: 11m9s - Times executed: 150 ]
-
WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at <= '2026-04-27 00:37:41+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at BETWEEN '2026-04-27 00:37:41+02' AND '2026-04-28 00:37:41+02' ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at BETWEEN '2026-04-27 00:37:41+02' AND '2026-04-28 00:37:41+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT '20' OFFSET '0';
Date: 2026-04-28 00:37:46 Duration: 5s64ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at <= '2026-04-28 09:38:49+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at BETWEEN '2026-04-28 09:38:49+02' AND '2026-04-28 15:38:49+02' ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at BETWEEN '2026-04-28 09:38:49+02' AND '2026-04-28 15:38:49+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT '20' OFFSET '0';
Date: 2026-04-28 15:38:54 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at <= '2026-04-28 04:00:49+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at BETWEEN '2026-04-28 04:00:49+02' AND '2026-04-28 10:00:49+02' ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at BETWEEN '2026-04-28 04:00:49+02' AND '2026-04-28 10:00:49+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT '20' OFFSET '0';
Date: 2026-04-28 10:00:54 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
19 25s841ms 32 789ms 871ms 807ms select count(distinct animal_id) AS "count" from ( select animals_search_mview.*, b.unbreeding_date, a.id as animal, user_is_tgm (animals_search_mview.owner, ?) as is_owner, user_is_tgm (animals_search_mview.editor, ?) as is_editor, user_is_tgm (animals_search_mview.tourist, ?) as is_tourist, case when not exists ( select ? from scoresheet_diary sd where sd.animals_id = animals_search_mview.id) then ? else ? end as isscored from animals_search_mview left join strains on strains.name = animals_search_mview.strain left join license_history lh on lh.anid = animals_search_mview.id left join animals a on a."animalID" = animals_search_mview.animal_id left join breedings b on b.id = animals_search_mview.last_mating) data where fate = ? and alive = ? and deleted = ? and (is_owner or is_editor or is_tourist);Times Reported Time consuming queries #19
Day Hour Count Duration Avg duration Apr 28 08 1 871ms 871ms 10 6 4s835ms 805ms 11 16 12s802ms 800ms 12 5 4s11ms 802ms 13 2 1s665ms 832ms 15 1 809ms 809ms 17 1 845ms 845ms [ User: labanimal - Total duration: 25s841ms - Times executed: 32 ]
[ Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 - Total duration: 25s841ms - Times executed: 32 ]
-
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, 10100187) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100187) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100187) AS is_tourist, CASE WHEN NOT EXISTS ( SELECT 1 FROM scoresheet_diary sd WHERE sd.animals_id = animals_search_mview.id) THEN 'f' ELSE 't' END AS isscored FROM animals_search_mview LEFT JOIN strains ON strains.name = animals_search_mview.strain LEFT JOIN license_history lh ON lh.anid = animals_search_mview.id LEFT JOIN animals a ON a."animalID" = animals_search_mview.animal_id LEFT JOIN breedings b ON b.id = animals_search_mview.last_mating) data WHERE fate = 5 AND alive = 't' AND deleted = 'f' AND (is_owner OR is_editor OR is_tourist);
Date: 2026-04-28 07:28:03 Duration: 871ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
SELECT COUNT(DISTINCT animal_id) AS "count" FROM ( SELECT animals_search_mview.*, b.unbreeding_date, a.id as animal, user_is_tgm (animals_search_mview.owner, 429) AS is_owner, user_is_tgm (animals_search_mview.editor, 429) AS is_editor, user_is_tgm (animals_search_mview.tourist, 429) AS is_tourist, CASE WHEN NOT EXISTS ( SELECT 1 FROM scoresheet_diary sd WHERE sd.animals_id = animals_search_mview.id) THEN 'f' ELSE 't' END AS isscored FROM animals_search_mview LEFT JOIN strains ON strains.name = animals_search_mview.strain LEFT JOIN license_history lh ON lh.anid = animals_search_mview.id LEFT JOIN animals a ON a."animalID" = animals_search_mview.animal_id LEFT JOIN breedings b ON b.id = animals_search_mview.last_mating) data WHERE fate = 5 AND alive = 't' AND deleted = 'f' AND (is_owner OR is_editor OR is_tourist);
Date: 2026-04-28 12:32:25 Duration: 861ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
SELECT COUNT(DISTINCT animal_id) AS "count" FROM ( SELECT animals_search_mview.*, b.unbreeding_date, a.id as animal, user_is_tgm (animals_search_mview.owner, 10100000) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100000) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100000) AS is_tourist, CASE WHEN NOT EXISTS ( SELECT 1 FROM scoresheet_diary sd WHERE sd.animals_id = animals_search_mview.id) THEN 'f' ELSE 't' END AS isscored FROM animals_search_mview LEFT JOIN strains ON strains.name = animals_search_mview.strain LEFT JOIN license_history lh ON lh.anid = animals_search_mview.id LEFT JOIN animals a ON a."animalID" = animals_search_mview.animal_id LEFT JOIN breedings b ON b.id = animals_search_mview.last_mating) data WHERE fate = 5 AND alive = 't' AND deleted = 'f' AND (is_owner OR is_editor OR is_tourist);
Date: 2026-04-28 16:59:15 Duration: 845ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
20 23s36ms 32 703ms 739ms 719ms select distinct * from ( select animals_search_mview.*, b.unbreeding_date, fates.loc as fate_name, user_is_tgm (animals_search_mview.owner, ?) as is_owner, user_is_tgm (animals_search_mview.editor, ?) as is_editor, user_is_tgm (animals_search_mview.tourist, ?) as is_tourist, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, strains.deleted as straindeleted, string_agg(l."application_id" || ? || l."title" || ? || date(lh."timestamp")::varchar, ?) as licensehistory, case when not exists ( select ? from scoresheet_diary sd where sd.animals_id = animals_search_mview.id) then ? else ? end as isscored from animals_search_mview inner join fates on fates.id = animals_search_mview.fate left join strains on strains.name = animals_search_mview.strain left join license_history lh on lh.anid = animals_search_mview.id left join licenses l on l.id = lh.licid left join breedings b on b.id = animals_search_mview.last_mating group by animals_search_mview.id, b.unbreeding_date, fates.loc, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, straindeleted) data where data.fate = ? and data.alive = ? and data.deleted = ? and (is_owner or is_editor or is_tourist) and (data.straindeleted = ? or data.straindeleted is null) order by data.cage_name, data.animal_id, data.name;Times Reported Time consuming queries #20
Day Hour Count Duration Avg duration Apr 28 08 1 703ms 703ms 10 6 4s315ms 719ms 11 16 11s511ms 719ms 12 5 3s619ms 723ms 13 2 1s435ms 717ms 15 1 725ms 725ms 17 1 725ms 725ms [ User: labanimal - Total duration: 23s36ms - Times executed: 32 ]
[ Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 - Total duration: 23s36ms - Times executed: 32 ]
-
SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 604) AS is_owner, user_is_tgm (animals_search_mview.editor, 604) AS is_editor, user_is_tgm (animals_search_mview.tourist, 604) AS is_tourist, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, strains.deleted as straindeleted, STRING_AGG(l."application_id" || ':' || l."title" || ' - ' || Date(lh."timestamp")::varchar, '; ') AS licensehistory, CASE WHEN NOT EXISTS ( SELECT 1 FROM scoresheet_diary sd WHERE sd.animals_id = animals_search_mview.id) THEN 'f' ELSE 't' END AS isscored FROM animals_search_mview INNER JOIN fates ON fates.id = animals_search_mview.fate LEFT JOIN strains ON strains.name = animals_search_mview.strain LEFT JOIN license_history lh ON lh.anid = animals_search_mview.id LEFT JOIN licenses l ON l.id = lh.licid left join breedings b ON b.id = animals_search_mview.last_mating GROUP BY animals_search_mview.id, b.unbreeding_date, fates.loc, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, straindeleted) data WHERE data.fate = 5 AND data.alive = 't' AND data.deleted = 'f' AND (is_owner OR is_editor OR is_tourist) and (data.straindeleted = 'f' or data.straindeleted is null) ORDER BY data.cage_name, data.animal_id, data.name;
Date: 2026-04-28 09:47:24 Duration: 739ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 10100106) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100106) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100106) AS is_tourist, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, strains.deleted as straindeleted, STRING_AGG(l."application_id" || ':' || l."title" || ' - ' || Date(lh."timestamp")::varchar, '; ') AS licensehistory, CASE WHEN NOT EXISTS ( SELECT 1 FROM scoresheet_diary sd WHERE sd.animals_id = animals_search_mview.id) THEN 'f' ELSE 't' END AS isscored FROM animals_search_mview INNER JOIN fates ON fates.id = animals_search_mview.fate LEFT JOIN strains ON strains.name = animals_search_mview.strain LEFT JOIN license_history lh ON lh.anid = animals_search_mview.id LEFT JOIN licenses l ON l.id = lh.licid left join breedings b ON b.id = animals_search_mview.last_mating GROUP BY animals_search_mview.id, b.unbreeding_date, fates.loc, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, straindeleted) data WHERE data.fate = 5 AND data.alive = 't' AND data.deleted = 'f' AND (is_owner OR is_editor OR is_tourist) and (data.straindeleted = 'f' or data.straindeleted is null) ORDER BY data.cage_name, data.animal_id, data.name;
Date: 2026-04-28 11:17:01 Duration: 737ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 10100176) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100176) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100176) AS is_tourist, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, strains.deleted as straindeleted, STRING_AGG(l."application_id" || ':' || l."title" || ' - ' || Date(lh."timestamp")::varchar, '; ') AS licensehistory, CASE WHEN NOT EXISTS ( SELECT 1 FROM scoresheet_diary sd WHERE sd.animals_id = animals_search_mview.id) THEN 'f' ELSE 't' END AS isscored FROM animals_search_mview INNER JOIN fates ON fates.id = animals_search_mview.fate LEFT JOIN strains ON strains.name = animals_search_mview.strain LEFT JOIN license_history lh ON lh.anid = animals_search_mview.id LEFT JOIN licenses l ON l.id = lh.licid left join breedings b ON b.id = animals_search_mview.last_mating GROUP BY animals_search_mview.id, b.unbreeding_date, fates.loc, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, straindeleted) data WHERE data.fate = 5 AND data.alive = 't' AND data.deleted = 'f' AND (is_owner OR is_editor OR is_tourist) and (data.straindeleted = 'f' or data.straindeleted is null) ORDER BY data.cage_name, data.animal_id, data.name;
Date: 2026-04-28 10:23:23 Duration: 736ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
Most frequent queries (N)
Rank Times executed Total duration Min duration Max duration Avg duration Query 1 1,440 1h6m3s 500ms 8s970ms 2s752ms 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 #1
Day Hour Count Duration Avg duration Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
CREATE TABLE IF NOT EXISTS observability.db_top_queries ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, fingerprint text, query text, mean_time_ms double precision, total_time_ms double precision, calls bigint, rows_returned bigint, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.db_top_queries ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, fingerprint text, query text, mean_time_ms double precision, total_time_ms double precision, calls bigint, rows_returned bigint, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.db_top_queries ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, fingerprint text, query text, mean_time_ms double precision, total_time_ms double precision, calls bigint, rows_returned bigint, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
2 1,440 1h6m3s 500ms 8s970ms 2s752ms create table if not exists observability.phpfpm_counters ( id bigserial primary key, payload jsonb not null, collected_at timestamptz not null default now() );Times Reported Time consuming queries #2
Day Hour Count Duration Avg duration Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
CREATE TABLE IF NOT EXISTS observability.phpfpm_counters ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.phpfpm_counters ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.phpfpm_counters ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
3 1,440 1h6m3s 500ms 8s970ms 2s752ms create index if not exists idx_metrics_timeseries_bucket on observability.metrics_timeseries (bucket_start);Times Reported Time consuming queries #3
Day Hour Count Duration Avg duration Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
4 1,440 1h6m3s 500ms 8s970ms 2s752ms 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 #4
Day Hour Count Duration Avg duration Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
CREATE TABLE IF NOT EXISTS observability.uptime_checks ( id bigserial PRIMARY KEY, endpoint text NOT NULL, status text NOT NULL, latency_ms double precision, checked_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.uptime_checks ( id bigserial PRIMARY KEY, endpoint text NOT NULL, status text NOT NULL, latency_ms double precision, checked_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.uptime_checks ( id bigserial PRIMARY KEY, endpoint text NOT NULL, status text NOT NULL, latency_ms double precision, checked_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
5 1,440 1h6m3s 500ms 8s970ms 2s752ms alter table observability.uptime_checks add column if not exists label text;Times Reported Time consuming queries #5
Day Hour Count Duration Avg duration Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS label text;
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS label text;
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS label text;
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
6 1,440 1h6m3s 500ms 8s970ms 2s752ms alter table observability.uptime_checks add column if not exists payload jsonb;Times Reported Time consuming queries #6
Day Hour Count Duration Avg duration Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS payload jsonb;
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS payload jsonb;
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS payload jsonb;
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
7 1,440 1h6m3s 500ms 8s970ms 2s752ms 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 #7
Day Hour Count Duration Avg duration Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
CREATE TABLE IF NOT EXISTS observability.system_metrics ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.system_metrics ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.system_metrics ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
8 1,440 1h6m3s 500ms 8s970ms 2s752ms create index if not exists idx_uptime_checks_endpoint on observability.uptime_checks (endpoint, checked_at desc);Times Reported Time consuming queries #8
Day Hour Count Duration Avg duration Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_endpoint ON observability.uptime_checks (endpoint, checked_at DESC);
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_endpoint ON observability.uptime_checks (endpoint, checked_at DESC);
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_endpoint ON observability.uptime_checks (endpoint, checked_at DESC);
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
9 1,440 1h6m3s 500ms 8s970ms 2s752ms 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 Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
10 1,440 1h6m3s 500ms 8s970ms 2s752ms create index if not exists idx_uptime_checks_key on observability.uptime_checks (check_key, checked_at desc);Times Reported Time consuming queries #10
Day Hour Count Duration Avg duration Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_key ON observability.uptime_checks (check_key, checked_at DESC);
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_key ON observability.uptime_checks (check_key, checked_at DESC);
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_key ON observability.uptime_checks (check_key, checked_at DESC);
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
11 1,440 1h6m3s 500ms 8s970ms 2s752ms 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 #11
Day Hour Count Duration Avg duration Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
12 1,440 1h6m3s 500ms 8s970ms 2s752ms create table if not exists observability.metrics_timeseries ( id bigserial primary key, tenant_key text not null, metric_name text not null, bucket_start timestamptz not null, bucket_width_seconds integer not null default ?, sum_value double precision not null default ?, count_value bigint not null default ?, histogram jsonb, created_at timestamptz not null default now(), updated_at timestamptz not null default now(), unique (tenant_key, metric_name, bucket_start, bucket_width_seconds) );Times Reported Time consuming queries #12
Day Hour Count Duration Avg duration Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
CREATE TABLE IF NOT EXISTS observability.metrics_timeseries ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, metric_name text NOT NULL, bucket_start timestamptz NOT NULL, bucket_width_seconds integer NOT NULL DEFAULT 60, sum_value double precision NOT NULL DEFAULT 0, count_value bigint NOT NULL DEFAULT 0, histogram jsonb, created_at timestamptz NOT NULL DEFAULT NOW(), updated_at timestamptz NOT NULL DEFAULT NOW(), UNIQUE (tenant_key, metric_name, bucket_start, bucket_width_seconds) );
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.metrics_timeseries ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, metric_name text NOT NULL, bucket_start timestamptz NOT NULL, bucket_width_seconds integer NOT NULL DEFAULT 60, sum_value double precision NOT NULL DEFAULT 0, count_value bigint NOT NULL DEFAULT 0, histogram jsonb, created_at timestamptz NOT NULL DEFAULT NOW(), updated_at timestamptz NOT NULL DEFAULT NOW(), UNIQUE (tenant_key, metric_name, bucket_start, bucket_width_seconds) );
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.metrics_timeseries ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, metric_name text NOT NULL, bucket_start timestamptz NOT NULL, bucket_width_seconds integer NOT NULL DEFAULT 60, sum_value double precision NOT NULL DEFAULT 0, count_value bigint NOT NULL DEFAULT 0, histogram jsonb, created_at timestamptz NOT NULL DEFAULT NOW(), updated_at timestamptz NOT NULL DEFAULT NOW(), UNIQUE (tenant_key, metric_name, bucket_start, bucket_width_seconds) );
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
13 1,440 1h6m3s 500ms 8s970ms 2s752ms create index if not exists idx_app_events_type on observability.app_events (event_type);Times Reported Time consuming queries #13
Day Hour Count Duration Avg duration Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
14 1,440 1h6m3s 500ms 8s970ms 2s752ms 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 #14
Day Hour Count Duration Avg duration Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
CREATE TABLE IF NOT EXISTS observability.app_events ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, event_type text NOT NULL, severity text NOT NULL, message text NOT NULL, payload jsonb, occurred_at timestamptz NOT NULL DEFAULT NOW(), created_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.app_events ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, event_type text NOT NULL, severity text NOT NULL, message text NOT NULL, payload jsonb, occurred_at timestamptz NOT NULL DEFAULT NOW(), created_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.app_events ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, event_type text NOT NULL, severity text NOT NULL, message text NOT NULL, payload jsonb, occurred_at timestamptz NOT NULL DEFAULT NOW(), created_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
15 1,440 1h6m3s 500ms 8s970ms 2s752ms create index if not exists idx_app_events_tenant on observability.app_events (tenant_key, occurred_at desc);Times Reported Time consuming queries #15
Day Hour Count Duration Avg duration Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
16 1,440 1h6m3s 500ms 8s970ms 2s752ms create schema if not exists observability;Times Reported Time consuming queries #16
Day Hour Count Duration Avg duration Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
17 1,440 1h6m3s 500ms 8s970ms 2s752ms create table if not exists observability.nginx_counters ( id bigserial primary key, payload jsonb not null, collected_at timestamptz not null default now() );Times Reported Time consuming queries #17
Day Hour Count Duration Avg duration Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
CREATE TABLE IF NOT EXISTS observability.nginx_counters ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.nginx_counters ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.nginx_counters ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
18 150 11m9s 4s30ms 5s64ms 4s464ms with start_snap as ( select distinct on (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at from observability.db_top_queries where tenant_key in (...) and collected_at <= ? order by tenant_key, fingerprint, collected_at desc ), fallback_start as ( select distinct on (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at from observability.db_top_queries where tenant_key in (...) and collected_at between ? and ? order by tenant_key, fingerprint, collected_at asc ), end_snap as ( select distinct on (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at from observability.db_top_queries where tenant_key in (...) and collected_at between ? and ? order by tenant_key, fingerprint, collected_at desc ), deltas as ( select e.tenant_key, e.fingerprint, e.query, e.collected_at as last_seen, greatest (coalesce(e.total_time_ms, ?) - coalesce(s.total_time_ms, fs.total_time_ms, ?), ?) as total_time_ms, greatest (coalesce(e.calls, ?) - coalesce(s.calls, fs.calls, ?), ?) as calls, greatest (coalesce(e.rows_returned, ?) - coalesce(s.rows_returned, fs.rows_returned, ?), ?) as rows_returned from end_snap e left join start_snap s on s.tenant_key = e.tenant_key and s.fingerprint = e.fingerprint left join fallback_start fs on fs.tenant_key = e.tenant_key and fs.fingerprint = e.fingerprint and s.tenant_key is null ) select fingerprint, max(query) as query, max(last_seen) as last_seen, sum(total_time_ms) as total_time_ms, sum(calls) as calls, sum(rows_returned) as rows_returned, case when sum(calls) > ? then sum(total_time_ms) / sum(calls) else ? end as mean_time_ms, array_agg(distinct tenant_key order by tenant_key) as tenant_keys from deltas where total_time_ms > ? or calls > ? group by fingerprint order by total_time_ms desc, calls desc limit ? offset ?;Times Reported Time consuming queries #18
Day Hour Count Duration Avg duration Apr 28 01 13 57s39ms 4s387ms 06 13 56s293ms 4s330ms 07 12 53s83ms 4s423ms 08 18 1m17s 4s316ms 09 12 52s477ms 4s373ms 10 9 39s769ms 4s418ms 11 4 18s836ms 4s709ms 12 12 54s463ms 4s538ms 13 11 49s717ms 4s519ms 14 3 13s526ms 4s508ms 15 3 13s904ms 4s634ms 16 13 1m 4s627ms 17 11 49s829ms 4s529ms 18 1 4s420ms 4s420ms 19 9 40s919ms 4s546ms 00 6 27s543ms 4s590ms [ User: labanimal - Total duration: 11m9s - Times executed: 150 ]
-
WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at <= '2026-04-27 00:37:41+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at BETWEEN '2026-04-27 00:37:41+02' AND '2026-04-28 00:37:41+02' ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at BETWEEN '2026-04-27 00:37:41+02' AND '2026-04-28 00:37:41+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT '20' OFFSET '0';
Date: 2026-04-28 00:37:46 Duration: 5s64ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at <= '2026-04-28 09:38:49+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at BETWEEN '2026-04-28 09:38:49+02' AND '2026-04-28 15:38:49+02' ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at BETWEEN '2026-04-28 09:38:49+02' AND '2026-04-28 15:38:49+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT '20' OFFSET '0';
Date: 2026-04-28 15:38:54 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at <= '2026-04-28 04:00:49+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at BETWEEN '2026-04-28 04:00:49+02' AND '2026-04-28 10:00:49+02' ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at BETWEEN '2026-04-28 04:00:49+02' AND '2026-04-28 10:00:49+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT '20' OFFSET '0';
Date: 2026-04-28 10:00:54 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
19 32 25s841ms 789ms 871ms 807ms select count(distinct animal_id) AS "count" from ( select animals_search_mview.*, b.unbreeding_date, a.id as animal, user_is_tgm (animals_search_mview.owner, ?) as is_owner, user_is_tgm (animals_search_mview.editor, ?) as is_editor, user_is_tgm (animals_search_mview.tourist, ?) as is_tourist, case when not exists ( select ? from scoresheet_diary sd where sd.animals_id = animals_search_mview.id) then ? else ? end as isscored from animals_search_mview left join strains on strains.name = animals_search_mview.strain left join license_history lh on lh.anid = animals_search_mview.id left join animals a on a."animalID" = animals_search_mview.animal_id left join breedings b on b.id = animals_search_mview.last_mating) data where fate = ? and alive = ? and deleted = ? and (is_owner or is_editor or is_tourist);Times Reported Time consuming queries #19
Day Hour Count Duration Avg duration Apr 28 08 1 871ms 871ms 10 6 4s835ms 805ms 11 16 12s802ms 800ms 12 5 4s11ms 802ms 13 2 1s665ms 832ms 15 1 809ms 809ms 17 1 845ms 845ms [ User: labanimal - Total duration: 25s841ms - Times executed: 32 ]
[ Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 - Total duration: 25s841ms - Times executed: 32 ]
-
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, 10100187) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100187) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100187) AS is_tourist, CASE WHEN NOT EXISTS ( SELECT 1 FROM scoresheet_diary sd WHERE sd.animals_id = animals_search_mview.id) THEN 'f' ELSE 't' END AS isscored FROM animals_search_mview LEFT JOIN strains ON strains.name = animals_search_mview.strain LEFT JOIN license_history lh ON lh.anid = animals_search_mview.id LEFT JOIN animals a ON a."animalID" = animals_search_mview.animal_id LEFT JOIN breedings b ON b.id = animals_search_mview.last_mating) data WHERE fate = 5 AND alive = 't' AND deleted = 'f' AND (is_owner OR is_editor OR is_tourist);
Date: 2026-04-28 07:28:03 Duration: 871ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
SELECT COUNT(DISTINCT animal_id) AS "count" FROM ( SELECT animals_search_mview.*, b.unbreeding_date, a.id as animal, user_is_tgm (animals_search_mview.owner, 429) AS is_owner, user_is_tgm (animals_search_mview.editor, 429) AS is_editor, user_is_tgm (animals_search_mview.tourist, 429) AS is_tourist, CASE WHEN NOT EXISTS ( SELECT 1 FROM scoresheet_diary sd WHERE sd.animals_id = animals_search_mview.id) THEN 'f' ELSE 't' END AS isscored FROM animals_search_mview LEFT JOIN strains ON strains.name = animals_search_mview.strain LEFT JOIN license_history lh ON lh.anid = animals_search_mview.id LEFT JOIN animals a ON a."animalID" = animals_search_mview.animal_id LEFT JOIN breedings b ON b.id = animals_search_mview.last_mating) data WHERE fate = 5 AND alive = 't' AND deleted = 'f' AND (is_owner OR is_editor OR is_tourist);
Date: 2026-04-28 12:32:25 Duration: 861ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
SELECT COUNT(DISTINCT animal_id) AS "count" FROM ( SELECT animals_search_mview.*, b.unbreeding_date, a.id as animal, user_is_tgm (animals_search_mview.owner, 10100000) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100000) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100000) AS is_tourist, CASE WHEN NOT EXISTS ( SELECT 1 FROM scoresheet_diary sd WHERE sd.animals_id = animals_search_mview.id) THEN 'f' ELSE 't' END AS isscored FROM animals_search_mview LEFT JOIN strains ON strains.name = animals_search_mview.strain LEFT JOIN license_history lh ON lh.anid = animals_search_mview.id LEFT JOIN animals a ON a."animalID" = animals_search_mview.animal_id LEFT JOIN breedings b ON b.id = animals_search_mview.last_mating) data WHERE fate = 5 AND alive = 't' AND deleted = 'f' AND (is_owner OR is_editor OR is_tourist);
Date: 2026-04-28 16:59:15 Duration: 845ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
20 32 23s36ms 703ms 739ms 719ms select distinct * from ( select animals_search_mview.*, b.unbreeding_date, fates.loc as fate_name, user_is_tgm (animals_search_mview.owner, ?) as is_owner, user_is_tgm (animals_search_mview.editor, ?) as is_editor, user_is_tgm (animals_search_mview.tourist, ?) as is_tourist, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, strains.deleted as straindeleted, string_agg(l."application_id" || ? || l."title" || ? || date(lh."timestamp")::varchar, ?) as licensehistory, case when not exists ( select ? from scoresheet_diary sd where sd.animals_id = animals_search_mview.id) then ? else ? end as isscored from animals_search_mview inner join fates on fates.id = animals_search_mview.fate left join strains on strains.name = animals_search_mview.strain left join license_history lh on lh.anid = animals_search_mview.id left join licenses l on l.id = lh.licid left join breedings b on b.id = animals_search_mview.last_mating group by animals_search_mview.id, b.unbreeding_date, fates.loc, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, straindeleted) data where data.fate = ? and data.alive = ? and data.deleted = ? and (is_owner or is_editor or is_tourist) and (data.straindeleted = ? or data.straindeleted is null) order by data.cage_name, data.animal_id, data.name;Times Reported Time consuming queries #20
Day Hour Count Duration Avg duration Apr 28 08 1 703ms 703ms 10 6 4s315ms 719ms 11 16 11s511ms 719ms 12 5 3s619ms 723ms 13 2 1s435ms 717ms 15 1 725ms 725ms 17 1 725ms 725ms [ User: labanimal - Total duration: 23s36ms - Times executed: 32 ]
[ Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 - Total duration: 23s36ms - Times executed: 32 ]
-
SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 604) AS is_owner, user_is_tgm (animals_search_mview.editor, 604) AS is_editor, user_is_tgm (animals_search_mview.tourist, 604) AS is_tourist, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, strains.deleted as straindeleted, STRING_AGG(l."application_id" || ':' || l."title" || ' - ' || Date(lh."timestamp")::varchar, '; ') AS licensehistory, CASE WHEN NOT EXISTS ( SELECT 1 FROM scoresheet_diary sd WHERE sd.animals_id = animals_search_mview.id) THEN 'f' ELSE 't' END AS isscored FROM animals_search_mview INNER JOIN fates ON fates.id = animals_search_mview.fate LEFT JOIN strains ON strains.name = animals_search_mview.strain LEFT JOIN license_history lh ON lh.anid = animals_search_mview.id LEFT JOIN licenses l ON l.id = lh.licid left join breedings b ON b.id = animals_search_mview.last_mating GROUP BY animals_search_mview.id, b.unbreeding_date, fates.loc, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, straindeleted) data WHERE data.fate = 5 AND data.alive = 't' AND data.deleted = 'f' AND (is_owner OR is_editor OR is_tourist) and (data.straindeleted = 'f' or data.straindeleted is null) ORDER BY data.cage_name, data.animal_id, data.name;
Date: 2026-04-28 09:47:24 Duration: 739ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 10100106) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100106) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100106) AS is_tourist, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, strains.deleted as straindeleted, STRING_AGG(l."application_id" || ':' || l."title" || ' - ' || Date(lh."timestamp")::varchar, '; ') AS licensehistory, CASE WHEN NOT EXISTS ( SELECT 1 FROM scoresheet_diary sd WHERE sd.animals_id = animals_search_mview.id) THEN 'f' ELSE 't' END AS isscored FROM animals_search_mview INNER JOIN fates ON fates.id = animals_search_mview.fate LEFT JOIN strains ON strains.name = animals_search_mview.strain LEFT JOIN license_history lh ON lh.anid = animals_search_mview.id LEFT JOIN licenses l ON l.id = lh.licid left join breedings b ON b.id = animals_search_mview.last_mating GROUP BY animals_search_mview.id, b.unbreeding_date, fates.loc, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, straindeleted) data WHERE data.fate = 5 AND data.alive = 't' AND data.deleted = 'f' AND (is_owner OR is_editor OR is_tourist) and (data.straindeleted = 'f' or data.straindeleted is null) ORDER BY data.cage_name, data.animal_id, data.name;
Date: 2026-04-28 11:17:01 Duration: 737ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 10100176) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100176) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100176) AS is_tourist, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, strains.deleted as straindeleted, STRING_AGG(l."application_id" || ':' || l."title" || ' - ' || Date(lh."timestamp")::varchar, '; ') AS licensehistory, CASE WHEN NOT EXISTS ( SELECT 1 FROM scoresheet_diary sd WHERE sd.animals_id = animals_search_mview.id) THEN 'f' ELSE 't' END AS isscored FROM animals_search_mview INNER JOIN fates ON fates.id = animals_search_mview.fate LEFT JOIN strains ON strains.name = animals_search_mview.strain LEFT JOIN license_history lh ON lh.anid = animals_search_mview.id LEFT JOIN licenses l ON l.id = lh.licid left join breedings b ON b.id = animals_search_mview.last_mating GROUP BY animals_search_mview.id, b.unbreeding_date, fates.loc, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, straindeleted) data WHERE data.fate = 5 AND data.alive = 't' AND data.deleted = 'f' AND (is_owner OR is_editor OR is_tourist) and (data.straindeleted = 'f' or data.straindeleted is null) ORDER BY data.cage_name, data.animal_id, data.name;
Date: 2026-04-28 10:23:23 Duration: 736ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
Normalized slowest queries (N)
Rank Min duration Max duration Avg duration Times executed Total duration Query 1 4s30ms 5s64ms 4s464ms 150 11m9s with start_snap as ( select distinct on (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at from observability.db_top_queries where tenant_key in (...) and collected_at <= ? order by tenant_key, fingerprint, collected_at desc ), fallback_start as ( select distinct on (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at from observability.db_top_queries where tenant_key in (...) and collected_at between ? and ? order by tenant_key, fingerprint, collected_at asc ), end_snap as ( select distinct on (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at from observability.db_top_queries where tenant_key in (...) and collected_at between ? and ? order by tenant_key, fingerprint, collected_at desc ), deltas as ( select e.tenant_key, e.fingerprint, e.query, e.collected_at as last_seen, greatest (coalesce(e.total_time_ms, ?) - coalesce(s.total_time_ms, fs.total_time_ms, ?), ?) as total_time_ms, greatest (coalesce(e.calls, ?) - coalesce(s.calls, fs.calls, ?), ?) as calls, greatest (coalesce(e.rows_returned, ?) - coalesce(s.rows_returned, fs.rows_returned, ?), ?) as rows_returned from end_snap e left join start_snap s on s.tenant_key = e.tenant_key and s.fingerprint = e.fingerprint left join fallback_start fs on fs.tenant_key = e.tenant_key and fs.fingerprint = e.fingerprint and s.tenant_key is null ) select fingerprint, max(query) as query, max(last_seen) as last_seen, sum(total_time_ms) as total_time_ms, sum(calls) as calls, sum(rows_returned) as rows_returned, case when sum(calls) > ? then sum(total_time_ms) / sum(calls) else ? end as mean_time_ms, array_agg(distinct tenant_key order by tenant_key) as tenant_keys from deltas where total_time_ms > ? or calls > ? group by fingerprint order by total_time_ms desc, calls desc limit ? offset ?;Times Reported Time consuming queries #1
Day Hour Count Duration Avg duration Apr 28 01 13 57s39ms 4s387ms 06 13 56s293ms 4s330ms 07 12 53s83ms 4s423ms 08 18 1m17s 4s316ms 09 12 52s477ms 4s373ms 10 9 39s769ms 4s418ms 11 4 18s836ms 4s709ms 12 12 54s463ms 4s538ms 13 11 49s717ms 4s519ms 14 3 13s526ms 4s508ms 15 3 13s904ms 4s634ms 16 13 1m 4s627ms 17 11 49s829ms 4s529ms 18 1 4s420ms 4s420ms 19 9 40s919ms 4s546ms 00 6 27s543ms 4s590ms [ User: labanimal - Total duration: 11m9s - Times executed: 150 ]
-
WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at <= '2026-04-27 00:37:41+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at BETWEEN '2026-04-27 00:37:41+02' AND '2026-04-28 00:37:41+02' ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at BETWEEN '2026-04-27 00:37:41+02' AND '2026-04-28 00:37:41+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT '20' OFFSET '0';
Date: 2026-04-28 00:37:46 Duration: 5s64ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at <= '2026-04-28 09:38:49+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at BETWEEN '2026-04-28 09:38:49+02' AND '2026-04-28 15:38:49+02' ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at BETWEEN '2026-04-28 09:38:49+02' AND '2026-04-28 15:38:49+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT '20' OFFSET '0';
Date: 2026-04-28 15:38:54 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
WITH start_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at <= '2026-04-28 04:00:49+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), fallback_start AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at BETWEEN '2026-04-28 04:00:49+02' AND '2026-04-28 10:00:49+02' ORDER BY tenant_key, fingerprint, collected_at ASC ), end_snap AS ( SELECT DISTINCT ON (tenant_key, fingerprint) tenant_key, fingerprint, query, total_time_ms, calls, rows_returned, collected_at FROM observability.db_top_queries WHERE tenant_key IN ('prod') AND collected_at BETWEEN '2026-04-28 04:00:49+02' AND '2026-04-28 10:00:49+02' ORDER BY tenant_key, fingerprint, collected_at DESC ), deltas AS ( SELECT e.tenant_key, e.fingerprint, e.query, e.collected_at AS last_seen, GREATEST (COALESCE(e.total_time_ms, 0) - COALESCE(s.total_time_ms, fs.total_time_ms, 0), 0) AS total_time_ms, GREATEST (COALESCE(e.calls, 0) - COALESCE(s.calls, fs.calls, 0), 0) AS calls, GREATEST (COALESCE(e.rows_returned, 0) - COALESCE(s.rows_returned, fs.rows_returned, 0), 0) AS rows_returned FROM end_snap e LEFT JOIN start_snap s ON s.tenant_key = e.tenant_key AND s.fingerprint = e.fingerprint LEFT JOIN fallback_start fs ON fs.tenant_key = e.tenant_key AND fs.fingerprint = e.fingerprint AND s.tenant_key IS NULL ) SELECT fingerprint, MAX(query) AS query, MAX(last_seen) AS last_seen, SUM(total_time_ms) AS total_time_ms, SUM(calls) AS calls, SUM(rows_returned) AS rows_returned, CASE WHEN SUM(calls) > 0 THEN SUM(total_time_ms) / SUM(calls) ELSE 0 END AS mean_time_ms, array_agg(DISTINCT tenant_key ORDER BY tenant_key) AS tenant_keys FROM deltas WHERE total_time_ms > 0 OR calls > 0 GROUP BY fingerprint ORDER BY total_time_ms DESC, calls DESC LIMIT '20' OFFSET '0';
Date: 2026-04-28 10:00:54 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
2 500ms 8s970ms 2s752ms 1,440 1h6m3s create table if not exists observability.db_top_queries ( id bigserial primary key, tenant_key text not null, fingerprint text, query text, mean_time_ms double precision, total_time_ms double precision, calls bigint, rows_returned bigint, collected_at timestamptz not null default now() );Times Reported Time consuming queries #2
Day Hour Count Duration Avg duration Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
CREATE TABLE IF NOT EXISTS observability.db_top_queries ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, fingerprint text, query text, mean_time_ms double precision, total_time_ms double precision, calls bigint, rows_returned bigint, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.db_top_queries ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, fingerprint text, query text, mean_time_ms double precision, total_time_ms double precision, calls bigint, rows_returned bigint, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.db_top_queries ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, fingerprint text, query text, mean_time_ms double precision, total_time_ms double precision, calls bigint, rows_returned bigint, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
3 500ms 8s970ms 2s752ms 1,440 1h6m3s 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 #3
Day Hour Count Duration Avg duration Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
CREATE TABLE IF NOT EXISTS observability.phpfpm_counters ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.phpfpm_counters ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.phpfpm_counters ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
4 500ms 8s970ms 2s752ms 1,440 1h6m3s create index if not exists idx_metrics_timeseries_bucket on observability.metrics_timeseries (bucket_start);Times Reported Time consuming queries #4
Day Hour Count Duration Avg duration Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
5 500ms 8s970ms 2s752ms 1,440 1h6m3s 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 #5
Day Hour Count Duration Avg duration Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
CREATE TABLE IF NOT EXISTS observability.uptime_checks ( id bigserial PRIMARY KEY, endpoint text NOT NULL, status text NOT NULL, latency_ms double precision, checked_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.uptime_checks ( id bigserial PRIMARY KEY, endpoint text NOT NULL, status text NOT NULL, latency_ms double precision, checked_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.uptime_checks ( id bigserial PRIMARY KEY, endpoint text NOT NULL, status text NOT NULL, latency_ms double precision, checked_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
6 500ms 8s970ms 2s752ms 1,440 1h6m3s alter table observability.uptime_checks add column if not exists label text;Times Reported Time consuming queries #6
Day Hour Count Duration Avg duration Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS label text;
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS label text;
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS label text;
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
7 500ms 8s970ms 2s752ms 1,440 1h6m3s alter table observability.uptime_checks add column if not exists payload jsonb;Times Reported Time consuming queries #7
Day Hour Count Duration Avg duration Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS payload jsonb;
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS payload jsonb;
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS payload jsonb;
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
8 500ms 8s970ms 2s752ms 1,440 1h6m3s 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 #8
Day Hour Count Duration Avg duration Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
CREATE TABLE IF NOT EXISTS observability.system_metrics ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.system_metrics ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.system_metrics ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
9 500ms 8s970ms 2s752ms 1,440 1h6m3s create index if not exists idx_uptime_checks_endpoint on observability.uptime_checks (endpoint, checked_at desc);Times Reported Time consuming queries #9
Day Hour Count Duration Avg duration Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_endpoint ON observability.uptime_checks (endpoint, checked_at DESC);
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_endpoint ON observability.uptime_checks (endpoint, checked_at DESC);
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_endpoint ON observability.uptime_checks (endpoint, checked_at DESC);
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
10 500ms 8s970ms 2s752ms 1,440 1h6m3s create index if not exists idx_metrics_timeseries_metric on observability.metrics_timeseries (metric_name);Times Reported Time consuming queries #10
Day Hour Count Duration Avg duration Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
11 500ms 8s970ms 2s752ms 1,440 1h6m3s create index if not exists idx_uptime_checks_key on observability.uptime_checks (check_key, checked_at desc);Times Reported Time consuming queries #11
Day Hour Count Duration Avg duration Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_key ON observability.uptime_checks (check_key, checked_at DESC);
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_key ON observability.uptime_checks (check_key, checked_at DESC);
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_key ON observability.uptime_checks (check_key, checked_at DESC);
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
12 500ms 8s970ms 2s752ms 1,440 1h6m3s 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 #12
Day Hour Count Duration Avg duration Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
13 500ms 8s970ms 2s752ms 1,440 1h6m3s create table if not exists observability.metrics_timeseries ( id bigserial primary key, tenant_key text not null, metric_name text not null, bucket_start timestamptz not null, bucket_width_seconds integer not null default ?, sum_value double precision not null default ?, count_value bigint not null default ?, histogram jsonb, created_at timestamptz not null default now(), updated_at timestamptz not null default now(), unique (tenant_key, metric_name, bucket_start, bucket_width_seconds) );Times Reported Time consuming queries #13
Day Hour Count Duration Avg duration Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
CREATE TABLE IF NOT EXISTS observability.metrics_timeseries ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, metric_name text NOT NULL, bucket_start timestamptz NOT NULL, bucket_width_seconds integer NOT NULL DEFAULT 60, sum_value double precision NOT NULL DEFAULT 0, count_value bigint NOT NULL DEFAULT 0, histogram jsonb, created_at timestamptz NOT NULL DEFAULT NOW(), updated_at timestamptz NOT NULL DEFAULT NOW(), UNIQUE (tenant_key, metric_name, bucket_start, bucket_width_seconds) );
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.metrics_timeseries ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, metric_name text NOT NULL, bucket_start timestamptz NOT NULL, bucket_width_seconds integer NOT NULL DEFAULT 60, sum_value double precision NOT NULL DEFAULT 0, count_value bigint NOT NULL DEFAULT 0, histogram jsonb, created_at timestamptz NOT NULL DEFAULT NOW(), updated_at timestamptz NOT NULL DEFAULT NOW(), UNIQUE (tenant_key, metric_name, bucket_start, bucket_width_seconds) );
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.metrics_timeseries ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, metric_name text NOT NULL, bucket_start timestamptz NOT NULL, bucket_width_seconds integer NOT NULL DEFAULT 60, sum_value double precision NOT NULL DEFAULT 0, count_value bigint NOT NULL DEFAULT 0, histogram jsonb, created_at timestamptz NOT NULL DEFAULT NOW(), updated_at timestamptz NOT NULL DEFAULT NOW(), UNIQUE (tenant_key, metric_name, bucket_start, bucket_width_seconds) );
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
14 500ms 8s970ms 2s752ms 1,440 1h6m3s create index if not exists idx_app_events_type on observability.app_events (event_type);Times Reported Time consuming queries #14
Day Hour Count Duration Avg duration Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
15 500ms 8s970ms 2s752ms 1,440 1h6m3s 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 #15
Day Hour Count Duration Avg duration Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
CREATE TABLE IF NOT EXISTS observability.app_events ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, event_type text NOT NULL, severity text NOT NULL, message text NOT NULL, payload jsonb, occurred_at timestamptz NOT NULL DEFAULT NOW(), created_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.app_events ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, event_type text NOT NULL, severity text NOT NULL, message text NOT NULL, payload jsonb, occurred_at timestamptz NOT NULL DEFAULT NOW(), created_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.app_events ( id bigserial PRIMARY KEY, tenant_key text NOT NULL, event_type text NOT NULL, severity text NOT NULL, message text NOT NULL, payload jsonb, occurred_at timestamptz NOT NULL DEFAULT NOW(), created_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
16 500ms 8s970ms 2s752ms 1,440 1h6m3s create index if not exists idx_app_events_tenant on observability.app_events (tenant_key, occurred_at desc);Times Reported Time consuming queries #16
Day Hour Count Duration Avg duration Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
17 500ms 8s970ms 2s752ms 1,440 1h6m3s create schema if not exists observability;Times Reported Time consuming queries #17
Day Hour Count Duration Avg duration Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
18 500ms 8s970ms 2s752ms 1,440 1h6m3s 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 #18
Day Hour Count Duration Avg duration Apr 28 01 60 4m2s 4s43ms 02 60 2m39s 2s662ms 03 60 59s727ms 995ms 04 60 59s727ms 995ms 05 60 59s727ms 995ms 06 60 3m22s 3s373ms 07 60 4m2s 4s37ms 08 60 3m20s 3s335ms 09 60 4m2s 4s42ms 10 60 2m54s 2s900ms 11 60 2m7s 2s117ms 12 60 3m49s 3s824ms 13 60 4m23s 4s383ms 14 60 2m20s 2s340ms 15 60 1m22s 1s375ms 16 60 4m23s 4s388ms 17 60 4m32s 4s545ms 18 60 4m21s 4s358ms 19 60 4m32s 4s546ms 20 60 48s717ms 811ms 21 60 32s744ms 545ms 22 60 32s744ms 545ms 23 60 32s744ms 545ms 00 60 4m20s 4s340ms [ User: labanimal - Total duration: 1h6m3s - Times executed: 1436 ]
-
CREATE TABLE IF NOT EXISTS observability.nginx_counters ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 10:34:01 Duration: 8s970ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.nginx_counters ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 15:44:01 Duration: 5s2ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
CREATE TABLE IF NOT EXISTS observability.nginx_counters ( id bigserial PRIMARY KEY, payload jsonb NOT NULL, collected_at timestamptz NOT NULL DEFAULT NOW() );
Date: 2026-04-28 10:01:01 Duration: 4s916ms Database: zemm_monitoring User: labanimal Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
19 789ms 871ms 807ms 32 25s841ms select count(distinct animal_id) AS "count" from ( select animals_search_mview.*, b.unbreeding_date, a.id as animal, user_is_tgm (animals_search_mview.owner, ?) as is_owner, user_is_tgm (animals_search_mview.editor, ?) as is_editor, user_is_tgm (animals_search_mview.tourist, ?) as is_tourist, case when not exists ( select ? from scoresheet_diary sd where sd.animals_id = animals_search_mview.id) then ? else ? end as isscored from animals_search_mview left join strains on strains.name = animals_search_mview.strain left join license_history lh on lh.anid = animals_search_mview.id left join animals a on a."animalID" = animals_search_mview.animal_id left join breedings b on b.id = animals_search_mview.last_mating) data where fate = ? and alive = ? and deleted = ? and (is_owner or is_editor or is_tourist);Times Reported Time consuming queries #19
Day Hour Count Duration Avg duration Apr 28 08 1 871ms 871ms 10 6 4s835ms 805ms 11 16 12s802ms 800ms 12 5 4s11ms 802ms 13 2 1s665ms 832ms 15 1 809ms 809ms 17 1 845ms 845ms [ User: labanimal - Total duration: 25s841ms - Times executed: 32 ]
[ Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 - Total duration: 25s841ms - Times executed: 32 ]
-
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, 10100187) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100187) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100187) AS is_tourist, CASE WHEN NOT EXISTS ( SELECT 1 FROM scoresheet_diary sd WHERE sd.animals_id = animals_search_mview.id) THEN 'f' ELSE 't' END AS isscored FROM animals_search_mview LEFT JOIN strains ON strains.name = animals_search_mview.strain LEFT JOIN license_history lh ON lh.anid = animals_search_mview.id LEFT JOIN animals a ON a."animalID" = animals_search_mview.animal_id LEFT JOIN breedings b ON b.id = animals_search_mview.last_mating) data WHERE fate = 5 AND alive = 't' AND deleted = 'f' AND (is_owner OR is_editor OR is_tourist);
Date: 2026-04-28 07:28:03 Duration: 871ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
SELECT COUNT(DISTINCT animal_id) AS "count" FROM ( SELECT animals_search_mview.*, b.unbreeding_date, a.id as animal, user_is_tgm (animals_search_mview.owner, 429) AS is_owner, user_is_tgm (animals_search_mview.editor, 429) AS is_editor, user_is_tgm (animals_search_mview.tourist, 429) AS is_tourist, CASE WHEN NOT EXISTS ( SELECT 1 FROM scoresheet_diary sd WHERE sd.animals_id = animals_search_mview.id) THEN 'f' ELSE 't' END AS isscored FROM animals_search_mview LEFT JOIN strains ON strains.name = animals_search_mview.strain LEFT JOIN license_history lh ON lh.anid = animals_search_mview.id LEFT JOIN animals a ON a."animalID" = animals_search_mview.animal_id LEFT JOIN breedings b ON b.id = animals_search_mview.last_mating) data WHERE fate = 5 AND alive = 't' AND deleted = 'f' AND (is_owner OR is_editor OR is_tourist);
Date: 2026-04-28 12:32:25 Duration: 861ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
SELECT COUNT(DISTINCT animal_id) AS "count" FROM ( SELECT animals_search_mview.*, b.unbreeding_date, a.id as animal, user_is_tgm (animals_search_mview.owner, 10100000) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100000) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100000) AS is_tourist, CASE WHEN NOT EXISTS ( SELECT 1 FROM scoresheet_diary sd WHERE sd.animals_id = animals_search_mview.id) THEN 'f' ELSE 't' END AS isscored FROM animals_search_mview LEFT JOIN strains ON strains.name = animals_search_mview.strain LEFT JOIN license_history lh ON lh.anid = animals_search_mview.id LEFT JOIN animals a ON a."animalID" = animals_search_mview.animal_id LEFT JOIN breedings b ON b.id = animals_search_mview.last_mating) data WHERE fate = 5 AND alive = 't' AND deleted = 'f' AND (is_owner OR is_editor OR is_tourist);
Date: 2026-04-28 16:59:15 Duration: 845ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
20 703ms 739ms 719ms 32 23s36ms select distinct * from ( select animals_search_mview.*, b.unbreeding_date, fates.loc as fate_name, user_is_tgm (animals_search_mview.owner, ?) as is_owner, user_is_tgm (animals_search_mview.editor, ?) as is_editor, user_is_tgm (animals_search_mview.tourist, ?) as is_tourist, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, strains.deleted as straindeleted, string_agg(l."application_id" || ? || l."title" || ? || date(lh."timestamp")::varchar, ?) as licensehistory, case when not exists ( select ? from scoresheet_diary sd where sd.animals_id = animals_search_mview.id) then ? else ? end as isscored from animals_search_mview inner join fates on fates.id = animals_search_mview.fate left join strains on strains.name = animals_search_mview.strain left join license_history lh on lh.anid = animals_search_mview.id left join licenses l on l.id = lh.licid left join breedings b on b.id = animals_search_mview.last_mating group by animals_search_mview.id, b.unbreeding_date, fates.loc, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, straindeleted) data where data.fate = ? and data.alive = ? and data.deleted = ? and (is_owner or is_editor or is_tourist) and (data.straindeleted = ? or data.straindeleted is null) order by data.cage_name, data.animal_id, data.name;Times Reported Time consuming queries #20
Day Hour Count Duration Avg duration Apr 28 08 1 703ms 703ms 10 6 4s315ms 719ms 11 16 11s511ms 719ms 12 5 3s619ms 723ms 13 2 1s435ms 717ms 15 1 725ms 725ms 17 1 725ms 725ms [ User: labanimal - Total duration: 23s36ms - Times executed: 32 ]
[ Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 - Total duration: 23s36ms - Times executed: 32 ]
-
SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 604) AS is_owner, user_is_tgm (animals_search_mview.editor, 604) AS is_editor, user_is_tgm (animals_search_mview.tourist, 604) AS is_tourist, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, strains.deleted as straindeleted, STRING_AGG(l."application_id" || ':' || l."title" || ' - ' || Date(lh."timestamp")::varchar, '; ') AS licensehistory, CASE WHEN NOT EXISTS ( SELECT 1 FROM scoresheet_diary sd WHERE sd.animals_id = animals_search_mview.id) THEN 'f' ELSE 't' END AS isscored FROM animals_search_mview INNER JOIN fates ON fates.id = animals_search_mview.fate LEFT JOIN strains ON strains.name = animals_search_mview.strain LEFT JOIN license_history lh ON lh.anid = animals_search_mview.id LEFT JOIN licenses l ON l.id = lh.licid left join breedings b ON b.id = animals_search_mview.last_mating GROUP BY animals_search_mview.id, b.unbreeding_date, fates.loc, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, straindeleted) data WHERE data.fate = 5 AND data.alive = 't' AND data.deleted = 'f' AND (is_owner OR is_editor OR is_tourist) and (data.straindeleted = 'f' or data.straindeleted is null) ORDER BY data.cage_name, data.animal_id, data.name;
Date: 2026-04-28 09:47:24 Duration: 739ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 10100106) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100106) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100106) AS is_tourist, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, strains.deleted as straindeleted, STRING_AGG(l."application_id" || ':' || l."title" || ' - ' || Date(lh."timestamp")::varchar, '; ') AS licensehistory, CASE WHEN NOT EXISTS ( SELECT 1 FROM scoresheet_diary sd WHERE sd.animals_id = animals_search_mview.id) THEN 'f' ELSE 't' END AS isscored FROM animals_search_mview INNER JOIN fates ON fates.id = animals_search_mview.fate LEFT JOIN strains ON strains.name = animals_search_mview.strain LEFT JOIN license_history lh ON lh.anid = animals_search_mview.id LEFT JOIN licenses l ON l.id = lh.licid left join breedings b ON b.id = animals_search_mview.last_mating GROUP BY animals_search_mview.id, b.unbreeding_date, fates.loc, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, straindeleted) data WHERE data.fate = 5 AND data.alive = 't' AND data.deleted = 'f' AND (is_owner OR is_editor OR is_tourist) and (data.straindeleted = 'f' or data.straindeleted is null) ORDER BY data.cage_name, data.animal_id, data.name;
Date: 2026-04-28 11:17:01 Duration: 737ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
-
SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 10100176) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100176) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100176) AS is_tourist, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, strains.deleted as straindeleted, STRING_AGG(l."application_id" || ':' || l."title" || ' - ' || Date(lh."timestamp")::varchar, '; ') AS licensehistory, CASE WHEN NOT EXISTS ( SELECT 1 FROM scoresheet_diary sd WHERE sd.animals_id = animals_search_mview.id) THEN 'f' ELSE 't' END AS isscored FROM animals_search_mview INNER JOIN fates ON fates.id = animals_search_mview.fate LEFT JOIN strains ON strains.name = animals_search_mview.strain LEFT JOIN license_history lh ON lh.anid = animals_search_mview.id LEFT JOIN licenses l ON l.id = lh.licid left join breedings b ON b.id = animals_search_mview.last_mating GROUP BY animals_search_mview.id, b.unbreeding_date, fates.loc, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, straindeleted) data WHERE data.fate = 5 AND data.alive = 't' AND data.deleted = 'f' AND (is_owner OR is_editor OR is_tourist) and (data.straindeleted = 'f' or data.straindeleted is null) ORDER BY data.cage_name, data.animal_id, data.name;
Date: 2026-04-28 10:23:23 Duration: 736ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Bind query: yes Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
Time consuming prepare
Rank Total duration Times executed Min duration Max duration Avg duration Query NO DATASET
Time consuming bind
Rank Total duration Times executed Min duration Max duration Avg duration Query NO DATASET
-
Events
Log levels
Key values
- 152,009 Event entries
- (EVENTLOG entries are formaly LOG level entries that are not queries)
Events distribution (except queries)
Key values
- 0 PANIC entries
- 0 FATAL entries
- 2 ERROR entries
- 0 WARNING entries
- 0 EVENTLOG entries
Most Frequent Errors/Events
Key values
- 1 Max number of times the same event was reported
- 2 Total events found
Rank Times reported Error 1 1 ERROR: column "..." does not exist
Times Reported Most Frequent Error / Event #1
Day Hour Count Apr 28 08 1 - ERROR: column "queryid" does not exist
Hint: Perhaps you meant to reference the column "db_top_queries.query".
Statement: WITH x AS (SELECT tenant_key,collected_at,queryid,query,calls,total_time_ms,mean_time_ms, lag(calls) OVER(PARTITION BY tenant_key,queryid ORDER BY collected_at) prev_calls, lag(total_time_ms) OVER(PARTITION BY tenant_key,queryid ORDER BY collected_at) prev_total FROM observability.db_top_queries WHERE collected_at BETWEEN $1 AND $2 AND tenant_key='prod' AND (query ILIKE '%p_update_animals%' OR query ILIKE '%p_update_breedings%')) SELECT collected_at, calls-prev_calls AS call_delta, round((total_time_ms-prev_total)::numeric,3) AS total_ms_delta, round(mean_time_ms::numeric,3) AS mean_ms, left(query,130) query FROM x WHERE prev_calls IS NOT NULL AND (calls-prev_calls <> 0 OR total_time_ms-prev_total <> 0) ORDER BY collected_at, total_ms_delta DESCDate: 2026-04-28 07:57:20 Database: zemm_monitoring Application: User: labanimal Remote: Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv
2 1 ERROR: relation "..." does not exist
Times Reported Most Frequent Error / Event #2
Day Hour Count Apr 28 16 1 - ERROR: relation "observability.app_events" does not exist
Statement: SELECT COUNT(*) AS matching_events_since_patch FROM observability.app_events WHERE tenant_key = 'prod' AND event_type = 'php_error' AND message = 'Undefined property: stdClass::$function' AND payload->>'file' = '/var/www/html/zemmphp7/desktop/database/ScreenStrains.php' AND occurred_at >= TIMESTAMPTZ '2026-04-28 15:04:00+02';
Date: 2026-04-28 15:06:25 Database: zemm_produktiv_8 Application: psql User: labanimal Remote: Log file: /var/log/postgresql/postgresql-2026-04-28_000000.csv