GENPMDA(1) General Commands Manual GENPMDA(1)

genpmda - تولیدکننده PMDA در Performance Co-Pilot

genpmda [-dv] [-D domain] [-n pmns] [-o dir] [-s stdpmid] [-t topdir] -c config -i IAM

ابزار genpmda یک ابزار توسعه سریع نرم‌افزار برای ساخت عامل‌های جدید دامنه متریک‌های کارایی (Performance Metrics Domain Agents) است؛ ببینید: PMDA(3). این ابزار روشی بسیار ساده و کارآمد برای گسترش Performance Co-pilot (PCP) با متریک‌های کارایی جدید، بدون نیاز به درک جزئیات سطح پایین نحوه ساخت PMDAها فراهم می‌سازد.

دستور genpmda یک فایل پیکربندی شامل یک فضای نام گسترش‌یافته متریک‌های کارایی (ببینید: PMNS(5)) را می‌خواند و تقریباً تمام کدهای منبع لازم برای پیاده‌سازی یک PMDA کاملاً کاربردی را به‌طور خودکار تولید می‌کند؛ از جمله Makefile، فضای نام، اسکریپت‌های پشتیبانی برای پیکربندی PMDA جدید و متن‌های راهنمای متریک‌ها. PMDAهای نسبتاً ساده را می‌توان بدون نیاز به نوشتن هیچ کد اضافی به‌طور خودکار از فایل پیکربندی تولید کرد. PMDAهای پیچیده‌تر، برای مثال آن‌هایی که شامل چندین دامنه نمونه (instance domain) هستند، تنها نیاز دارند که متدهای بازخوانی دامنه‌های نمونه به‌صورت دستی نوشته شوند.

نمونه‌ای از قالب فایل پیکربندی پذیرفته‌شده توسط genpmda در زیر آورده شده است.

گزینه‌های الزامی:
فایل config ورودی؛ مثال زیر را ببینید
نام PMDA با عنوان IAM، که باید در stdpmid وجود داشته باشد یا اینکه از گزینه -D برای تعیین یک domain استفاده شود.
سایر گزینه‌ها:
تولید یک اسکریپت نصب (Install) برای یک PMDA در حالت دیمن (پیش‌فرض DSO است)
استفاده از شماره domain در pmns و domain.h تولیدشده (در صورتی که -s داده نشده باشد)
استفاده از pmns به‌عنوان ریشه فضای نام (پیش‌فرض مطابق با فلگ -i است)
استفاده از dir برای کدهای منبع تولیدشده، پیش‌فرض ./generated است
مسیر به stdpmid (پیش‌فرض ../../pmns/stdpmid)
استفاده از topdir در GNUmakefile تولیدشده، پیش‌فرض ../../.. است
چاپ پیام‌های با جزئیات (verbose) درباره فرآیندهایی که genpmda انجام می‌دهد.

مثال:
تولید یک PMDA به نام "example" با استفاده از دامنه ۹۹:


genpmda -D 99 -v -i EXAMPLE -c example.conf

در اینجا فایل پیکربندی example.conf (برای گزینه الزامی -c) آورده شده است:

example {
    metric
}
example.metric {
    ##  metric            string
    ##  pmid              EXAMPLE:CLUSTER:0
    ##  indom             PM_INDOM_NULL
    ##  type              PM_TYPE_STRING
    ##  units             PMDA_PMUNITS(0,0,0,0,0,0)
    ##  semantics         PM_SEM_DISCRETE
    ##  briefhelptext     one line help text for example.metric.string
    ##  helptext          long help text for example.metric.string
    ##  helptext          This is the second line of the long help text
    ##  helptext          and this is the third line.
    ##  fetch             function example_string_fetch_callback
    ##  code              atom->cp = "hello world";
    ##  code              return 1;
    ##  endmetric
}

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

pmcd(1), PMDA(3), pcp.conf(5), pcp.env(5) و PMNS(5).

PCP Performance Co-Pilot