Commit Graph

44 Commits (aecfb7a5cd03a8b63a3215ea35946fb2cf10ec2d)

Author SHA1 Message Date
Andrew Pogrebnoy aecfb7a5cd PG-232: remove unused function
and fix a couple of typos
2021-09-21 10:37:10 +03:00
Diego Fronza a847ed95de PG-223: Remove relations and num_relations from pgssSharedState.
These variables can't be in shared state, as the following problem was
taking place:
1. Process1 call pgss_ExecutorCheckPerms(), acquire lock, update
   relations and num_relations, release lock.
2. Process 2 call pgss_ExecutorCheckPerms(), acquire lock, update
   num_relations = 0;
3. Process 1 read num_relations = 0 in pgss_update_entry, this value is
   wrong as it was updated by Process 2.

Even if we acquire the lock in pgss_update_entry to read num_relations
and relations variable, Process 1 may end up acquiring the lock after
Process 2 has ovewritten the variable values, leading to Process 1
reading of wrong data.

By defining relations and num_relations to be static and global in
pg_stat_monitor.c we take advantage that each individual PostgreSQL
backend will have its own copy of this data, which allows us to remove
the locking in pgss_ExecutorCheckPerms to update these variables,
improving pg_stat_monitor overall performance.
2021-08-27 15:53:11 -04:00
Diego Fronza 775c087fb2 PG-222: Add benchmark support for measuring hook execution time.
Added a new view 'pg_stat_monitor_hook_stats' that provide execution
time statistics for all hooks installed by the module, following is a
description of the fields:
  -       hook: The hook function name.
  -   min_time: The fastest execution time recorded for the given hook.
  -   max_time: The slowest execution time recorded for the given hook.
  - total_time: Total execution time taken by all calls to the hook.
  -   avg_time: Average execution time of a call to the hook.
  -     ncalls: Total number of calls to the hook.
  - load_comparison: A percentual of time taken by an individual hook
                     compared to every other hook.

To enable benchmark, code must be compiled with -DBENCHMARK flag, this
will make the hook functions to be replaced by a function with the same
name plus a '_benchmark' suffix, e.g. hook_function_benchmark.

