شرکت
در واقع، اینها فقط هر ثانیه عکس فوری از pg_stat_activity هستند، اما نکات مهمی وجود دارد:
- تمام اطلاعات انباشته شده فقط در RAM ذخیره می شود و میزان حافظه مصرفی با تعداد آخرین رکوردهای ذخیره شده تنظیم می شود.
- فیلد queryid اضافه شده است - همان queryid از پسوند pg_stat_statements (پیش نصب لازم است).
- فیلد 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-Viewer (از نسخه 0.4.0 شروع می شود) وجود نمای pg_active_session_history را بررسی می کند و در صورت وجود، کل تاریخچه انباشته شده را از آن بارگیری می کند و به خواندن داده های ورودی جدید ادامه می دهد و نمودار را هر 15 ثانیه به روز می کند.
منبع: www.habr.com