-
Notifications
You must be signed in to change notification settings - Fork 25
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update system_stats.control to 3.0 (#34)
- Loading branch information
Showing
3 changed files
with
221 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
-- No function has changed |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,219 @@ | ||
/* system statistics extension */ | ||
|
||
-- complain if script is sourced in psql, rather than via CREATE EXTENSION | ||
\echo Use "CREATE EXTENSION system_stats" to load this file. \quit | ||
|
||
-- role to be assigned while executing functions of system stats | ||
-- before creating role, check the role exists or not. It may possible | ||
-- that user want to create extension in multiple database of same server | ||
DO $$ | ||
BEGIN | ||
IF NOT EXISTS (SELECT 1 FROM pg_roles WHERE rolname = 'monitor_system_stats') THEN | ||
CREATE ROLE monitor_system_stats WITH | ||
NOLOGIN | ||
NOSUPERUSER | ||
NOCREATEDB | ||
NOCREATEROLE | ||
INHERIT | ||
NOREPLICATION | ||
CONNECTION LIMIT -1; | ||
END IF; | ||
END | ||
$$; | ||
|
||
-- Operating system information function | ||
CREATE FUNCTION pg_sys_os_info( | ||
OUT name text, | ||
OUT version text, | ||
OUT host_name text, | ||
OUT domain_name text, | ||
OUT handle_count int, | ||
OUT process_count int, | ||
OUT thread_count int, | ||
OUT architecture text, | ||
OUT last_bootup_time text, | ||
OUT os_up_since_seconds int | ||
) | ||
RETURNS SETOF record | ||
AS 'MODULE_PATHNAME' | ||
LANGUAGE C; | ||
|
||
REVOKE ALL ON FUNCTION pg_sys_os_info() FROM PUBLIC; | ||
GRANT EXECUTE ON FUNCTION pg_sys_os_info() TO monitor_system_stats; | ||
|
||
-- System CPU information function | ||
CREATE FUNCTION pg_sys_cpu_info( | ||
OUT vendor text, | ||
OUT description text, | ||
OUT model_name text, | ||
OUT processor_type int, | ||
OUT logical_processor int, | ||
OUT physical_processor int, | ||
OUT no_of_cores int, | ||
OUT architecture text, | ||
OUT clock_speed_hz int8, | ||
OUT cpu_type text, | ||
OUT cpu_family text, | ||
OUT byte_order text, | ||
OUT l1dcache_size int, | ||
OUT l1icache_size int, | ||
OUT l2cache_size int, | ||
OUT l3cache_size int | ||
) | ||
RETURNS SETOF record | ||
AS 'MODULE_PATHNAME' | ||
LANGUAGE C; | ||
|
||
REVOKE ALL ON FUNCTION pg_sys_cpu_info() FROM PUBLIC; | ||
GRANT EXECUTE ON FUNCTION pg_sys_cpu_info() TO monitor_system_stats; | ||
|
||
-- Memory information function | ||
CREATE FUNCTION pg_sys_memory_info( | ||
OUT total_memory int8, | ||
OUT used_memory int8, | ||
OUT free_memory int8, | ||
OUT swap_total int8, | ||
OUT swap_used int8, | ||
OUT swap_free int8, | ||
OUT cache_total int8, | ||
OUT kernel_total int8, | ||
OUT kernel_paged int8, | ||
OUT kernel_non_paged int8, | ||
OUT total_page_file int8, | ||
OUT avail_page_file int8 | ||
) | ||
RETURNS SETOF record | ||
AS 'MODULE_PATHNAME' | ||
LANGUAGE C; | ||
|
||
REVOKE ALL ON FUNCTION pg_sys_memory_info() FROM PUBLIC; | ||
GRANT EXECUTE ON FUNCTION pg_sys_memory_info() TO monitor_system_stats; | ||
|
||
-- Load average information function | ||
CREATE FUNCTION pg_sys_load_avg_info( | ||
OUT load_avg_one_minute float4, | ||
OUT load_avg_five_minutes float4, | ||
OUT load_avg_ten_minutes float4, | ||
OUT load_avg_fifteen_minutes float4 | ||
) | ||
RETURNS SETOF record | ||
AS 'MODULE_PATHNAME' | ||
LANGUAGE C; | ||
|
||
REVOKE ALL ON FUNCTION pg_sys_load_avg_info() FROM PUBLIC; | ||
GRANT EXECUTE ON FUNCTION pg_sys_load_avg_info() TO monitor_system_stats; | ||
|
||
-- network information function | ||
CREATE FUNCTION pg_sys_network_info( | ||
OUT interface_name text, | ||
OUT ip_address text, | ||
OUT tx_bytes int8, | ||
OUT tx_packets int8, | ||
OUT tx_errors int8, | ||
OUT tx_dropped int8, | ||
OUT rx_bytes int8, | ||
OUT rx_packets int8, | ||
OUT rx_errors int8, | ||
OUT rx_dropped int8, | ||
OUT link_speed_mbps int | ||
) | ||
RETURNS SETOF record | ||
AS 'MODULE_PATHNAME' | ||
LANGUAGE C; | ||
|
||
REVOKE ALL ON FUNCTION pg_sys_network_info() FROM PUBLIC; | ||
GRANT EXECUTE ON FUNCTION pg_sys_network_info() TO monitor_system_stats; | ||
|
||
-- CPU and memory information by process id or name | ||
CREATE FUNCTION pg_sys_cpu_memory_by_process( | ||
OUT pid int, | ||
OUT name text, | ||
OUT running_since_seconds int8, | ||
OUT cpu_usage float4, | ||
OUT memory_usage float4, | ||
OUT memory_bytes int8 | ||
) | ||
RETURNS SETOF record | ||
AS 'MODULE_PATHNAME' | ||
LANGUAGE C; | ||
|
||
REVOKE ALL ON FUNCTION pg_sys_cpu_memory_by_process() FROM PUBLIC; | ||
GRANT EXECUTE ON FUNCTION pg_sys_cpu_memory_by_process() TO monitor_system_stats; | ||
|
||
-- Disk information function | ||
CREATE FUNCTION pg_sys_disk_info( | ||
OUT mount_point text, | ||
OUT file_system text, | ||
OUT drive_letter text, | ||
OUT drive_type int, | ||
OUT file_system_type text, | ||
OUT total_space int8, | ||
OUT used_space int8, | ||
OUT free_space int8, | ||
OUT total_inodes int8, | ||
OUT used_inodes int8, | ||
OUT free_inodes int8 | ||
) | ||
RETURNS SETOF record | ||
AS 'MODULE_PATHNAME' | ||
LANGUAGE C; | ||
|
||
REVOKE ALL ON FUNCTION pg_sys_disk_info() FROM PUBLIC; | ||
GRANT EXECUTE ON FUNCTION pg_sys_disk_info() TO monitor_system_stats; | ||
|
||
-- process information function | ||
CREATE FUNCTION pg_sys_process_info( | ||
OUT total_processes int, | ||
OUT running_processes int, | ||
OUT sleeping_processes int, | ||
OUT stopped_processes int, | ||
OUT zombie_processes int | ||
) | ||
RETURNS SETOF record | ||
AS 'MODULE_PATHNAME' | ||
LANGUAGE C; | ||
|
||
REVOKE ALL ON FUNCTION pg_sys_process_info() FROM PUBLIC; | ||
GRANT EXECUTE ON FUNCTION pg_sys_process_info() TO monitor_system_stats; | ||
|
||
-- CPU usage information function | ||
-- This function will fetch the time spent in percentage by CPU in each mode | ||
-- as described by arguments | ||
CREATE FUNCTION pg_sys_cpu_usage_info( | ||
OUT usermode_normal_process_percent float4, | ||
OUT usermode_niced_process_percent float4, | ||
OUT kernelmode_process_percent float4, | ||
OUT idle_mode_percent float4, | ||
OUT IO_completion_percent float4, | ||
OUT servicing_irq_percent float4, | ||
OUT servicing_softirq_percent float4, | ||
OUT user_time_percent float4, | ||
OUT processor_time_percent float4, | ||
OUT privileged_time_percent float4, | ||
OUT interrupt_time_percent float4 | ||
) | ||
RETURNS SETOF record | ||
AS 'MODULE_PATHNAME' | ||
LANGUAGE C; | ||
|
||
REVOKE ALL ON FUNCTION pg_sys_cpu_usage_info() FROM PUBLIC; | ||
GRANT EXECUTE ON FUNCTION pg_sys_cpu_usage_info() TO monitor_system_stats; | ||
|
||
-- IO analysis information function | ||
CREATE FUNCTION pg_sys_io_analysis_info( | ||
OUT device_name text, | ||
OUT total_reads int8, | ||
OUT total_writes int8, | ||
OUT read_bytes int8, | ||
OUT write_bytes int8, | ||
OUT read_time_ms int8, | ||
OUT write_time_ms int8 | ||
) | ||
RETURNS SETOF record | ||
AS 'MODULE_PATHNAME' | ||
LANGUAGE C; | ||
|
||
REVOKE ALL ON FUNCTION pg_sys_io_analysis_info() FROM PUBLIC; | ||
GRANT EXECUTE ON FUNCTION pg_sys_io_analysis_info() TO monitor_system_stats; | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,5 @@ | ||
# system_stats extension | ||
comment = 'EnterpriseDB system statistics for PostgreSQL' | ||
default_version = '2.0' | ||
default_version = '3.0' | ||
module_pathname = '$libdir/system_stats' | ||
relocatable = true |