RRDGRAPH_EXAMPLES(1) rrdtool RRDGRAPH_EXAMPLES(1)

rrdgraph_examples - مثال‌هایی برای rrdtool graph

rrdtool graph /home/httpd/html/test.png --imgformat PNG

به همراه هر یک از مثال‌های زیر

برای راحتی شما، برخی از دستورها در اینجا با استفاده از مثال‌های تفصیلی توضیح داده شده‌اند. این دستورها همواره آمادهٔ برش و چسباندن (cut-and-paste) نیستند، زیرا توضیحات با مثال‌ها ترکیب شده‌اند.

--end now --start end-120000s --width 400
DEF:ds0a=/home/rrdtool/data/router1.rrd:ds0:AVERAGE
DEF:ds0b=/home/rrdtool/data/router1.rrd:ds0:AVERAGE:step=1800
DEF:ds0c=/home/rrdtool/data/router1.rrd:ds0:AVERAGE:step=7200
LINE1:ds0a#0000FF:"default resolution\l"
LINE1:ds0b#00CCFF:"resolution 1800 seconds per interval\l"
LINE1:ds0c#FF00FF:"resolution 7200 seconds per interval\l"

DEF:ds0=/home/rrdtool/data/router1.rrd:ds0:AVERAGE
DEF:ds1=/home/rrdtool/data/router1.rrd:ds1:AVERAGE
VDEF:ds0max=ds0,MAXIMUM
VDEF:ds0avg=ds0,AVERAGE
VDEF:ds0min=ds0,MINIMUM
VDEF:ds0pct=ds0,95,PERCENT
VDEF:ds1max=ds1,MAXIMUM
VDEF:ds1avg=ds1,AVERAGE
VDEF:ds1min=ds1,MINIMUM
VDEF:ds1pct=ds1,95,PERCENT

نکته: تجمیع (consolidation) در اینجا رخ می‌دهد.

CDEF:ds0bits=ds0,8,*
CDEF:ds1bits=ds1,8,*

نکته: ۱۰ فاصله برای انتقال متن به سمت راست

COMMENT:"          "

نکته: عنوان ستون‌ها باید به پهنای خود ستون‌ها باشد

COMMENT:"Maximum    "
COMMENT:"Average    "
COMMENT:"Minimum    "
COMMENT:"95th percentile\l"
AREA:ds0bits#00C000:"Inbound "
GPRINT:ds0max:"%6.2lf %Sbps"
GPRINT:ds0avg:"%6.2lf %Sbps"
GPRINT:ds0min:"%6.2lf %Sbps"
GPRINT:ds0pct:"%6.2lf %Sbps\l"
LINE1:ds1bits#0000FF:"Outbound"
GPRINT:ds1max:"%6.2lf %Sbps"
GPRINT:ds1avg:"%6.2lf %Sbps"
GPRINT:ds1min:"%6.2lf %Sbps"
GPRINT:ds1pct:"%6.2lf %Sbps\l"

بسته به نیازهای خود می‌توانید این کار را به دو روش انجام دهید:

  • داده را جابه‌جا کرده (offset)، سپس آن را رسم کنید
    DEF:mydata=my.rrd:ds:AVERAGE

    نکته: این کار بر روی هر دستور دیگری که از «data» استفاده می‌کند نیز اثر می‌گذارد

    CDEF:data=mydata,100,+
    LINE1:data#FF0000:"Data with offset"
  • دادهٔ اصلی را با یک آفست رسم کنید
    DEF:mydata=my.rrd:ds:AVERAGE

    نکته: هیچ رنگی در خط اول وجود ندارد تا نامرئی باشد

    LINE1:100

    نکته: خط دوم بر روی خط اول قرار می‌گیرد (STACK می‌شود)

    LINE1:mydata#FF0000:"Data with offset":STACK

برای HRULE و VRULE نیز کار می‌کند

  • سبک پیش‌فرض: - - - - -
    LINE1:data#FF0000:"dashed line":dashes
  • سبک پیشرفته‌تر با آفست: - - --- - --- -
    LINE1:data#FF0000:"another dashed line":dashes=15,5,5,10:dash-offset=10

Last four weeks: --start end-4w --end 00:00
January 2001:    --start 20010101 --end start+31d
January 2001:    --start 20010101 --end 20010201
Last hour:       --start end-1h
Last 24 hours:   <nothing at all>
Yesterday:       --end 00:00

--end now --start end-1w
DEF:thisweek=router.rrd:ds0:AVERAGE
DEF:lastweek=router.rrd:ds0:AVERAGE:end=now-1w:start=end-1w

داده‌ها را به اندازهٔ یک هفته (۶۰۴۸۰۰ ثانیه) به جلو انتقال دهید (Shift)

SHIFT:lastweek:604800
[ more of the usual VDEF and CDEF stuff if you like ]
AREA:lastweek#0000FF:Last\ week
LINE1:thisweek#FF0000:This\ week

اگر RRAهای تخصصی برای تشخیص رفتارهای ناهنجار وجود داشته باشند، می‌توان از آن‌ها برای ایجاد نمودار یک سری زمانی با محدوده‌های اطمینان و خطاها استفاده کرد.

