سجل جلسة PostgreSQL النشط - امتداد pgsentinel الجديد

شركة com.pgsentinel صدر امتداد pgsentinel بنفس الاسم (مستودع جيثب) ، والذي يضيف طريقة العرض pg_active_session_history إلى PostgreSQL - تاريخ الجلسات النشطة (على غرار Oracle's v $ active_session_history).

في الواقع ، هذه ليست سوى لقطات كل ثانية من pg_stat_activity ، ولكن هناك نقاط مهمة:

  1. يتم تخزين جميع المعلومات المتراكمة في ذاكرة الوصول العشوائي فقط ، ويتم تنظيم مقدار الذاكرة المستهلكة من خلال عدد السجلات المخزنة الأخيرة.
  2. تمت إضافة حقل معرّف الاستعلام - نفس معرّف الاستعلام من الامتداد pg_stat_statements (يلزم التثبيت المسبق).
  3. تمت إضافة حقل top_level_query - نص الاستعلام الذي تم استدعاء الاستعلام الحالي منه (في حالة استخدام pl / pgsql)


قائمة كاملة بالحقول pg_active_session_history:

      العمود | اكتب ------------------ + -------------------------- ash_time | الطابع الزمني مع المنطقة الزمنية مؤرخة | اسم بيانات oid | معرف النص | عدد صحيح يستخدم معرف | اسم مستخدم oid | نص application_name | client_addr نصي | أرسل client_hostname | client_port نصي | عدد صحيح backend_start | الطابع الزمني بالمنطقة الزمنية xact_start | الطابع الزمني مع استعلام المنطقة الزمنية | الطابع الزمني مع المنطقة الزمنية state_change | الطابع الزمني مع المنطقة الزمنية wait_event_type | نص wait_event | حالة النص | backend_xid للنص | xid backend_xmin | xid top_level_query | استعلام نصي | معرّف الاستعلام النصي | bigint backend_type | نص                     

لا توجد حزمة جاهزة للتثبيت بعد. يُقترح تنزيل الكود المصدري وبناء المكتبة بنفسك. تحتاج أولاً إلى تثبيت حزمة "devel" لخادمك وتعيين المسار إلى pg_config في متغير PATH. نجمعها:

قرص مضغوط 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 (يمكنك تنزيل الثنائيات المجمعة في القسم النشرات).

عند بدء التشغيل ، يتحقق PASH-Viewer (بدءًا من الإصدار 0.4.0) من وجود طريقة العرض pg_active_session_history ، وإذا كان موجودًا ، فإنه يقوم بتحميل السجل المتراكم بالكامل منه ويستمر في قراءة البيانات الواردة الجديدة ، وتحديث الرسم البياني كل 15 ثانية.

سجل جلسة PostgreSQL النشط - امتداد pgsentinel الجديد

المصدر: www.habr.com

إضافة تعليق