-
Global information
- Generated on Mon Jun 15 06:05:47 2026
- Log file: /var/log/postgresql/postgresql-2026-05-13_000000.csv, ..., /var/log/postgresql/postgresql-2026-06-15_000000.csv
- Parsed 284,356 log entries in 5m46s
- Log start from 2026-06-08 00:00:01 to 2026-06-08 23:59:37
-
Overview
Global Stats
- 52 Number of unique normalized queries
- 24,635 Number of queries
- 1d11h34m16s Total query duration
- 2026-06-08 00:00:01 First query
- 2026-06-08 23:59:01 Last query
- 19 queries/s at 2026-06-08 10:59:01 Query peak
- 1d11h34m16s Total query duration
- 0ms Prepare/parse total duration
- 0ms Bind total duration
- 1d11h34m16s Execute total duration
- 3 Number of events
- 2 Number of unique normalized events
- 2 Max number of times the same event was reported
- 0 Number of cancellation
- 70 Total number of automatic vacuums
- 173 Total number of automatic analyzes
- 2 Number temporary file
- 179.76 MiB Max size of temporary file
- 179.76 MiB Average size of temporary file
- 26,100 Total number of sessions
- 7 sessions at 2026-06-08 17:23:08 Session peak
- 1h34m14s Total duration of sessions
- 216ms Average duration of sessions
- 0 Average queries per session
- 4s906ms Average queries duration per session
- 0ms Average idle time per session
- 26,100 Total number of connections
- 33 connections/s at 2026-06-08 15:40:40 Connection peak
- 2 Total number of databases
SQL Traffic
Key values
- 19 queries/s Query Peak
- 2026-06-08 10:59:01 Date
SELECT Traffic
Key values
- 2 queries/s Query Peak
- 2026-06-08 10:08:28 Date
INSERT/UPDATE/DELETE Traffic
Key values
- 17 queries/s Query Peak
- 2026-06-08 20:59:01 Date
Queries duration
Key values
- 1d11h34m16s 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) Jun 08 00 1,020 0ms 0ms 0ms 0ms 0ms 0ms 01 1,021 0ms 1s33ms 500ms 17s568ms 17s568ms 17s568ms 02 1,020 1s33ms 1s33ms 1s33ms 17s568ms 17s568ms 17s568ms 03 1,020 1s33ms 1s33ms 1s33ms 17s568ms 17s568ms 17s568ms 04 1,020 1s33ms 1s33ms 1s33ms 17s568ms 17s568ms 17s568ms 05 1,020 1s33ms 1s33ms 1s33ms 17s568ms 17s568ms 17s568ms 06 1,020 1s33ms 1s33ms 1s33ms 17s568ms 17s568ms 17s568ms 07 1,026 578ms 1s349ms 1s98ms 21s441ms 21s441ms 23s560ms 08 1,025 575ms 2s361ms 1s200ms 40s153ms 40s153ms 40s153ms 09 1,024 520ms 2s618ms 1s662ms 44s511ms 44s511ms 46s124ms 10 1,032 520ms 1s706ms 595ms 12s18ms 14s475ms 29s588ms 11 1,042 603ms 893ms 707ms 12s666ms 14s923ms 17s960ms 12 1,039 694ms 28s472ms 6s625ms 8m4s 8m4s 8m4s 13 1,027 694ms 28s472ms 2s9ms 31s236ms 31s236ms 8m6s 14 1,042 697ms 12s89ms 2s914ms 3m25s 3m25s 3m26s 15 1,036 534ms 16s123ms 8s975ms 3m27s 3m36s 4m46s 16 1,039 504ms 27s777ms 8s393ms 3m27s 3m39s 8m4s 17 1,026 12s39ms 12s220ms 12s151ms 3m37s 3m39s 3m39s 18 1,026 12s39ms 12s260ms 12s203ms 3m36s 3m39s 3m40s 19 1,025 12s150ms 12s278ms 12s205ms 3m28s 3m39s 3m40s 20 1,020 12s278ms 12s278ms 12s278ms 3m28s 3m28s 3m28s 21 1,020 12s278ms 12s278ms 12s278ms 3m28s 3m28s 3m28s 22 1,020 12s278ms 12s278ms 12s278ms 3m28s 3m28s 3m28s 23 1,025 552ms 12s278ms 11s502ms 3m28s 3m28s 3m35s Day Hour SELECT COPY TO Average Duration Latency Percentile(90) Latency Percentile(95) Latency Percentile(99) Jun 08 00 0 0 0ms 0ms 0ms 0ms 01 0 0 0ms 0ms 0ms 0ms 02 0 0 0ms 0ms 0ms 0ms 03 0 0 0ms 0ms 0ms 0ms 04 0 0 0ms 0ms 0ms 0ms 05 0 0 0ms 0ms 0ms 0ms 06 0 0 0ms 0ms 0ms 0ms 07 6 0 974ms 0ms 0ms 2s118ms 08 5 0 1s90ms 0ms 0ms 1s459ms 09 3 0 904ms 0ms 0ms 1s101ms 10 11 0 689ms 0ms 520ms 1s466ms 11 22 0 739ms 0ms 1s465ms 2s999ms 12 18 0 3s678ms 0ms 2s929ms 25s999ms 13 6 0 735ms 0ms 0ms 1s457ms 14 18 0 735ms 0ms 777ms 2s934ms 15 8 0 2s633ms 0ms 0ms 2s953ms 16 13 0 4s598ms 0ms 514ms 1s451ms 17 0 0 0ms 0ms 0ms 0ms 18 0 0 0ms 0ms 0ms 0ms 19 0 0 0ms 0ms 0ms 0ms 20 0 0 0ms 0ms 0ms 0ms 21 0 0 0ms 0ms 0ms 0ms 22 0 0 0ms 0ms 0ms 0ms 23 0 5 1s316ms 0ms 0ms 0ms Day Hour INSERT UPDATE DELETE COPY FROM Average Duration Latency Percentile(90) Latency Percentile(95) Latency Percentile(99) Jun 08 00 0 0 0 0 0ms 0ms 0ms 0ms 01 0 1 0 0 1s33ms 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 Jun 08 00 0 0 0.00 0.00% 01 0 0 0.00 0.00% 02 0 0 0.00 0.00% 03 0 0 0.00 0.00% 04 0 0 0.00 0.00% 05 0 0 0.00 0.00% 06 0 0 0.00 0.00% 07 0 0 0.00 0.00% 08 0 0 0.00 0.00% 09 0 0 0.00 0.00% 10 0 1 1.00 0.00% 11 0 0 0.00 0.00% 12 0 0 0.00 0.00% 13 0 0 0.00 0.00% 14 0 4 4.00 0.00% 15 0 6 6.00 0.00% 16 0 6 6.00 0.00% 17 0 6 6.00 0.00% 18 0 6 6.00 0.00% 19 0 5 5.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 Jun 08 00 544 0.15/s 01 546 0.15/s 02 543 0.15/s 03 543 0.15/s 04 549 0.15/s 05 579 0.16/s 06 1,116 0.31/s 07 1,524 0.42/s 08 1,961 0.54/s 09 1,502 0.42/s 10 1,455 0.40/s 11 1,742 0.48/s 12 1,544 0.43/s 13 1,854 0.52/s 14 1,860 0.52/s 15 2,018 0.56/s 16 1,183 0.33/s 17 1,040 0.29/s 18 928 0.26/s 19 854 0.24/s 20 554 0.15/s 21 543 0.15/s 22 569 0.16/s 23 549 0.15/s Day Hour Count Average Duration Average idle time Jun 08 00 544 241ms 241ms 01 546 242ms 0ms 02 543 241ms 0ms 03 543 241ms 0ms 04 549 238ms 0ms 05 579 227ms 0ms 06 1,116 152ms 0ms 07 1,524 240ms 0ms 08 1,961 136ms 0ms 09 1,502 158ms 0ms 10 1,455 162ms 0ms 11 1,742 154ms 0ms 12 1,544 223ms 0ms 13 1,854 162ms 0ms 14 1,860 216ms 0ms 15 2,018 208ms 0ms 16 1,183 456ms 0ms 17 1,040 253ms 0ms 18 928 277ms 0ms 19 854 273ms 0ms 20 554 244ms 0ms 21 543 250ms 0ms 22 569 239ms 0ms 23 549 268ms 0ms -
Connections
Established Connections
Key values
- 33 connections Connection Peak
- 2026-06-08 15:40:40 Date
Connections per database
Key values
- zemm_monitoring Main Database
- 26,100 connections Total
Connections per user
Key values
- labanimal Main User
- 26,100 connections Total
-
Sessions
Simultaneous sessions
Key values
- 7 sessions Session Peak
- 2026-06-08 17:23:08 Date
Histogram of session times
Key values
- 23,942 0-500ms duration
Sessions per database
Key values
- zemm_monitoring Main Database
- 26,100 sessions Total
Sessions per user
Key values
- labanimal Main User
- 26,100 sessions Total
Sessions per host
Key values
- ::1 Main Host
- 26,100 sessions Total
Sessions per application
Key values
- Main Application
- 26,100 sessions Total
Application Count Total Duration Average Duration 21,045 1h21m6s 231ms _desktop__zemm_produktiv_8_localhost_5432 16 858ms 53ms _desktop_index.php_application_id_10142201_lic_filter_0_command 1 82ms 82ms _desktop_index.php_cages_name_A15.415.1_2A_cages_empty__25_val4 1 96ms 96ms _desktop_index.php_cages_name_TF.A15_2A_cages_empty__25_val4_ca 1 54ms 54ms _desktop_index.php_command_animals_breedings_subcommand_add_bre 1 42ms 42ms _desktop_index.php_command_animals_edit_subcommand_found_val1_1 1 99ms 99ms _desktop_index.php_command_animals_edit_subcommand_init_id_1029 1 90ms 90ms _desktop_index.php_command_animals_edit_subcommand_init_id_1030 1 95ms 95ms _desktop_index.php_command_animals_subcommand_init_zemm_produkt 31 1s374ms 44ms _desktop_index.php_command_groups_subcommand_edit_id_11_zemm_pr 1 50ms 50ms _desktop_index.php_command_groups_subcommand_edit_id_64_zemm_pr 1 47ms 47ms _desktop_index.php_command_groups_subcommand_init_zemm_produkti 3 137ms 45ms _desktop_index.php_command_login_subcommand_init_zemm_dev_local 7 220ms 31ms _desktop_index.php_command_login_subcommand_init_zemm_produktiv 1,709 49s541ms 28ms _desktop_index.php_command_login_subcommand_init_zemm_test_loca 10 307ms 30ms _desktop_index.php_command_reports_subcommand_animals_per_room_ 3 338ms 112ms _desktop_index.php_command_reports_subcommand_animals_per_user_ 3 332ms 110ms _desktop_index.php_command_reports_subcommand_fates_zemm_produk 1 102ms 102ms _desktop_index.php_command_reports_subcommand_init_zemm_produkt 4 506ms 126ms _desktop_index.php_command_reports_subcommand_task_status_zemm_ 4 453ms 113ms _desktop_index.php_command_tasks_subcommand_edit_id_10143309_ze 1 81ms 81ms _desktop_index.php_command_tasks_subcommand_edit_id_10143310_ze 1 79ms 79ms _desktop_index.php_command_tasks_subcommand_edit_id_10143378_ze 1 84ms 84ms _desktop_index.php_command_tasks_subcommand_edit_id_10143380_ze 1 79ms 79ms _desktop_index.php_command_tasks_subcommand_edit_id_10143400_ze 1 84ms 84ms _desktop_index.php_command_tasks_subcommand_edit_id_10143401_ze 1 81ms 81ms _desktop_index.php_command_tasks_subcommand_edit_id_10143404_ze 1 81ms 81ms _desktop_index.php_command_tasks_subcommand_edit_id_10143443_ze 2 150ms 75ms _desktop_index.php_command_tasks_subcommand_edit_id_10143453_ze 2 167ms 83ms _desktop_index.php_command_tasks_subcommand_edit_id_10143455_ze 3 246ms 82ms _desktop_index.php_command_tasks_subcommand_edit_id_10143456_ze 1 83ms 83ms _desktop_index.php_command_tasks_subcommand_edit_id_10143461_ze 1 83ms 83ms _desktop_index.php_command_tasks_subcommand_init_template_zemm_ 3 135ms 45ms _desktop_index.php_command_tasks_subcommand_init_zemm_produktiv 99 6s643ms 67ms _desktop_index.php_command_tasks_subcommand_open_legacy_1_id_10 34 2s266ms 66ms _desktop_index.php_command_tasks_subcommand_open_zemm_produktiv 1 377ms 377ms _desktop_index.php_command_tasks_subcommand_search_zemm_produkt 1 36ms 36ms _desktop_index.php_group_ZEMM_20Offene_description_ZEMM_20BI_20 1 48ms 48ms _desktop_index.php_m_action_animals_3Am_delete_row_animals_1028 1 36ms 36ms _desktop_index.php_m_action_animals_3Am_delete_val4_animals_lis 3 117ms 39ms _desktop_index.php_m_action_animals_edit_3Alink_init_row_animal 1 76ms 76ms _desktop_index.php_m_action_cages_3Am_cage_card_row_10101489_10 1 48ms 48ms _desktop_index.php_m_action_cages_3Am_cage_card_row_10101804_10 1 46ms 46ms _desktop_index.php_m_action_cages_3Am_delete_command_animals_su 3 137ms 45ms _desktop_index.php_name_Genotypisierungsproben_20genommen_instr 1 100ms 100ms _desktop_index.php_name_Neue_20Aufgabe_add_link_animals_task_st 3 113ms 37ms _desktop_index.php_name_Tiertransport_20durch_20das_20ZEMM_20-_ 2 193ms 96ms _desktop_index.php_name_Verpaarung_20trennen_instructions_Bitte 2 87ms 43ms _desktop_index.php_name_Verpaarungen_20zur_20Zucht_instructions 8 458ms 57ms _desktop_index.php_search_status_2_no_subtasks_true_command_tas 9 535ms 59ms _desktop_index.php_sire_name_13_20Z_dam_name_14_20Z_sire_id_202 1 46ms 46ms _desktop_index.php_species_1_breeding_true_sex_m_sterile_true_d 1 47ms 47ms _desktop_index.php_view_animal_name_on_view_animal_id_on_animal 3 767ms 255ms _desktop_index.php_view_animal_name_on_view_animal_id_on_specie 8 8s37ms 1s4ms _desktop_index.php_view_animal_name_on_view_animal_id_on_view_b 34 18s853ms 554ms _desktop_index.php_zemm_produktiv_8_localhost_5432 2,915 11m2s 227ms backend:zemm_produktiv_8@localhost 69 6s40ms 87ms bounces:zemm_produktiv_8@h2940066.stratoserver.net:5432 1 67ms 67ms expire_tasks:zemm_produktiv_8@h2940066.stratoserver.net:5432 1 1s55ms 1s55ms pg_dump 1 11s217ms 11s217ms psql 7 102ms 14ms taskscron:zemm_produktiv_8@h2940066.stratoserver.net:5432 24 10s924ms 455ms -
Checkpoints / Restartpoints
Checkpoints Buffers
Key values
- 19,618 buffers Checkpoint Peak
- 2026-06-08 01:38:53 Date
- 269.321 seconds Highest write time
- 0.029 seconds Sync time
Checkpoints Wal files
Key values
- 6 files Wal files usage Peak
- 2026-06-08 01:38:53 Date
Checkpoints distance
Key values
- 197.87 Mo Distance Peak
- 2026-06-08 01:38:53 Date
Checkpoints Activity
↑ Back to the top of the Checkpoint Activity tableDay Hour Written buffers Write time Sync time Total time Jun 08 00 8,477 848.315s 0.113s 848.482s 01 26,614 969.498s 0.104s 969.655s 02 8,367 837.214s 0.099s 837.374s 03 17,780 1,189.439s 0.103s 1,189.6s 04 8,628 863.534s 0.098s 863.685s 05 8,353 835.887s 0.099s 836.04s 06 9,252 925.695s 0.188s 925.935s 07 11,011 1,101.728s 0.221s 1,102.005s 08 11,189 1,119.776s 0.234s 1,120.066s 09 10,012 1,001.323s 0.199s 1,001.573s 10 28,673 1,283.266s 0.216s 1,283.538s 11 11,527 1,153.353s 0.209s 1,153.615s 12 10,555 1,056.336s 0.186s 1,056.578s 13 10,980 1,098.521s 0.225s 1,098.798s 14 12,857 1,202.879s 0.202s 1,203.134s 15 10,996 1,100.797s 0.186s 1,101.034s 16 10,107 1,010.563s 0.122s 1,010.741s 17 9,288 929.511s 0.102s 929.668s 18 8,954 896.258s 0.101s 896.412s 19 8,374 838.238s 0.099s 838.391s 20 9,593 959.527s 0.103s 959.682s 21 8,596 860.204s 0.099s 860.365s 22 8,192 819.222s 0.102s 819.379s 23 7,791 780.485s 0.101s 780.641s Day Hour Added Removed Recycled Synced files Longest sync Average sync Jun 08 00 0 0 2 570 0.002s 0.012s 01 0 0 8 552 0.001s 0.012s 02 0 0 1 534 0.001s 0.012s 03 0 0 4 539 0.004s 0.012s 04 0 0 1 549 0.001s 0.012s 05 0 0 2 532 0.001s 0.012s 06 0 0 2 1,014 0.008s 0.012s 07 0 0 2 1,306 0.002s 0.012s 08 0 0 3 1,389 0.003s 0.012s 09 0 0 2 1,201 0.001s 0.012s 10 0 0 6 1,247 0.002s 0.012s 11 0 0 2 1,232 0.002s 0.012s 12 0 0 2 1,065 0.002s 0.012s 13 0 0 3 1,324 0.001s 0.012s 14 0 0 2 1,158 0.002s 0.012s 15 0 0 3 1,083 0.001s 0.012s 16 0 0 1 650 0.002s 0.012s 17 0 0 2 569 0.001s 0.012s 18 0 0 2 551 0.001s 0.012s 19 0 0 2 519 0.001s 0.012s 20 0 0 2 531 0.003s 0.012s 21 0 0 2 511 0.001s 0.012s 22 0 0 1 544 0.001s 0.012s 23 0 0 2 518 0.002s 0.012s Day Hour Count Avg time (sec) Jun 08 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 Jun 08 00 2,412.92 kB 2,841.92 kB 01 10,497.58 kB 36,442.33 kB 02 2,366.92 kB 37,329.42 kB 03 4,426.75 kB 16,459.33 kB 04 2,453.83 kB 6,928.17 kB 05 2,369.50 kB 3,679.00 kB 06 2,589.92 kB 3,156.58 kB 07 3,146.00 kB 4,079.75 kB 08 3,405.50 kB 5,156.75 kB 09 2,876.42 kB 3,991.08 kB 10 7,964.00 kB 27,967.92 kB 11 3,246.75 kB 19,302.42 kB 12 3,009.17 kB 7,724.58 kB 13 3,159.08 kB 4,475.83 kB 14 3,490.75 kB 6,849.00 kB 15 3,094.50 kB 5,001.00 kB 16 2,651.58 kB 3,457.25 kB 17 2,475.08 kB 3,020.25 kB 18 2,530.92 kB 2,910.67 kB 19 2,325.58 kB 3,092.92 kB 20 2,592.50 kB 3,385.50 kB 21 2,433.33 kB 3,451.67 kB 22 2,371.83 kB 2,767.42 kB 23 2,281.08 kB 2,792.67 kB -
Temporary Files
Size of temporary files
Key values
- 179.76 MiB Temp Files size Peak
- 2026-06-08 12:47:11 Date
Number of temporary files
Key values
- 1 per second Temp Files Peak
- 2026-06-08 12:47:11 Date
Temporary Files Activity
↑ Back to the top of the Temporary Files Activity tableDay Hour Count Total size Average size Jun 08 00 0 0 0 01 0 0 0 02 0 0 0 03 0 0 0 04 0 0 0 05 0 0 0 06 0 0 0 07 0 0 0 08 0 0 0 09 0 0 0 10 0 0 0 11 0 0 0 12 1 179.76 MiB 179.76 MiB 13 0 0 0 14 0 0 0 15 0 0 0 16 1 179.76 MiB 179.76 MiB 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 2 359.52 MiB 179.76 MiB 179.76 MiB 179.76 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, 332) AS is_owner, user_is_tgm (animals_search_mview.editor, 332) AS is_editor, user_is_tgm (animals_search_mview.tourist, 332) 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-06-08 12:47:11 Duration: 28s472ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 10100201) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100201) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100201) 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-06-08 16:09:34 Duration: 27s777ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 332) AS is_owner, user_is_tgm (animals_search_mview.editor, 332) AS is_editor, user_is_tgm (animals_search_mview.tourist, 332) 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-06-08 12:47:11 Duration: 0ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432
Queries generating the largest temporary files
Rank Size Query 1 179.76 MiB SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 332) AS is_owner, user_is_tgm (animals_search_mview.editor, 332) AS is_editor, user_is_tgm (animals_search_mview.tourist, 332) 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-06-08 12:47:11 - Database: zemm_produktiv_8 - User: labanimal - Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 ]
2 179.76 MiB SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 10100201) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100201) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100201) 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-06-08 16:09:34 - Database: zemm_produktiv_8 - User: labanimal - Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 ]
-
Vacuums
Vacuums / Analyzes Distribution
Key values
- 2.52 sec Highest CPU-cost vacuum
Table observability.metrics_timeseries
Database zemm_monitoring - 2026-06-08 03:08:17 Date
- 0 sec Highest CPU-cost analyze
Table
Database zemm_monitoring - Date
Average Autovacuum Duration
Key values
- 2.52 sec Highest CPU-cost vacuum
Table observability.metrics_timeseries
Database zemm_monitoring - 2026-06-08 03:08:17 Date
Analyzes per table
Key values
- pg_catalog.pg_type (54) Main table analyzed (database zemm_produktiv_8)
- 173 analyzes Total
Table Number of analyzes zemm_produktiv_8.pg_catalog.pg_type 54 zemm_produktiv_8.pg_catalog.pg_attribute 40 zemm_produktiv_8.pg_catalog.pg_class 29 zemm_produktiv_8.pg_catalog.pg_depend 27 zemm_produktiv_8.public.tmptasks 3 zemm_produktiv_8.public.users 2 zemm_produktiv_8.public.cages_search_mview 2 zemm_monitoring.observability.metrics_timeseries 2 fbi_unire.pg_catalog.pg_shdepend 2 zemm_test.pg_catalog.pg_shdepend 1 fbi_ci_db.pg_catalog.pg_shdepend 1 zemm_produktiv_8.pg_catalog.pg_shdepend 1 zemm_dev.pg_catalog.pg_shdepend 1 zemm_monitoring.observability.nginx_counters 1 zemm_produktiv_8.public.tasks 1 zemm_produktiv_8.public.cages 1 template0.pg_catalog.pg_shdepend 1 postgres.pg_catalog.pg_shdepend 1 invdb.pg_catalog.pg_shdepend 1 template1.pg_catalog.pg_shdepend 1 zemm_produktiv_8.public.cost_history 1 Total 173 Vacuums per table
Key values
- pg_catalog.pg_type (19) Main table vacuumed on database zemm_produktiv_8
- 70 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 19 19 0 0 0 0 0 973 177 208,941 0 0 zemm_produktiv_8.pg_catalog.pg_attribute 16 16 0 0 0 0 0 1,968 533 426,562 0 0 zemm_produktiv_8.pg_catalog.pg_class 11 11 0 0 0 0 0 988 292 338,364 0 0 zemm_produktiv_8.pg_catalog.pg_depend 8 8 0 0 0 0 0 1,039 246 354,162 0 0 labanimal.pg_catalog.pg_shdepend 5 5 0 0 0 0 0 362 115 241,825 0 0 zemm_produktiv_8.pg_toast.pg_toast_2619 4 4 0 0 0 0 0 734 186 1,053,822 41 122 zemm_monitoring.pg_toast.pg_toast_67431 3 0 0 0 0 0 0 7,071 2,825 6,373,786 1,408 8,448 zemm_monitoring.observability.metrics_timeseries 1 1 0 0 0 0 0 18,946 8,225 21,405,897 2,455 56,823 zemm_produktiv_8.public.tmptasks 1 1 0 0 0 0 0 85 29 20,147 0 0 zemm_produktiv_8.public.users 1 1 0 0 0 0 0 147 71 174,424 45 96 zemm_produktiv_8.public.tasks 1 1 0 0 0 0 0 49,057 4 3,493,155 0 0 Total 70 67 0 0 0 0 0 81,370 12,703 34,091,085 3,949 65,489 Vacuum throughput per table
Key values
- observability.metrics_timeseries (2.52) Max CPU elapsed for vacuum on database zemm_monitoring
- observability.metrics_timeseries (11.95 ms) Max I/O read time for vacuum on database zemm_monitoring
- observability.metrics_timeseries (1.598 ms) Max I/O write time for vacuum on database zemm_monitoring
I/O timing (ms) CPU (s) Table read write elapsed zemm_produktiv_8.pg_catalog.pg_type 0 0 0 zemm_produktiv_8.pg_catalog.pg_attribute 0.301 0 0.12 zemm_produktiv_8.pg_catalog.pg_class 2.432 0 0.01 zemm_produktiv_8.pg_catalog.pg_depend 0.694 0 0.08 labanimal.pg_catalog.pg_shdepend 0 0 0 zemm_produktiv_8.pg_toast.pg_toast_2619 0 0 0.04 zemm_monitoring.pg_toast.pg_toast_67431 0 0 0.72 zemm_monitoring.observability.metrics_timeseries 11.95 1.598 2.52 zemm_produktiv_8.public.tmptasks 0.376 0 0.01 zemm_produktiv_8.public.users 0.434 0 0.01 zemm_produktiv_8.public.tasks 0 0 0.62 Total 16.187 1.598 4.13 Tuples removed per table
Key values
- public.tasks (54979) Main table with removed tuples on database zemm_produktiv_8
- 121335 tuples Total removed
Index Tuples Pages Table Vacuums scans removed remain not yet removable removed remain zemm_produktiv_8.public.tasks 1 1 54,979 58,026 0 0 17,142 zemm_monitoring.observability.metrics_timeseries 1 1 31,673 389,594 0 0 8,322 zemm_produktiv_8.pg_catalog.pg_attribute 16 16 13,258 86,775 0 0 2,944 zemm_monitoring.pg_toast.pg_toast_67431 3 0 8,514 1,841,598 0 0 397,083 zemm_produktiv_8.pg_catalog.pg_depend 8 8 5,833 33,576 0 0 440 zemm_produktiv_8.pg_catalog.pg_type 19 19 3,342 15,789 0 0 589 zemm_produktiv_8.pg_catalog.pg_class 11 11 1,588 9,933 0 0 462 labanimal.pg_catalog.pg_shdepend 5 5 1,425 23,525 0 0 195 zemm_produktiv_8.pg_toast.pg_toast_2619 4 4 448 1,172 0 0 424 zemm_produktiv_8.public.users 1 1 194 766 0 0 108 zemm_produktiv_8.public.tmptasks 1 1 81 820 0 7 115 Total 70 67 121,335 2,461,574 0 7 427,824 Pages removed per table
Key values
- public.tmptasks (7) Main table with removed pages on database zemm_produktiv_8
- 7 pages Total removed
Table Number of vacuums Index scans Tuples removed Pages removed zemm_produktiv_8.public.tmptasks 1 1 81 7 zemm_monitoring.observability.metrics_timeseries 1 1 31673 0 zemm_produktiv_8.pg_toast.pg_toast_2619 4 4 448 0 labanimal.pg_catalog.pg_shdepend 5 5 1425 0 zemm_produktiv_8.pg_catalog.pg_attribute 16 16 13258 0 zemm_monitoring.pg_toast.pg_toast_67431 3 0 8514 0 zemm_produktiv_8.pg_catalog.pg_type 19 19 3342 0 zemm_produktiv_8.pg_catalog.pg_class 11 11 1588 0 zemm_produktiv_8.public.users 1 1 194 0 zemm_produktiv_8.pg_catalog.pg_depend 8 8 5833 0 zemm_produktiv_8.public.tasks 1 1 54979 0 Total 70 67 121,335 7 Autovacuum Activity
↑ Back to the top of the Autovacuum Activity tableDay Hour VACUUMs ANALYZEs Jun 08 00 0 0 01 1 1 02 0 0 03 2 0 04 0 1 05 0 0 06 6 14 07 10 24 08 6 25 09 4 9 10 6 11 11 10 24 12 7 18 13 7 19 14 2 8 15 8 17 16 0 1 17 0 0 18 0 0 19 0 0 20 1 1 21 0 0 22 0 0 23 0 0 - 2.52 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
- 110 Total read queries
- 24,525 Total write queries
Queries by database
Key values
- zemm_monitoring Main database
- 24,514 Requests
- 1d11h30m34s (zemm_monitoring)
- Main time consuming database
Queries by user
Key values
- monitoring_admin Main user
- 663,652 Requests
User Request type Count Duration labanimal Total 2,169 48m39s copy to 8 22s808ms cte 343 7m39s select 1,791 40m7s update 27 29s512ms monitoring_admin Total 663,652 36d13h45m39s cte 1,919 4h28m55s ddl 660,871 36d9h4m19s delete 1 603ms select 853 12m16s postgres Total 144 3m13s copy to 144 3m13s Duration by user
Key values
- 36d13h45m39s (monitoring_admin) Main time consuming user
User Request type Count Duration labanimal Total 2,169 48m39s copy to 8 22s808ms cte 343 7m39s select 1,791 40m7s update 27 29s512ms monitoring_admin Total 663,652 36d13h45m39s cte 1,919 4h28m55s ddl 660,871 36d9h4m19s delete 1 603ms select 853 12m16s postgres Total 144 3m13s copy to 144 3m13s Queries by host
Key values
- unknown Main host
- 665,794 Requests
- 36d14h33m49s (unknown)
- Main time consuming host
Queries by application
Key values
- unknown Main application
- 24,514 Requests
- 1d11h30m34s (unknown)
- Main time consuming application
Application Request type Count Duration _desktop_index.php_view_animal_name_on_view_animal_id_on_specie Total 8 4s84ms select 8 4s84ms _desktop_index.php_view_animal_name_on_view_animal_id_on_view_b Total 6 4s413ms select 6 4s413ms _desktop_index.php_zemm_produktiv_8_localhost_5432 Total 101 3m25s cte 5 11s643ms select 96 3m14s expire_tasks:zemm_produktiv_8@h2940066.stratoserver.net:5432 Total 1 1s33ms update 1 1s33ms pg_dump Total 5 6s582ms copy to 5 6s582ms unknown Total 24,514 1d11h30m34s cte 34 6m42s ddl 24,480 1d11h23m52s Number of cancelled queries
Key values
- 0 per second Cancelled query Peak
- 2026-06-08 16:30:40 Date
Number of cancelled queries (5 minutes period)
NO DATASET
-
Top Queries
Histogram of query times
Key values
- 100 500-1000ms duration
Slowest individual queries
Rank Duration Query 1 28s472ms SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 332) AS is_owner, user_is_tgm (animals_search_mview.editor, 332) AS is_editor, user_is_tgm (animals_search_mview.tourist, 332) 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-06-08 12:47:11 - Database: zemm_produktiv_8 - User: labanimal - Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 - Bind query: yes ]
2 28s472ms CREATE SCHEMA IF NOT EXISTS observability;[ Date: 2026-06-08 12:48:01 - Database: zemm_monitoring - User: monitoring_admin - Bind query: yes ]
3 28s472ms 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-06-08 12:48:01 - Database: zemm_monitoring - User: monitoring_admin - Bind query: yes ]
4 28s472ms CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);[ Date: 2026-06-08 12:48:01 - Database: zemm_monitoring - User: monitoring_admin - Bind query: yes ]
5 28s472ms CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);[ Date: 2026-06-08 12:48:01 - Database: zemm_monitoring - User: monitoring_admin - Bind query: yes ]
6 28s472ms 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-06-08 12:48:01 - Database: zemm_monitoring - User: monitoring_admin - Bind query: yes ]
7 28s472ms CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);[ Date: 2026-06-08 12:48:01 - Database: zemm_monitoring - User: monitoring_admin - Bind query: yes ]
8 28s472ms CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);[ Date: 2026-06-08 12:48:01 - Database: zemm_monitoring - User: monitoring_admin - Bind query: yes ]
9 28s472ms 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-06-08 12:48:01 - Database: zemm_monitoring - User: monitoring_admin - Bind query: yes ]
10 28s472ms CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);[ Date: 2026-06-08 12:48:01 - Database: zemm_monitoring - User: monitoring_admin - Bind query: yes ]
11 28s472ms 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-06-08 12:48:01 - Database: zemm_monitoring - User: monitoring_admin - Bind query: yes ]
12 28s472ms 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-06-08 12:48:01 - Database: zemm_monitoring - User: monitoring_admin - Bind query: yes ]
13 28s472ms 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-06-08 12:48:01 - Database: zemm_monitoring - User: monitoring_admin - Bind query: yes ]
14 28s472ms 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-06-08 12:48:01 - Database: zemm_monitoring - User: monitoring_admin - Bind query: yes ]
15 28s472ms ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS label text;[ Date: 2026-06-08 12:48:01 - Database: zemm_monitoring - User: monitoring_admin - Bind query: yes ]
16 28s472ms ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS payload jsonb;[ Date: 2026-06-08 12:48:01 - Database: zemm_monitoring - User: monitoring_admin - Bind query: yes ]
17 28s472ms CREATE INDEX IF NOT EXISTS idx_uptime_checks_endpoint ON observability.uptime_checks (endpoint, checked_at DESC);[ Date: 2026-06-08 12:48:01 - Database: zemm_monitoring - User: monitoring_admin - Bind query: yes ]
18 28s472ms CREATE INDEX IF NOT EXISTS idx_uptime_checks_key ON observability.uptime_checks (check_key, checked_at DESC);[ Date: 2026-06-08 12:48:01 - Database: zemm_monitoring - User: monitoring_admin - Bind query: yes ]
19 28s472ms CREATE SCHEMA IF NOT EXISTS observability;[ Date: 2026-06-08 12:49:01 - Database: zemm_monitoring - User: monitoring_admin - Bind query: yes ]
20 28s472ms 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-06-08 12:49:01 - Database: zemm_monitoring - User: monitoring_admin - Bind query: yes ]
Time consuming queries (N)
Rank Total duration Times executed Min duration Max duration Avg duration Query 1 2h4m56s 1,440 504ms 28s472ms 5s205ms 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 Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - Times executed: 1349 ]
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_endpoint ON observability.uptime_checks (endpoint, checked_at DESC);
Date: 2026-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_endpoint ON observability.uptime_checks (endpoint, checked_at DESC);
Date: 2026-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_endpoint ON observability.uptime_checks (endpoint, checked_at DESC);
Date: 2026-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
2 2h4m56s 1,440 504ms 28s472ms 5s205ms create index if not exists idx_app_events_type on observability.app_events (event_type);Times Reported Time consuming queries #2
Day Hour Count Duration Avg duration Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - Times executed: 1349 ]
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
3 2h4m56s 1,440 504ms 28s472ms 5s205ms 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 #3
Day Hour Count Duration Avg duration Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - 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-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_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-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_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-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
4 2h4m56s 1,440 504ms 28s472ms 5s205ms alter table observability.uptime_checks add column if not exists payload jsonb;Times Reported Time consuming queries #4
Day Hour Count Duration Avg duration Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - Times executed: 1349 ]
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS payload jsonb;
Date: 2026-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS payload jsonb;
Date: 2026-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS payload jsonb;
Date: 2026-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
5 2h4m56s 1,440 504ms 28s472ms 5s205ms create table if not exists observability.uptime_checks ( id bigserial primary key, endpoint text not null, status text not null, latency_ms double precision, checked_at timestamptz not null default now() );Times Reported Time consuming queries #5
Day Hour Count Duration Avg duration Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - 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-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_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-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_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-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
6 2h4m56s 1,440 504ms 28s472ms 5s205ms 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 #6
Day Hour Count Duration Avg duration Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - 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-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);
Date: 2026-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);
Date: 2026-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
7 2h4m56s 1,440 504ms 28s472ms 5s205ms 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 #7
Day Hour Count Duration Avg duration Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - 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-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_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-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_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-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
8 2h4m56s 1,440 504ms 28s472ms 5s205ms create index if not exists idx_app_events_tenant on observability.app_events (tenant_key, occurred_at desc);Times Reported Time consuming queries #8
Day Hour Count Duration Avg duration Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - Times executed: 1349 ]
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
9 2h4m56s 1,440 504ms 28s472ms 5s205ms create index if not exists idx_uptime_checks_key on observability.uptime_checks (check_key, checked_at desc);Times Reported Time consuming queries #9
Day Hour Count Duration Avg duration Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - Times executed: 1349 ]
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_key ON observability.uptime_checks (check_key, checked_at DESC);
Date: 2026-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_key ON observability.uptime_checks (check_key, checked_at DESC);
Date: 2026-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_key ON observability.uptime_checks (check_key, checked_at DESC);
Date: 2026-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
10 2h4m56s 1,440 504ms 28s472ms 5s205ms create schema if not exists observability;Times Reported Time consuming queries #10
Day Hour Count Duration Avg duration Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - Times executed: 1349 ]
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
11 2h4m56s 1,440 504ms 28s472ms 5s205ms create table if not exists observability.metrics_timeseries ( id bigserial primary key, tenant_key text not null, metric_name text not null, bucket_start timestamptz not null, bucket_width_seconds integer not null default ?, sum_value double precision not null default ?, count_value bigint not null default ?, histogram jsonb, created_at timestamptz not null default now(), updated_at timestamptz not null default now(), unique (tenant_key, metric_name, bucket_start, bucket_width_seconds) );Times Reported Time consuming queries #11
Day Hour Count Duration Avg duration Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - 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-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_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-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_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-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
12 2h4m56s 1,440 504ms 28s472ms 5s205ms alter table observability.uptime_checks add column if not exists label text;Times Reported Time consuming queries #12
Day Hour Count Duration Avg duration Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - Times executed: 1349 ]
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS label text;
Date: 2026-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS label text;
Date: 2026-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS label text;
Date: 2026-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
13 2h4m56s 1,440 504ms 28s472ms 5s205ms 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 Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - 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-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_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-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_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-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
14 2h4m56s 1,440 504ms 28s472ms 5s205ms 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 Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - Times executed: 1349 ]
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
15 2h4m56s 1,440 504ms 28s472ms 5s205ms 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 Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - Times executed: 1349 ]
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
16 2h4m56s 1,440 504ms 28s472ms 5s205ms create table if not exists observability.system_metrics ( id bigserial primary key, payload jsonb not null, collected_at timestamptz not null default now() );Times Reported Time consuming queries #16
Day Hour Count Duration Avg duration Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - 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-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_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-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_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-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
17 2h4m56s 1,440 504ms 28s472ms 5s205ms 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 #17
Day Hour Count Duration Avg duration Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - 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-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_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-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_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-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
18 6m42s 34 1s706ms 12s278ms 11s827ms 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 Jun 08 11 1 1s706ms 1s706ms 15 4 48s141ms 12s35ms 16 6 1m12s 12s49ms 17 6 1m12s 12s135ms 18 6 1m12s 12s140ms 19 6 1m13s 12s215ms 20 5 1m1s 12s208ms [ User: monitoring_admin - Total duration: 6m42s - Times executed: 34 ]
-
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-06-06 13:47:50+02' AND collected_at <= '2026-06-08 13:47:50+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-06-08 13:47:50+02' AND '2026-06-08 19:47:50+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-06-08 13:47:50+02' AND '2026-06-08 19:47:50+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-06-08 19:48:02 Duration: 12s278ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_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-06-06 12:34:57+02' AND collected_at <= '2026-06-08 12:34:57+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-06-08 12:34:57+02' AND '2026-06-08 18:34:57+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-06-08 12:34:57+02' AND '2026-06-08 18:34:57+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-06-08 18:35:09 Duration: 12s260ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_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-06-06 12:04:01+02' AND collected_at <= '2026-06-08 12:04:01+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-06-08 12:04:01+02' AND '2026-06-08 18:04:01+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-06-08 12:04:01+02' AND '2026-06-08 18:04:01+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-06-08 18:04:13 Duration: 12s256ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
19 56s250ms 2 27s777ms 28s472ms 28s125ms 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 Jun 08 13 1 28s472ms 28s472ms 17 1 27s777ms 27s777ms [ User: labanimal - Total duration: 56s250ms - Times executed: 2 ]
[ Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 - Total duration: 56s250ms - Times executed: 2 ]
-
SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 332) AS is_owner, user_is_tgm (animals_search_mview.editor, 332) AS is_editor, user_is_tgm (animals_search_mview.tourist, 332) 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-06-08 12:47:11 Duration: 28s472ms 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-06-08_000000.csv
-
SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 10100201) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100201) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100201) 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-06-08 16:09:34 Duration: 27s777ms 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-06-08_000000.csv
-
SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 332) AS is_owner, user_is_tgm (animals_search_mview.editor, 332) AS is_editor, user_is_tgm (animals_search_mview.tourist, 332) 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-06-08 12:47:11 Duration: 0ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432
20 51s947ms 2 25s947ms 25s999ms 25s973ms 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 Jun 08 13 1 25s999ms 25s999ms 17 1 25s947ms 25s947ms [ User: labanimal - Total duration: 51s947ms - Times executed: 2 ]
[ Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 - Total duration: 51s947ms - Times executed: 2 ]
-
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, 332) AS is_owner, user_is_tgm (animals_search_mview.editor, 332) AS is_editor, user_is_tgm (animals_search_mview.tourist, 332) 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-06-08 12:46:42 Duration: 25s999ms 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-06-08_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, 10100201) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100201) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100201) 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-06-08 16:09:06 Duration: 25s947ms 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-06-08_000000.csv
Most frequent queries (N)
Rank Times executed Total duration Min duration Max duration Avg duration Query 1 1,440 2h4m56s 504ms 28s472ms 5s205ms 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 Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - Times executed: 1349 ]
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_endpoint ON observability.uptime_checks (endpoint, checked_at DESC);
Date: 2026-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_endpoint ON observability.uptime_checks (endpoint, checked_at DESC);
Date: 2026-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_endpoint ON observability.uptime_checks (endpoint, checked_at DESC);
Date: 2026-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
2 1,440 2h4m56s 504ms 28s472ms 5s205ms create index if not exists idx_app_events_type on observability.app_events (event_type);Times Reported Time consuming queries #2
Day Hour Count Duration Avg duration Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - Times executed: 1349 ]
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
3 1,440 2h4m56s 504ms 28s472ms 5s205ms 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 #3
Day Hour Count Duration Avg duration Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - 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-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_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-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_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-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
4 1,440 2h4m56s 504ms 28s472ms 5s205ms alter table observability.uptime_checks add column if not exists payload jsonb;Times Reported Time consuming queries #4
Day Hour Count Duration Avg duration Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - Times executed: 1349 ]
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS payload jsonb;
Date: 2026-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS payload jsonb;
Date: 2026-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS payload jsonb;
Date: 2026-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
5 1,440 2h4m56s 504ms 28s472ms 5s205ms create table if not exists observability.uptime_checks ( id bigserial primary key, endpoint text not null, status text not null, latency_ms double precision, checked_at timestamptz not null default now() );Times Reported Time consuming queries #5
Day Hour Count Duration Avg duration Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - 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-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_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-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_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-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
6 1,440 2h4m56s 504ms 28s472ms 5s205ms 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 #6
Day Hour Count Duration Avg duration Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - 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-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);
Date: 2026-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);
Date: 2026-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
7 1,440 2h4m56s 504ms 28s472ms 5s205ms 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 #7
Day Hour Count Duration Avg duration Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - 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-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_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-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_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-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
8 1,440 2h4m56s 504ms 28s472ms 5s205ms create index if not exists idx_app_events_tenant on observability.app_events (tenant_key, occurred_at desc);Times Reported Time consuming queries #8
Day Hour Count Duration Avg duration Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - Times executed: 1349 ]
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
9 1,440 2h4m56s 504ms 28s472ms 5s205ms create index if not exists idx_uptime_checks_key on observability.uptime_checks (check_key, checked_at desc);Times Reported Time consuming queries #9
Day Hour Count Duration Avg duration Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - Times executed: 1349 ]
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_key ON observability.uptime_checks (check_key, checked_at DESC);
Date: 2026-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_key ON observability.uptime_checks (check_key, checked_at DESC);
Date: 2026-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_key ON observability.uptime_checks (check_key, checked_at DESC);
Date: 2026-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
10 1,440 2h4m56s 504ms 28s472ms 5s205ms create schema if not exists observability;Times Reported Time consuming queries #10
Day Hour Count Duration Avg duration Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - Times executed: 1349 ]
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
11 1,440 2h4m56s 504ms 28s472ms 5s205ms create table if not exists observability.metrics_timeseries ( id bigserial primary key, tenant_key text not null, metric_name text not null, bucket_start timestamptz not null, bucket_width_seconds integer not null default ?, sum_value double precision not null default ?, count_value bigint not null default ?, histogram jsonb, created_at timestamptz not null default now(), updated_at timestamptz not null default now(), unique (tenant_key, metric_name, bucket_start, bucket_width_seconds) );Times Reported Time consuming queries #11
Day Hour Count Duration Avg duration Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - 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-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_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-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_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-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
12 1,440 2h4m56s 504ms 28s472ms 5s205ms alter table observability.uptime_checks add column if not exists label text;Times Reported Time consuming queries #12
Day Hour Count Duration Avg duration Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - Times executed: 1349 ]
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS label text;
Date: 2026-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS label text;
Date: 2026-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS label text;
Date: 2026-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
13 1,440 2h4m56s 504ms 28s472ms 5s205ms 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 Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - 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-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_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-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_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-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
14 1,440 2h4m56s 504ms 28s472ms 5s205ms 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 Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - Times executed: 1349 ]
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
15 1,440 2h4m56s 504ms 28s472ms 5s205ms 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 Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - Times executed: 1349 ]
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
16 1,440 2h4m56s 504ms 28s472ms 5s205ms create table if not exists observability.system_metrics ( id bigserial primary key, payload jsonb not null, collected_at timestamptz not null default now() );Times Reported Time consuming queries #16
Day Hour Count Duration Avg duration Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - 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-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_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-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_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-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
17 1,440 2h4m56s 504ms 28s472ms 5s205ms 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 #17
Day Hour Count Duration Avg duration Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - 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-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_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-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_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-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
18 35 26s892ms 754ms 797ms 768ms 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 #18
Day Hour Count Duration Avg duration Jun 08 09 1 762ms 762ms 11 4 3s118ms 779ms 12 9 6s927ms 769ms 13 8 6s121ms 765ms 14 3 2s292ms 764ms 15 6 4s617ms 769ms 16 3 2s296ms 765ms 17 1 756ms 756ms [ User: labanimal - Total duration: 26s892ms - Times executed: 35 ]
[ Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 - Total duration: 24s597ms - Times executed: 32 ]
[ Application: _desktop_index.php_view_animal_name_on_view_animal_id_on_view_b - Total duration: 2s295ms - Times executed: 3 ]
-
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, 10100073) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100073) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100073) 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-06-08 10:08:22 Duration: 797ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Log file: /var/log/postgresql/postgresql-2026-06-08_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, 10100073) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100073) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100073) 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-06-08 10:08:28 Duration: 793ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Log file: /var/log/postgresql/postgresql-2026-06-08_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, 10100231) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100231) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100231) 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-06-08 15:26:48 Duration: 783ms 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-06-08_000000.csv
19 34 6m42s 1s706ms 12s278ms 11s827ms 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 Jun 08 11 1 1s706ms 1s706ms 15 4 48s141ms 12s35ms 16 6 1m12s 12s49ms 17 6 1m12s 12s135ms 18 6 1m12s 12s140ms 19 6 1m13s 12s215ms 20 5 1m1s 12s208ms [ User: monitoring_admin - Total duration: 6m42s - Times executed: 34 ]
-
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-06-06 13:47:50+02' AND collected_at <= '2026-06-08 13:47:50+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-06-08 13:47:50+02' AND '2026-06-08 19:47:50+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-06-08 13:47:50+02' AND '2026-06-08 19:47:50+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-06-08 19:48:02 Duration: 12s278ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_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-06-06 12:34:57+02' AND collected_at <= '2026-06-08 12:34:57+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-06-08 12:34:57+02' AND '2026-06-08 18:34:57+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-06-08 12:34:57+02' AND '2026-06-08 18:34:57+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-06-08 18:35:09 Duration: 12s260ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_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-06-06 12:04:01+02' AND collected_at <= '2026-06-08 12:04:01+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-06-08 12:04:01+02' AND '2026-06-08 18:04:01+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-06-08 12:04:01+02' AND '2026-06-08 18:04:01+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-06-08 18:04:13 Duration: 12s256ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
20 34 24s19ms 692ms 742ms 706ms select distinct * from ( select animals_search_mview.*, b.unbreeding_date, fates.loc as fate_name, user_is_tgm (animals_search_mview.owner, ?) as is_owner, user_is_tgm (animals_search_mview.editor, ?) as is_editor, user_is_tgm (animals_search_mview.tourist, ?) as is_tourist, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, strains.deleted as straindeleted, string_agg(l."application_id" || ? || l."title" || ? || date(lh."timestamp")::varchar, ?) as licensehistory, case when not exists ( select ? from scoresheet_diary sd where sd.animals_id = animals_search_mview.id) then ? else ? end as isscored from animals_search_mview inner join fates on fates.id = animals_search_mview.fate left join strains on strains.name = animals_search_mview.strain left join license_history lh on lh.anid = animals_search_mview.id left join licenses l on l.id = lh.licid left join breedings b on b.id = animals_search_mview.last_mating group by animals_search_mview.id, b.unbreeding_date, fates.loc, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, straindeleted) data where data.fate = ? and data.alive = ? and data.deleted = ? and (is_owner or is_editor or is_tourist) and (data.straindeleted = ? or data.straindeleted is null) order by data.cage_name, data.animal_id, data.name;Times Reported Time consuming queries #20
Day Hour Count Duration Avg duration Jun 08 09 1 696ms 696ms 11 4 2s842ms 710ms 12 9 6s432ms 714ms 13 8 5s619ms 702ms 14 3 2s121ms 707ms 15 6 4s196ms 699ms 16 2 1s415ms 707ms 17 1 695ms 695ms [ User: labanimal - Total duration: 24s19ms - Times executed: 34 ]
[ Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 - Total duration: 21s901ms - Times executed: 31 ]
[ Application: _desktop_index.php_view_animal_name_on_view_animal_id_on_view_b - Total duration: 2s117ms - Times executed: 3 ]
-
SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 332) AS is_owner, user_is_tgm (animals_search_mview.editor, 332) AS is_editor, user_is_tgm (animals_search_mview.tourist, 332) AS is_tourist, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, strains.deleted as straindeleted, STRING_AGG(l."application_id" || ':' || l."title" || ' - ' || Date(lh."timestamp")::varchar, '; ') AS licensehistory, CASE WHEN NOT EXISTS ( SELECT 1 FROM scoresheet_diary sd WHERE sd.animals_id = animals_search_mview.id) THEN 'f' ELSE 't' END AS isscored FROM animals_search_mview INNER JOIN fates ON fates.id = animals_search_mview.fate LEFT JOIN strains ON strains.name = animals_search_mview.strain LEFT JOIN license_history lh ON lh.anid = animals_search_mview.id LEFT JOIN licenses l ON l.id = lh.licid left join breedings b ON b.id = animals_search_mview.last_mating GROUP BY animals_search_mview.id, b.unbreeding_date, fates.loc, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, straindeleted) data WHERE data.fate = 5 AND data.alive = 't' AND data.deleted = 'f' AND (is_owner OR is_editor OR is_tourist) and (data.straindeleted = 'f' or data.straindeleted is null) ORDER BY data.cage_name, data.animal_id, data.name;
Date: 2026-06-08 11:22:09 Duration: 742ms 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-06-08_000000.csv
-
SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 10100073) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100073) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100073) AS is_tourist, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, strains.deleted as straindeleted, STRING_AGG(l."application_id" || ':' || l."title" || ' - ' || Date(lh."timestamp")::varchar, '; ') AS licensehistory, CASE WHEN NOT EXISTS ( SELECT 1 FROM scoresheet_diary sd WHERE sd.animals_id = animals_search_mview.id) THEN 'f' ELSE 't' END AS isscored FROM animals_search_mview INNER JOIN fates ON fates.id = animals_search_mview.fate LEFT JOIN strains ON strains.name = animals_search_mview.strain LEFT JOIN license_history lh ON lh.anid = animals_search_mview.id LEFT JOIN licenses l ON l.id = lh.licid left join breedings b ON b.id = animals_search_mview.last_mating GROUP BY animals_search_mview.id, b.unbreeding_date, fates.loc, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, straindeleted) data WHERE data.fate = 5 AND data.alive = 't' AND data.deleted = 'f' AND (is_owner OR is_editor OR is_tourist) and (data.straindeleted = 'f' or data.straindeleted is null) ORDER BY data.cage_name, data.animal_id, data.name;
Date: 2026-06-08 10:08:23 Duration: 734ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 10100231) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100231) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100231) AS is_tourist, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, strains.deleted as straindeleted, STRING_AGG(l."application_id" || ':' || l."title" || ' - ' || Date(lh."timestamp")::varchar, '; ') AS licensehistory, CASE WHEN NOT EXISTS ( SELECT 1 FROM scoresheet_diary sd WHERE sd.animals_id = animals_search_mview.id) THEN 'f' ELSE 't' END AS isscored FROM animals_search_mview INNER JOIN fates ON fates.id = animals_search_mview.fate LEFT JOIN strains ON strains.name = animals_search_mview.strain LEFT JOIN license_history lh ON lh.anid = animals_search_mview.id LEFT JOIN licenses l ON l.id = lh.licid left join breedings b ON b.id = animals_search_mview.last_mating GROUP BY animals_search_mview.id, b.unbreeding_date, fates.loc, strains.cancel_criteria, strains.symtoms, strains.reduce_severity_by, strains.sym_immune, straindeleted) data WHERE data.fate = 5 AND data.alive = 't' AND data.deleted = 'f' AND (is_owner OR is_editor OR is_tourist) and (data.straindeleted = 'f' or data.straindeleted is null) ORDER BY data.cage_name, data.animal_id, data.name;
Date: 2026-06-08 15:26:48 Duration: 722ms 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-06-08_000000.csv
Normalized slowest queries (N)
Rank Min duration Max duration Avg duration Times executed Total duration Query 1 27s777ms 28s472ms 28s125ms 2 56s250ms 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 Jun 08 13 1 28s472ms 28s472ms 17 1 27s777ms 27s777ms [ User: labanimal - Total duration: 56s250ms - Times executed: 2 ]
[ Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 - Total duration: 56s250ms - Times executed: 2 ]
-
SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 332) AS is_owner, user_is_tgm (animals_search_mview.editor, 332) AS is_editor, user_is_tgm (animals_search_mview.tourist, 332) 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-06-08 12:47:11 Duration: 28s472ms 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-06-08_000000.csv
-
SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 10100201) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100201) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100201) 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-06-08 16:09:34 Duration: 27s777ms 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-06-08_000000.csv
-
SELECT DISTINCT * FROM ( SELECT animals_search_mview.*, b.unbreeding_date, fates.loc AS fate_name, user_is_tgm (animals_search_mview.owner, 332) AS is_owner, user_is_tgm (animals_search_mview.editor, 332) AS is_editor, user_is_tgm (animals_search_mview.tourist, 332) 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-06-08 12:47:11 Duration: 0ms Database: zemm_produktiv_8 User: labanimal Application: _desktop_index.php_zemm_produktiv_8_localhost_5432
2 25s947ms 25s999ms 25s973ms 2 51s947ms 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 Jun 08 13 1 25s999ms 25s999ms 17 1 25s947ms 25s947ms [ User: labanimal - Total duration: 51s947ms - Times executed: 2 ]
[ Application: _desktop_index.php_zemm_produktiv_8_localhost_5432 - Total duration: 51s947ms - Times executed: 2 ]
-
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, 332) AS is_owner, user_is_tgm (animals_search_mview.editor, 332) AS is_editor, user_is_tgm (animals_search_mview.tourist, 332) 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-06-08 12:46:42 Duration: 25s999ms 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-06-08_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, 10100201) AS is_owner, user_is_tgm (animals_search_mview.editor, 10100201) AS is_editor, user_is_tgm (animals_search_mview.tourist, 10100201) 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-06-08 16:09:06 Duration: 25s947ms 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-06-08_000000.csv
3 1s706ms 12s278ms 11s827ms 34 6m42s 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 Jun 08 11 1 1s706ms 1s706ms 15 4 48s141ms 12s35ms 16 6 1m12s 12s49ms 17 6 1m12s 12s135ms 18 6 1m12s 12s140ms 19 6 1m13s 12s215ms 20 5 1m1s 12s208ms [ User: monitoring_admin - Total duration: 6m42s - Times executed: 34 ]
-
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-06-06 13:47:50+02' AND collected_at <= '2026-06-08 13:47:50+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-06-08 13:47:50+02' AND '2026-06-08 19:47:50+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-06-08 13:47:50+02' AND '2026-06-08 19:47:50+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-06-08 19:48:02 Duration: 12s278ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_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-06-06 12:34:57+02' AND collected_at <= '2026-06-08 12:34:57+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-06-08 12:34:57+02' AND '2026-06-08 18:34:57+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-06-08 12:34:57+02' AND '2026-06-08 18:34:57+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-06-08 18:35:09 Duration: 12s260ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_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-06-06 12:04:01+02' AND collected_at <= '2026-06-08 12:04:01+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-06-08 12:04:01+02' AND '2026-06-08 18:04:01+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-06-08 12:04:01+02' AND '2026-06-08 18:04:01+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-06-08 18:04:13 Duration: 12s256ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
4 504ms 28s472ms 5s205ms 1,440 2h4m56s 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 Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - Times executed: 1349 ]
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_endpoint ON observability.uptime_checks (endpoint, checked_at DESC);
Date: 2026-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_endpoint ON observability.uptime_checks (endpoint, checked_at DESC);
Date: 2026-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_endpoint ON observability.uptime_checks (endpoint, checked_at DESC);
Date: 2026-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
5 504ms 28s472ms 5s205ms 1,440 2h4m56s create index if not exists idx_app_events_type on observability.app_events (event_type);Times Reported Time consuming queries #5
Day Hour Count Duration Avg duration Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - Times executed: 1349 ]
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_type ON observability.app_events (event_type);
Date: 2026-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
6 504ms 28s472ms 5s205ms 1,440 2h4m56s 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 #6
Day Hour Count Duration Avg duration Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - 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-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_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-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_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-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
7 504ms 28s472ms 5s205ms 1,440 2h4m56s alter table observability.uptime_checks add column if not exists payload jsonb;Times Reported Time consuming queries #7
Day Hour Count Duration Avg duration Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - Times executed: 1349 ]
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS payload jsonb;
Date: 2026-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS payload jsonb;
Date: 2026-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS payload jsonb;
Date: 2026-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
8 504ms 28s472ms 5s205ms 1,440 2h4m56s create table if not exists observability.uptime_checks ( id bigserial primary key, endpoint text not null, status text not null, latency_ms double precision, checked_at timestamptz not null default now() );Times Reported Time consuming queries #8
Day Hour Count Duration Avg duration Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - 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-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_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-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_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-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
9 504ms 28s472ms 5s205ms 1,440 2h4m56s 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 #9
Day Hour Count Duration Avg duration Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - 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-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);
Date: 2026-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_db_top_queries_tenant ON observability.db_top_queries (tenant_key, collected_at DESC);
Date: 2026-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
10 504ms 28s472ms 5s205ms 1,440 2h4m56s 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 #10
Day Hour Count Duration Avg duration Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - 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-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_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-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_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-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
11 504ms 28s472ms 5s205ms 1,440 2h4m56s create index if not exists idx_app_events_tenant on observability.app_events (tenant_key, occurred_at desc);Times Reported Time consuming queries #11
Day Hour Count Duration Avg duration Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - Times executed: 1349 ]
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_app_events_tenant ON observability.app_events (tenant_key, occurred_at DESC);
Date: 2026-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
12 504ms 28s472ms 5s205ms 1,440 2h4m56s create index if not exists idx_uptime_checks_key on observability.uptime_checks (check_key, checked_at desc);Times Reported Time consuming queries #12
Day Hour Count Duration Avg duration Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - Times executed: 1349 ]
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_key ON observability.uptime_checks (check_key, checked_at DESC);
Date: 2026-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_key ON observability.uptime_checks (check_key, checked_at DESC);
Date: 2026-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_uptime_checks_key ON observability.uptime_checks (check_key, checked_at DESC);
Date: 2026-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
13 504ms 28s472ms 5s205ms 1,440 2h4m56s create schema if not exists observability;Times Reported Time consuming queries #13
Day Hour Count Duration Avg duration Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - Times executed: 1349 ]
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
CREATE SCHEMA IF NOT EXISTS observability;
Date: 2026-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
14 504ms 28s472ms 5s205ms 1,440 2h4m56s create table if not exists observability.metrics_timeseries ( id bigserial primary key, tenant_key text not null, metric_name text not null, bucket_start timestamptz not null, bucket_width_seconds integer not null default ?, sum_value double precision not null default ?, count_value bigint not null default ?, histogram jsonb, created_at timestamptz not null default now(), updated_at timestamptz not null default now(), unique (tenant_key, metric_name, bucket_start, bucket_width_seconds) );Times Reported Time consuming queries #14
Day Hour Count Duration Avg duration Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - 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-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_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-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_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-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
15 504ms 28s472ms 5s205ms 1,440 2h4m56s alter table observability.uptime_checks add column if not exists label text;Times Reported Time consuming queries #15
Day Hour Count Duration Avg duration Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - Times executed: 1349 ]
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS label text;
Date: 2026-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS label text;
Date: 2026-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
ALTER TABLE observability.uptime_checks ADD COLUMN IF NOT EXISTS label text;
Date: 2026-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
16 504ms 28s472ms 5s205ms 1,440 2h4m56s 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 Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - 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-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_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-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_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-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
17 504ms 28s472ms 5s205ms 1,440 2h4m56s 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 Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - Times executed: 1349 ]
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_bucket ON observability.metrics_timeseries (bucket_start);
Date: 2026-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
18 504ms 28s472ms 5s205ms 1,440 2h4m56s create index if not exists idx_metrics_timeseries_metric on observability.metrics_timeseries (metric_name);Times Reported Time consuming queries #18
Day Hour Count Duration Avg duration Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - Times executed: 1349 ]
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
-
CREATE INDEX IF NOT EXISTS idx_metrics_timeseries_metric ON observability.metrics_timeseries (metric_name);
Date: 2026-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
19 504ms 28s472ms 5s205ms 1,440 2h4m56s 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 #19
Day Hour Count Duration Avg duration Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - 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-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_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-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_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-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
20 504ms 28s472ms 5s205ms 1,440 2h4m56s 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 #20
Day Hour Count Duration Avg duration Jun 08 01 60 0ms 0ms 02 60 29s969ms 499ms 03 60 1m2s 1s33ms 04 60 1m2s 1s33ms 05 60 1m2s 1s33ms 06 60 1m2s 1s33ms 07 60 1m2s 1s33ms 08 60 1m5s 1s99ms 09 60 1m12s 1s200ms 10 60 1m39s 1s663ms 11 60 35s577ms 592ms 12 60 42s389ms 706ms 13 60 6m40s 6s681ms 14 60 2m1s 2s16ms 15 60 2m55s 2s917ms 16 60 9m1s 9s19ms 17 60 8m25s 8s419ms 18 60 12m9s 12s151ms 19 60 12m12s 12s203ms 20 60 12m12s 12s205ms 21 60 12m16s 12s278ms 22 60 12m16s 12s278ms 23 60 12m16s 12s278ms 00 60 11m33s 11s552ms [ User: monitoring_admin - Total duration: 2h4m56s - 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-06-08 13:00:01 Duration: 28s472ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_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-06-08 16:11:01 Duration: 27s777ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_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-06-08 12:47:01 Duration: 25s999ms Database: zemm_monitoring User: monitoring_admin Bind query: yes Log file: /var/log/postgresql/postgresql-2026-06-08_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
- 129,859 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
- 3 ERROR entries
- 0 WARNING entries
- 0 EVENTLOG entries
Most Frequent Errors/Events
Key values
- 2 Max number of times the same event was reported
- 3 Total events found
Rank Times reported Error 1 2 ERROR: duplicate key value violates unique constraint "..."
Times Reported Most Frequent Error / Event #1
Day Hour Count Jun 08 15 2 - ERROR: duplicate key value violates unique constraint "metrics_timeseries_tenant_key_metric_name_bucket_start_buck_key"
- ERROR: duplicate key value violates unique constraint "metrics_timeseries_tenant_key_metric_name_bucket_start_buck_key"
Detail: Key (tenant_key, metric_name, bucket_start, bucket_width_seconds)=(live, http_requests_total, 2026-06-08 14:50:00+02, 60) already exists.
Statement: INSERT INTO observability.metrics_timeseries (tenant_key, metric_name, bucket_start, bucket_width_seconds, sum_value, count_value, histogram) VALUES ($1, $2, $3, $4, $5, $6, $7)Date: 2026-06-08 14:50:01 Database: zemm_monitoring Application: User: labanimal Remote: Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
Detail: Key (tenant_key, metric_name, bucket_start, bucket_width_seconds)=(live, http_requests_total, 2026-06-08 14:50:00+02, 60) already exists.
Statement: INSERT INTO observability.metrics_timeseries (tenant_key, metric_name, bucket_start, bucket_width_seconds, sum_value, count_value, histogram) VALUES ($1, $2, $3, $4, $5, $6, $7)Date: 2026-06-08 14:50:01 Database: zemm_monitoring Application: User: labanimal Remote: Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv
2 1 ERROR: relation "..." does not exist
Times Reported Most Frequent Error / Event #2
Day Hour Count Jun 08 18 1 - ERROR: relation "observability_events" does not exist
Statement: SELECT occurred_at, message, payload->>'file' AS file, payload->>'line' AS line FROM observability_events WHERE tenant_key = 'prod' AND event_type = 'php_error' AND message = 'Undefined array key 0' AND occurred_at >= now() - interval '20 minutes' ORDER BY occurred_at DESC LIMIT 5;
Date: 2026-06-08 17:31:26 Database: zemm_monitoring Application: psql User: labanimal Remote: Log file: /var/log/postgresql/postgresql-2026-06-08_000000.csv