blob: f4aa635583ead15ae3464d73467bce5a0ab48f64 [file]
/* contrib/interconnect/interconnect--1.0.sql */
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
\echo Use "CREATE EXTENSION interconnect" to load this file. \quit
CREATE FUNCTION __gp_interconnect_get_stats_f_on_master(
OUT gp_segment_id smallint,
OUT total_recv_queue_size bigint,
OUT recv_queue_conting_time bigint,
OUT total_capacity bigint,
OUT capacity_counting_time bigint,
OUT total_buffers bigint,
OUT buffer_counting_time bigint,
OUT retransmits bigint,
OUT startup_cached_pkts bigint,
OUT mismatches bigint,
OUT crs_errors bigint,
OUT snd_pkt_num bigint,
OUT recv_pkt_num bigint,
OUT disordered_pkt_num bigint,
OUT duplicate_pkt_num bigint,
OUT recv_ack_num bigint,
OUT status_query_msg_num bigint
)
RETURNS SETOF record
LANGUAGE C VOLATILE EXECUTE ON MASTER
AS '$libdir/interconnect', 'gp_interconnect_get_stats';
CREATE FUNCTION __gp_interconnect_get_stats_f_on_segments(
OUT gp_segment_id smallint,
OUT total_recv_queue_size bigint,
OUT recv_queue_conting_time bigint,
OUT total_capacity bigint,
OUT capacity_counting_time bigint,
OUT total_buffers bigint,
OUT buffer_counting_time bigint,
OUT retransmits bigint,
OUT startup_cached_pkts bigint,
OUT mismatches bigint,
OUT crs_errors bigint,
OUT snd_pkt_num bigint,
OUT recv_pkt_num bigint,
OUT disordered_pkt_num bigint,
OUT duplicate_pkt_num bigint,
OUT recv_ack_num bigint,
OUT status_query_msg_num bigint
)
RETURNS SETOF record LANGUAGE C VOLATILE EXECUTE ON ALL SEGMENTS
AS '$libdir/interconnect', 'gp_interconnect_get_stats';
-- Cummulative interconnect statistics per segment
CREATE VIEW gp_interconnect_stats_per_segment AS
SELECT c.hostname, s.* FROM (
SELECT * FROM __gp_interconnect_get_stats_f_on_master()
UNION ALL
SELECT * FROM __gp_interconnect_get_stats_f_on_segments()
) s
JOIN pg_catalog.gp_segment_configuration AS c
ON s.gp_segment_id = c.content AND c.role = 'p';
GRANT SELECT ON gp_interconnect_stats_per_segment TO public;
-- Cummulative interconnect statistics
CREATE VIEW gp_interconnect_stats AS
SELECT
sum(total_recv_queue_size) as total_recv_queue_size
, sum(recv_queue_conting_time) as recv_queue_conting_time
, sum(total_capacity) as total_capacity
, sum(capacity_counting_time) as capacity_counting_time
, sum(total_buffers) as total_buffers
, sum(buffer_counting_time) as buffer_counting_time
, sum(retransmits) as retransmits
, sum(startup_cached_pkts) as startup_cached_pkts
, sum(mismatches) as mismatches
, sum(crs_errors) as crs_errors
, sum(snd_pkt_num) as snd_pkt_num
, sum(recv_pkt_num) as recv_pkt_num
, sum(disordered_pkt_num) as disordered_pkt_num
, sum(duplicate_pkt_num) as duplicate_pkt_num
, sum(recv_ack_num) as recv_ack_num
, sum(status_query_msg_num) as status_query_msg_num
FROM gp_interconnect_stats_per_segment;
GRANT SELECT ON gp_interconnect_stats TO public;
-- Cummulative interconnect statistics grouped by host
CREATE VIEW gp_interconnect_stats_per_host AS
SELECT
hostname
, sum(total_recv_queue_size) as total_recv_queue_size
, sum(recv_queue_conting_time) as recv_queue_conting_time
, sum(total_capacity) as total_capacity
, sum(capacity_counting_time) as capacity_counting_time
, sum(total_buffers) as total_buffers
, sum(buffer_counting_time) as buffer_counting_time
, sum(retransmits) as retransmits
, sum(startup_cached_pkts) as startup_cached_pkts
, sum(mismatches) as mismatches
, sum(crs_errors) as crs_errors
, sum(snd_pkt_num) as snd_pkt_num
, sum(recv_pkt_num) as recv_pkt_num
, sum(disordered_pkt_num) as disordered_pkt_num
, sum(duplicate_pkt_num) as duplicate_pkt_num
, sum(recv_ack_num) as recv_ack_num
, sum(status_query_msg_num) as status_query_msg_num
FROM gp_interconnect_stats_per_segment
GROUP BY hostname;
GRANT SELECT ON gp_interconnect_stats_per_host TO public;