-
Global information
- Generated on Mon Jun 15 06:04:51 2026
- Log file: /var/log/postgresql/postgresql-2026-05-13_000000.csv, ..., /var/log/postgresql/postgresql-2026-06-15_000000.csv
- Parsed 294,093 log entries in 4m50s
- Log start from 2026-05-18 00:00:01 to 2026-05-18 23:59:02
-
Overview
Global Stats
- 84 Number of unique normalized queries
- 24,917 Number of queries
- 1d3m55s Total query duration
- 2026-05-18 00:00:01 First query
- 2026-05-18 23:59:01 Last query
- 18 queries/s at 2026-05-18 14:09:01 Query peak
- 1d3m55s Total query duration
- 0ms Prepare/parse total duration
- 0ms Bind total duration
- 1d3m55s Execute total duration
- 0 Number of events
- 0 Number of unique normalized events
- 0 Max number of times the same event was reported
- 0 Number of cancellation
- 222 Total number of automatic vacuums
- 416 Total number of automatic analyzes
- 4 Number temporary file
- 179.22 MiB Max size of temporary file
- 179.21 MiB Average size of temporary file
- 27,114 Total number of sessions
- 9 sessions at 2026-05-18 13:21:44 Session peak
- 2h32m34s Total duration of sessions
- 337ms Average duration of sessions
- 0 Average queries per session
- 3s195ms Average queries duration per session
- 0ms Average idle time per session
- 27,114 Total number of connections
- 31 connections/s at 2026-05-18 14:19:19 Connection peak
- 2 Total number of databases
SQL Traffic
Key values
- 18 queries/s Query Peak
- 2026-05-18 14:09:01 Date
SELECT Traffic
Key values
- 2 queries/s Query Peak
- 2026-05-18 11:43:20 Date
INSERT/UPDATE/DELETE Traffic
Key values
- 18 queries/s Query Peak
- 2026-05-18 15:57:01 Date
Queries duration
Key values
- 1d3m55s 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) May 18 00 1,020 0ms 0ms 0ms 0ms 0ms 0ms 01 1,021 0ms 1s337ms 647ms 22s740ms 22s740ms 22s740ms 02 1,020 1s337ms 1s337ms 1s337ms 22s740ms 22s740ms 22s740ms 03 1,020 1s337ms 1s337ms 1s337ms 22s740ms 22s740ms 22s740ms 04 1,020 1s337ms 1s337ms 1s337ms 22s740ms 22s740ms 22s740ms 05 1,020 1s337ms 1s337ms 1s337ms 22s740ms 22s740ms 22s740ms 06 1,028 505ms 1s337ms 1s160ms 22s740ms 22s740ms 23s690ms 07 1,055 514ms 1s691ms 671ms 14s46ms 27s39ms 27s596ms 08 1,042 504ms 19s614ms 3s72ms 3m21s 5m33s 5m33s 09 1,080 504ms 19s673ms 3s848ms 3m21s 3m22s 5m36s 10 1,065 541ms 29s116ms 5s544ms 3m24s 8m14s 8m15s 11 1,091 587ms 25s486ms 6s802ms 5m48s 7m13s 7m14s 12 1,045 622ms 17s449ms 5s848ms 4m28s 4m56s 4m57s 13 1,057 552ms 43s654ms 8s877ms 5m35s 10m52s 12m59s 14 1,064 501ms 22s899ms 7s57ms 5m57s 6m29s 6m29s 15 1,048 582ms 24s349ms 9s702ms 6m30s 6m53s 6m54s 16 1,051 512ms 25s816ms 9s228ms 6m52s 6m52s 7m20s 17 1,037 527ms 24s10ms 7s79ms 5m51s 6m48s 6m49s 18 1,028 746ms 19s352ms 3s757ms 4m51s 5m28s 5m29s 19 1,020 746ms 746ms 746ms 12s683ms 12s683ms 12s683ms 20 1,020 746ms 746ms 746ms 12s683ms 12s683ms 12s683ms 21 1,020 746ms 746ms 746ms 12s683ms 12s683ms 12s683ms 22 1,020 746ms 746ms 746ms 12s683ms 12s683ms 12s683ms 23 1,025 564ms 2s76ms 791ms 12s683ms 23s484ms 23s484ms Day Hour SELECT COPY TO Average Duration Latency Percentile(90) Latency Percentile(95) Latency Percentile(99) May 18 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 8 0 645ms 0ms 0ms 1s47ms 07 31 0 794ms 613ms 1s593ms 2s487ms 08 19 0 726ms 504ms 1s182ms 2s226ms 09 53 0 791ms 1s614ms 2s362ms 3s94ms 10 35 0 2s364ms 1s28ms 1s547ms 3s812ms 11 60 0 1s440ms 1s210ms 4s763ms 22s309ms 12 19 0 946ms 746ms 1s210ms 2s129ms 13 31 0 8s415ms 934ms 5s470ms 41s885ms 14 35 0 887ms 1s116ms 1s301ms 2s321ms 15 22 0 897ms 832ms 1s132ms 3s43ms 16 26 0 796ms 1s73ms 1s207ms 2s334ms 17 11 0 1s34ms 0ms 1s90ms 1s225ms 18 6 0 856ms 0ms 0ms 989ms 19 0 0 0ms 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 1s337ms 0ms 0ms 0ms Day Hour INSERT UPDATE DELETE COPY FROM Average Duration Latency Percentile(90) Latency Percentile(95) Latency Percentile(99) May 18 00 0 0 0 0 0ms 0ms 0ms 0ms 01 0 1 0 0 1s337ms 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 May 18 00 0 0 0.00 0.00% 01 0 0 0.00 0.00% 02 0 0 0.00 0.00% 03 0 0 0.00 0.00% 04 0 0 0.00 0.00% 05 0 0 0.00 0.00% 06 0 0 0.00 0.00% 07 0 0 0.00 0.00% 08 0 8 8.00 0.00% 09 0 19 19.00 0.00% 10 0 17 17.00 0.00% 11 0 18 18.00 0.00% 12 0 18 18.00 0.00% 13 0 17 17.00 0.00% 14 0 19 19.00 0.00% 15 0 18 18.00 0.00% 16 0 15 15.00 0.00% 17 0 17 17.00 0.00% 18 0 6 6.00 0.00% 19 0 0 0.00 0.00% 20 0 0 0.00 0.00% 21 0 0 0.00 0.00% 22 0 0 0.00 0.00% 23 0 0 0.00 0.00% Day Hour Count Average / Second May 18 00 584 0.16/s 01 563 0.16/s 02 584 0.16/s 03 561 0.16/s 04 555 0.15/s 05 583 0.16/s 06 1,448 0.40/s 07 1,854 0.52/s 08 1,745 0.48/s 09 1,959 0.54/s 10 2,079 0.58/s 11 1,816 0.50/s 12 1,745 0.48/s 13 1,952 0.54/s 14 1,761 0.49/s 15 1,603 0.45/s 16 1,182 0.33/s 17 998 0.28/s 18 788 0.22/s 19 546 0.15/s 20 566 0.16/s 21 553 0.15/s 22 543 0.15/s 23 546 0.15/s Day Hour Count Average Duration Average idle time May 18 00 584 295ms 295ms 01 563 308ms 0ms 02 584 343ms 0ms 03 561 274ms 0ms 04 555 291ms 0ms 05 583 289ms 0ms 06 1,448 225ms 0ms 07 1,854 211ms 0ms 08 1,745 207ms 0ms 09 1,959 275ms 0ms 10 2,076 303ms 0ms 11 1,819 387ms 0ms 12 1,745 235ms 0ms 13 1,952 968ms 0ms 14 1,761 310ms 0ms 15 1,603 307ms 0ms 16 1,182 395ms 0ms 17 998 449ms 0ms 18 788 306ms 0ms 19 546 240ms 0ms 20 566 241ms 0ms 21 553 236ms 0ms 22 543 241ms 0ms 23 546 259ms 0ms -
Connections
Established Connections
Key values
- 31 connections Connection Peak
- 2026-05-18 14:19:19 Date
Connections per database
Key values
- zemm_monitoring Main Database
- 27,114 connections Total
Connections per user
Key values
- labanimal Main User
- 27,114 connections Total
-
Sessions
Simultaneous sessions
Key values
- 9 sessions Session Peak
- 2026-05-18 13:21:44 Date
Histogram of session times
Key values
- 24,438 0-500ms duration
Sessions per database
Key values
- zemm_monitoring Main Database
- 27,114 sessions Total
Sessions per user
Key values
- labanimal Main User
- 27,114 sessions Total
Sessions per host
Key values
- ::1 Main Host
- 27,114 sessions Total
Sessions per application
Key values
- Main Application
- 27,114 sessions Total
Application Count Total Duration Average Duration 22,080 2h12m43s 360ms _desktop__zemm_produktiv_8_localhost_5432 32 2s78ms 64ms _desktop_index.php_command_animals_breedings_subcommand_add_bre 1 50ms 50ms _desktop_index.php_command_animals_breedings_subcommand_create_ 3 128ms 42ms _desktop_index.php_command_animals_edit_subcommand_init_id_1028 3 308ms 102ms _desktop_index.php_command_animals_edit_subcommand_init_id_1030 1 117ms 117ms _desktop_index.php_command_animals_subcommand_init_zemm_produkt 7 332ms 47ms _desktop_index.php_command_login_subcommand_init_zemm_dev_local 1 42ms 42ms _desktop_index.php_command_login_subcommand_init_zemm_produktiv 1,851 55s423ms 29ms _desktop_index.php_command_login_subcommand_init_zemm_test_loca 4 129ms 32ms _desktop_index.php_command_reports_subcommand_animals_per_room_ 1 117ms 117ms _desktop_index.php_command_reports_subcommand_animals_per_user_ 3 402ms 134ms _desktop_index.php_command_reports_subcommand_fates_zemm_produk 1 111ms 111ms _desktop_index.php_command_reports_subcommand_init_zemm_produkt 3 763ms 254ms _desktop_index.php_command_tasks_subcommand_edit_id_10142326_ze 1 81ms 81ms _desktop_index.php_command_tasks_subcommand_edit_id_10142662_ze 1 87ms 87ms _desktop_index.php_command_tasks_subcommand_edit_id_10142977_ze 2 211ms 105ms _desktop_index.php_command_tasks_subcommand_edit_id_10142980_ze 1 105ms 105ms _desktop_index.php_command_tasks_subcommand_edit_id_10142981_ze 1 106ms 106ms _desktop_index.php_command_tasks_subcommand_edit_id_10142982_ze 1 116ms 116ms _desktop_index.php_command_tasks_subcommand_edit_id_10142983_ze 1 88ms 88ms _desktop_index.php_command_tasks_subcommand_edit_id_10143027_ze 1 89ms 89ms _desktop_index.php_command_tasks_subcommand_init_template_zemm_ 1 46ms 46ms _desktop_index.php_command_tasks_subcommand_init_zemm_produktiv 6 540ms 90ms _desktop_index.php_command_tasks_subcommand_open_legacy_1_id_10 72 6s278ms 87ms _desktop_index.php_command_tasks_subcommand_open_legacy_1_id_79 5 330ms 66ms _desktop_index.php_command_tasks_subcommand_open_zemm_produktiv 3 4s317ms 1s439ms _desktop_index.php_m_action_animals_edit_3Alink_init_row_animal 1 46ms 46ms _desktop_index.php_m_action_animals_litters_edit_3Am_init_val4_ 1 51ms 51ms _desktop_index.php_name_Tiertransport_20durch_20das_20ZEMM_20-_ 1 68ms 68ms _desktop_index.php_name_Transfer_20in_20Laborbereich_20des_20ZE 1 141ms 141ms _desktop_index.php_name_Verpaarungen_20f_C3_BCr_20Versuchsvorha 1 104ms 104ms _desktop_index.php_view_animal_name_on_view_animal_id_on_animal 4 1s525ms 381ms _desktop_index.php_view_animal_name_on_view_animal_id_on_view_b 19 6s785ms 357ms _desktop_index.php_zemm_dev_localhost_5432 1 78ms 78ms _desktop_index.php_zemm_produktiv_8_localhost_5432 2,921 18m6s 371ms backend:zemm_produktiv_8@localhost 50 3s419ms 68ms bounces:zemm_produktiv_8@h2940066.stratoserver.net:5432 1 76ms 76ms expire_tasks:zemm_produktiv_8@h2940066.stratoserver.net:5432 1 1s366ms 1s366ms pg_dump 1 11s251ms 11s251ms taskscron:zemm_produktiv_8@h2940066.stratoserver.net:5432 24 7s388ms 307ms -
Checkpoints / Restartpoints
Checkpoints Buffers
Key values
- 31,535 buffers Checkpoint Peak
- 2026-05-18 08:44:22 Date
- 269.462 seconds Highest write time
- 0.081 seconds Sync time
Checkpoints Wal files
Key values
- 7 files Wal files usage Peak
- 2026-05-18 08:44:22 Date
Checkpoints distance
Key values
- 211.99 Mo Distance Peak
- 2026-05-18 08:44:22 Date
Checkpoints Activity
↑ Back to the top of the Checkpoint Activity tableDay Hour Written buffers Write time Sync time Total time May 18 00 7,462 747.619s 0.114s 747.849s 01 25,420 828.314s 0.097s 828.49s 02 7,024 703.715s 0.094s 703.899s 03 6,244 625.289s 0.098s 625.451s 04 8,091 809.899s 0.091s 810.066s 05 6,817 683.349s 0.096s 683.513s 06 9,489 950.32s 0.274s 950.658s 07 10,400 1,041.144s 0.278s 1,041.483s 08 40,119 1,128.051s 0.22s 1,128.333s 09 10,675 1,068.843s 0.256s 1,069.169s 10 9,595 960.715s 0.218s 960.99s 11 9,478 949.023s 0.207s 949.329s 12 9,337 935.124s 0.237s 935.449s 13 10,629 1,063.676s 0.29s 1,064.038s 14 13,765 1,137.043s 0.24s 1,137.383s 15 9,080 909.348s 0.212s 909.645s 16 8,030 804.394s 0.188s 804.647s 17 8,030 804.042s 0.155s 804.279s 18 7,366 737.45s 0.113s 737.637s 19 7,339 734.389s 0.096s 734.543s 20 6,195 620.373s 0.088s 620.522s 21 7,378 738.801s 0.102s 738.957s 22 7,053 706.262s 0.107s 706.426s 23 6,805 681.346s 0.093s 681.499s Day Hour Added Removed Recycled Synced files Longest sync Average sync May 18 00 0 0 1 490 0.007s 0.012s 01 0 0 7 465 0.004s 0.011s 02 0 0 2 473 0.004s 0.012s 03 0 0 1 458 0.007s 0.012s 04 0 0 2 473 0.004s 0.012s 05 0 0 1 458 0.004s 0.012s 06 0 0 3 1,101 0.053s 0.012s 07 0 0 2 1,449 0.005s 0.012s 08 0 0 9 1,274 0.002s 0.012s 09 0 0 3 1,449 0.004s 0.012s 10 0 0 2 1,199 0.004s 0.012s 11 0 0 2 1,098 0.004s 0.012s 12 0 0 2 1,263 0.004s 0.012s 13 0 0 3 1,476 0.004s 0.012s 14 0 0 3 1,109 0.006s 0.012s 15 0 0 2 1,009 0.007s 0.012s 16 0 0 1 841 0.008s 0.012s 17 0 0 2 732 0.006s 0.012s 18 0 0 2 589 0.002s 0.012s 19 0 0 1 482 0.002s 0.012s 20 0 0 1 461 0.002s 0.012s 21 0 0 2 522 0.002s 0.012s 22 0 0 1 473 0.010s 0.012s 23 0 0 2 467 0.002s 0.012s Day Hour Count Avg time (sec) May 18 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 May 18 00 2,021.75 kB 6,398.50 kB 01 10,520.45 kB 32,378.18 kB 02 1,978.83 kB 38,895.92 kB 03 1,798.25 kB 12,353.25 kB 04 2,103.00 kB 4,977.17 kB 05 1,929.58 kB 3,057.83 kB 06 3,380.17 kB 5,574.00 kB 07 3,669.75 kB 5,463.92 kB 08 11,938.17 kB 34,305.42 kB 09 3,452.17 kB 44,675.17 kB 10 2,920.50 kB 14,765.67 kB 11 3,110.25 kB 6,379.75 kB 12 2,766.50 kB 4,613.75 kB 13 3,548.33 kB 5,017.58 kB 14 4,127.58 kB 8,007.25 kB 15 2,585.33 kB 8,628.00 kB 16 2,353.33 kB 4,164.83 kB 17 2,277.92 kB 2,932.50 kB 18 2,073.67 kB 2,700.50 kB 19 2,074.42 kB 2,592.75 kB 20 1,821.08 kB 2,486.33 kB 21 2,144.17 kB 3,898.92 kB 22 1,991.92 kB 2,845.67 kB 23 1,940.50 kB 2,506.92 kB -
Temporary Files
Size of temporary files
Key values
- 179.22 MiB Temp Files size Peak
- 2026-05-18 13:20:30 Date
Number of temporary files
Key values
- 1 per second Temp Files Peak
- 2026-05-18 13:20:30 Date
Temporary Files Activity
↑ Back to the top of the Temporary Files Activity tableDay Hour Count Total size Average size May 18 00 0 0 0 01 0 0 0 02 0 0 0 03 0 0 0 04 0 0 0 05 0 0 0 06 0 0 0 07 0 0 0 08 0 0 0 09 0 0 0 10 1 179.20 MiB 179.20 MiB 11 0 0 0 12 0 0 0 13 3 537.66 MiB 179.22 MiB 14 0 0 0 15 0 0 0 16 0 0 0 17 0 0 0 18 0 0 0 19 0 0 0 20 0 0 0 21 0 0 0 22 0 0 0 23 0 0 0 Queries generating the most temporary files (N)
Rank Count Total size Min size Max size Avg size Query 1 4 716.86 MiB 179.20 MiB 179.22 MiB 179.21 MiB 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.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;-
SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 10100194) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100194) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100194) 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.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-05-18 13:21:56 Duration: 43s654ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 10100194) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100194) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100194) 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.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-05-18 13:20:30 Duration: 40s851ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 10100194) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100194) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100194) 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.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-05-18 13:23:07 Duration: 34s233ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
Queries generating the largest temporary files
Rank Size Query 1 179.22 MiB SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 10100194) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100194) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100194) 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.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-05-18 13:20:30 - Database: zemm_produktiv_8 - User: labanimal - Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 ]
2 179.22 MiB SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 10100194) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100194) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100194) 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.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-05-18 13:21:56 - Database: zemm_produktiv_8 - User: labanimal - Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 ]
3 179.22 MiB SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 10100194) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100194) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100194) 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.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-05-18 13:23:07 - Database: zemm_produktiv_8 - User: labanimal - Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 ]
4 179.20 MiB SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 10100194) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100194) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100194) 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.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-05-18 10:26:59 - Database: zemm_produktiv_8 - User: labanimal - Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 ]
-
Vacuums
Vacuums / Analyzes Distribution
Key values
- 0.62 sec Highest CPU-cost vacuum
Table public.tasks
Database zemm_produktiv_8 - 2026-05-18 01:30:09 Date
- 0 sec Highest CPU-cost analyze
Table
Database zemm_produktiv_8 - Date
Average Autovacuum Duration
Key values
- 0.62 sec Highest CPU-cost vacuum
Table public.tasks
Database zemm_produktiv_8 - 2026-05-18 01:30:09 Date
Analyzes per table
Key values
- pg_catalog.pg_type (119) Main table analyzed (database zemm_produktiv_8)
- 416 analyzes Total
Table Number of analyzes zemm_produktiv_8.pg_catalog.pg_type 119 zemm_produktiv_8.pg_catalog.pg_attribute 97 zemm_produktiv_8.pg_catalog.pg_class 81 zemm_produktiv_8.pg_catalog.pg_depend 72 zemm_produktiv_8.pg_catalog.pg_shdepend 6 zemm_dev.pg_catalog.pg_shdepend 5 postgres.pg_catalog.pg_shdepend 5 fbi_ci_db.pg_catalog.pg_shdepend 4 labanimal.pg_catalog.pg_shdepend 4 fbi_unire.pg_catalog.pg_shdepend 3 invdb.pg_catalog.pg_shdepend 3 zemm_produktiv_8.public.cages_search_mview 2 fbi_unibi.pg_catalog.pg_shdepend 2 zemm_produktiv_8.public.tmptasks 2 zemm_monitoring.observability.metrics_timeseries 2 template1.pg_catalog.pg_shdepend 2 zemm_produktiv_8.public.users 1 zemm_produktiv_8.public.tasks 1 template0.pg_catalog.pg_shdepend 1 zemm_test.pg_catalog.pg_shdepend 1 zemm_produktiv_8.public.user_ui_prefs 1 zemm_monitoring.pg_catalog.pg_shdepend 1 zemm_monitoring.observability.system_metrics 1 Total 416 Vacuums per table
Key values
- pg_catalog.pg_type (61) Main table vacuumed on database zemm_produktiv_8
- 222 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 61 61 0 0 0 0 0 2,402 515 636,690 0 0 zemm_produktiv_8.pg_catalog.pg_attribute 55 55 0 0 0 0 0 4,727 905 1,289,629 0 0 zemm_produktiv_8.pg_catalog.pg_depend 36 36 0 0 0 0 0 3,295 812 1,160,982 0 0 zemm_produktiv_8.pg_catalog.pg_class 36 36 0 0 0 0 0 2,049 581 615,451 0 0 template1.pg_catalog.pg_shdepend 10 10 0 0 0 0 0 672 153 349,554 0 0 zemm_produktiv_8.pg_toast.pg_toast_2619 7 7 0 0 0 0 0 1,175 294 1,527,540 35 115 zemm_test.pg_catalog.pg_shdepend 5 5 0 0 0 0 0 342 118 251,088 0 0 zemm_produktiv_8.pg_catalog.pg_shdepend 5 5 0 0 0 0 0 342 113 232,508 0 0 zemm_monitoring.pg_toast.pg_toast_67431 4 0 0 0 0 0 0 4,539 1,521 3,462,368 1,504 9,024 zemm_produktiv_8.public.tmptasks 1 1 0 0 0 0 0 75 23 21,468 0 0 zemm_produktiv_8.public.tasks 1 1 0 0 0 0 0 47,523 7 3,356,635 0 0 zemm_produktiv_8.public.cages_search_mview 1 1 0 0 0 0 0 728 379 1,267,597 40 299 Total 222 218 0 0 0 0 0 67,869 5,421 14,171,510 1,579 9,438 Vacuum throughput per table
Key values
- public.tasks (0.62) Max CPU elapsed for vacuum on database zemm_produktiv_8
- public.tasks (1.483 ms) Max I/O read time for vacuum on database zemm_produktiv_8
- unknown (0 ms) Max I/O write time for vacuum on database zemm_produktiv_8
I/O timing (ms) CPU (s) Table read write elapsed zemm_produktiv_8.pg_catalog.pg_type 0 0 0 zemm_produktiv_8.pg_catalog.pg_attribute 0 0 0.04 zemm_produktiv_8.pg_catalog.pg_depend 0 0 0.11 zemm_produktiv_8.pg_catalog.pg_class 0 0 0.01 template1.pg_catalog.pg_shdepend 0 0 0.01 zemm_produktiv_8.pg_toast.pg_toast_2619 0 0 0.06 zemm_test.pg_catalog.pg_shdepend 0 0 0 zemm_produktiv_8.pg_catalog.pg_shdepend 0 0 0.01 zemm_monitoring.pg_toast.pg_toast_67431 0 0 0.36 zemm_produktiv_8.public.tmptasks 0 0 0 zemm_produktiv_8.public.tasks 1.483 0 0.62 zemm_produktiv_8.public.cages_search_mview 0 0 0.1 Total 1.483 0 1.32 Tuples removed per table
Key values
- public.tasks (54504) Main table with removed tuples on database zemm_produktiv_8
- 101833 tuples Total removed
Index Tuples Pages Table Vacuums scans removed remain not yet removable removed remain zemm_produktiv_8.public.tasks 1 1 54,504 57,618 0 0 16,999 zemm_produktiv_8.pg_catalog.pg_attribute 55 55 21,314 326,812 0 0 10,120 zemm_produktiv_8.pg_catalog.pg_depend 36 36 12,340 156,326 0 0 1,980 zemm_produktiv_8.pg_catalog.pg_type 61 61 6,091 50,691 0 0 1,891 zemm_produktiv_8.pg_catalog.pg_class 36 36 3,267 32,508 0 0 1,512 template1.pg_catalog.pg_shdepend 10 10 1,485 47,116 66 0 380 zemm_test.pg_catalog.pg_shdepend 5 5 882 23,525 0 0 190 zemm_produktiv_8.pg_catalog.pg_shdepend 5 5 832 23,525 0 0 190 zemm_produktiv_8.pg_toast.pg_toast_2619 7 7 761 1,984 0 0 742 zemm_produktiv_8.public.cages_search_mview 1 1 284 13,885 0 0 234 zemm_produktiv_8.public.tmptasks 1 1 73 996 0 0 120 zemm_monitoring.pg_toast.pg_toast_67431 4 0 0 2,644,562 0 0 448,631 Total 222 218 101,833 3,379,548 66 0 482,989 Pages removed per table
Key values
- unknown (0) Main table with removed pages on database unknown
- 0 pages Total removed
Pages removed per tables
NO DATASET
Table Number of vacuums Index scans Tuples removed Pages removed zemm_produktiv_8.public.tmptasks 1 1 73 0 zemm_produktiv_8.pg_toast.pg_toast_2619 7 7 761 0 template1.pg_catalog.pg_shdepend 10 10 1485 0 zemm_produktiv_8.pg_catalog.pg_depend 36 36 12340 0 zemm_produktiv_8.public.tasks 1 1 54504 0 zemm_produktiv_8.public.cages_search_mview 1 1 284 0 zemm_produktiv_8.pg_catalog.pg_class 36 36 3267 0 zemm_produktiv_8.pg_catalog.pg_type 61 61 6091 0 zemm_test.pg_catalog.pg_shdepend 5 5 882 0 zemm_produktiv_8.pg_catalog.pg_shdepend 5 5 832 0 zemm_monitoring.pg_toast.pg_toast_67431 4 0 0 0 zemm_produktiv_8.pg_catalog.pg_attribute 55 55 21314 0 Total 222 218 101,833 0 Autovacuum Activity
↑ Back to the top of the Autovacuum Activity tableDay Hour VACUUMs ANALYZEs May 18 00 1 0 01 1 1 02 0 0 03 0 0 04 0 1 05 0 0 06 34 56 07 27 46 08 20 34 09 23 44 10 16 34 11 23 46 12 13 24 13 23 45 14 12 30 15 7 19 16 9 15 17 4 7 18 4 6 19 0 0 20 5 8 21 0 0 22 0 0 23 0 0 - 0.62 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
- 356 Total read queries
- 24,561 Total write queries
Queries by database
Key values
- zemm_monitoring Main database
- 24,652 Requests
- 23h54m45s (zemm_monitoring)
- Main time consuming database
Queries by user
Key values
- monitoring_admin Main user
- 147,261 Requests
User Request type Count Duration labanimal Total 477 14m46s cte 39 54s187ms select 432 13m46s update 6 6s396ms monitoring_admin Total 147,261 2d20h58m53s cte 124 29m11s ddl 146,880 2d20h26m20s select 257 3m21s postgres Total 30 41s724ms copy to 30 41s724ms Duration by user
Key values
- 2d20h58m53s (monitoring_admin) Main time consuming user
User Request type Count Duration labanimal Total 477 14m46s cte 39 54s187ms select 432 13m46s update 6 6s396ms monitoring_admin Total 147,261 2d20h58m53s cte 124 29m11s ddl 146,880 2d20h26m20s select 257 3m21s postgres Total 30 41s724ms copy to 30 41s724ms Queries by host
Key values
- unknown Main host
- 147,732 Requests
- 2d21h13m33s (unknown)
- Main time consuming host
Queries by application
Key values
- unknown Main application
- 24,652 Requests
- 23h54m45s (unknown)
- Main time consuming application
Application Request type Count Duration _desktop_index.php_view_animal_name_on_view_animal_id_on_view_b Total 2 1s197ms select 2 1s197ms _desktop_index.php_zemm_produktiv_8_localhost_5432 Total 257 9m cte 16 27s690ms select 241 8m32s expire_tasks:zemm_produktiv_8@h2940066.stratoserver.net:5432 Total 1 1s337ms update 1 1s337ms pg_dump Total 5 6s688ms copy to 5 6s688ms unknown Total 24,652 23h54m45s cte 59 16m27s ddl 24,480 23h36m30s select 113 1m47s Number of cancelled queries
Key values
- 0 per second Cancelled query Peak
- 2026-05-18 07:13:14 Date
Number of cancelled queries (5 minutes period)
NO DATASET
-
Top Queries
Histogram of query times
Key values
- 237 500-1000ms duration
Slowest individual queries
Rank Duration Query 1 43s654ms SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 10100194) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100194) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100194) 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.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-05-18 13:21:56 - Database: zemm_produktiv_8 - User: labanimal - Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 - Bind query: yes ]
2 43s654ms CREATE SCHEMA IF NOT EXISTS observability;[ Date: 2026-05-18 13:22:02 - Database: zemm_monitoring - User: monitoring_admin - Bind query: yes ]
3 43s654ms 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-05-18 13:22:02 - Database: zemm_monitoring - User: monitoring_admin - Bind query: yes ]
4 43s654ms CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);[ Date: 2026-05-18 13:22:02 - Database: zemm_monitoring - User: monitoring_admin - Bind query: yes ]
5 43s654ms CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);[ Date: 2026-05-18 13:22:02 - Database: zemm_monitoring - User: monitoring_admin - Bind query: yes ]
6 43s654ms 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-05-18 13:22:02 - Database: zemm_monitoring - User: monitoring_admin - Bind query: yes ]
7 43s654ms CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);[ Date: 2026-05-18 13:22:02 - Database: zemm_monitoring - User: monitoring_admin - Bind query: yes ]
8 43s654ms CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);[ Date: 2026-05-18 13:22:02 - Database: zemm_monitoring - User: monitoring_admin - Bind query: yes ]
9 43s654ms 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-05-18 13:22:02 - Database: zemm_monitoring - User: monitoring_admin - Bind query: yes ]
10 43s654ms CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);[ Date: 2026-05-18 13:22:02 - Database: zemm_monitoring - User: monitoring_admin - Bind query: yes ]
11 43s654ms 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-05-18 13:22:02 - Database: zemm_monitoring - User: monitoring_admin - Bind query: yes ]
12 43s654ms 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-05-18 13:22:02 - Database: zemm_monitoring - User: monitoring_admin - Bind query: yes ]
13 43s654ms 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-05-18 13:22:02 - Database: zemm_monitoring - User: monitoring_admin - Bind query: yes ]
14 43s654ms 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-05-18 13:22:02 - Database: zemm_monitoring - User: monitoring_admin - Bind query: yes ]
15 43s654ms ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS label text;[ Date: 2026-05-18 13:22:02 - Database: zemm_monitoring - User: monitoring_admin - Bind query: yes ]
16 43s654ms ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS payload jsonb;[ Date: 2026-05-18 13:22:02 - Database: zemm_monitoring - User: monitoring_admin - Bind query: yes ]
17 43s654ms CREATE INDEX IF NOT EXISTS idx_uptime_checks_endpoint ON observability.uptime_checks (endpoint, checked_at DESC);[ Date: 2026-05-18 13:22:02 - Database: zemm_monitoring - User: monitoring_admin - Bind query: yes ]
18 43s654ms CREATE INDEX IF NOT EXISTS idx_uptime_checks_key ON observability.uptime_checks (check_key, checked_at DESC);[ Date: 2026-05-18 13:22:02 - Database: zemm_monitoring - User: monitoring_admin - Bind query: yes ]
19 41s605ms 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, 10100194) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100194) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100194) AS is_tourist, CASE WHEN NOT EXISTS ( SELECT 1 FROM scoresheet_diary sd WHERE sd.animals_id = animals_search_mview.id) THEN 'f' ELSE 't' END AS isscored FROM animals_search_mview LEFT JOIN strains ON strains.name = animals_search_mview.strain LEFT JOIN license_history lh ON lh.anid = animals_search_mview.id LEFT JOIN animals a ON a."animalID" = animals_search_mview.animal_id LEFT JOIN breedings b ON b.id = animals_search_mview.last_mating) data WHERE deleted = 'f' AND (is_owner OR is_editor OR is_tourist);[ Date: 2026-05-18 13:21:12 - Database: zemm_produktiv_8 - User: labanimal - Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 - Bind query: yes ]
20 40s851ms SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 10100194) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100194) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100194) 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.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-05-18 13:20:30 - Database: zemm_produktiv_8 - User: labanimal - Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 - Bind query: yes ]
Time consuming queries (N)
Rank Total duration Times executed Min duration Max duration Avg duration Query 1 1h23m19s 1,440 504ms 43s654ms 3s472ms create index if not exists idx_uptime_checks_endpoint on observability.uptime_checks (endpoint, checked_at desc);Times Reported Time consuming queries #1
Day Hour Count Duration Avg duration May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s199ms 16 60 9m49s 9s832ms 17 60 9m22s 9s371ms 18 60 7m5s 7s85ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_endpoint ON observability.uptime_checks (endpoint, checked_at DESC);
Date: 2026-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_endpoint ON observability.uptime_checks (endpoint, checked_at DESC);
Date: 2026-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_endpoint ON observability.uptime_checks (endpoint, checked_at DESC);
Date: 2026-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
2 1h23m19s 1,440 504ms 43s654ms 3s472ms alter table observability.uptime_checks add column if not exists payload jsonb;Times Reported Time consuming queries #2
Day Hour Count Duration Avg duration May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s199ms 16 60 9m49s 9s832ms 17 60 9m22s 9s371ms 18 60 7m5s 7s85ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS payload jsonb;
Date: 2026-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS payload jsonb;
Date: 2026-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS payload jsonb;
Date: 2026-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
3 1h23m19s 1,440 504ms 43s654ms 3s472ms create index if not exists idx_uptime_checks_key on observability.uptime_checks (check_key, checked_at desc);Times Reported Time consuming queries #3
Day Hour Count Duration Avg duration May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s199ms 16 60 9m49s 9s832ms 17 60 9m22s 9s371ms 18 60 7m5s 7s85ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_key ON observability.uptime_checks (check_key, checked_at DESC);
Date: 2026-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_key ON observability.uptime_checks (check_key, checked_at DESC);
Date: 2026-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_key ON observability.uptime_checks (check_key, checked_at DESC);
Date: 2026-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
4 1h23m19s 1,440 504ms 43s654ms 3s471ms create index if not exists idx_app_events_type on observability.app_events (event_type);Times Reported Time consuming queries #4
Day Hour Count Duration Avg duration May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s194ms 16 60 9m49s 9s832ms 17 60 9m22s 9s372ms 18 60 7m4s 7s81ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
5 1h23m19s 1,440 504ms 43s654ms 3s471ms 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 #5
Day Hour Count Duration Avg duration May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s194ms 16 60 9m49s 9s832ms 17 60 9m22s 9s372ms 18 60 7m4s 7s81ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
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-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_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-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_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-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
6 1h23m19s 1,440 504ms 43s654ms 3s471ms create table if not exists observability.uptime_checks ( id bigserial primary key, endpoint text not null, status text not null, latency_ms double precision, checked_at timestamptz not null default now() );Times Reported Time consuming queries #6
Day Hour Count Duration Avg duration May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s194ms 16 60 9m49s 9s832ms 17 60 9m22s 9s372ms 18 60 7m4s 7s81ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
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-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_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-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_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-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
7 1h23m19s 1,440 504ms 43s654ms 3s471ms create index if not exists idx_app_events_tenant on observability.app_events (tenant_key, occurred_at desc);Times Reported Time consuming queries #7
Day Hour Count Duration Avg duration May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s194ms 16 60 9m49s 9s832ms 17 60 9m22s 9s372ms 18 60 7m4s 7s81ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
8 1h23m19s 1,440 504ms 43s654ms 3s471ms create index if not exists idx_db_top_queries_tenant on observability.db_top_queries (tenant_key, collected_at desc);Times Reported Time consuming queries #8
Day Hour Count Duration Avg duration May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s194ms 16 60 9m49s 9s832ms 17 60 9m22s 9s372ms 18 60 7m4s 7s81ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);
Date: 2026-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);
Date: 2026-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);
Date: 2026-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
9 1h23m19s 1,440 504ms 43s654ms 3s471ms 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 #9
Day Hour Count Duration Avg duration May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s194ms 16 60 9m49s 9s832ms 17 60 9m22s 9s372ms 18 60 7m4s 7s81ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
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-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_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-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_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-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
10 1h23m19s 1,440 504ms 43s654ms 3s471ms create table if not exists observability.metrics_timeseries ( id bigserial primary key, tenant_key text not null, metric_name text not null, bucket_start timestamptz not null, bucket_width_seconds integer not null default ?, sum_value double precision not null default ?, count_value bigint not null default ?, histogram jsonb, created_at timestamptz not null default now(), updated_at timestamptz not null default now(), unique (tenant_key, metric_name, bucket_start, bucket_width_seconds) );Times Reported Time consuming queries #10
Day Hour Count Duration Avg duration May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s194ms 16 60 9m49s 9s832ms 17 60 9m22s 9s372ms 18 60 7m4s 7s81ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
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-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_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-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_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-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
11 1h23m19s 1,440 504ms 43s654ms 3s471ms create schema if not exists observability;Times Reported Time consuming queries #11
Day Hour Count Duration Avg duration May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s194ms 16 60 9m49s 9s832ms 17 60 9m22s 9s372ms 18 60 7m4s 7s81ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
12 1h23m19s 1,440 504ms 43s654ms 3s471ms create index if not exists idx_metrics_timeseries_metric on observability.metrics_timeseries (metric_name);Times Reported Time consuming queries #12
Day Hour Count Duration Avg duration May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s194ms 16 60 9m49s 9s832ms 17 60 9m22s 9s372ms 18 60 7m4s 7s81ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
13 1h23m19s 1,440 504ms 43s654ms 3s471ms 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 #13
Day Hour Count Duration Avg duration May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s194ms 16 60 9m49s 9s832ms 17 60 9m22s 9s372ms 18 60 7m4s 7s81ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
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-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_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-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_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-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
14 1h23m19s 1,440 504ms 43s654ms 3s471ms create index if not exists idx_metrics_timeseries_bucket on observability.metrics_timeseries (bucket_start);Times Reported Time consuming queries #14
Day Hour Count Duration Avg duration May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s194ms 16 60 9m49s 9s832ms 17 60 9m22s 9s372ms 18 60 7m4s 7s81ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
15 1h23m19s 1,440 504ms 43s654ms 3s471ms alter table observability.uptime_checks add column if not exists label text;Times Reported Time consuming queries #15
Day Hour Count Duration Avg duration May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s194ms 16 60 9m49s 9s832ms 17 60 9m22s 9s372ms 18 60 7m4s 7s81ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS label text;
Date: 2026-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS label text;
Date: 2026-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS label text;
Date: 2026-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
16 1h23m19s 1,440 504ms 43s654ms 3s471ms 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 #16
Day Hour Count Duration Avg duration May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s194ms 16 60 9m49s 9s832ms 17 60 9m22s 9s372ms 18 60 7m4s 7s81ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
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-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_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-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_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-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
17 1h23m19s 1,440 504ms 43s654ms 3s471ms 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 #17
Day Hour Count Duration Avg duration May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s194ms 16 60 9m49s 9s832ms 17 60 9m22s 9s372ms 18 60 7m4s 7s81ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
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-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_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-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_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-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
18 16m27s 59 1s209ms 25s816ms 16s737ms 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 >= ? 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 May 18 09 3 43s281ms 14s427ms 10 6 1m38s 16s442ms 11 6 1m18s 13s133ms 12 6 1m23s 13s887ms 13 6 1m20s 13s425ms 14 6 1m28s 14s789ms 15 7 2m13s 19s39ms 16 6 1m59s 19s974ms 17 5 1m58s 23s619ms 18 6 1m46s 17s751ms 19 2 36s435ms 18s217ms [ User: monitoring_admin - Total duration: 16m27s - Times executed: 59 ]
-
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', 'live') AND collected_at >= '2026-05-15 16:56:51+02' AND collected_at <= '2026-05-17 16:56:51+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', 'live') AND collected_at BETWEEN '2026-05-17 16:56:51+02' AND '2026-05-18 16:56:51+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', 'live') AND collected_at BETWEEN '2026-05-17 16:56:51+02' AND '2026-05-18 16:56:51+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-05-18 16:57:17 Duration: 25s816ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_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', 'live') AND collected_at >= '2026-05-15 15:05:25+02' AND collected_at <= '2026-05-17 15:05:25+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', 'live') AND collected_at BETWEEN '2026-05-17 15:05:25+02' AND '2026-05-18 15:05:25+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', 'live') AND collected_at BETWEEN '2026-05-17 15:05:25+02' AND '2026-05-18 15:05:25+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-05-18 15:05:49 Duration: 24s349ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_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', 'live') AND collected_at >= '2026-05-15 16:46:32+02' AND collected_at <= '2026-05-17 16:46:32+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', 'live') AND collected_at BETWEEN '2026-05-17 16:46:32+02' AND '2026-05-18 16:46:32+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', 'live') AND collected_at BETWEEN '2026-05-17 16:46:32+02' AND '2026-05-18 16:46:32+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-05-18 16:46:56 Duration: 24s244ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
19 2m27s 4 29s116ms 43s654ms 36s964ms 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.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 #19
Day Hour Count Duration Avg duration May 18 11 1 29s116ms 29s116ms 14 3 1m58s 39s579ms [ User: labanimal - Total duration: 2m27s - Times executed: 4 ]
[ Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 - Total duration: 2m27s - Times executed: 4 ]
-
SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 10100194) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100194) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100194) 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.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-05-18 13:21:56 Duration: 43s654ms 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-05-18_000000.csv
-
SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 10100194) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100194) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100194) 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.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-05-18 13:20:30 Duration: 40s851ms 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-05-18_000000.csv
-
SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 10100194) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100194) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100194) 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.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-05-18 13:23:07 Duration: 34s233ms 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-05-18_000000.csv
20 2m24s 4 26s570ms 41s605ms 36s165ms select count(distinct animal_id) AS "count" from ( select animals_search_mview.*, b.unbreeding_date, a.id as animal, user_is_tgm (animals_search_mview.owner, ?) as is_owner, user_is_tgm (animals_search_mview.editor, ?) as is_editor, user_is_tgm (animals_search_mview.tourist, ?) as is_tourist, case when not exists ( select ? from scoresheet_diary sd where sd.animals_id = animals_search_mview.id) then ? else ? end as isscored from animals_search_mview left join strains on strains.name = animals_search_mview.strain left join license_history lh on lh.anid = animals_search_mview.id left join animals a on a."animalID" = animals_search_mview.animal_id left join breedings b on b.id = animals_search_mview.last_mating) data where deleted = ? and (is_owner or is_editor or is_tourist);Times Reported Time consuming queries #20
Day Hour Count Duration Avg duration May 18 11 1 26s570ms 26s570ms 14 3 1m58s 39s364ms [ User: labanimal - Total duration: 2m24s - Times executed: 4 ]
[ Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 - Total duration: 2m24s - Times executed: 4 ]
-
SELECT COUNT(DISTINCT animal_id) AS "count" FROM ( SELECT animals_search_mview.*, b.unbreeding_date, a.id as animal, user_is_tgm (animals_search_mview.owner, 10100194) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100194) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100194) AS is_tourist, CASE WHEN NOT EXISTS ( SELECT 1 FROM scoresheet_diary sd WHERE sd.animals_id = animals_search_mview.id) THEN 'f' ELSE 't' END AS isscored FROM animals_search_mview LEFT JOIN strains ON strains.name = animals_search_mview.strain LEFT JOIN license_history lh ON lh.anid = animals_search_mview.id LEFT JOIN animals a ON a."animalID" = animals_search_mview.animal_id LEFT JOIN breedings b ON b.id = animals_search_mview.last_mating) data WHERE deleted = 'f' AND (is_owner OR is_editor OR is_tourist);
Date: 2026-05-18 13:21:12 Duration: 41s605ms 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-05-18_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, 10100194) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100194) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100194) AS is_tourist, CASE WHEN NOT EXISTS ( SELECT 1 FROM scoresheet_diary sd WHERE sd.animals_id = animals_search_mview.id) THEN 'f' ELSE 't' END AS isscored FROM animals_search_mview LEFT JOIN strains ON strains.name = animals_search_mview.strain LEFT JOIN license_history lh ON lh.anid = animals_search_mview.id LEFT JOIN animals a ON a."animalID" = animals_search_mview.animal_id LEFT JOIN breedings b ON b.id = animals_search_mview.last_mating) data WHERE deleted = 'f' AND (is_owner OR is_editor OR is_tourist);
Date: 2026-05-18 13:19:50 Duration: 40s123ms 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-05-18_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, 10100194) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100194) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100194) AS is_tourist, CASE WHEN NOT EXISTS ( SELECT 1 FROM scoresheet_diary sd WHERE sd.animals_id = animals_search_mview.id) THEN 'f' ELSE 't' END AS isscored FROM animals_search_mview LEFT JOIN strains ON strains.name = animals_search_mview.strain LEFT JOIN license_history lh ON lh.anid = animals_search_mview.id LEFT JOIN animals a ON a."animalID" = animals_search_mview.animal_id LEFT JOIN breedings b ON b.id = animals_search_mview.last_mating) data WHERE deleted = 'f' AND (is_owner OR is_editor OR is_tourist);
Date: 2026-05-18 13:22:32 Duration: 36s363ms 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-05-18_000000.csv
Most frequent queries (N)
Rank Times executed Total duration Min duration Max duration Avg duration Query 1 1,440 1h23m19s 504ms 43s654ms 3s472ms create index if not exists idx_uptime_checks_endpoint on observability.uptime_checks (endpoint, checked_at desc);Times Reported Time consuming queries #1
Day Hour Count Duration Avg duration May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s199ms 16 60 9m49s 9s832ms 17 60 9m22s 9s371ms 18 60 7m5s 7s85ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_endpoint ON observability.uptime_checks (endpoint, checked_at DESC);
Date: 2026-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_endpoint ON observability.uptime_checks (endpoint, checked_at DESC);
Date: 2026-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_endpoint ON observability.uptime_checks (endpoint, checked_at DESC);
Date: 2026-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
2 1,440 1h23m19s 504ms 43s654ms 3s472ms alter table observability.uptime_checks add column if not exists payload jsonb;Times Reported Time consuming queries #2
Day Hour Count Duration Avg duration May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s199ms 16 60 9m49s 9s832ms 17 60 9m22s 9s371ms 18 60 7m5s 7s85ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS payload jsonb;
Date: 2026-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS payload jsonb;
Date: 2026-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS payload jsonb;
Date: 2026-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
3 1,440 1h23m19s 504ms 43s654ms 3s472ms create index if not exists idx_uptime_checks_key on observability.uptime_checks (check_key, checked_at desc);Times Reported Time consuming queries #3
Day Hour Count Duration Avg duration May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s199ms 16 60 9m49s 9s832ms 17 60 9m22s 9s371ms 18 60 7m5s 7s85ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_key ON observability.uptime_checks (check_key, checked_at DESC);
Date: 2026-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_key ON observability.uptime_checks (check_key, checked_at DESC);
Date: 2026-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_key ON observability.uptime_checks (check_key, checked_at DESC);
Date: 2026-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
4 1,440 1h23m19s 504ms 43s654ms 3s471ms create index if not exists idx_app_events_type on observability.app_events (event_type);Times Reported Time consuming queries #4
Day Hour Count Duration Avg duration May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s194ms 16 60 9m49s 9s832ms 17 60 9m22s 9s372ms 18 60 7m4s 7s81ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
5 1,440 1h23m19s 504ms 43s654ms 3s471ms 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 #5
Day Hour Count Duration Avg duration May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s194ms 16 60 9m49s 9s832ms 17 60 9m22s 9s372ms 18 60 7m4s 7s81ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
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-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_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-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_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-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
6 1,440 1h23m19s 504ms 43s654ms 3s471ms create table if not exists observability.uptime_checks ( id bigserial primary key, endpoint text not null, status text not null, latency_ms double precision, checked_at timestamptz not null default now() );Times Reported Time consuming queries #6
Day Hour Count Duration Avg duration May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s194ms 16 60 9m49s 9s832ms 17 60 9m22s 9s372ms 18 60 7m4s 7s81ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
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-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_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-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_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-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
7 1,440 1h23m19s 504ms 43s654ms 3s471ms create index if not exists idx_app_events_tenant on observability.app_events (tenant_key, occurred_at desc);Times Reported Time consuming queries #7
Day Hour Count Duration Avg duration May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s194ms 16 60 9m49s 9s832ms 17 60 9m22s 9s372ms 18 60 7m4s 7s81ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
8 1,440 1h23m19s 504ms 43s654ms 3s471ms create index if not exists idx_db_top_queries_tenant on observability.db_top_queries (tenant_key, collected_at desc);Times Reported Time consuming queries #8
Day Hour Count Duration Avg duration May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s194ms 16 60 9m49s 9s832ms 17 60 9m22s 9s372ms 18 60 7m4s 7s81ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);
Date: 2026-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);
Date: 2026-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);
Date: 2026-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
9 1,440 1h23m19s 504ms 43s654ms 3s471ms 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 #9
Day Hour Count Duration Avg duration May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s194ms 16 60 9m49s 9s832ms 17 60 9m22s 9s372ms 18 60 7m4s 7s81ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
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-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_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-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_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-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
10 1,440 1h23m19s 504ms 43s654ms 3s471ms create table if not exists observability.metrics_timeseries ( id bigserial primary key, tenant_key text not null, metric_name text not null, bucket_start timestamptz not null, bucket_width_seconds integer not null default ?, sum_value double precision not null default ?, count_value bigint not null default ?, histogram jsonb, created_at timestamptz not null default now(), updated_at timestamptz not null default now(), unique (tenant_key, metric_name, bucket_start, bucket_width_seconds) );Times Reported Time consuming queries #10
Day Hour Count Duration Avg duration May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s194ms 16 60 9m49s 9s832ms 17 60 9m22s 9s372ms 18 60 7m4s 7s81ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
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-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_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-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_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-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
11 1,440 1h23m19s 504ms 43s654ms 3s471ms create schema if not exists observability;Times Reported Time consuming queries #11
Day Hour Count Duration Avg duration May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s194ms 16 60 9m49s 9s832ms 17 60 9m22s 9s372ms 18 60 7m4s 7s81ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
12 1,440 1h23m19s 504ms 43s654ms 3s471ms create index if not exists idx_metrics_timeseries_metric on observability.metrics_timeseries (metric_name);Times Reported Time consuming queries #12
Day Hour Count Duration Avg duration May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s194ms 16 60 9m49s 9s832ms 17 60 9m22s 9s372ms 18 60 7m4s 7s81ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
13 1,440 1h23m19s 504ms 43s654ms 3s471ms 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 #13
Day Hour Count Duration Avg duration May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s194ms 16 60 9m49s 9s832ms 17 60 9m22s 9s372ms 18 60 7m4s 7s81ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
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-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_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-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_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-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
14 1,440 1h23m19s 504ms 43s654ms 3s471ms create index if not exists idx_metrics_timeseries_bucket on observability.metrics_timeseries (bucket_start);Times Reported Time consuming queries #14
Day Hour Count Duration Avg duration May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s194ms 16 60 9m49s 9s832ms 17 60 9m22s 9s372ms 18 60 7m4s 7s81ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
15 1,440 1h23m19s 504ms 43s654ms 3s471ms alter table observability.uptime_checks add column if not exists label text;Times Reported Time consuming queries #15
Day Hour Count Duration Avg duration May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s194ms 16 60 9m49s 9s832ms 17 60 9m22s 9s372ms 18 60 7m4s 7s81ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS label text;
Date: 2026-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS label text;
Date: 2026-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS label text;
Date: 2026-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
16 1,440 1h23m19s 504ms 43s654ms 3s471ms 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 #16
Day Hour Count Duration Avg duration May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s194ms 16 60 9m49s 9s832ms 17 60 9m22s 9s372ms 18 60 7m4s 7s81ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
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-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_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-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_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-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
17 1,440 1h23m19s 504ms 43s654ms 3s471ms 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 #17
Day Hour Count Duration Avg duration May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s194ms 16 60 9m49s 9s832ms 17 60 9m22s 9s372ms 18 60 7m4s 7s81ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
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-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_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-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_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-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
18 113 1m47s 679ms 1s334ms 953ms select distinct on (coalesce(check_key, endpoint) ) check_key, label, endpoint, status, latency_ms, payload, checked_at from observability.uptime_checks order by coalesce(check_key, endpoint), checked_at desc;Times Reported Time consuming queries #18
Day Hour Count Duration Avg duration May 18 09 5 4s143ms 828ms 10 13 12s22ms 924ms 11 11 8s240ms 749ms 12 12 11s565ms 963ms 13 12 10s810ms 900ms 14 11 10s84ms 916ms 15 12 13s534ms 1s127ms 16 12 11s583ms 965ms 17 10 10s797ms 1s79ms 18 11 11s376ms 1s34ms 19 4 3s562ms 890ms [ User: monitoring_admin - Total duration: 1m47s - Times executed: 113 ]
-
SELECT DISTINCT ON (COALESCE(check_key, endpoint) ) check_key, label, endpoint, status, latency_ms, payload, checked_at FROM observability.uptime_checks ORDER BY COALESCE(check_key, endpoint), checked_at DESC;
Date: 2026-05-18 13:14:52 Duration: 1s334ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
SELECT DISTINCT ON (COALESCE(check_key, endpoint) ) check_key, label, endpoint, status, latency_ms, payload, checked_at FROM observability.uptime_checks ORDER BY COALESCE(check_key, endpoint), checked_at DESC;
Date: 2026-05-18 14:36:12 Duration: 1s301ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
SELECT DISTINCT ON (COALESCE(check_key, endpoint) ) check_key, label, endpoint, status, latency_ms, payload, checked_at FROM observability.uptime_checks ORDER BY COALESCE(check_key, endpoint), checked_at DESC;
Date: 2026-05-18 14:34:40 Duration: 1s294ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
19 59 16m27s 1s209ms 25s816ms 16s737ms 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 >= ? 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 #19
Day Hour Count Duration Avg duration May 18 09 3 43s281ms 14s427ms 10 6 1m38s 16s442ms 11 6 1m18s 13s133ms 12 6 1m23s 13s887ms 13 6 1m20s 13s425ms 14 6 1m28s 14s789ms 15 7 2m13s 19s39ms 16 6 1m59s 19s974ms 17 5 1m58s 23s619ms 18 6 1m46s 17s751ms 19 2 36s435ms 18s217ms [ User: monitoring_admin - Total duration: 16m27s - Times executed: 59 ]
-
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', 'live') AND collected_at >= '2026-05-15 16:56:51+02' AND collected_at <= '2026-05-17 16:56:51+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', 'live') AND collected_at BETWEEN '2026-05-17 16:56:51+02' AND '2026-05-18 16:56:51+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', 'live') AND collected_at BETWEEN '2026-05-17 16:56:51+02' AND '2026-05-18 16:56:51+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-05-18 16:57:17 Duration: 25s816ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_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', 'live') AND collected_at >= '2026-05-15 15:05:25+02' AND collected_at <= '2026-05-17 15:05:25+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', 'live') AND collected_at BETWEEN '2026-05-17 15:05:25+02' AND '2026-05-18 15:05:25+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', 'live') AND collected_at BETWEEN '2026-05-17 15:05:25+02' AND '2026-05-18 15:05:25+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-05-18 15:05:49 Duration: 24s349ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_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', 'live') AND collected_at >= '2026-05-15 16:46:32+02' AND collected_at <= '2026-05-17 16:46:32+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', 'live') AND collected_at BETWEEN '2026-05-17 16:46:32+02' AND '2026-05-18 16:46:32+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', 'live') AND collected_at BETWEEN '2026-05-17 16:46:32+02' AND '2026-05-18 16:46:32+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-05-18 16:46:56 Duration: 24s244ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
20 37 39s864ms 811ms 1s285ms 1s77ms select count(distinct animal_id) AS "count" from ( select animals_search_mview.*, b.unbreeding_date, a.id as animal, user_is_tgm (animals_search_mview.owner, ?) as is_owner, user_is_tgm (animals_search_mview.editor, ?) as is_editor, user_is_tgm (animals_search_mview.tourist, ?) as is_tourist, case when not exists ( select ? from scoresheet_diary sd where sd.animals_id = animals_search_mview.id) then ? else ? end as isscored from animals_search_mview left join strains on strains.name = animals_search_mview.strain left join license_history lh on lh.anid = animals_search_mview.id left join animals a on a."animalID" = animals_search_mview.animal_id left join breedings b on b.id = animals_search_mview.last_mating) data where fate = ? and alive = ? and deleted = ? and (is_owner or is_editor or is_tourist);Times Reported Time consuming queries #20
Day Hour Count Duration Avg duration May 18 10 5 5s397ms 1s79ms 11 4 3s312ms 828ms 12 20 23s31ms 1s151ms 13 1 1s150ms 1s150ms 15 5 5s138ms 1s27ms 17 1 1s 1s 19 1 832ms 832ms [ User: labanimal - Total duration: 39s864ms - Times executed: 37 ]
[ Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 - Total duration: 39s864ms - Times executed: 37 ]
-
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, 10100193) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100193) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100193) 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-05-18 11:13:50 Duration: 1s285ms 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-05-18_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, 10100193) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100193) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100193) 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-05-18 11:14:04 Duration: 1s279ms 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-05-18_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, 10100193) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100193) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100193) 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-05-18 11:13:42 Duration: 1s276ms 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-05-18_000000.csv
Normalized slowest queries (N)
Rank Min duration Max duration Avg duration Times executed Total duration Query 1 29s116ms 43s654ms 36s964ms 4 2m27s 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.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 #1
Day Hour Count Duration Avg duration May 18 11 1 29s116ms 29s116ms 14 3 1m58s 39s579ms [ User: labanimal - Total duration: 2m27s - Times executed: 4 ]
[ Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 - Total duration: 2m27s - Times executed: 4 ]
-
SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 10100194) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100194) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100194) 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.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-05-18 13:21:56 Duration: 43s654ms 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-05-18_000000.csv
-
SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 10100194) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100194) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100194) 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.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-05-18 13:20:30 Duration: 40s851ms 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-05-18_000000.csv
-
SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 10100194) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100194) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100194) 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.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-05-18 13:23:07 Duration: 34s233ms 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-05-18_000000.csv
2 26s570ms 41s605ms 36s165ms 4 2m24s select count(distinct animal_id) AS "count" from ( select animals_search_mview.*, b.unbreeding_date, a.id as animal, user_is_tgm (animals_search_mview.owner, ?) as is_owner, user_is_tgm (animals_search_mview.editor, ?) as is_editor, user_is_tgm (animals_search_mview.tourist, ?) as is_tourist, case when not exists ( select ? from scoresheet_diary sd where sd.animals_id = animals_search_mview.id) then ? else ? end as isscored from animals_search_mview left join strains on strains.name = animals_search_mview.strain left join license_history lh on lh.anid = animals_search_mview.id left join animals a on a."animalID" = animals_search_mview.animal_id left join breedings b on b.id = animals_search_mview.last_mating) data where deleted = ? and (is_owner or is_editor or is_tourist);Times Reported Time consuming queries #2
Day Hour Count Duration Avg duration May 18 11 1 26s570ms 26s570ms 14 3 1m58s 39s364ms [ User: labanimal - Total duration: 2m24s - Times executed: 4 ]
[ Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 - Total duration: 2m24s - Times executed: 4 ]
-
SELECT COUNT(DISTINCT animal_id) AS "count" FROM ( SELECT animals_search_mview.*, b.unbreeding_date, a.id as animal, user_is_tgm (animals_search_mview.owner, 10100194) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100194) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100194) AS is_tourist, CASE WHEN NOT EXISTS ( SELECT 1 FROM scoresheet_diary sd WHERE sd.animals_id = animals_search_mview.id) THEN 'f' ELSE 't' END AS isscored FROM animals_search_mview LEFT JOIN strains ON strains.name = animals_search_mview.strain LEFT JOIN license_history lh ON lh.anid = animals_search_mview.id LEFT JOIN animals a ON a."animalID" = animals_search_mview.animal_id LEFT JOIN breedings b ON b.id = animals_search_mview.last_mating) data WHERE deleted = 'f' AND (is_owner OR is_editor OR is_tourist);
Date: 2026-05-18 13:21:12 Duration: 41s605ms 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-05-18_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, 10100194) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100194) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100194) AS is_tourist, CASE WHEN NOT EXISTS ( SELECT 1 FROM scoresheet_diary sd WHERE sd.animals_id = animals_search_mview.id) THEN 'f' ELSE 't' END AS isscored FROM animals_search_mview LEFT JOIN strains ON strains.name = animals_search_mview.strain LEFT JOIN license_history lh ON lh.anid = animals_search_mview.id LEFT JOIN animals a ON a."animalID" = animals_search_mview.animal_id LEFT JOIN breedings b ON b.id = animals_search_mview.last_mating) data WHERE deleted = 'f' AND (is_owner OR is_editor OR is_tourist);
Date: 2026-05-18 13:19:50 Duration: 40s123ms 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-05-18_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, 10100194) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100194) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100194) AS is_tourist, CASE WHEN NOT EXISTS ( SELECT 1 FROM scoresheet_diary sd WHERE sd.animals_id = animals_search_mview.id) THEN 'f' ELSE 't' END AS isscored FROM animals_search_mview LEFT JOIN strains ON strains.name = animals_search_mview.strain LEFT JOIN license_history lh ON lh.anid = animals_search_mview.id LEFT JOIN animals a ON a."animalID" = animals_search_mview.animal_id LEFT JOIN breedings b ON b.id = animals_search_mview.last_mating) data WHERE deleted = 'f' AND (is_owner OR is_editor OR is_tourist);
Date: 2026-05-18 13:22:32 Duration: 36s363ms 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-05-18_000000.csv
3 1s209ms 25s816ms 16s737ms 59 16m27s 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 >= ? 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 #3
Day Hour Count Duration Avg duration May 18 09 3 43s281ms 14s427ms 10 6 1m38s 16s442ms 11 6 1m18s 13s133ms 12 6 1m23s 13s887ms 13 6 1m20s 13s425ms 14 6 1m28s 14s789ms 15 7 2m13s 19s39ms 16 6 1m59s 19s974ms 17 5 1m58s 23s619ms 18 6 1m46s 17s751ms 19 2 36s435ms 18s217ms [ User: monitoring_admin - Total duration: 16m27s - Times executed: 59 ]
-
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', 'live') AND collected_at >= '2026-05-15 16:56:51+02' AND collected_at <= '2026-05-17 16:56:51+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', 'live') AND collected_at BETWEEN '2026-05-17 16:56:51+02' AND '2026-05-18 16:56:51+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', 'live') AND collected_at BETWEEN '2026-05-17 16:56:51+02' AND '2026-05-18 16:56:51+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-05-18 16:57:17 Duration: 25s816ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_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', 'live') AND collected_at >= '2026-05-15 15:05:25+02' AND collected_at <= '2026-05-17 15:05:25+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', 'live') AND collected_at BETWEEN '2026-05-17 15:05:25+02' AND '2026-05-18 15:05:25+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', 'live') AND collected_at BETWEEN '2026-05-17 15:05:25+02' AND '2026-05-18 15:05:25+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-05-18 15:05:49 Duration: 24s349ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_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', 'live') AND collected_at >= '2026-05-15 16:46:32+02' AND collected_at <= '2026-05-17 16:46:32+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', 'live') AND collected_at BETWEEN '2026-05-17 16:46:32+02' AND '2026-05-18 16:46:32+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', 'live') AND collected_at BETWEEN '2026-05-17 16:46:32+02' AND '2026-05-18 16:46:32+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-05-18 16:46:56 Duration: 24s244ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
4 504ms 43s654ms 3s472ms 1,440 1h23m19s create index if not exists idx_uptime_checks_endpoint on observability.uptime_checks (endpoint, checked_at desc);Times Reported Time consuming queries #4
Day Hour Count Duration Avg duration May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s199ms 16 60 9m49s 9s832ms 17 60 9m22s 9s371ms 18 60 7m5s 7s85ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_endpoint ON observability.uptime_checks (endpoint, checked_at DESC);
Date: 2026-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_endpoint ON observability.uptime_checks (endpoint, checked_at DESC);
Date: 2026-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_endpoint ON observability.uptime_checks (endpoint, checked_at DESC);
Date: 2026-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
5 504ms 43s654ms 3s472ms 1,440 1h23m19s alter table observability.uptime_checks add column if not exists payload jsonb;Times Reported Time consuming queries #5
Day Hour Count Duration Avg duration May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s199ms 16 60 9m49s 9s832ms 17 60 9m22s 9s371ms 18 60 7m5s 7s85ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS payload jsonb;
Date: 2026-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS payload jsonb;
Date: 2026-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS payload jsonb;
Date: 2026-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
6 504ms 43s654ms 3s472ms 1,440 1h23m19s create index if not exists idx_uptime_checks_key on observability.uptime_checks (check_key, checked_at desc);Times Reported Time consuming queries #6
Day Hour Count Duration Avg duration May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s199ms 16 60 9m49s 9s832ms 17 60 9m22s 9s371ms 18 60 7m5s 7s85ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_key ON observability.uptime_checks (check_key, checked_at DESC);
Date: 2026-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_key ON observability.uptime_checks (check_key, checked_at DESC);
Date: 2026-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_key ON observability.uptime_checks (check_key, checked_at DESC);
Date: 2026-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
7 504ms 43s654ms 3s471ms 1,440 1h23m19s create index if not exists idx_app_events_type on observability.app_events (event_type);Times Reported Time consuming queries #7
Day Hour Count Duration Avg duration May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s194ms 16 60 9m49s 9s832ms 17 60 9m22s 9s372ms 18 60 7m4s 7s81ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
8 504ms 43s654ms 3s471ms 1,440 1h23m19s 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 #8
Day Hour Count Duration Avg duration May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s194ms 16 60 9m49s 9s832ms 17 60 9m22s 9s372ms 18 60 7m4s 7s81ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
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-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_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-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_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-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
9 504ms 43s654ms 3s471ms 1,440 1h23m19s create table if not exists observability.uptime_checks ( id bigserial primary key, endpoint text not null, status text not null, latency_ms double precision, checked_at timestamptz not null default now() );Times Reported Time consuming queries #9
Day Hour Count Duration Avg duration May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s194ms 16 60 9m49s 9s832ms 17 60 9m22s 9s372ms 18 60 7m4s 7s81ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
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-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_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-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_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-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
10 504ms 43s654ms 3s471ms 1,440 1h23m19s create index if not exists idx_app_events_tenant on observability.app_events (tenant_key, occurred_at desc);Times Reported Time consuming queries #10
Day Hour Count Duration Avg duration May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s194ms 16 60 9m49s 9s832ms 17 60 9m22s 9s372ms 18 60 7m4s 7s81ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
11 504ms 43s654ms 3s471ms 1,440 1h23m19s 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 May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s194ms 16 60 9m49s 9s832ms 17 60 9m22s 9s372ms 18 60 7m4s 7s81ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);
Date: 2026-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);
Date: 2026-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);
Date: 2026-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
12 504ms 43s654ms 3s471ms 1,440 1h23m19s create table if not exists observability.app_events ( id bigserial primary key, tenant_key text not null, event_type text not null, severity text not null, message text not null, payload jsonb, occurred_at timestamptz not null default now(), created_at timestamptz not null default now() );Times Reported Time consuming queries #12
Day Hour Count Duration Avg duration May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s194ms 16 60 9m49s 9s832ms 17 60 9m22s 9s372ms 18 60 7m4s 7s81ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
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-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_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-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_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-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
13 504ms 43s654ms 3s471ms 1,440 1h23m19s 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 May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s194ms 16 60 9m49s 9s832ms 17 60 9m22s 9s372ms 18 60 7m4s 7s81ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
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-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_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-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_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-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
14 504ms 43s654ms 3s471ms 1,440 1h23m19s create schema if not exists observability;Times Reported Time consuming queries #14
Day Hour Count Duration Avg duration May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s194ms 16 60 9m49s 9s832ms 17 60 9m22s 9s372ms 18 60 7m4s 7s81ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
15 504ms 43s654ms 3s471ms 1,440 1h23m19s create index if not exists idx_metrics_timeseries_metric on observability.metrics_timeseries (metric_name);Times Reported Time consuming queries #15
Day Hour Count Duration Avg duration May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s194ms 16 60 9m49s 9s832ms 17 60 9m22s 9s372ms 18 60 7m4s 7s81ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
16 504ms 43s654ms 3s471ms 1,440 1h23m19s 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 #16
Day Hour Count Duration Avg duration May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s194ms 16 60 9m49s 9s832ms 17 60 9m22s 9s372ms 18 60 7m4s 7s81ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
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-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_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-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_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-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
17 504ms 43s654ms 3s471ms 1,440 1h23m19s create index if not exists idx_metrics_timeseries_bucket on observability.metrics_timeseries (bucket_start);Times Reported Time consuming queries #17
Day Hour Count Duration Avg duration May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s194ms 16 60 9m49s 9s832ms 17 60 9m22s 9s372ms 18 60 7m4s 7s81ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
18 504ms 43s654ms 3s471ms 1,440 1h23m19s alter table observability.uptime_checks add column if not exists label text;Times Reported Time consuming queries #18
Day Hour Count Duration Avg duration May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s194ms 16 60 9m49s 9s832ms 17 60 9m22s 9s372ms 18 60 7m4s 7s81ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS label text;
Date: 2026-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS label text;
Date: 2026-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS label text;
Date: 2026-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
19 504ms 43s654ms 3s471ms 1,440 1h23m19s 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 #19
Day Hour Count Duration Avg duration May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s194ms 16 60 9m49s 9s832ms 17 60 9m22s 9s372ms 18 60 7m4s 7s81ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
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-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_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-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_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-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_000000.csv
20 504ms 43s654ms 3s471ms 1,440 1h23m19s 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 #20
Day Hour Count Duration Avg duration May 18 01 60 0ms 0ms 02 60 38s791ms 646ms 03 60 1m20s 1s337ms 04 60 1m20s 1s337ms 05 60 1m20s 1s337ms 06 60 1m20s 1s337ms 07 60 1m9s 1s164ms 08 60 40s42ms 667ms 09 60 3m4s 3s83ms 10 60 3m56s 3s934ms 11 60 5m37s 5s620ms 12 60 7m6s 7s103ms 13 60 5m53s 5s894ms 14 60 8m51s 8s856ms 15 60 7m11s 7s194ms 16 60 9m49s 9s832ms 17 60 9m22s 9s372ms 18 60 7m4s 7s81ms 19 60 3m44s 3s746ms 20 60 44s766ms 746ms 21 60 44s766ms 746ms 22 60 44s766ms 746ms 23 60 44s766ms 746ms 00 60 47s308ms 788ms [ User: monitoring_admin - Total duration: 1h23m19s - Times executed: 1349 ]
-
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-05-18 13:22:02 Duration: 43s654ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_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-05-18 13:21:01 Duration: 40s851ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_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-05-18 13:23:01 Duration: 36s363ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-05-18_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
- 134,588 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
- 0 ERROR entries
- 0 WARNING entries
- 0 EVENTLOG entries
Events per 5 minutes
NO DATASET
Most Frequent Errors/Events
Key values
- 0 Max number of times the same event was reported
- 0 Total events found
Rank Times reported Error NO DATASET