diff --git a/src/backend/postmaster/pgstat.c b/src/backend/postmaster/pgstat.c
index 01273e193405a19b4e229810c8635c2f6e791ef9..cb4377708302f4a407a48b6ca448c805c3700e3d 100644
--- a/src/backend/postmaster/pgstat.c
+++ b/src/backend/postmaster/pgstat.c
@@ -3107,7 +3107,12 @@ PgstatCollectorMain(int argc, char *argv[])
 			 * satisfied by existing file.
 			 */
 			if (last_statwrite < last_statrequest)
+			{
+				elog(LOG, "pgstat: writing new stats file");
 				pgstat_write_statsfile(false);
+			}
+
+			elog(LOG, "pgstat: attempting recv()");
 
 			/*
 			 * Try to receive and process a message.  This will not block,
@@ -3124,6 +3129,9 @@ PgstatCollectorMain(int argc, char *argv[])
 						 errmsg("could not read statistics message: %m")));
 			}
 
+			elog(LOG, "pgstat: received msg type %d len %d",
+				 msg.msg_hdr.m_type, len);
+
 			/*
 			 * We ignore messages that are smaller than our common header
 			 */
@@ -3218,12 +3226,16 @@ PgstatCollectorMain(int argc, char *argv[])
 			}
 		}						/* end of inner message-processing loop */
 
+		elog(LOG, "pgstat: waiting");
+
 		/* Sleep until there's something to do */
 		wr = WaitLatchOrSocket(&pgStatLatch,
 							   WL_LATCH_SET | WL_POSTMASTER_DEATH | WL_SOCKET_READABLE,
 							   pgStatSock,
 							   -1L);
 
+		elog(LOG, "pgstat: wait result 0x%x", wr);
+
 		/*
 		 * Emergency bailout if postmaster has died.  This is to avoid the
 		 * necessity for manual cleanup of all postmaster children.
@@ -4006,7 +4018,15 @@ static void
 pgstat_recv_inquiry(PgStat_MsgInquiry *msg, int len)
 {
 	if (msg->inquiry_time > last_statrequest)
+	{
 		last_statrequest = msg->inquiry_time;
+		if (last_statwrite < last_statrequest)
+			elog(LOG, "pgstat: received new inquiry message");
+		else
+			elog(LOG, "pgstat: received stale inquiry message");
+	}
+	else
+		elog(LOG, "pgstat: received out-of-order inquiry message");
 }