PMLOGGER(1) General Commands Manual PMLOGGER(1)

pmlogger - ایجاد یک بایگانی برای معیارهای کارایی

pmlogger [-CLNoPruy?] [-c conffile] [-D debug] [-d directory] [-h host] [-H hostname] [-I version] [-K spec] [-l logfile] [-m note] [-n pmnsfile] [-p pid] [-s endsize] [-t interval] [-T endtime] [-U username] [-v volsize] [-V version] [-x fd] [archive]

دستور pmlogger بایگانی‌هایی از مقادیر معیارهای کارایی ایجاد می‌کند که می‌توانند توسط سایر ابزارهای Performance Co-Pilot (ببینید PCPIntro(1)) «بازپخش» شوند. این گزارش‌ها مبنای الگوی VCR و خدمات تحلیل گذشته‌نگر کارایی را که در جعبه‌ابزار PCP رایج است، تشکیل می‌دهند.

آرگومان اجباری archive یا نام پایه برای فایل‌های فیزیکی تشکیل‌دهندهٔ یک بایگانی در فایل‌سیستم محلی است، یا کارساز HTTP راه دور که داده‌های ثبت‌شده را دریافت خواهد کرد.

آرگومان archive محلی ممکن است شامل نویسه‌های فرامعنایی strftime(3) باشد که پیش از ایجاد فایل‌های بایگانی جایگزین خواهند شد. هنگامی که pmlogger به‌عنوان یک سرویس اجرا می‌شود (ببینید pmlogger_daily(1))، الگوی استاندارد نام پایهٔ بایگانی %Y%m%d.%H.%M است.

حالت راه دور archive مکان کارساز pmproxy(1) را مشخص می‌کند که اجزای بایگانی هم‌زمان با تولید شدن توسط pmlogger، به آن ارسال می‌شوند. مقدار ارائه‌شده باید شامل پروتکل، نام میزبان و درگاه اختیاری باشد، مانند http://example.com:44322. این کارساز pmproxy یک نام بایگانی را بر اساس زمان شروع انتخاب خواهد کرد، به شیوه‌ای مشابه با مدلی که به‌طور پیش‌فرض در pmlogger_check(1) استفاده می‌شود.

گزینهٔ -V نسخهٔ بایگانی تولیدشده را مشخص می‌کند. به‌طور پیش‌فرض نسخهٔ بایگانی $PCP_ARCHIVE_VERSION (که در انتشار‌های کنونی PCP روی 3 تنظیم شده است) استفاده می‌شود، و تنها مقادیری که در حال حاضر برای version پشتیبانی می‌شوند 2 یا 3 هستند.

مگر اینکه توسط گزینهٔ -h به میزبان دیگری هدایت شود، یا هنگام استفادهٔ مستقیم از PMDAها از طریق گزینهٔ -o، دستور pmlogger با دیمن جمع‌آوری معیارهای کارایی (PMCD) در میزبان محلی ارتباط برقرار کرده و از آن به‌عنوان منبع مقادیر معیارهایی که باید ثبت شوند استفاده می‌کند.

برای پشتیبانی از انعطاف‌پذیری و واپایش مورد نیاز بر آنچه که ثبت می‌شود و زمان آن، pmlogger یک وضعیت ثبت دو سطحی مستقل را برای هر نمونه از هر معیار کارایی نگهداری می‌کند. در سطح اول (اجباری)، ثبت می‌تواند on (با یک بازه زمانی مرتبط میان نمونه‌ها)، یا off یا maybe باشد. در حالت آخر، ثبت سطح دوم (مشاوره‌ای) می‌تواند on (با یک بازه زمانی مرتبط میان نمونه‌ها)، یا off باشد.

سطح اجباری امکان مشخص کردن سراسری این را فراهم می‌کند که برخی معیارها باید ثبت شوند یا نباید ثبت شوند. وضعیت پیش‌فرض برای تمام نمونه‌های همهٔ معیارها هنگامی که pmlogger شروع به کار می‌کند، اجباری maybe و مشاوره‌ای off است.

برای پرس‌وجو و تغییر وضعیت ثبت پس از اجرای pmlogger، از pmlc(1) استفاده کنید.

اگر وضعیت یک معیار اجباری (on یا off) باشد و درخواستی برای تغییر آن به اجباری maybe داده شود، وضعیت جدید اجباری maybe و مشاوره‌ای off خواهد بود. اگر وضعیت یک معیار از قبل مشاوره‌ای (on یا off) باشد و درخواستی برای تغییر آن به اجباری maybe داده شود، وضعیت فعلی حفظ می‌شود.

برای pmlogger امکان‌پذیر نیست که نمونه‌های خاصی از یک معیار و تمام نمونه‌های همان معیار را به‌طور هم‌زمان ثبت کند. اگر نمونه‌های خاصی در حال ثبت باشند و درخواستی برای ثبت تمام نمونه‌ها داده شود، آنگاه تمام نمونه‌های آن معیار بر اساس درخواست جدید ثبت خواهند شد و جایگزین هر درخواست ثبت پیشین برای آن معیار می‌شوند. درخواستی برای ثبت تمام نمونه‌های یک معیار، جایگزین هر درخواست پیشین برای ثبت تمام نمونه‌ها خواهد شد. درخواست ثبت نمونه‌های خاصی از یک معیار هنگامی که تمام نمونه‌ها از قبل در حال ثبت هستند رد می‌شود. برای انجام این کار، ابتدا باید ثبت برای تمام نمونه‌های معیار خاموش شود. در هر مورد، ابتدا معتبر بودن درخواست بررسی می‌شود؛ برای نمونه، درخواستی برای تغییر وضعیت ثبت یک معیار به مشاوره‌ای on هنگامی که در حال حاضر اجباری off است هرگز مجاز نیست (لازم است ابتدا وضعیت به اجباری maybe تغییر داده شود).

