mirror of
https://github.com/percona/pg_stat_monitor.git
synced 2026-02-04 14:06:20 +00:00
The pg_stat_monitor_errors view was created in order to help inspecting internal errors that may occur in pg_stat_monitor module itself, it contains the error message, its severity, the last time the error occurred and the number of times that any given error ocurred. Implementation details: - A new lwlock was added to the pgssSharedState structure in order to control access to the errors hash table. - Increased RequestNamedLWLockTranche() no. of locks requested to 2. - The function GetNamedLWLockTranche() returns an array of locks, we use the first lock for controlling access to the usual buckets hash table, and the second one to control access to the errors hash table. - During module initialization (_PG_init) we increased the amount of shared memory space requested to include space to the new errors hash table: RequestAddinShmemSpace(... + pgsm_errors_size()) - The implementation in pgsm_errors.c simple uses a hash table to track error messages, the message is also used as the key.
50 lines
1.6 KiB
Makefile
50 lines
1.6 KiB
Makefile
# contrib/pg_stat_monitor/Makefile
|
|
|
|
MODULE_big = pg_stat_monitor
|
|
OBJS = hash_query.o guc.o pgsm_errors.o pg_stat_monitor.o $(WIN32RES)
|
|
|
|
EXTENSION = pg_stat_monitor
|
|
DATA = pg_stat_monitor--1.0.sql
|
|
|
|
PGFILEDESC = "pg_stat_monitor - execution statistics of SQL statements"
|
|
|
|
LDFLAGS_SL += $(filter -lm, $(LIBS))
|
|
|
|
REGRESS_OPTS = --temp-config $(top_srcdir)/contrib/pg_stat_monitor/pg_stat_monitor.conf --inputdir=regression
|
|
REGRESS = basic version guc counters relations database top_query application_name cmd_type error state rows tags
|
|
|
|
# Disabled because these tests require "shared_preload_libraries=pg_stat_statements",
|
|
# which typical installcheck users do not have (e.g. buildfarm clients).
|
|
# NO_INSTALLCHECK = 1
|
|
|
|
|
|
PG_CONFIG = pg_config
|
|
PG_VERSION := $(shell pg_config --version | awk {'print $$1 $$2'})
|
|
MAJOR := $(shell echo $(PG_VERSION) | sed -e 's/\.[^./]*$$//')
|
|
|
|
ifneq (,$(findstring PostgreSQL14,$(MAJOR)))
|
|
CP := $(shell cp pg_stat_monitor--1.0.14.sql.in pg_stat_monitor--1.0.sql)
|
|
endif
|
|
|
|
ifneq (,$(findstring PostgreSQL13,$(MAJOR)))
|
|
CP := $(shell cp pg_stat_monitor--1.0.13.sql.in pg_stat_monitor--1.0.sql)
|
|
endif
|
|
|
|
ifneq (,$(findstring PostgreSQL12,$(MAJOR)))
|
|
CP := $(shell cp pg_stat_monitor--1.0.sql.in pg_stat_monitor--1.0.sql)
|
|
endif
|
|
|
|
ifneq (,$(findstring PostgreSQL11,$(MAJOR)))
|
|
CP := $(shell cp pg_stat_monitor--1.0.sql.in pg_stat_monitor--1.0.sql)
|
|
endif
|
|
|
|
ifdef USE_PGXS
|
|
PGXS := $(shell $(PG_CONFIG) --pgxs)
|
|
include $(PGXS)
|
|
else
|
|
subdir = contrib/pg_stat_monitor
|
|
top_builddir = ../..
|
|
include $(top_builddir)/src/Makefile.global
|
|
include $(top_srcdir)/contrib/contrib-global.mk
|
|
endif
|