| LOGARCHIVE(5) | File Formats Manual | LOGARCHIVE(5) |
نام (NAME)
LOGARCHIVE - قالبهای آرشیو Performance Co-Pilot
توضیحات (DESCRIPTION)
آرشیوهای Performance Co-Pilot (PCP) مقادیر تاریخی معیارهای دلخواه ثبتشده از یک میزبان منفرد را ذخیره میکنند. آرشیوها مستقل از ماشین و خودکفا هستند - تمام دادههای معیار و فرادادههای مورد نیاز برای تحلیل برونخط (off-line) یا خارج از محل (off-site) درون یک آرشیو نگهداری میشوند.
قالب پایدار است تا امکان ذخیرهسازی تاریخی بلندمدت و پردازش توسط ابزارهای کلاینت PMAPI(3) را فراهم سازد. با این حال، برخی انواع قالب در طول زمان پشتیبانی میشوند و در حال حاضر نگارشهای ۲ و ۳ پشتیبانی میشوند. الزامی که وجود دارد این است که PCP سازگاری عقبروی بلندمدت فراهم کند، به طوری که یک آرشیو ایجاد شده در هر نگارش PCP بتواند در همان نگارش PCP و تمام نگارشهای بعدی PCP خوانده شود. استثنا نگارش ۱ است که در انتشار نگارش ۲.۰ PCP در مه ۱۹۹۸ کنار گذاشته شد.
آرشیوها ممکن است توسط بیشتر ابزارهای کلاینت PCP با استفاده از گزینه -a/--archive NAME خوانده شوند، یا به صورت خام توسط pmlogdump(1) تخلیه (dump) گردند. آرشیوها در درجه اول توسط pmlogger(1) ایجاد میشوند، اما میتوان آنها را با استفاده از رابط برنامهنویسی LOGIMPORT(3) نیز ایجاد کرد.
آرشیوها را میتوان با استفاده از pmlogreduce(1)، pmlogsummary(1)، pmlogrewrite(1) و pmlogextract(1) ادغام، تحلیل، اصلاح و زیرنمونهگیری کرد. علاوه بر این، آرشیوهای PCP را میتوان در مجموعهها بررسی کرد یا در «برگههای آرشیو» (archive folios) گروهبندی نمود که توسط ابزارهای mkaf(1) و pmafm(1) ایجاد و مدیریت میشوند.
یک آرشیو از چندین فایل فیزیکی تشکیل شده است که در یک پیشوند دلخواه مشترک سهیم هستند، برای نمونه myarchive.
- myarchive.0, myarchive.1, ...
- یک یا چند حجم داده (data volume) حاوی مقادیر معیار و هرگونه کد خطای رخداده در حین نمونهبرداری معیار. این فایلها معمولاً بزرگترین فایلها هستند و ممکن است بسته به انتخاب معیارهای ثبتشونده توسط pmlogger(1) و فواصل نمونهبرداری استفادهشده، بسیار سریع رشد کنند.
- myarchive.meta
- اطلاعات برای توابع PMAPI مانند pmLookupName(3)، pmLookupDesc(3)، pmLookupLabels(3) و pmLookupInDom(3). فایل فراداده ممکن است با تغییر معیارهای ثبتشده، دامنههای نمونه و برچسبها در طول زمان، به طور پراکنده رشد کند.
- myarchive.index
- یک نمایه زمانی (temporal index)، که برچسبهای زمانی را به آفستهای بایتی در سایر فایلها نگاشت میکند.
ویژگیهای مشترک (COMMON FEATURES)
تمام این سه نوع فایل دارای ساختاری مشابه مبتنی بر رکورد، قرارداد کدگذاری به ترتیب بایتی شبکه (big-endian) و فیلدهای ۳۲ بیتی برای برچسبگذاری/فاصلهگذاری (padding) این رکوردها هستند. رشتهها به صورت نویسههای ۸ بیتی بدون فرض یک کدگذاری خاص ذخیره میشوند، بنابراین معمولاً ASCII هستند. همچنین انواع __pmLog* را در src/include/pcp/libpcp.h ببینید.
قالببندی رکورد (RECORD FRAMING)
فایلهای حجم و .meta به رکوردهای خود-شناسا تقسیم میشوند.
| Offset | Length | Name |
| 0 | 4 | N، طول رکورد، به بایت، شامل همین فیلد |
| 4 | N-8 | بار داده (payload) رکورد، معمولاً با یک تگ ۳۲ بیتی نوع رکورد آغاز میشود |
| N-4 | 4 | N، طول رکورد (مجدداً) |
برچسب آرشیو (ARCHIVE LABEL)
هر سه نوع فایل با یک سرآیند «برچسب آرشیو» (archive label) آغاز میشوند که نام میزبان، برچسب زمانی شروع و اطلاعات منطقه زمانی را مشخص میکند؛ همگی به میزبانی اشاره دارند که منبع دادههای کارایی بوده است (که ممکن است با میزبانی که pmlogger(1) روی آن در حال اجرا بود، متفاوت باشد).
قالب «برچسب آرشیو» بین نگارش ۲ و نگارش ۳ متفاوت است؛ نگارش ۳ برچسبهای زمانی بهبودیافته (کدگذاری ۶۴ بیتی بخش ثانیهها و دقت در حد نانوثانیه) و برخی فیلدهای اضافی را ارائه میدهد.
| Version 2 | ||
| Offset | Length | Name |
| 0 | 4 | تگ، PM_LOG_MAGIC | PM_LOG_VERS02=0x50052602 |
| 4 | 4 | شناسه فرآیند (PID) فرآیند pmlogger که فایل را نوشته است |
| 8 | 4 | زمان شروع آرشیو، بخش ثانیهها (از مبدأ یونیکس) |
| 12 | 4 | زمان شروع آرشیو، بخش میکروثانیهها |
| 16 | 4 | شماره حجم فعلی آرشیو (یا -1=.meta، -2=.index) |
| 20 | 64 | نام میزبان جمعآوریکننده |
| 80 | 40 | رشته منطقه زمانی برای میزبان جمعآوریکننده (متغیر محیطی $TZ) |
| Version 3 | ||
| Offset | Length | Name |
| 0 | 4 | تگ، PM_LOG_MAGIC | PM_LOG_VERS03=0x50052603 |
| 4 | 4 | PID فرآیند pmlogger که فایل را نوشته است |
| 8 | 8 | زمان شروع آرشیو، بخش ثانیهها (از مبدأ یونیکس) |
| 16 | 4 | زمان شروع آرشیو، بخش نانوثانیهها |
| 20 | 4 | شماره حجم فعلی آرشیو (یا -1=.meta، -2=.index) |
| 24 | 4 | بیتهای ویژگی آرشیو |
| 28 | 4 | رزرو شده برای استفاده در آینده |
| 32 | 256 | نام میزبان جمعآوریکننده |
| 288 | 256 | رشته منطقه زمانی برای میزبان جمعآوریکننده (متغیر محیطی $TZ)، مثلاً AEDT-11 |
| 544 | 256 | رشته zoneinfo منطقه زمانی برای میزبان جمعآوریکننده، مثلاً :Australia/Melbourne |
«بیتهای ویژگی آرشیو» به منظور کدگذاری گسترشهای احتمالی آینده یا تفاوتها در ساختار روی دیسک یا معناشناسی آرشیو در نظر گرفته شدهاند. در این مرحله چنین ویژگیهایی وجود ندارند، اما اگر در نقطهای در آینده معرفی شوند، ماکروهای مربوطه با نام PM_LOG_FEATURE_XXX به فایل سرآیند <pcp/pmapi.h> افزوده خواهند شد.
تمام فیلدها، به جز «شماره حجم فعلی آرشیو»، برای تمامی فایلها در یک آرشیو PCP منفرد یکسان هستند.
رکوردهای حجم آرشیو (ARCHIVE VOLUME (.0, .1, ...) RECORDS)
نتیجه معیار (pmResult)
پس از رکورد برچسب آرشیو، یک فایل حجم آرشیو شامل یک یا چند رکورد است که هر کدام مقادیر معیار متناظر با pmResult از یک عملیات pmFetch(3) را ارائه میدهند. اندازه رکورد ممکن است بسته به تعداد معیارهای واکشیشده و تعداد نمونهها در دامنههای نمونه متناظر، متغیر باشد.
برای نگارش ۲، اندازه فایل به دلیل ذخیرهسازی آفستهای بایتی ۳۲ بیتی درون نمایه زمانی، به ۲ گیبیبایت (2GiB) محدود است. برای نگارش ۳، اندازه فایل به دلیل ذخیرهسازی آفستهای بایتی ۶۲ بیتی درون نمایه زمانی، به ۸۱۹۱ پبیبایت (8191PiB) محدود است.
قالب pmResult بین نگارش ۲ و نگارش ۳ تفاوت دارد؛ نگارش ۳ برچسبهای زمانی بهبودیافتهای را ارائه میدهد (کدگذاری ۶۴ بیتی بخش ثانیهها و دقت در حد نانوثانیه).
| Version 2 | ||
| Offset | Length | Name |
| 0 | 4 | برچسب زمانی، بخش ثانیهها (از مبدأ یونیکس) |
| 4 | 4 | برچسب زمانی، بخش میکروثانیهها |
| 8 | 4 | تعداد معیارهایی که دادههایشان در ادامه میآید |
| 12 | M | pmValueSet #0 |
| 12+M | N | pmValueSet #1 |
| 12+M+N | ... | ... |
| NOP | X | pmValueBlock #0 |
| NOP+X | Y | pmValueBlock #1 |
| NOP+X+Y | ... | ... |
| Version 3 | ||
| Offset | Length | Name |
| 0 | 8 | برچسب زمانی، بخش ثانیهها (از مبدأ یونیکس) |
| 8 | 4 | برچسب زمانی، بخش نانوثانیهها |
| 12 | 4 | تعداد معیارهایی که دادههایشان در ادامه میآید |
| 16 | M | pmValueSet #0 |
| 16+M | N | pmValueSet #1 |
| 16+M+N | ... | ... |
| NOP | X | pmValueBlock #0 |
| NOP+X | Y | pmValueBlock #1 |
| NOP+X+Y | ... | ... |
رکوردهایی که «تعداد معیارهای» آنها برابر صفر است، «رکوردهای نشانهگذاری» (mark records) هستند و نشاندهنده وقفه، دادههای ناموجود، یا ناپیوستگیهای زمانی در ثبت گزارش هستند.
مجموعه مقادیر معیار (pmValueSet)
این زیررکورد مقادیر یک معیار را در یک نقطه زمانی نشان میدهد.
| Offset | Length | Name |
| 0 | 4 | شناسه معیارهای کارایی (PMID) |
| 4 | 4 | تعداد مقادیر |
| 8 | 4 | قالب مقدار، PM_VAL_INSITU=0 یا PM_VAL_DPTR=1 |
| 12 | M | pmValue #0 |
| 12+M | N | pmValue #1 |
| 12+M+N | ... | ... |
فراداده توصیفکننده معیارها در فایل .meta یافت میشود؛ جایی که ورودیها برچسب زمانی ندارند، زیرا فرض بر این است که فراداده در سرتاسر یک آرشیو بدون تغییر باقی میماند.
مقدار معیار (pmValue)
این زیررکورد بیانگر یک مقدار برای یک نمونه از یک معیار در یک نقطه زمانی است. این فیلد یک نوع متغیر (variant) است که به فیلد قالب مقدار در pmValueSet والد بستگی دارد. این امر اجازه میدهد تا اعداد کوچک به صورت فشرده کدگذاری شوند، اما انعطافپذیری برای ذخیره دادههای بزرگتر یا با طول متغیر در ادامه رکورد pmResult درون یک زیررکورد pmValueBlock حفظ شود.
| Offset | Length | Name |
| 0 | 4 | شناسه داخلی نمونه (یا PM_IN_NULL=-1 برای معیارهای مفرد) |
| 4 | 4 | مقدار (INSITU) یا |
| آفست در pmResult به pmValueBlock مربوطه (DPTR) |
فراداده توصیفکننده دامنه نمونه برای معیارها در فایل .meta قرار دارد. از آنجا که نگاشتهای عددی ممکن است در طول چرخه حیات نشست ثبت تغییر کنند، تطبیق دادن برچسب زمانی رکورد اندازهگیری با رکورد دامنه نمونه متناظر حائز اهمیت است. بدین معنی که دامنه نمونه متناظر با یک اندازهگیری در زمان T، همان مشاهده دامنه نمونه برای دامنه نمونه آن معیار با بزرگترین برچسب زمانی T' <= T است.
بلوک مقدار معیار (pmValueBlock)
نمونههای این زیررکورد در انتهای pmValueSet، پس از تمام زیررکوردهای pmValue قرار میگیرند. اگر (و تنها اگر) نیاز باشد، در انتها تا مرز ۳۲ بیتی بعدی فاصلهگذاری (pad) میشوند.
| Offset | Length | Name |
| 0 | 1 | نوع مقدار (مشابه pmDesc.type) |
| 1 | 3 | ۴ + N، طول زیررکورد |
| 4 | N | بایتهایی که مقدار خام را تشکیل میدهند |
| 4+N | 0-3 | فاصلهگذاری (در فیلد طول ۴ + N گنجانده نشده است) |
توجه داشته باشید که برای PM_TYPE_STRING، طول شامل یک بایت پایانی صریح NULL است. برای PM_TYPE_EVENT، رشته بایتی مقدار ساختاریافتهتر است. برای اطلاعات بیشتر در مورد نحوه بستهبندی آرایههایی از رکوردهای رویداد درون یک نگهدارنده pmResult، به PMDAEVENTARRAY(3) مراجعه کنید.
رکوردهای فایل فراداده (.meta) (METADATA FILE (.meta) RECORDS)
پس از رکورد برچسب آرشیو، فایل فراداده شامل رکوردهای درهمآمیخته توصیف معیار، رکوردهای برچسبزمانیدار دامنه نمونه، رکوردهای برچسبزمانیدار برچسب (برای برچسبهای سیاق، دامنه نمونه و معیار) و رکوردهای متن (راهنما) است. بر خلاف حجمهای داده، این رکوردها مجبور به تراز ۳۲ بیتی نیستند.
برای نگارش ۲، اندازه فایل به دلیل ذخیرهسازی آفستهای بایتی ۳۲ بیتی درون نمایه زمانی، به ۲ گیبیبایت (2GiB) محدود است. برای نگارش ۳، اندازه فایل به دلیل ذخیرهسازی آفستهای بایتی ۶۲ بیتی درون نمایه زمانی، به ۸۱۹۱ پبیبایت (8191PiB) محدود است.
همچنین libpcp/src/logmeta.c را ببینید.
توصیفات معیار (Metric Descriptions)
نمونههای این رکورد (pmDesc) توصیف یا فراداده را برای هر معیاری که در آرشیو PCP ظاهر میشود فراهم میکنند. این فراداده شامل شناسه معیار (PMID)، نوع داده، معناشناسی داده، شناسه دامنه نمونه (یا PM_INDOM_NULL برای معیارهای مفرد با تنها یک مقدار) و مجموعهای از نامها (۱ یا بیشتر) است.
| Offset | Length | Name |
| 0 | 4 | تگ، TYPE_DESC=1 |
| 4 | 4 | PMID |
| 8 | 4 | نوع داده (PM_TYPE_*) |
| 12 | 4 | شناسه دامنه نمونه |
| 16 | 4 | معناشناسی معیار (PM_SEM_*) |
| 20 | 4 | واحدها: pmUnits بیتبندیشده |
| 4 | 4 | تعداد نامهای جایگزین برای این PMID |
| 28 | 4 | N: تعداد بایتها در این نام |
| 32 | N | بایتهای نام، بدون نویسه پایانی NULL یا فاصلهگذاری |
| 32+N | 4 | N2: تعداد بایتها در نام بعدی |
| 36+N | N2 | بایتهای نام، بدون نویسه پایانی NULL یا فاصلهگذاری |
| ... | ... | ... |
دامنههای نمونه (Instance Domains)
یک معیار چندمقداری (مجموعهای) بر روی یک دامنه نمونه تعریف میشود که شامل یک شناسه دامنه نمونه (که قبلاً در یک رکورد پیشین pmDesc ذکر شده است)، شمارش تعداد نمونهها و نگاشتی است که ارتباط میان شناسههای داخلی نمونه (اعداد صحیح) و نامهای خارجی نمونه (رشتهها) را تعریف میکند.
از آنجا که دامنههای نمونه میتوانند در طول زمان تغییر کنند، دامنه نمونه به برچسب زمانی نیز نیاز دارد و همان دامنه نمونه میتواند چندین بار در فایل .meta تکرار شود. این برچسبهای زمانی برای جستجوی دامنه نمونهای که از نظر زمانی در هنگام رمزگشایی رکوردهای pmResult از حجمهای داده آرشیو، یا پاسخ به پرسوجوهای فراداده درباره دامنه نمونه صحیح است، استفاده میشوند.
قالب دامنه نمونه میان نگارش ۲ و نگارش ۳ تفاوت چشمگیری دارد. نگارش ۳ برچسبهای زمانی بهبودیافته (کدگذاری ۶۴ بیتی بخش ثانیهها و دقت در حد نانوثانیه) را ارائه میدهد و قالب جدیدی برای دامنه نمونه موسوم به «دلتا» (delta) معرفی میکند که تفاوتهای میان مشاهده قبلی دامنه نمونه و وضعیت فعلی دامنه نمونه را کدگذاری میکند.
| Full Instance Domain - Version 2 | ||
| Offset | Length | Name |
| 0 | 4 | تگ، TYPE_INDOM_V2=2 |
| 4 | 4 | برچسب زمانی، بخش ثانیهها (از مبدأ یونیکس) |
| 8 | 4 | برچسب زمانی، بخش میکروثانیهها |
| 12 | 4 | شماره دامنه نمونه |
| 16 | 4 | N: تعداد نمونهها در دامنه، معمولاً >0 |
| 20 | 4 | شماره نخستین نمونه |
| 24 | 4 | شماره دومین نمونه (در صورت وجود) |
| ... | ... | ... |
| 20+4*N | 4 | نخستین آفست در جدول رشتهها (به زیر نگاه کنید) |
| 20+4*N+4 | 4 | دومین آفست در جدول رشتهها (و غیره) |
| ... | ... | ... |
| 20+8*N | M | پایه جدول رشتهها، حاوی |
| نامهای فشرده و پایانیافته با NULL نمونهها | ||
| Full Instance Domain - Version 3 | ||
| Offset | Length | Name |
| 0 | 4 | تگ، TYPE_INDOM=5 |
| 4 | 8 | برچسب زمانی، بخش ثانیهها (از مبدأ یونیکس) |
| 12 | 4 | برچسب زمانی، بخش نانوثانیهها |
| 16 | 4 | شماره دامنه نمونه |
| 20 | 4 | N: تعداد نمونهها در دامنه، معمولاً >0 |
| 24 | 4 | شماره نخستین نمونه |
| 28 | 4 | شماره دومین نمونه (در صورت وجود) |
| ... | ... | ... |
| 24+4*N | 4 | نخستین آفست در جدول رشتهها (به زیر نگاه کنید) |
| 24+4*N+4 | 4 | دومین آفست در جدول رشتهها (و غیره) |
| ... | ... | ... |
| 24+8*N | M | پایه جدول رشتهها، حاوی |
| نامهای فشرده و پایانیافته با NULL نمونهها | ||
رکورد دامنه نمونه «دلتا» در نگارش ۳ از همان ساختار فیزیکی دامنه نمونه «کامل» بالا با تفاوتهای زیر استفاده میکند:
- تگ آن TYPE_INDOM_DELTA=6 است.
- فیلد «تعداد نمونهها در دامنه» به مجموع تعداد نمونههای اضافهشده و تعداد نمونههای حذفشده تبدیل میشود.
- نمونههای حذفشده با قرار دادن آفست رشته روی -1 کدگذاری میشوند و هیچ ورودی متناظری در جدول رشتهها ندارند.
- نمونههای اضافهشده دقیقاً به همان روش کدگذاری میشوند.
قالب دامنه نمونه «دلتا» برای ارائه یک کدگذاری فشردهتر روی دیسک برای دامنههای نمونهای به کار میرود که تعداد زیادی نمونه دارند و دستخوش تغییرات کوچک و مکرر میشوند، مانند دامنه نمونه شناسههای فرآیند، آنگونه که توسط pmdaproc(1) صادر میشود.
برای رکوردهای دامنه نمونه «کامل»، دامنه نمونه جایگزین دامنه نمونه قبلی میشود: پس از این برچسب زمانی، رکوردهای قبلی برای پرسوجوهای فراداده دامنه نمونه جستجو نمیشوند.
هر دامنه نمونه در یک آرشیو نگارش ۳ باید یک رکورد دامنه نمونه «کامل» اولیه داشته باشد. رکوردهای بعدی برای همان دامنه نمونه میتوانند گونه «کامل» یا «دلتا» باشند. فرض میشود هر نمونهای که در مشاهده قبلی یک دامنه نمونه ذکر شده و در رکورد دامنه نمونه «دلتا» ذکر نشده است، برای مشاهده فعلی دامنه نمونه همچنان به حیات خود ادامه میدهد.
برچسبها برای سیاقها، دامنههای نمونه و معیارها (Labels for Contexts, Instance Domains and Metrics)
نمونههای این رکورد (pmLogLabelSet) مجموعههایی از جفتهای نام-برچسب:مقدار-برچسب مرتبط با برچسبهای سیاق، دامنههای نمونه و معیارهای کارایی منفرد را فراهم میسازند - برای جزئیات بیشتر به pmLookupLabels(3) مراجعه کنید.
هر شناسه دامنه نمونه قبلاً در یک رکورد پیشین pmDesc ذکر شده است.
از آنجا که ممکن است برچسبهای جدیدی در طول یک نشست آرشیو کردن ظاهر شوند، این رکوردها دارای برچسب زمانی هستند و باید هنگام رمزگشایی رکوردهای pmResult از حجمهای داده آرشیو جستجو شوند. قالب pmLogLabelSet بین نگارش ۲ و نگارش ۳ تفاوت دارد؛ نگارش ۳ برچسبهای زمانی بهبودیافته (کدگذاری ۶۴ بیتی بخش ثانیهها و دقت در حد نانوثانیه) را ارائه میدهد.
| Version 2 | ||
| Offset | Length | Name |
| 0 | 4 | تگ، TYPE_LABEL_V2=3 |
| 4 | 4 | برچسب زمانی، بخش ثانیهها (از مبدأ یونیکس) |
| 8 | 4 | برچسب زمانی، بخش میکروثانیهها |
| 12 | 4 | نوع برچسب (ماکروهای نوع PM_LABEL_*) |
| 16 | 4 | شناسه عددی - دامنه، PMID و غیره یا PM_IN_NULL=-1 برای برچسبهای سیاق |
| 20 | 4 | N: تعداد مجموعههای برچسب در این رکورد، معمولاً ۱ مگر در مورد نمونهها |
| 24 | 4 | آفست تا شروع رشته برچسبهای JSONB |
| 28 | L1 | نخستین ورودی آرایه labelset (به زیر نگاه کنید) |
| ... | ... | ... |
| 28+L1 | LN | N-اُمین ورودی آرایه labelset (به زیر نگاه کنید) |
| ... | ... | ... |
| 28+L1+...LN | M | رشتههای متصلشده JSONB برای تمام مجموعههای برچسب |
| Version 3 | ||
| Offset | Length | Name |
| 0 | 4 | تگ، TYPE_LABEL=7 |
| 4 | 8 | برچسب زمانی، بخش ثانیهها (از مبدأ یونیکس) |
| 12 | 4 | برچسب زمانی، بخش نانوثانیهها |
| 16 | 4 | نوع برچسب (ماکروهای نوع PM_LABEL_*) |
| 20 | 4 | شناسه عددی - دامنه، PMID و غیره یا PM_IN_NULL=-1 برای برچسبهای سیاق |
| 24 | 4 | N: تعداد مجموعههای برچسب در این رکورد، معمولاً ۱ مگر در مورد نمونهها |
| 28 | 4 | آفست تا شروع رشته برچسبهای JSONB |
| 32 | L1 | نخستین ورودی آرایه labelset (به زیر نگاه کنید) |
| ... | ... | ... |
| 32+L1 | LN | N-اُمین ورودی آرایه labelset (به زیر نگاه کنید) |
| ... | ... | ... |
| 32+L1+...LN | M | رشتههای متصلشده JSONB برای تمام مجموعههای برچسب |
رکوردهای این فرم جایگزین برچسبهای موجود برای یک نوع برچسب معین میشوند: پس از این برچسب زمانی، رکوردهای قبلی برای برطرف کردن آن دسته از برچسبها در اندازهگیریها جستجو نمیشوند.
ورودیهای منفرد آرایه labelset بسته به تعداد برچسبهای موجود در آن مجموعه، طول متغیری دارند. این ورودیها حاوی شناسههای نمونه (در مورد برچسبهای نوع PM_LABEL_INSTANCES)، طولها و آفستهای هر نام برچسب و مقدار آن، و همچنین هرگونه پرچم تنظیمشده برای هر برچسب هستند.
| Offset | Length | Name |
| 0 | 4 | شناسه نمونه (یا PM_IN_NULL=-1) |
| 4 | 4 | طول رشته برچسب JSONB |
| 8 | 4 | N: تعداد برچسبها در این labelset |
| 12 | 2 | آفست نام نخستین برچسب |
| 14 | 1 | طول نام نخستین برچسب |
| 15 | 1 | پرچمهای نخستین برچسب (مثلاً اختیاری بودن) |
| 16 | 2 | آفست مقدار نخستین برچسب |
| 18 | 2 | طول مقدار نخستین برچسب |
| 20 | 2 | آفست نام دومین برچسب (در صورت وجود) |
| ... | ... | ... |
متن راهنما (Help Text)
این رکورد (pmLogText) متن راهنمای مرتبط با یک معیار یا یک دامنه نمونه را - به طوری که توسط pmLookupText(3) و pmLookupInDomText(3) ارائه میشود - ذخیره میکند.
شناسه معیار و شناسه دامنه نمونه قبلاً در یک رکورد پیشین pmDesc ذکر شدهاند.
| Offset | Length | Name |
| 0 | 4 | تگ، TYPE_TEXT=4 |
| 4 | 4 | نوع متن و شناسه (ماکروهای PM_TEXT_*) |
| 8 | 4 | شناسه عددی - PMID یا دامنه نمونه |
| 12 | M | رشته متن راهنما، متن دلخواه |
رکوردهای فایل نمایه (.index) (INDEX FILE (.index) RECORDS)
پس از رکورد برچسب آرشیو، فایل نمایه زمانی حاوی گروهی از چندتاییها (tuples) است که به سادگی به هم متصل شده و بدون قاب هستند؛ این چندتاییها برچسبهای زمانی را به آفستهای بایتی در فایلهای حجم و .meta مرتبط میکنند. این رکوردها دارای اندازه ثابت و قالب ثابت هستند و درون بستهبندی استاندارد «طول/بارداده/طول» محصور نشدهاند: آنها کل باقیمانده فایل .index را پس از رکورد برچسب آرشیو اشغال میکنند.
فایل نمایه زمانی راهکاری سریع برای پرش به یک نقطه زمانی خاص درون آرشیو، هم برای مقادیر معیارهای کارایی و هم فرادادههای مربوطه، فراهم میکند.
همچنین libpcp/src/logutil.c را ببینید.
قالب نمایه میان نگارش ۲ و نگارش ۳ تفاوت دارد؛ نگارش ۳ برچسبهای زمانی بهبودیافته (کدگذاری ۶۴ بیتی بخش ثانیهها و دقت در حد نانوثانیه) و آفستهای بایتی ۶۴ بیتی را ارائه میدهد.
| Version 2 | ||
| Offset | Length | Name |
| 0 | 4 | برچسب زمانی، بخش ثانیهها (از مبدأ یونیکس) |
| 4 | 4 | برچسب زمانی، بخش میکروثانیهها |
| 8 | 4 | شماره حجم آرشیو (0...N) |
| 12 | 4 | آفست بایتی در فایل .meta |
| 16 | 4 | آفست بایتی در فایل حجم آرشیو |
| Version 3 | ||
| Offset | Length | Name |
| 0 | 8 | برچسب زمانی، بخش ثانیهها (از مبدأ یونیکس) |
| 8 | 4 | برچسب زمانی، بخش نانوثانیهها |
| 12 | 4 | شماره حجم آرشیو (0...N) |
| 16 | 8 | آفست بایتی در فایل .meta |
| 24 | 8 | آفست بایتی در فایل حجم آرشیو |
از آنجا که نمایه زمانی اختیاری است و تنها برای تسریع دسترسی تصادفی مبتنی بر زمان به معیارها و فرادادههای آنها وجود دارد، رکوردهای نمایه تنها به صورت متناوب منتشر میشوند. یک برنامه خواننده آرشیو نباید هیچ نرخ خاصی از جریان داده به درون نمایه را فرض کند. با این حال، رویدادهای متداولی که ممکن است باعث ایجاد یک رکورد نمایه زمانی جدید شوند شامل تغییرات در دامنههای نمونه، جابجایی به یک حجم آرشیو جدید، و شروع یا توقف ثبت گزارش هستند. یک اصل پایدار و قابل اعتماد این است که به ازای هر ورودی نمایه، نباید هیچ رکوردی در فایلهای فراداده یا حجم آرشیو با برچسب زمانی پس از برچسب زمانی نمایه، اما از نظر فیزیکی پیش از آفست بایتی مرتبط در نمایه وجود داشته باشد.
فایلها (FILES)
چندین ابزار PCP آرشیوها را در مکانهای استاندارد ایجاد میکنند:
- $HOME/.pcp/pmlogger
- مکان پیشفرض برای حالت ضبط نمودار تعاملی در pmchart(1)
- $PCP_LOG_DIR/pmlogger
- مکان پیشفرض برای اسکریپتهای pmlogger_daily(1) و pmlogger_check(1)
همچنین ببینید (SEE ALSO)
mkaf(1)، PCPIntro(1)، pmafm(1)، pmchart(1)، pmdaproc(1)، pmlogdump(1)، pmlogger(1)، pmlogger_check(1)، pmlogger_daily(1)، pmlogreduce(1)، pmlogrewrite(1)، pmlogsummary(1)، LOGIMPORT(3)، PMAPI(3)، pmLookupDesc(3)، pmLookupInDom(3)، pmLookupInDomText(3)، pmLookupLabels(3)، pmLookupName(3)، pmLookupText(3)، pcp.conf(5) و pcp.env(5).
| Performance Co-Pilot |