ฉันพยายามใช้สคริปต์ Nagios เพื่อตรวจสอบจำนวนการเชื่อมต่อฐานข้อมูลในฐานข้อมูล Postgres และฉันพบปัญหานี้: สิ่งเหล่านี้นับเป็นการเชื่อมต่อแบบเปิดในปัจจุบันและวัดทุกๆ 5 นาที
SELECT sum(numbackends) FROM pg_stat_database;
แต่ถึงกระนั้นก็ดูเหมือนว่าจะพลาดการเชื่อมต่อระยะสั้นจำนวนมากดังนั้นสถิติอยู่ไกลจากความเป็นจริง
ฉันพยายามเรียกใช้สคริปต์ด้วยตนเองและฉันสังเกตเห็นการเปลี่ยนแปลงครั้งใหญ่แม้ระหว่างการเชื่อมต่อสองครั้งทำให้ห่างจากกันไม่กี่วินาที
ฉันจะรับข้อมูลนี้ในวิธีที่เชื่อถือได้อย่างไร ชอบ max (connectios) ที่เกิดขึ้นในช่วงเวลาหนึ่ง
PgBouncer
หน้าอินสแตนซ์ PostgreSQL ของคุณมันจะจัดคิวการเชื่อมต่อเมื่อไม่ว่างแทนที่จะปฏิเสธพวกเขา (ใช่มันโง่ที่ PostgreSQL ไม่สามารถทำได้ด้วยตัวเอง แต่มันไม่ใช่การแก้ไขง่ายๆดูการสนทนาที่ไม่สิ้นสุดในรายชื่อผู้รับจดหมายที่รวมตัวกันในตัว)
log_connections
และlog_disconnections
) ใน logfile (เช่น csvlog) แล้วใช้ pgBadger หรือสิ่งที่คล้ายกันเพื่อแยกว่าจาก logfile หรือไม่