أصدرت
Pgsentinel امتداد
pgsentinel الذي يحمل نفس الاسم (
مستودع github ) ، والذي يضيف عرض pg_active_session_history إلى PostgreSQL - تاريخ الجلسات النشطة (على غرار Oracle v $ active_session_history).
في الواقع ، هذه ببساطة كل لقطة ثانية من pg_stat_activity ، ولكن هناك نقاط مهمة:
- يتم تخزين جميع المعلومات المتراكمة في ذاكرة الوصول العشوائي فقط ، ويحكم حجم الذاكرة المستهلكة بعدد آخر السجلات المخزنة.
- تمت إضافة حقل الاستعلام - نفس الاستعلام من ملحق pg_stat_statements (يلزم التثبيت الأولي).
- تمت إضافة حقل top_level_query - نص الاستعلام الذي تم استدعاء الاستعلام الحالي منه (في حالة استخدام pl / pgsql)
قائمة كاملة بحقول pg_active_session_history: العمود | اكتب ------------------ + -------------------------- ash_time | الطابع الزمني مع المنطقة الزمنية datid | oid datname | معرف النص | العدد الصحيح يستخدم sys | اسم المستخدم Oid | application_name النص text_addr العميل نص العميل نص_العميل | عدد صحيح backend_start | الطابع الزمني مع المنطقة الزمنية xact_start | الطابع الزمني مع المنطقة الزمنية query_start | الطابع الزمني مع المنطقة الزمنية state_change | الطابع الزمني مع المنطقة الزمنية wait_event_type | نص الانتظار _ حدث | حالة النص | backend_xid | xid backend_xmin | xid top_level_query | استعلام نصي | الاستعلام عن النص | نوع الخلفية الكبيرة نص
لا توجد حزمة جاهزة للتثبيت حتى الآن. يقترح تنزيل المصادر وبناء المكتبة بنفسك. أولاً ، تحتاج إلى تثبيت حزمة "devel" لخادمك وكتابة المسار إلى pg_config في متغير PATH. نجمع:
cd pgsentinel / src
اصنع
جعل التثبيت
أضف معلمات إلى postgres.conf:
Shared_preload_libraries = 'pg_stat_statements، pgsentinel'
track_activity_query_size = 2048
pg_stat_statements.track = الكل
# عدد الإدخالات الأخيرة المحفوظة في الذاكرة
pgsentinel_ash.max_entries = 10000
إعادة تشغيل PostgreSQL وإنشاء الامتداد:
إنشاء pgsentinel التمديد ؛
تتيح لك المعلومات المتراكمة الإجابة عن أسئلة مثل:
- ما التوقعات التي قضت الجلسات معظم الوقت فيها؟
- ما هي الجلسات الأكثر نشاطًا؟
- أي الاستفسارات كانت الأكثر نشاطًا؟
يمكنك بالطبع الحصول على إجابات لهذه الأسئلة باستخدام استعلامات SQL ، ولكن من الملائم أكثر رؤية ذلك بوضوح على الرسم البياني ، مع إبراز الفترات الزمنية باستخدام الماوس. يمكنك القيام بذلك باستخدام برنامج
PASH-Viewer المجاني (يمكنك تنزيل الثنائيات المجمعة في قسم
الإصدارات ).
عند بدء التشغيل ، يتحقق PASH-Viewer (بدءًا من الإصدار 0.4.0) من وجود عرض pg_active_session_history ، وإذا كان هناك واحد ، يقوم بتنزيل السجل المتراكم بأكمله منه ويستمر في قراءة البيانات الواردة الجديدة ، وتحديث الجدول الزمني كل 15 ثانية.
