mirror of
https://github.com/postgres/postgres.git
synced 2025-10-13 18:28:01 +03:00
Add information of total data processed to replication slot stats.
This adds the statistics about total transactions count and total transaction data logically sent to the decoding output plugin from ReorderBuffer. Users can query the pg_stat_replication_slots view to check these stats. Suggested-by: Andres Freund Author: Vignesh C and Amit Kapila Reviewed-by: Sawada Masahiko, Amit Kapila Discussion: https://postgr.es/m/20210319185247.ldebgpdaxsowiflw@alap3.anarazel.de
This commit is contained in:
@@ -1775,21 +1775,20 @@ UpdateDecodingStats(LogicalDecodingContext *ctx)
|
||||
ReorderBuffer *rb = ctx->reorder;
|
||||
PgStat_ReplSlotStats repSlotStat;
|
||||
|
||||
/*
|
||||
* Nothing to do if we haven't spilled or streamed anything since the last
|
||||
* time the stats has been sent.
|
||||
*/
|
||||
if (rb->spillBytes <= 0 && rb->streamBytes <= 0)
|
||||
/* Nothing to do if we don't have any replication stats to be sent. */
|
||||
if (rb->spillBytes <= 0 && rb->streamBytes <= 0 && rb->totalBytes <= 0)
|
||||
return;
|
||||
|
||||
elog(DEBUG2, "UpdateDecodingStats: updating stats %p %lld %lld %lld %lld %lld %lld",
|
||||
elog(DEBUG2, "UpdateDecodingStats: updating stats %p %lld %lld %lld %lld %lld %lld %lld %lld",
|
||||
rb,
|
||||
(long long) rb->spillTxns,
|
||||
(long long) rb->spillCount,
|
||||
(long long) rb->spillBytes,
|
||||
(long long) rb->streamTxns,
|
||||
(long long) rb->streamCount,
|
||||
(long long) rb->streamBytes);
|
||||
(long long) rb->streamBytes,
|
||||
(long long) rb->totalTxns,
|
||||
(long long) rb->totalBytes);
|
||||
|
||||
namestrcpy(&repSlotStat.slotname, NameStr(ctx->slot->data.name));
|
||||
repSlotStat.spill_txns = rb->spillTxns;
|
||||
@@ -1798,12 +1797,17 @@ UpdateDecodingStats(LogicalDecodingContext *ctx)
|
||||
repSlotStat.stream_txns = rb->streamTxns;
|
||||
repSlotStat.stream_count = rb->streamCount;
|
||||
repSlotStat.stream_bytes = rb->streamBytes;
|
||||
repSlotStat.total_txns = rb->totalTxns;
|
||||
repSlotStat.total_bytes = rb->totalBytes;
|
||||
|
||||
pgstat_report_replslot(&repSlotStat);
|
||||
|
||||
rb->spillTxns = 0;
|
||||
rb->spillCount = 0;
|
||||
rb->spillBytes = 0;
|
||||
rb->streamTxns = 0;
|
||||
rb->streamCount = 0;
|
||||
rb->streamBytes = 0;
|
||||
rb->totalTxns = 0;
|
||||
rb->totalBytes = 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user