mirror of
https://github.com/percona/pg_stat_monitor.git
synced 2026-02-04 14:06:20 +00:00
PG-174: Code cleanup.
pg_stat_monitor is a bit longer; therefore, it requires some code cleanup. Therefore I decided to turn these tasks into multiple commits and PR to avoid various changes in one PR. This will ease the review and Q/A process. In this commit, I have done these tasks. 1 - Remove all benchmarking and debugging code.
This commit is contained in:
@@ -455,79 +455,9 @@ static const struct config_enum_entry track_options[] =
|
||||
#define PGSM_EXTRACT_COMMENTS get_conf(13)->guc_variable
|
||||
#define PGSM_TRACK_PLANNING get_conf(14)->guc_variable
|
||||
|
||||
|
||||
/*---- Benchmarking ----*/
|
||||
#ifdef BENCHMARK
|
||||
/*
|
||||
* These enumerator values are used as index in the hook stats array.
|
||||
* STATS_START and STATS_END are used only to delimit the range.
|
||||
* STATS_END is also the length of the valid items in the enum.
|
||||
*/
|
||||
enum pg_hook_stats_id
|
||||
{
|
||||
STATS_START = -1,
|
||||
STATS_PGSS_POST_PARSE_ANALYZE,
|
||||
STATS_PGSS_EXECUTORSTART,
|
||||
STATS_PGSS_EXECUTORUN,
|
||||
STATS_PGSS_EXECUTORFINISH,
|
||||
STATS_PGSS_EXECUTOREND,
|
||||
STATS_PGSS_PROCESSUTILITY,
|
||||
#if PG_VERSION_NUM >= 130000
|
||||
STATS_PGSS_PLANNER_HOOK,
|
||||
#endif
|
||||
STATS_PGSM_EMIT_LOG_HOOK,
|
||||
STATS_PGSS_EXECUTORCHECKPERMS,
|
||||
STATS_END
|
||||
};
|
||||
|
||||
/* Hold time to execute statistics for a hook. */
|
||||
struct pg_hook_stats_t
|
||||
{
|
||||
char hook_name[64];
|
||||
double min_time;
|
||||
double max_time;
|
||||
double total_time;
|
||||
uint64 ncalls;
|
||||
};
|
||||
|
||||
#define HOOK_STATS_SIZE MAXALIGN((size_t)STATS_END * sizeof(struct pg_hook_stats_t))
|
||||
|
||||
/* Allocate a pg_hook_stats_t array of size HOOK_STATS_SIZE on shared memory. */
|
||||
void init_hook_stats(void);
|
||||
|
||||
/* Update hook time execution statistics. */
|
||||
void update_hook_stats(enum pg_hook_stats_id hook_id, double time_elapsed);
|
||||
|
||||
/*
|
||||
* Macro used to declare a hook function:
|
||||
* Example:
|
||||
* DECLARE_HOOK(void my_hook, const char *query, size_t length);
|
||||
* Will expand to:
|
||||
* static void my_hook(const char *query, size_t length);
|
||||
* static void my_hook_benchmark(const char *query, size_t length);
|
||||
*/
|
||||
#define DECLARE_HOOK(hook, ...) \
|
||||
static hook(__VA_ARGS__); \
|
||||
static hook##_benchmark(__VA_ARGS__);
|
||||
|
||||
/*
|
||||
* Macro used to wrap a hook when pg_stat_monitor is compiled with -DBENCHMARK.
|
||||
*
|
||||
* It is intended to be used as follows in _PG_init():
|
||||
* pg_hook_function = HOOK(my_hook_function);
|
||||
* Then, if pg_stat_monitor is compiled with -DBENCHMARK this will expand to:
|
||||
* pg_hook_name = my_hook_function_benchmark;
|
||||
* Otherwise it will simple expand to:
|
||||
* pg_hook_name = my_hook_function;
|
||||
*/
|
||||
#define HOOK(name) name##_benchmark
|
||||
|
||||
#else /* #ifdef BENCHMARK */
|
||||
|
||||
#define DECLARE_HOOK(hook, ...) \
|
||||
static hook(__VA_ARGS__);
|
||||
#define HOOK(name) name
|
||||
#define HOOK_STATS_SIZE 0
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user