تاریخچه جلسه فعال PostgreSQL - پسوند جدید pgsentinel

شرکت pgsentinel پسوند pgsentinel با همین نام منتشر شد (مخزن github)، که نمای pg_active_session_history را به PostgreSQL - تاریخچه جلسات فعال (مشابه v$active_session_history اوراکل) اضافه می کند.

در واقع، اینها فقط هر ثانیه عکس فوری از pg_stat_activity هستند، اما نکات مهمی وجود دارد:

  1. تمام اطلاعات انباشته شده فقط در RAM ذخیره می شود و میزان حافظه مصرفی با تعداد آخرین رکوردهای ذخیره شده تنظیم می شود.
  2. فیلد queryid اضافه شده است - همان queryid از پسوند pg_stat_statements (پیش نصب لازم است).
  3. فیلد top_level_query اضافه می شود - متن پرس و جو که پرس و جو فعلی از آن فراخوانی شده است (در مورد استفاده از pl/pgsql)


لیست کامل فیلدهای pg_active_session_history:

      ستون | نوع --------------------------------------------- ash_time | مهر زمانی با تاریخ منطقه زمانی | نام داده oid | متن pid | عدد صحیح useysid | نام کاربری oid | متن برنامه_نام | text client_addr | متن client_hostname | text client_port | عدد صحیح backend_start | مهر زمانی با منطقه زمانی xact_start | مهر زمانی با منطقه زمانی query_start | مهر زمانی با منطقه زمانی state_change | مهر زمانی با منطقه زمانی wait_event_type | متن انتظار_رویداد | حالت متن | متن 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

اضافه کردن نظر