RRDXPORT(1) rrdtool RRDXPORT(1)

rrdxport - برون‌بری داده‌ها در قالب XML بر پایه داده‌های یک یا چند RRD

rrdtool xport [-s|--start seconds] [-e|--end seconds] [-m|--maxrows rows] [-S|--step value] [--json] [-t|--showtime] [--enumds] [--daemon|-d address] [DEF:vname=rrd:ds-name:CF] [CDEF:vname=rpn-expression] [XPORT:vname[:legend]]

هدف اصلی تابع xport نوشتن بازنمودی با قالب XML از داده‌های ذخیره‌شده در یک یا چند RRD است. این تابع همچنین می‌تواند گزارش‌های عددی استخراج کند.

اگر هیچ گزارهٔ XPORT یافت نشود، هیچ خروجی‌ای تولید نخواهد شد.

زمانی که محدودهٔ برون‌بری‌شده باید آغاز شود. زمان بر حسب ثانیه از مبدأ زمانی (epoch؛ 1970-01-01) الزامی است. اعداد منفی نسبت به زمان کنونی سنجیده می‌شوند. به‌طور پیش‌فرض، داده‌های به اندازهٔ یک روز چاپ خواهند شد. همچنین برای توضیحات تفصیلی دربارهٔ چگونگی تعیین زمان، بخش «AT-STYLE TIME SPECIFICATION» در rrdfetch را ببینید.

برای جزئیات دربارهٔ چگونگی تأثیر این مورد بر خروجی، بخش «قالب خروجی (OUTPUT FORMAT)» را در زیر ببینید.

زمانی که محدودهٔ برون‌بری‌شده باید پایان یابد. زمان بر حسب ثانیه از مبدأ زمانی (epoch). همچنین برای توضیحات تفصیلی دربارهٔ چگونگی تعیین زمان، بخش «AT-STYLE TIME SPECIFICATION» در rrdfetch را ببینید.

برای جزئیات دربارهٔ چگونگی تأثیر این مورد بر خروجی، بخش «قالب خروجی (OUTPUT FORMAT)» را در زیر ببینید.

این گزینه مانند پارامتر -w|--width در rrdgraph عمل می‌کند. در واقع دقیقاً همان است، اما نام پارامتر تغییر یافته تا هدف آن در این ماژول توصیف شود. برای جزئیات به مستندات rrdgraph مراجعه کنید.
مستندات rrdgraph را ببینید.
نشانی دیمن rrdcached. در صورت تعیین، پیش از خواندن فایل‌های RRD، یک دستور "flush" به کارساز فرستاده می‌شود. این کار به rrdtool اجازه می‌دهد تا حتی اگر دیمن طوری پیکربندی شده باشد که مقادیر را برای مدتی طولانی کش کند، داده‌های تازه را بازگرداند. برای مشاهدهٔ فهرستی از قالب‌های پذیرفته‌شده، گزینهٔ -l را در راهنمای rrdcached ببینید.
rrdtool xport --daemon unix:/var/run/rrdcached.sock ...
زمان را در هر سطر داده می‌گنجاند.
تولید خروجی با قالب json (به جای xml).
فایل xml تولیدشده باید مقادیر داده را در برچسب‌های شماره‌گذاری‌شده قرار دهد.
<v0>val</v0><v1>val</v1>
مستندات rrdgraph را ببینید.
مستندات rrdgraph را ببینید.
حداقل یک گزارهٔ XPORT باید وجود داشته باشد. مقادیری که توسط vname ارجاع داده شده‌اند چاپ می‌شوند. به‌صورت اختیاری یک عنوان/راهنما (legend) اضافه کنید.

خروجی درون یک عنصر xport قرار می‌گیرد و شامل دو بلوک است. بلوک نخست توسط یک عنصر meta در بر گرفته شده و حاوی فراداده است. بلوک دوم توسط یک عنصر data در بر گرفته شده و شامل سطرهای داده است.

فرض کنید که دستور xport به این شکل باشد:

rrdtool xport \
        --start now-1h --end now \
        DEF:xx=host-inout.lo.rrd:output:AVERAGE \
        DEF:yy=host-inout.lo.rrd:input:AVERAGE \
        CDEF:aa=xx,yy,+,8,* \
        XPORT:xx:"out bytes" \
        XPORT:aa:"in and out bits"

بخش فرادادهٔ حاصل به این صورت خواهد بود (مقادیر به مشخصات RRD بستگی خواهند داشت):

<meta>
  <start>1020611700</start>
  <step>300</step>
  <end>1020615600</end>
  <rows>14</rows>
  <columns>2</columns>
  <legend>
    <entry>out bytes</entry>
    <entry>in and out bits</entry>
  </legend>