rrdtool graph example.png \
       DEF:obs=monitor.rrd:ifOutOctets:AVERAGE \
       DEF:pred=monitor.rrd:ifOutOctets:HWPREDICT \
       DEF:dev=monitor.rrd:ifOutOctets:DEVPREDICT \
       DEF:fail=monitor.rrd:ifOutOctets:FAILURES \
       TICK:fail#ffffa0:1.0:"Failures\: Average bits out" \
       CDEF:scaledobs=obs,8,* \
       CDEF:upper=pred,dev,2,*,+ \
       CDEF:lower=pred,dev,2,*,- \
       CDEF:scaledupper=upper,8,* \
       CDEF:scaledlower=lower,8,* \
       LINE2:scaledobs#0000ff:"Average bits out" \
       LINE1:scaledupper#ff0000:"Upper Confidence Bound: Average bits out" \
       LINE1:scaledlower#ff0000:"Lower Confidence Bound: Average bits out"

این مثال نموداری از سری داده‌ها را به رنگ آبی (LINE2 با منبع دادهٔ مجازی scaledobs)، مرزهای اطمینان را به رنگ قرمز (منابع دادهٔ مجازی scaledupper و scaledlower)، و خطاهای احتمالی (یعنی رفتارهای ناهنجار بالقوه) را با خطوط عمودی زرد (منبع دادهٔ fail) ایجاد می‌کند.

داده‌های خام از یک RRA از نوع AVERAGE تأمین می‌شوند که دقیق‌ترین تفکیک‌پذیری سری زمانی مشاهده‌شده است (یک نقطهٔ دادهٔ تجمیع‌شده به ازای هر نقطهٔ دادهٔ اولیه). مقادیر پیش‌بینی‌شده (یا هموارسازی‌شده) در RRA از نوع HWPREDICT ذخیره می‌شوند. مقادیر انحراف پیش‌بینی‌شده (مشابه انحراف معیار) در RRA از نوع DEVPREDICT ذخیره می‌شوند. در نهایت، RRA از نوع FAILURES حاوی نشانگرهایی است که مقدار ۱ نشان‌دهندهٔ یک خطای بالقوه است.

تمامی داده‌ها با ضرب شدن در ۸، به بیت (به جای بایت یا Octet) تغییر مقیاس داده می‌شوند. مرزهای اطمینان با یک آفستِ ۲ انحراف در هر دو سمت بالا و پایین مقادیر پیش‌بینی‌شده محاسبه می‌شوند (CDEFهای upper و lower). خطوط عمودی نشان‌دهندهٔ خطاهای بالقوه از طریق المان نمودار TICK رسم می‌شوند، که مقادیر غیرصفر در یک RRA را به نشانه‌های خطی تبدیل می‌کند. در اینجا مقدار 1.0 برای آرگومان axis-fraction به این معنی است که نشانه‌های خطی تمام محور y را پوشش می‌دهند و در نتیجه به خطوطی عمودی در نمودار تبدیل می‌شوند.

انتخاب ۲ انحراف (یک ضریب مقیاس) با مقدار پیش‌فرضی که به صورت داخلی توسط RRA از نوع FAILURES استفاده می‌شود، همخوانی دارد. اگر مقدار داخلی تغییر کند (به rrdtune مراجعه کنید)، این دستور رسم نمودار نیز باید برای حفظ سازگاری تغییر داده شود.

نکته‌ای در مورد کاهش داده‌ها:

دستور graph در rrdtool برای رسم داده‌ها در یک تفکیک‌پذیری زمانی مشخص طراحی شده است، فارغ از تفکیک‌پذیری واقعی داده‌ها در فایل RRD. این موضوع می‌تواند برای توابع تجمیع تخصصی که یک نگاشت یک‌به‌یک بین نقاط دادهٔ اولیه و نقاط دادهٔ تجمیع‌شده حفظ می‌کنند، مشکل‌ساز شود. اگر یک نمودار بر مشاهدهٔ محتویات این RRAها در یک مقیاس زمانی درشت‌تر اصرار داشته باشد، دستور graph تلاش می‌کند عملی هوشمندانه انجام دهد، اما محدوده‌های اطمینان و خطاها دیگر همان معنا را نخواهند داشت و ممکن است گمراه‌کننده باشند.

صفحهٔ rrdgraph نمایی کلی از نحوهٔ کارکرد rrdtool graph ارائه می‌دهد. صفحهٔ rrdgraph_data دستورهای DEF، CDEF و VDEF را با جزئیات شرح می‌دهد. صفحهٔ rrdgraph_rpn زبان RPN را که در عبارات xDEF به کار می‌رود، توضیح می‌دهد. صفحهٔ rrdgraph_graph تمامی توابع رسم نمودار و چاپ را شرح می‌دهد.

برنامه توسط Tobias Oetiker <tobi@oetiker.ch>

این صفحهٔ راهنما توسط Alex van den Bogaerdt <alex@vandenbogaerdt.nl> همراه با اصلاحات و/یا الحاقاتی توسط افراد مختلف نوشته شده است

2026-08-08 1.11.0