The hook_function_benchmark will call the original function and
calculate the amount of time it took to execute, than it will update
statistics for that hook.
2021-08-23 11:50:56 -04:00
Diego Fronza 99f01d37e3 PG-200: Add application name to the bucket ID.
Add application name to the key used to identify queries in the hash
table, this allows different applications to have separate entries in
pg_stat_monitor view if they issued the same query.
2021-07-29 15:05:08 -04:00
Ibrar Ahmed f470ba591a PG-194: PostgreSQL-14 support added. 2021-05-21 21:29:58 +05:00
Ibrar Ahmed 67b3d961ca PG-193: Comment based tags to identify different parameters. 2021-05-19 22:15:37 +05:00
Ibrar Ahmed 89614e442b PG-190: Does not show query, if query elapsed time is greater than bucket time. 2021-04-08 15:29:42 +05:00
Ibrar Ahmed f8ed33a92a PG-188: Added a new column to monitor the query state. 2021-03-21 00:04:39 +05:00
Ibrar Ahmed 96a7603aae PG-187: Compilation Error for PostgreSQL 11 and PostgreSQL 12. 2021-03-17 20:42:58 +05:00
Ibrar Ahmed e0fc683810 PG-186: Add support to monitor query execution plan. 2021-03-17 18:56:39 +05:00
Ibrar Ahmed 066162c3f6 PG-186: Add support to monitor query execution plan.
This requires refactoring of code to add this functionality. Along with
that this patch contains regression test cases.
2021-03-12 18:55:12 +00:00
Ibrar Ahmed 6aa1b2e7b6 PG-182: Added a new option for the query buffer overflow. 2021-02-17 13:08:39 +00:00
Ibrar Ahmed ed6fe2d8dc PG-147 Stored Procedure Support add parentid to track caller.
Patch By: Martin Sun
Reviewed By: Hamid Akhtar
2021-02-12 11:42:36 +00:00
Ibrar Ahmed cba6bbfbd4 PG-177: Error in Histogram ranges. 2021-02-11 19:07:39 +00:00
Ibrar Ahmed d60f725b4a PG-176 : Extract fully qualified relations name. 2021-02-11 15:51:44 +00:00
Ibrar Ahmed a6036b86ac PG-174: Code cleanup. 2021-02-11 12:02:04 +00:00
Ibrar Ahmed bd8c54476f PG-150: Logging CMD Type like SELECT, UPDATE, INSERT, DELETE. 2021-02-10 14:55:40 +00:00
Ibrar Ahmed 8410572ce3 PG-173: Added new WAL usage statistics. 2021-02-02 15:50:33 +00:00
Ibrar Ahmed 12ba1e39d1 PG-172: Exponential histogram for time buckets. 2021-02-02 15:30:28 +00:00
Ibrar Ahmed 10e0b4f0f6 PG-167: SQLERRCODE must be in readable format. 2021-01-19 12:35:52 +00:00
Ibrar Ahmed 412d9bc9b1 PG-166: Display actual system time instead of null. 2021-01-18 17:11:49 +00:00
Ibrar Ahmed 722435ec98 PG-161: Miscellaneous small issues. 2021-01-12 15:51:34 +00:00
Ibrar Ahmed 860de28e6f PG-159: Bucket start time (bucket_start_time) should be aligned with bucket_time. 2021-01-11 17:20:27 +00:00
Ibrar Ahmed 9bee6b3690 Copyright Notice update. 2021-01-05 18:56:07 +00:00
Ibrar Ahmed bedc2ffc78 PG-154: Add backup option in case of no space left in the bucket. 2020-11-29 20:11:23 +00:00
Ibrar Ahmed 6ec5c2b4ed PG-153: Log application name. 2020-11-24 21:03:32 +00:00
Ibrar Ahmed 057150c99b Issue - (#21): Show objects(tables) involved in the query.
PG-96
2020-11-24 20:10:49 +00:00
Ibrar Ahmed 971e57fd93 Issue - (#62): Logging CMD Type like SELECT, UPDATE, INSERT and DELETE.
PG-150
2020-11-24 18:02:25 +00:00
Ibrar Ahmed a668199dcf Issue - (#62): Logging CMD Type like SELECT, UPDATE, INSERT, DELETE, UNKNOWN.
PG-150
2020-11-12 15:46:17 +00:00
Ibrar Ahmed 5bea9f4581 Issue - (#62): Logging CMD Type like SELECT, UPDATE, INSERT, DELETE, UNKNOWN.
PG-150
2020-11-12 13:14:27 +00:00
Ibrar Ahmed 3999e28c00 Issue - (#61): Remove unnecessary code previously used for wait_events.
PG-146
2020-11-11 13:52:45 +00:00
Ibrar Ahmed 7b04755037 Issue - (#60): Log error/warning/info and debug messages.
PG-136
2020-11-11 11:47:06 +00:00
Ibrar Ahmed 8918017134 Issue (#59): Build failed using gcc-9 and 10.
The issue only occurs when compiled using -fno-common flag.
2020-11-02 11:21:47 +00:00
Ibrar Ahmed ec1ff594b4 Issue - (#54): Planning counters require renaming.
PG-144 : Changing planing counter name to sync with pg_stat_statment.
2020-10-12 22:39:44 +00:00
Ibrar Ahmed f48a64cc0a Issue - (#53): Fix a bug where the query response time histogram does show proper counters.
PG-143 : Total sum of all the response histograms should be equal to total_calls.
2020-10-12 21:49:35 +00:00
Ibrar Ahmed dea16f1878 Issue (#49): Duplicates in pg_stat_monitor.
Jira: PG-139
2020-10-10 22:46:53 +00:00
Ibrar Ahmed d66a079b1b Issue (#47): Default values of setting are not set properly. 2020-09-30 12:49:05 +00:00
Ibrar Ahmed 935d063f13 Issue(30): Code refactoring. 2020-09-14 22:26:19 +00:00
Ibrar Ahmed a2c87d8398 Issue - (#40): Cannot set pgsm_track value with psql client with alter system.
Removed the track option and added a new option pgsm_enable, which require a restart.

PG-122
2020-08-06 10:43:27 +00:00
Ibrar Ahmed 355436c4dc Issue - (#34): PostgreSQL Version 13 support added. 2020-06-23 17:24:21 +00:00
Ibrar Ahmed 5536041539 Issue - (#33): Display all the custom configuration parameters used for pg_stat_monitor.
A new view named (pg_stat_monitor_settings) is added to see all the custom
configuration parameters and its default, min, max, and type.
2020-05-25 11:58:22 +00:00
Ibrar Ahmed 6b5b2e0948 Issue - (#32): Fix the table_name's empty or wrong values issue.
Increase the size of the table_names array to fit all the names of
tables in that array. Accidentally set the very low value for that.
2020-05-01 15:43:42 +00:00
Ibrar Ahmed beca034067 Issue (#30) - Code refactoring. 2020-04-15 09:49:02 +00:00
Ibrar Ahmed fca8cd431a Issue - (#27): PG-106: Support for WaitEvents, similar to pg_stat_activity added. 2020-03-20 05:17:10 +00:00