به‌صورت اختیاری، هر سامانه‌ای که pmcd(1) را اجرا می‌کند می‌تواند برای اجرای یک نمونهٔ «اصلی» از pmlogger نیز پیکربندی شود. این نمونهٔ pmlogger توسط $PCP_RC_DIR/pmlogger راه‌اندازی می‌شود و تحت تأثیر فایل‌های زیر است: $PCP_SYSCONF_DIR/pmlogger/control، $PCP_SYSCONF_DIR/pmlogger/control.d/* (از chkconfig(8)، systemctl(1) یا دستورهای مشابه ویژهٔ سکو برای فعال یا غیرفعال کردن نمونهٔ اصلی pmlogger استفاده کنید)، $PCP_SYSCONFIG_DIR/pmlogger (تنظیمات متغیرهای محیطی برای pmlogger اصلی)، $PCP_SYSCONF_DIR/pmlogger/pmlogger.options (گزینه‌های خط فرمان ارسال‌شده به pmlogger اصلی) و $PCP_VAR_DIR/config/pmlogger/config.default (فایل پیکربندی اولیهٔ پیش‌فرض برای pmlogger اصلی)..PP نمونهٔ اصلی pmlogger با گزینهٔ -P مشخص می‌شود. روی هر سیستم حداکثر یک نمونهٔ «اصلی» pmlogger می‌تواند وجود داشته باشد. نمونهٔ اصلی pmlogger (در صورت وجود) باید روی همان میزبانی اجرا شود که pmcd(1) متصل به آن (در صورت وجود) در حال اجراست، بنابراین گزینه‌های -h و -P مانعة‌الجمع هستند.

ثبت وقایع برخی معیارها حتی در غیاب یک pmcd(1) محلی، با استفاده از حالت عملیاتی «بافت محلی» (local context) امکان‌پذیر است. این حالت با استفاده از گزینهٔ -o فعال می‌شود و باعث می‌شود pmlogger به‌جای برقراری ارتباط با pmcd(1) از PMDAهای DSO محلی استفاده کند. هنگام کار با استفاده از یک بافت محلی، گزینهٔ -K می‌تواند برای کنترل PMDAهای DSO که باید در دسترس قرار گیرند، استفاده شود. آرگومان spec از ساختار نحوی توصیف‌شده در pmSpecLocalPMDA(3) پیروی می‌کند. می‌توان بیش از یک گزینهٔ -K را استفاده کرد.

هنگامی که pmlogger به عنوان یک نمونهٔ غیراصلی راه‌اندازی می‌شود، چنانچه فایل پیکربندی باعث شود هیچ ثبت معیاری زمان‌بندی نشود، بلافاصله خارج خواهد شد. گزینهٔ -L این رفتار را لغو می‌کند و باعث می‌شود یک نمونهٔ غیراصلی pmlogger «معلق» بماند، که احتمالاً در انتظار بازپیکربندی پویای آتی و تغییر وضعیت از طریق pmlc(1) خواهد بود. همچنین اگر تمام معیارهای ثبت‌شونده به عنوان معیارهای فقط یک‌باره ثبت شوند، pmlogger بدون استفاده از گزینهٔ -L نیز معلق خواهد ماند. پس از ثبت معیارهای فقط یک‌باره، یک پیام هشدار مبنی بر خالی بودن صف رویدادها و عدم زمان‌بندی رویدادهای بیشتر تولید خواهد شد.

به‌طور پیش‌فرض، تمام پیام‌های عیب‌یابی و خطاهای pmlogger در فایل pmlogger.log در دایرکتوری محل اجرای pmlogger نوشته می‌شوند. گزینهٔ -l می‌تواند برای لغو رفتار پیش‌فرض استفاده شود. اگر فایل گزارش ایجاد نشود یا قابل نوشتن نباشد، خروجی به‌جای آن در خطای استاندارد نوشته می‌شود. اگر logfile برای گزینهٔ -l برابر با «-» باشد (یعنی -l-)، پیام‌های گزارش در جریان خروجی استاندارد نوشته می‌شوند. این ویژگی به‌ویژه زمانی که pmlogger به‌صورت دستی و نه به عنوان یک دیمن سرویس اجرا می‌شود، مفید است.

گزینهٔ -N به pmlogger دستور می‌دهد تا پس از شروع به کار و در آستانهٔ آغاز نوشتن بایگانی‌های PCP، به یک مدیر سرویس (معمولاً systemd(1)) اطلاع دهد. این گزینه معمولاً تنها زمانی استفاده می‌شود که pmlogger به عنوان یک سرویس دیمن تحت کنترل یک مدیر سرویس اجرا شده باشد. برای جزئیات بیشتر، __pmServerNotifyServiceManagerReady(3) و systemd(1) را ببینید. در پلتفرم‌هایی که از مدیر سرویس با قابلیت پشتیبانی از اعلان‌ها استفاده نمی‌کنند، گزینهٔ -N اساساً بی‌اثر (no-op) است.

در صورت مشخص شدن، گزینهٔ -s به pmlogger دستور می‌دهد پس از جمع‌آوری حجم معینی بر حسب رکورد، بایت یا واحدهای زمانی خاتمه یابد. اگر endsize یک عدد صحیح باشد، آن‌گاه به تعداد endsize رکورد در بایگانی نوشته خواهد شد. اگر endsize یک عدد صحیح همراه با پسوند b یا bytes باشد، آن‌گاه به میزان endsize بایت از داده‌های بایگانی نوشته خواهد شد (البته توجه داشته باشید که مرزهای رکوردهای بایگانی شکسته نخواهد شد و بنابراین ممکن است این حد اندکی فراتر رود). سایر واحدهای اندازهٔ فایل معتبر عبارتند از: K، Kb، KiB، Kbyte، Kilobyte برای کیلوبایت و M، Mb، MiB، Mbyte، Megabyte برای مگابایت و G، Gb، GiB، Gbyte، Gigabyte برای گیگابایت. این واحدها می‌توانند به‌طور اختیاری دارای پسوند s باشند و حساس به بزرگ و کوچک بودن حروف نیستند. همچنین endsize می‌تواند یک عدد صحیح یا ممیز شناور همراه با پسوند واحد زمان باشد، همان‌گونه که در PCPIntro(1) برای آرگومان interval (مربوط به گزینهٔ استاندارد خط فرمان PCP -t) توصیف شده است.

چند مثال از قالب‌های مختلف:
-s 100
-s 100bytes
-s 100K
-s 100Mb
-s 10Gbyte
-s 10mins
-s 1.5hours

حالت پیش‌فرض این است که pmlogger برای همیشه اجرا شود.

گزینهٔ -r باعث می‌شود اندازهٔ رکورد(های) فیزیکی برای هر گروه از معیارها و سهم مورد انتظار آن گروه در اندازهٔ بایگانی PCP برای یک روز کامل جمع‌آوری، در فایل گزارش درج شود. این اطلاعات نخستین باری که هر گروه با موفقیت در بایگانی نوشته شود، گزارش می‌گردد..PP گزینه -U حساب کاربری‌ای را مشخص می‌کند که pmlogger تحت آن اجرا شود. پیش‌فرض برای استفاده تعاملی، حساب کاربری فعلی است. هنگامی که به عنوان دیمن (daemon) اجرا می‌شود، در نسخه‌های کنونی PCP از حساب فاقد امتیاز "pcp" استفاده می‌شود، اما در نسخه‌های قدیمی‌تر، حساب مدیر سیستم ("root") به صورت پیش‌فرض استفاده می‌شد.

آرشیو می‌تواند مجموعه‌ای چندجلدی از داده‌ها باشد و گزینه -v باعث می‌شود که pmlogger پس از انباشته شدن حجم مشخصی بر حسب رکوردها، بایت‌ها یا واحدهای زمانی برای جلد فعلی، جلد جدیدی را آغاز کند. قالب مشخص کردن این اندازه، کاملاً مشابه گزینه -s است (بالا را ببینید). پیش‌فرض pmlogger ایجاد یک آرشیو تک‌جلدی است. تعویض جلد اضافی را می‌توان به صورت ناهمگام نیز از طریق استفاده از pmlc(1) یا ارسال یک سیگنال SIGHUP به pmlogger اجبار کرد (پایین را ببینید). توجه داشته باشید که اگر تعویض زمان‌بندی‌شده جلد به دلیل گزینه -v در جریان باشد، شمارنده‌های آن پس از یک تعویض ناهمگام بازنشانی خواهند شد.

مستقل از هر گزینه -v، حجم هر جلد از یک آرشیو حداکثر به 2^31 بایت محدود شده است، بنابراین pmlogger قبل از رسیدن به این حد، به طور خودکار یک جلد جدید برای آرشیو ایجاد خواهد کرد.

به طور معمول pmlogger روی فضای نام سنجه‌های عملکردیِ توزیع‌شده (PMNS) عمل می‌کند، با این حال اگر گزینه -n مشخص شده باشد، یک PMNS محلی جایگزین از فایل pmnsfile بارگذاری می‌شود.

در شرایط عادی، pmlogger برای همیشه اجرا خواهد شد (مگر در صورت تعیین گزینه -s یا دریافت سیگنال خاتمه). گزینه -T ممکن است برای محدود کردن زمان اجرا با استفاده از قالب زمانی تجویز شده در PCPIntro(1) استفاده شود. زمان در منطقه زمانی کارساز PMCD تفسیر می‌شود، مگر اینکه گزینه -y داده شده باشد، که در این صورت منطقه زمانی این میزبان ثبت‌کننده (logger) استفاده می‌شود.

چند مثال از قالب‌های مختلف:
-T 10mins
-T '@ 11:30'

از این رو می‌توان دریافت که -T 10mins و -s 10mins عملیات یکسانی را انجام می‌دهند.

به عنوان روشی جایگزین، زمان اجرای pmlogger می‌تواند با استفاده از گزینه -p یا --PID برای تعیین PID فرایند مورد نظر، به طول عمر آن فرایند محدود شود. در این حالت، زمانی که فرایند دیگر وجود نداشته باشد، pmlogger خارج خواهد شد.

هنگامی که pmlogger یک سیگنال SIGHUP دریافت می‌کند، جلد فعلی آرشیو بسته شده و یک جلد جدید باز می‌شود. این سازوکار (یا سازوکار جایگزین از طریق pmlc(1)) می‌تواند برای مدیریت رشد فایل‌های آرشیو به کار رود - به محض بسته شدن یک جلد لاگ، آن فایل می‌تواند بدون هیچ اثر نامطلوبی بر ادامه کارکرد pmlogger بایگانی شود. همچنین گزینه -v در بالا را ببینید.

هنگامی که pmlogger یک سیگنال SIGUSR2 دریافت می‌کند، آرشیو فعلی بسته شده و یک آرشیو جدید باز می‌شود. برای اینکه این عمل با موفقیت انجام شود، آرگومان اصلی archive باید شامل نویسه‌های فرا (meta characters) تابع strftime(3) باشد (مانند %Y%m%d.%H.%M)، در غیر این صورت pmlogger خارج خواهد شد، زیرا فایل‌های آرشیو از قبل وجود دارند و pmlogger فایل‌های آرشیو موجود را بازنویسی نمی‌کند. توجه داشته باشید که SIGUSR2 باعث می‌شود pmlogger مجدداً خود را اجرا (re-exec) کرده و تمام آرگومان‌های اصلی را دوباره تجزیه کند. این بدان معناست که هر محدودیت زمانی نسبی اعمال‌شده بر زمان خاتمه یا محدودیت نمونه‌برداری آن، بازنشانی شده و مجدداً آغاز می‌شود. این موضوع تنها بر زمان‌های خاتمه نسبی اثر می‌گذارد و نه زمان‌های مطلق؛ برای مثال -T 5s تحت تأثیر قرار می‌گیرد، اما -T 5pm تأثیر نمی‌پذیرد.

از نظر تاریخی، بافرهای آرشیو فعلی می‌توانستند با استفاده از دستور flush در pmlc(1) یا با استفاده از گزینه -u روی دیسک تخلیه شوند. نسخه فعلی pmlogger و روال‌های libpcp که زیربنای pmlogger هستند، بدون قید و شرط از نوشتن بدون بافر و یک fwrite(3) منفرد برای هر رکورد منطقیِ نوشته‌شده استفاده می‌کنند، بنابراین «تخلیه» (flushing) اجباری برای نوشتن داده‌های اضافی در سیستم فایل ایجاد نمی‌کند. گزینه -u و دستور flush در pmlc(1) تنها برای سازگاری رو به عقب حفظ شده‌اند.

هنگامی که با گزینه -x راه‌اندازی شود، pmlogger درخواست‌های کنترلی ناهمگام را روی توصیف‌گر فایل fd خواهد پذیرفت. انتظار می‌رود این گزینه تنها به صورت داخلی توسط برنامه‌های PCP که از «حالت ضبط زنده» (live record mode) پشتیبانی می‌کنند استفاده شود.

گزینه -m اجازه می‌دهد رشته note به فایل نگاشت درگاه (port map) برای این نمونه از pmlogger در دایرکتوری $PCP_TMP_DIR/pmlogger پیوست شود. این مورد در حال حاضر به صورت داخلی برای ثبت توصیف‌گر فایل (fd) هنگام استفاده از گزینه -x یا برای مشخص کردن این که این نمونه از pmlogger تحت کنترل pmlogger_check(1) شروع به کار کرده است (-m pmlogger_check) یا به دلیل دریافت سیگنال SIGUSR2 همان‌طور که در بالا توضیح داده شد مجدداً اجرا شده است (نگاه کنید به execvp(3))، استفاده می‌شود (-m reexec)..PP گزینه -H امکان بازنویسی نام میزبان نوشته‌شده در برچسب آرشیو را فراهم می‌کند. این رفتار مشابه گزینه -H در pmcd(1) است، اما اجازه می‌دهد این مقدار روی فرایند pmlogger مشخص شود. بدون این گزینه، از مقدار بازگردانده‌شده از pmcd(1) ثبت‌شده استفاده می‌شود.

گزینه -C باعث تجزیه فایل پیکربندی شده و سپس pmlogger بدون ایجاد آرشیو خروجی خارج می‌شود؛ بنابراین هنگامی که -C مشخص شده باشد، نیازی به آرگومان خط فرمان archive نیست. هرگونه خطا در فایل پیکربندی گزارش می‌شود.

گزینه -d یا --directory می‌تواند برای تعیین دایرکتوری محل ایجاد archive استفاده شود. directory می‌تواند شامل فراکاراکترهای sh(1) مانند $(...) یا `...` یا $var باشد و pmlogger آن‌ها را بسط می‌دهد تا مسیر دایرکتوری نهایی حاصل شود. مسیر حاصل باید مطلق باشد، نه نسبی. گزینه -d در درجه اول برای استفاده توسط pmlogger_check(1) در نظر گرفته شده است و کاربران عادی معمولاً نیازی به استفاده از این گزینه ندارند، زیرا دایرکتوری برای archive یا در صورتی که archive شامل مؤلفه‌های دایرکتوری باشد به طور ضمنی از آن برداشت می‌شود و یا در غیر این صورت به طور پیش‌فرض همان دایرکتوری جاری خواهد بود.

فایل پیکربندی می‌تواند با گزینه -c مشخص شود. در غیر این صورت، مشخصات پیکربندی از ورودی استاندارد خوانده می‌شوند.

اگر conffile وجود نداشته باشد، جستجویی در دایرکتوری $PCP_VAR_DIR/config/pmlogger برای فایلی با همان نام انجام می‌شود و در صورت یافت شدن، از آن فایل استفاده می‌گردد؛ به عنوان مثال اگر config.mumble در دایرکتوری جاری وجود نداشته باشد اما فایل $PCP_VAR_DIR/config/pmlogger/config.mumble موجود باشد، آن‌گاه -c config.mumble و -c $PCP_VAR_DIR/config/pmlogger/config.mumble معادل یکدیگر هستند.

نحو فایل پیکربندی به شرح زیر است:

1.
کلمات با فاصله خالی (فاصله، نویسه برگه یا خط جدید) از یکدیگر جدا می‌شوند.
2.
نماد «#» (هش) بیانگر یک توضیح است و تمام متن تا خط جدید بعدی نادیده گرفته می‌شود.
3.
کلمات کلیدی (که در زیر به صورت پررنگ نشان داده شده‌اند) باید دقیقاً به همان صورت (یعنی با حروف کوچک) نوشته شوند.
4.
هر مشخصه با کلمه کلیدی اختیاری log آغاز می‌شود، و در ادامه یکی از وضعیت‌های mandatory on، mandatory off، mandatory maybe، advisory on یا advisory off می‌آید.
5.
برای وضعیت‌های on، باید یک بازه زمانی ثبت گزارش با استفاده از نحو «once»، یا «default»، یا «every N timeunits»، یا صرفاً «N timeunits» دنبال شود - N یک عدد صحیح بدون علامت است، و timeunits یکی از کلمات کلیدی msec، millisecond، sec، second، min، minute، hour یا شکل جمع یکی از موارد بالا است.

محدودیت‌های داخلی ایجاب می‌کنند که بازه زمانی کمتر از (تقریباً) ۷۴ ساعت باشد. مقدار بازه زمانی صفر، مترادف با once است. بازه زمانی default به معنی استفاده از بازه پیش‌فرض ثبت ۶۰ ثانیه‌ای است؛ این مقدار پیش‌فرض می‌تواند با گزینه خط فرمان -t به interval تغییر یابد.

آرگومان interval از نحو شرح‌داده‌شده در PCPIntro(1) پیروی می‌کند، و در ساده‌ترین شکل می‌تواند یک عدد صحیح بدون علامت باشد (واحد ضمنی در این حالت ثانیه است).
6.
به دنبال وضعیت و مشخصات احتمالی بازه زمانی، یک «{» و سپس فهرستی از یک یا چند مشخصه متریک و یک «}» پایانی می‌آید. این فهرست با فاصله خالی (یا کاما) جدا می‌شود. اگر فقط یک مشخصه متریک در فهرست وجود داشته باشد، استفاده از آکولادها اختیاری است.
7.
یک مشخصه متریک شامل یک نام متریک است که می‌تواند به صورت اختیاری با مجموعه‌ای از نام‌های نمونه (instance) همراه شود. نام متریک از قراردادهای استاندارد نام‌گذاری PCP پیروی می‌کند؛ نگاه کنید به PMNS(5)، و اگر نام متریک یک گره غیربرگ در PMNS باشد (نگاه کنید به PMNS(5))، آن‌گاه pmlogger به طور بازگشتی در PMNS پایین رفته و مشخصات ثبت را به تمام نام‌های متریک فرزند که گره‌های برگ در PMNS هستند اعمال می‌کند. مجموعه نام‌های نمونه یک «[» است که به دنبال آن فهرستی از یک یا چند نام، عدد یا رشته جداشده با فاصله (یا کاما) و یک «]» پایانی قرار می‌گیرد. عناصری از فهرست که عدد هستند به عنوان شناسه‌های نمونه داخلی در نظر گرفته می‌شوند و سایر عناصر به عنوان شناسه‌های نمونه خارجی فرض می‌شوند - برای اطلاعات بیشتر نگاه کنید به pmGetInDom(3).

اگر هیچ نمونه‌ای مشخص نشود، مشخصات ثبت به تمامی نمونه‌های متریک مربوطه اعمال می‌گردد. می‌تواند تعداد دلخواهی از مشخصات لاگ‌گیری وجود داشته باشد.

9.
از نسخهٔ ۴.۰ و بعد‌تر PCP، هر مشخصهٔ نام معیاری که به یک گره برگ (leaf node) در PMNS منتهی نشود، به فهرست درونی از dynamic subtree roots (ریشه‌های زیردرخت پویای) احتمالی افزوده می‌شود. PMDAها می‌توانند به‌طور پویا معیارهای جدیدی را در زیر یک گره ریشهٔ پویا در PMNS خود ایجاد کرده و اعلانی مبنی بر تغییر PMNS به کلاینت‌ها ارسال کنند؛ برای جزئیات API به pmdaExtSetFlags(3) و به‌ویژه بخش METRIC CHANGES مراجعه کنید. این سازوکار در حال حاضر توسط pmdaopenmetrics(1) و pmdammv(1) پشتیبانی می‌شود. هنگامی که یک واکشی صادرشده توسط pmlogger با پرچم تنظیم‌شدهٔ PMDA_EXT_NAMES_CHANGE بازگردد، pmlogger فهرست داخلی گره‌های زیردرخت پویای احتمالی را پیمایش کرده و هر معیار جدید را به‌طور پویا کشف خواهد کرد. در عمل، از نسخهٔ ۴.۰ و بعد‌تر PCP، pmlogger می‌تواند به‌گونه‌ای پیکربندی شود تا معیارهای جدیدی را که در آینده، پس از تجزیهٔ اولیهٔ فایل پیکربندی پدیدار می‌شوند، به‌طور پویا ثبت کند.
10.
به دنبال تمام مشخصات لاگ‌گیری، ممکن است یک بخش اختیاری کنترل دسترسی وجود داشته باشد که با نشانهٔ لفظی [access] مشخص می‌شود. پس از آن، قوانین کنترل دسترسی قرار می‌گیرند که عملیات‌ها را از میزبان‌ها یا گروه‌های خاصی از میزبان‌ها مجاز یا غیرمجاز می‌کنند.

این عملیات‌ها ممکن است برای پرس‌وجو یا کنترل یک pmlogger در حال اجرا با استفاده از pmlc(1) به کار روند و در دسته‌های زیر قرار می‌گیرند:

پرس‌وجوی وضعیت pmlogger و معیارهایی که در حال ثبت آن‌ها است
تغییر لاگ‌گیری توصیه‌ای (advisory).
تغییر لاگ‌گیری اجباری (mandatory).
همهٔ موارد بالا.

قوانین کنترل دسترسی به صورت ``allow hostlist : operationslist ;'' و ``disallow hostlist : operationslist ;'' هستند.

بخش hostlist از نحو و معناشناسی سازوکارهای کنترل دسترسیِ استفاده‌شده توسط PMCD پیروی می‌کند و به‌طور کامل در pmcd(1) مستند شده است. یک operationslist فهرستی جداشده با کاما از عملیات‌های advisory، mandatory، enquire و all است.

نبود بخش [access] تمام دسترسی‌ها را مجاز می‌کند و معادل allow * : all; است.

پیکربندی (خواه از ورودی استاندارد یا conffile) در ابتدا توسط pmcpp(1) با گزینه‌های -rs و -I $PCP_VAR_DIR/config/pmlogger پویش می‌شود. این کار نحو فایل پیکربندی را با پردازش فایل‌های گنجاندنی (%include)، یک مکان مشترک برای جستجوی فایل‌های گنجاندنی ($PCP_VAR_DIR/config/pmlogger)، تعریف‌های ماکرو (%define)، بسط ماکرو (%name و %{name}) و گنجاندن شرطی خطوط (%ifdef name ... %else ... %endif و %ifndef name ... %else ... %endif) گسترش می‌دهد..SH "گزینه‌ها (OPTIONS)" گزینه‌های موجود خط فرمان عبارتند از:

مشخص کردن فایل پیکربندی conffile جهت استفاده.
تجزیه پیکربندی و خروج.
واکشی معیارهای کارایی از pmcd(1) روی host، به جای localhost پیش‌فرض.
تعیین hostname جهت استفاده به جای مقداری که توسط pmcd(1) بازگردانده شده است.
به‌طور معمول، pmlogger و pmlc(1) نسخه‌ای قابل‌قبول برای هر دو طرف را برای کانال IPC اختصاصی خود مذاکره خودکار می‌کنند. از -I استفاده کنید تا pmlogger مجبور شود (حداکثر) version را به عنوان نسخه مورد استفاده پیشنهاد دهد. این گزینه در صورتی ممکن است لازم باشد که pmlogger باید توسط نسخه قدیمی‌تری از pmlc(1) مدیریت شود که در مذاکره خودکار به درستی عمل نمی‌کند.
هنگام واکشی معیارها از یک بافت محلی (ببینید -o)، گزینه -K می‌تواند برای کنترل DSO PMDAهایی که باید قابل دسترسی باشند استفاده شود. آرگومان spec از نحو شرح داده شده در pmSpecLocalPMDA(3) پیروی می‌کند. می‌توان بیش از یک گزینه -K استفاده کرد.
نوشتن تمام پیام‌های تشخیصی در logfile به جای فایل پیش‌فرض pmlogger.log.
اجرا حتی اگر نمونه ثبت‌کننده اصلی نبوده و چیزی برای ثبت وجود نداشته باشد.
الحاق note به فایل port map برای این نمونه.
بارگذاری یک فضای نام معیارهای کارایی جایگزین (PMNS(5)) از فایل pmnsfile.
اطلاع‌رسانی به مدیر سرویس نظیر systemd(1) در صورت نیاز.
استفاده از بافت محلی برای جمع‌آوری معیارها از DSO PMDAها روی میزبان محلی بدون PMCD. همچنین ببینید -K.
ثبت معیارهای مشخص‌شده در طول مدت زمان حیات فرآیند شناسایی‌شده با PID.
اجرا به عنوان نمونه ثبت‌کننده اصلی. برای شرح دقیق‌تر این مورد به بالا مراجعه کنید.
گزارش اندازه‌های رکورد و نرخ رشد بایگانی.
خاتمه پس از اینکه اندازه بایگانی از endsize فراتر رفت.
مشخص کردن بازه زمانی ثبت interval. مقدار پیش‌فرض ۶۰ ثانیه است. لطفاً در رابطه با متغیر محیطی PMLOGGER_INTERVAL و تأثیر آن بر بازه زمانی پیش‌فرض ثبت، به بخش‌های ENVIRONMENT و FILES در زیر مراجعه کنید.
مشخص کردن زمان پایان endtime جهت خاتمه ثبت.
استفاده از خروجی بدون بافر. این حالت پیش‌فرض است (بنابراین این گزینه اثری ندارد).
در حالت دیمن، اجرا تحت کاربر username.
تعویض جلد پس از رسیدن حجم فایل بایگانی به volsize.
تعیین نسخه بایگانی version. مقدار پیش‌فرض و تنها مقدار پذیرفته‌شده ۲ است.
اجازه دادن به درخواست‌های کنترل ناهمگام روی توصیف‌گر فایل fd.
استفاده از منطقه زمانی محلی به جای منطقه زمانی میزبان pmcd(1).
-?, --help
نمایش پیام راهنما و خروج..SH "مثال‌ها (EXAMPLES)" برای هر یک از ابزارهای PCP، یک فایل پیکربندی نمونه برای pmlogger وجود دارد که می‌تواند برای ایجاد آرشیوی مناسب جهت بازپخش با آن ابزار استفاده شود (یعنی شامل تمام معیارهای عملکردی استفاده‌شده توسط آن ابزار است). برای ابزاری به نام foo این فایل پیکربندی در مسیر $PCP_VAR_DIR/config/pmlogger/config.foo قرار دارد.

متن زیر یک فایل پیکربندی پیش‌فرض ساده برای یک نمونهٔ اولیهٔ pmlogger است و بیشتر قابلیت‌های زبان مشخصات پیکربندی را نشان می‌دهد.


log mandatory on once { hinv.ncpu hinv.ndisk }
log mandatory on every 10 minutes {
    disk.all.write
    disk.all.read
    network.interface.in.packets [ "et0" ]
    network.interface.out.packets [ "et0" ]
    nfs.server.reqs [ "lookup" "getattr" "read" "write" ]
}
log advisory on every 30 minutes {
    environ.temp
    pmcd.pdu_in.total
    pmcd.pdu_out.total
}
%include "macros.default"
%ifdef %disk_detail
log mandatory on %disk_detail_freq {
    disk.dev
}
%endif
[access]
disallow * : all except enquire;
allow localhost : mandatory, advisory;

نام میزبانِ PMCD که معیارها را برای pmlogger فراهم می‌کند، به چندین روش مورد استفاده قرار می‌گیرد.

نام میزبان PMCD (یا آرگومانِ حاصل از گزینهٔ -H) در برچسب آرشیو گنجانده می‌شود و ممکن است برای اطمینان از این‌که عملیات‌های بعدی روی چندین آرشیو، برای نمونه pmlogextract(1)، تنها بر روی آرشیوهای مربوط به همان میزبان اِعمال شوند، به کار رود.

برای نمونه‌های pmlogger که از یک PMCD محلی استفاده می‌کنند و توسط pmlogger_check(1) و pmlogger_daily(1) (یا سرویس‌های systemd(1) یا cron(8) که از این اسکریپت‌ها استفاده می‌کنند) راه‌اندازی و مدیریت می‌شوند، نام میزبان محلی همچنین ممکن است برای ساخت نام دایرکتوری‌ای استفاده شود که تمام آرشیوهای آن یک میزبان در آن ذخیره می‌شوند، برای مثال $PCP_ARCHIVE_DIR/<hostname>.

همچنین نام میزبان PMCD از طریق معیار pmcd.pmlogger.hostname در آرشیو ذخیره می‌شود که به عنوان بخشی از بررسی‌ها جهت اطمینان از تداوم داده‌های عملکردی پس از چرخش شبانهٔ آرشیو توسط pmlogger_daily(1) مورد استفاده قرار می‌گیرد.

نام میزبانِ میزبانِ PMCD ممکن است در زمان بوت، هنگامی که سیستم از یک نام میزبان موقت به یک نام میزبان پایدار منتقل می‌شود، یا با اقدام صریح مدیر سیستم در هر زمان پس از بوت شدن سیستم تغییر کند. هنگامی که این اتفاق می‌افتد، pmlogger ممکن است نیاز به اقدام خاصی داشته باشد؛ به‌ویژه اگر نمونهٔ pmlogger از طریق pmlogger_check(1) یا pmlogger_daily(1) راه‌اندازی شده باشد، pmlogger باید خارج شود. در شرایط عادی، systemd(1) یا cron(8) اندکی پس از آن یک pmlogger جدید را اجرا خواهند کرد و این نمونهٔ جدید pmlogger در بستر نام میزبان جدید برای میزبانی که PMCD روی آن در حال اجرا است، فعالیت خواهد کرد..SH "معیارهای مشتق‌شده (DERIVED METRICS)" همان‌طور که در pmRegisterDerived(3) شرح داده شده است، معیارهای مشتق‌شده سازوکاری برای گسترش PMNS با معیارهای جدیدی فراهم می‌کنند که در سمت کلاینت PCP و با استفاده از عبارت‌هایی بر روی معیارهای کارایی موجود تعریف می‌شوند. معیارهای مشتق‌شده ممکن است در یک فایل پیکربندی pmlogger گنجانده شوند، اما قواعد پردازشی ویژه‌ای دارند.

نخست اینکه مقادیر یک معیار مشتق‌شده در آرشیو ذخیره می‌شوند، نه معیارهای عملوند در عبارت آن معیار مشتق‌شده. دلیل این امر آن است که تعریف یک معیار مشتق‌شده مستقل از pmlogger و archive وجود دارد و ممکن است هنگام بازپخش archive متفاوت باشد، یا اصلاً وجود نداشته باشد.

برای جلوگیری از ابهام در طول بازپخش آرشیو، شناسهٔ معیار کارایی (PMID) هر معیار مشتق‌شده بازنویسی (یا «نگاشت مجدد») می‌شود تا نشان دهد که این مورد، پیش‌تر یک معیار مشتق‌شده بوده اما اکنون نیست؛ برای شرح تفصیلی نگاشت مجدد PMID به pmRegisterDerived(3) مراجعه کنید.

آرشیوها آن‌چنان ارزشمند هستند که pmlogger یک فایل فیزیکی موجود را کوتاه‌سازی (truncate) یا بازنویسی نخواهد کرد. پیامی به شکل

...: "foo.index" already exists, not over-written
...: File exists
نشان می‌دهد که این وضعیت رخ داده است. باید فایل‌ها را صراحتاً حذف کرده و pmlogger را مجدداً اجرا کنید.

به ازای هر میزبان تحت نظارت، حداکثر می‌تواند یک نمونهٔ اصلی از pmlogger وجود داشته باشد؛ تلاش برای زیر پا گذاشتن این قاعده موجب خطای زیر می‌شود:

pmlogger: there is already a primary pmlogger running

پیام‌های گوناگون دیگری که به ایجاد و/یا حذف فایل‌ها در $PCP_TMP_DIR/pmlogger مربوط می‌شوند، نشان‌دهندهٔ مشکل دسترسی در این دایرکتوری هستند، یا اینکه برخی فایل‌های سرگردان در آن پدیدار شده‌اند.

فراداده‌ها (شرح معیارها، دامنه‌های نمونه و غیره) برای آرشیو
حجم اولیهٔ مقادیر معیارها (جلدهای بعدی پسوندهای 1، 2، ... دارند)
نمایهٔ زمانی برای پشتیبانی از دسترسی تصادفیِ سریع به سایر فایل‌های درون آرشیو
$PCP_TMP_DIR/pmlogger
pmlogger فایل‌های این دایرکتوری را به عنوان نگاشت درگاه میان شناسهٔ فرایند نمونهٔ pmlogger، درگاه IPC که می‌تواند برای کنترل هر نمونهٔ pmlogger استفاده شود (همان‌طور که توسط pmlc(1) استفاده می‌شود)، نام میزبانی که pmcd(1) معیارها را برای pmlogger فراهم می‌کند، رشتهٔ اتصال دوردست برای سرور HTTP دوردستی که داده‌های ثبت‌شده را دریافت می‌کند، یا مسیر کامل به نام پایهٔ آرشیو برای یک ثبت‌کنندهٔ محلی، و هرگونه حاشیه‌نویسی از گزینه‌های -m یا -x نگهداری می‌کند؛ همهٔ این اطلاعات همچنین از طریق معیارهای pmcd.pmlogger.* نیز در دسترس است، مانند $ pminfo -f pmcd.pmlogger
$PCP_VAR_DIR/config/pmlogger/config.default
فایل پیکربندی پیش‌فرض برای نمونهٔ ثبت‌کنندهٔ اصلی راه‌اندازی‌شده از $PCP_RC_DIR/pmlogger
$PCP_VAR_DIR/config/pmlogger/config.*
مجموعه‌ای از فایل‌های پیکربندی مناسب برای ایجاد لاگ‌هایی که بعداً می‌توان با ابزارهای مصورسازی و نظارت PCP آن‌ها را بازپخش کرد
$PCP_ARCHIVE_DIR/<hostname>
دایرکتوری پیش‌فرض برای فایل‌های آرشیو PCP مربوط به مقادیر معیارهای کارایی جمع‌آوری‌شده از میزبان <hostname>.
$PCP_SYSCONFIG_DIR/pmlogger
متغیرهای محیطی اضافی که هنگام اجرای نمونهٔ اصلی pmlogger تنظیم خواهند شد. تنها تنظیماتی به شکل "PMLOGGER_VARIABLE=value" اعمال خواهند شد.
./pmlogger.log
(یا $PCP_ARCHIVE_DIR/<hostname>/pmlogger.log هنگامی که به طور خودکار توسط $PCP_RC_DIR/pmlogger یا یکی از اسکریپت‌های نظارتی pmlogger(1) مانند pmlogger_check(1) راه‌اندازی شود)
همهٔ پیام‌ها و اطلاعات عیب‌یابی به اینجا هدایت می‌شوند.SH "محیط (ENVIRONMENT)" به‌طور معمول pmlogger برای دریافت پیام‌های کنترلی از pmlc(1) یک سوکت روی نخستین درگاه TCP/IP موجود با شماره ۴۳۳۰ یا بالاتر ایجاد می‌کند. متغیر محیطی PMLOGGER_PORT می‌تواند برای تعیین یک شماره درگاه آغازین جایگزین استفاده شود.

در صورت تنظیم روی مقدار 1، متغیر محیطی PMLOGGER_LOCAL باعث می‌شود pmlogger در یک حالت عملیاتی فقط-localhost اجرا شود، به‌طوری که تنها به رابط loopback متصل (bind) می‌شود.

متغیر PMLOGGER_REQUEST_TIMEOUT می‌تواند توسط برنامه‌هایی مانند pmlc(1) تنظیم شود تا مدت زمان انتظار (timeout) بر حسب ثانیه را برای درخواست‌های اتصال به درگاه کنترلی pmlogger مشخص کند. در صورت عدم تنظیم، ممکن است اتصالات به‌طور نامحدود مسدود (block) شوند. این متغیر معمولاً توسط خودِ pmlogger تنظیم نمی‌شود.

متغیر PMLOGGER_MAXPENDING می‌تواند برای مشخص کردن حداکثر طولی که صف اتصالات در انتظارِ pmlc می‌تواند رشد کند، تنظیم شود.

فاصله زمانی نمونه‌برداری پیش‌فرض مورد استفاده توسط pmlogger می‌تواند با استفاده از متغیر PMLOGGER_INTERVAL تنظیم شود (در صورت عدم تنظیم، ۶۰ ثانیه استفاده خواهد شد). هم خط فرمان و هم دستورالعمل‌های موجود در فایل پیکربندی این مقدار را بازنویسی (override) خواهند کرد. این مقدار یک عدد صحیح بر حسب ثانیه است.

در پلتفرم‌هایی که از systemd(1) استفاده می‌کنند، و هنگامی که گزینه -N داده شده باشد، متغیر محیطی NOTIFY_SOCKET معمولاً پیش از راه‌اندازی pmlogger توسط مدیر سرویس تنظیم می‌شود.

دو متغیر محیطی دیگر به عنوان بخشی از فرآیند تحویل (hand-off) از یک نمونه pmlogger به نمونه بعدی در طول عملیات اجرای مجدد (re-exec) استفاده می‌شوند، یعنی __PMLOGGER_REEXEC و __PMLOGGER_TZ. جزئیات نحوه استفاده از این‌ها یک موضوع پیاده‌سازی داخلی است، اما کاربران نهایی باید از به‌کارگیری متغیرهایی با این نام‌ها در محیط شل خود خودداری کنند.

متغیرهای محیطی با پیشوند PCP_ برای پارامتریک‌سازی نام فایل‌ها و دایرکتوری‌های مورد استفاده توسط PCP به کار می‌روند. در هر نصب، فایل /etc/pcp.conf حاوی مقادیر محلی برای این متغیرها است. متغیر $PCP_CONF می‌تواند برای مشخص کردن یک فایل پیکربندی جایگزین، همان‌طور که در pcp.conf(5) توصیف شده است، استفاده شود.

گزینه -D یا --debug خروجی عیب‌یابی تکمیلی را روی stderr برای کمک به دسته‌بندی و اولویت‌بندی مشکلات فعال می‌کند، اگرچه این اطلاعات گاهی اوقات نامفهوم بوده و در وهله نخست برای راهنمایی توسعه‌دهندگان به‌جای کاربران نهایی در نظر گرفته شده است. debug یک فهرست جداشده با کاما از گزینه‌های اشکال‌زدایی است؛ از pmdbg(1) به همراه گزینه -l برای دریافت فهرستی از گزینه‌های اشکال‌زدایی موجود و معانی آن‌ها استفاده کنید.

گزینه‌های اشکال‌زدایی مخصوص pmlogger به شرح زیر است:

گزینه توضیحات
appl0 PDUهای درخواست کنترل به و از pmlc(1)
appl1 تبادل اعتبارنامه‌ها (credentials)
appl2 عیب‌یابی حلقه هشدار (زمان‌بندی)، کارهای callback و پیام‌های حالت کنترل ضبط
appl3 کال‌بک‌های سیگنال و ثبت گزارش خروج
appl4 ثبت برچسب‌های زمانی در logfile هنگام رسیدن به نقاط عطف
appl5 آمار PDU پس از پردازش فایل conffile
appl6 ساخت حافظه پنهان فراداده (metadata) از conffile برای بهبود کارایی راه‌اندازی، کارکرد pass0()
appl7 جلوگیری از ساخت حافظه پنهان فراداده، تبدیل pass0() به یک عملیات بی‌اثر (no-op)
appl8 به‌روزرسانی‌ها و پرس‌وجوهای hist_hash برای پشتیبانی از دستور query از pmlc(1)
"همچنین ببینید (SEE ALSO)"
PCPIntro (1)،
pmcd (1)،
pmlc (1)،
pmlogdump (1)،
pmlogger_check (1)،
pmlogger_daily (1)،
pmproxy (1)،
systemctl (1)،
systemd (1)،
PMAPI (3)،
__pmServerNotifyServiceManagerReady (3)،
execvp (3)،
pmRegisterDerived (3)،
pmSpecLocalPMDA (3)،
strftime (3)،
PMNS (5)،
pcp.conf (5)،
pcp.env (5)،
LOGARCHIVE (5)،
chkconfig (8)
و
cron (8).
PCP Performance Co-Pilot