</meta>

بخش دادهٔ حاصل به این صورت است:

<data>
  <row><t>1020611700</t><v>3.4000000000e+00</v><v>5.4400000000e+01</v></row>
  <row><t>1020612000</t><v>3.4000000000e+00</v><v>5.4400000000e+01</v></row>
  <row><t>1020612300</t><v>3.4000000000e+00</v><v>5.4400000000e+01</v></row>
  <row><t>1020612600</t><v>3.4113333333e+00</v><v>5.4581333333e+01</v></row>
  <row><t>1020612900</t><v>3.4000000000e+00</v><v>5.4400000000e+01</v></row>
  <row><t>1020613200</t><v>3.4000000000e+00</v><v>5.4400000000e+01</v></row>
  <row><t>1020613500</t><v>3.4000000000e+00</v><v>5.4400000000e+01</v></row>
  <row><t>1020613800</t><v>3.4000000000e+00</v><v>5.4400000000e+01</v></row>
  <row><t>1020614100</t><v>3.4000000000e+00</v><v>5.4400000000e+01</v></row>
  <row><t>1020614400</t><v>3.4000000000e+00</v><v>5.4400000000e+01</v></row>
  <row><t>1020614700</t><v>3.7333333333e+00</v><v>5.9733333333e+01</v></row>
  <row><t>1020615000</t><v>3.4000000000e+00</v><v>5.4400000000e+01</v></row>
  <row><t>1020615300</t><v>3.4000000000e+00</v><v>5.4400000000e+01</v></row>
  <row><t>1020615600</t><v>NaN</v><v>NaN</v></row>
</data>

تمام آمارها در خروجی از گام (step) یکسانی استفاده خواهند کرد. نخستین نمونه، اولین نمونه‌ای خواهد بود که بلافاصله پس از --start آغاز می‌شود. آخرین نمونه، نمونه‌ای خواهد بود که در زمان --end یا بلافاصله پس از آن پایان می‌یابد.

هر نمونه دارای یک برچسب زمانی (timestamp) و یک یا چند مقدار است. برچسب‌های زمانی مرتبط با یک مقدار در RRDtool همواره بیانگر زمانی هستند که نمونه گرفته شده است. از آن‌جا که هر مقداری که نمونه‌برداری می‌کنید نشان‌دهندهٔ نوعی حالت گذشته است که سازوکار نمونه‌برداری شما گردآوری کرده، برچسب زمانی همیشه در پایان دورهٔ نمونه‌برداری خواهد بود.

ابزار RRDtool نمونه‌های واقعی را ذخیره نمی‌کند، بلکه بازنمونه‌گیری (resampling) درونی بر روی مقادیر ارائه‌شده به آن انجام می‌دهد. با این وجود، هنگامی که یک مقدار داده با یک برچسب زمانی منفرد ارائه می‌شود، این برچسب زمانی در پایان دوره‌ای قرار دارد که مقدار نمایانگر آن است. توجه داشته باشید که خود برچسب زمانی خارج از دوره‌ای است که نمونه برای آن معتبر است. برای جزئیات بیشتر در این باره، توضیحات محاسبهٔ PDP را ببینید.

بنابراین محدودهٔ زمانی برای یک نمونه با یک برچسب زمانی در واقع از "timestamp - step" (شامل آن) تا "timestamp" (غیرشامل) است.

نخستین سطر از خروجی نمونه:

<row><t>1020611700</t><v>3.4000000000e+00</v><v>5.4400000000e+01</v></row>

بنابراین بدین معناست که مقادیر بازهٔ 1020611400 تا 1020611699 به ترتیب برای «out bytes» و «in and out bits» برابر با 3.4 و 54.4 بوده‌اند، چرا که این مقدار در 1020611700 ثبت شده است.

rrdtool xport \
        DEF:out=if1-inouts.rrd:outoctets:AVERAGE \
        XPORT:out:"out bytes"

rrdtool xport \
        DEF:out1=if1-inouts.rrd:outoctets:AVERAGE \
        DEF:out2=if2-inouts.rrd:outoctets:AVERAGE \
        CDEF:sum=out1,out2,+ \
        XPORT:out1:"if1 out bytes" \
        XPORT:out2:"if2 out bytes" \
        XPORT:sum:"output sum"

متغیرهای محیطی زیر را می‌توان برای تغییر رفتار "rrdtool xport" به کار برد:

اگر این متغیر محیطی تنظیم شده باشد، اثری مشابه با مشخص کردن گزینهٔ "--daemon" در خط فرمان خواهد داشت. در صورت وجود هر دو، آرگومان خط فرمان اولویت دارد.

Tobias Oetiker <tobi@oetiker.ch>

2026-08-08 1.11.0