.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man v6.0.2 (Pod::Simple 3.45) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Required to disable full justification in groff 1.23.0. .if n .ds AD l .\" ======================================================================== .\" .IX Title "RRDCREATE 1" .TH RRDCREATE 1 2026-08-08 1.11.0 rrdtool .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "نام (NAME)" rrdcreate \- ایجاد یک Round Robin Database جدید .SH "خلاصه دستور (SYNOPSIS)" .IX Header "SYNOPSIS" \&\fBrrdtool\fR \fBcreate\fR \fIfilename\fR [\fB\-\-start\fR|\fB\-b\fR\ \fIstart\ time\fR] [\fB\-\-step\fR|\fB\-s\fR\ \fIstep\fR] [\fB\-\-template\fR|\fB\-t\fR\ \fItemplate\-file\fR] [\fB\-\-source\fR|\fB\-r\fR\ \fIsource\-file\fR] [\fB\-\-no\-overwrite\fR|\fB\-O\fR] [\fB\-\-daemon\fR|\fB\-d\fR\ \fIaddress\fR] [\fBDS:\fR\fIds\-name\fR[\fB=\fR\fImapped\-ds\-name\fR[\fB[\fR\fIsource\-index\fR\fB]\fR]]\fB:\fR\fIDST\fR\fB:\fR\fIdst\ arguments\fR] [\fBRRA:\fR\fICF\fR\fB:\fR\fIcf\ arguments\fR] .SH "توضیحات (DESCRIPTION)" .IX Header "DESCRIPTION" دستور create در RRDtool به شما امکان می‌دهد فایل‌های جدید «پایگاه داده راند روبین» (\fBRRD\fR) را ایجاد کنید. فایل در اندازه نهایی و کامل خود ایجاد شده و با داده‌های \fI*UNKNOWN*\fR پر می‌شود، مگر اینکه یک یا چند فایل منبع \fBRRD\fR مشخص شده باشند و داده‌های مناسبی برای «پیش‌پر کردن» (pre\-fill) فایل \fBRRD\fR جدید داشته باشند. .SS \fIfilename\fP .IX Subsection "filename" نام \fBRRD\fR مورد نظری که می‌خواهید بسازید. فایل‌های \fBRRD\fR باید با پسوند \fI.rrd\fR خاتمه یابند. با این حال، \fBRRDtool\fR هر نام فایلی را خواهد پذیرفت. .SS "\fB\-\-start\fP|\fB\-b\fP \fIstart time\fP (پیش‌فرض: now \- 10s)" .IX Subsection "--start|-b start time (default: now - 10s)" زمان را بر حسب ثانیه‌های سپری‌شده از مبدأ یونیکس (1970\-01\-01 UTC) مشخص می‌کند که اولین مقدار باید به \fBRRD\fR افزوده شود. \fBRRDtool\fR هیچ داده‌ای با برچسب زمانی قبل از این زمان مشخص‌شده یا هم‌زمان با آن را نمی‌پذیرد. .PP همچنین برای روش‌های دیگر تعیین زمان، بخش «AT\-STYLE TIME SPECIFICATION» را در rrdfetch ببینید. .PP اگر از یک یا چند فایل منبع برای پیش‌پر کردن \fBRRD\fR جدید استفاده شود، گزینهٔ \fB\-\-start\fR می‌تواند نادیده گرفته شود. در این صورت، جدیدترین زمان به‌روزرسانی در میان تمام فایل‌های منبع به عنوان آخرین زمان به‌روزرسانی فایل \fBRRD\fR جدید استفاده خواهد شد و عملاً زمان شروع را تعیین می‌کند. .SS "\fB\-\-step\fP|\fB\-s\fP \fIstep\fP (پیش‌فرض: 300 ثانیه)" .IX Subsection "--step|-s step (default: 300 seconds)" بازهٔ زمانی پایه را بر حسب ثانیه مشخص می‌کند که داده‌ها با آن بازه وارد \fBRRD\fR می‌شوند. یک ضریب مقیاس‌بندی می‌تواند به عنوان پسوند به عدد صحیح اضافه شود؛ بخش «STEP, HEARTBEAT, and Rows As Durations» را ببینید. .SS \fB\-\-no\-overwrite\fP|\fB\-O\fP .IX Subsection "--no-overwrite|-O" فایلِ موجود با همین نام را بازنویسی نمی‌کند. .SS "\fB\-\-daemon\fP|\fB\-d\fP \fIaddress\fP" .IX Subsection "--daemon|-d address" آدرس دیمن rrdcached. برای فهرستی از قالب‌های پذیرفته‌شده، گزینهٔ \fB\-l\fR را در راهنمای rrdcached ببینید. .PP .Vb 1 \& rrdtool create \-\-daemon unix:/var/run/rrdcached.sock /var/lib/rrd/foo.rrd I .Ve.SS "[\fB\-\-template\fP|\fB\-t\fP\ \fItemplate\-file\fP]" .IX Subsection "[--template|-t template-file]" یک فایل الگوی \fBRRD\fR را جهت دریافت تعاریف step، DS و RRA مشخص می‌کند. این قابلیت امکان می‌دهد ساختار یک فایل جدید را بر پایه یک فایل موجود بنا کنید. داده‌های فایل الگو برای پیش‌پر کردن (pre\-filling) استفاده \fBنمی‌شوند\fR، اما می‌توان همان فایل را به‌عنوان یک فایل منبع نیز مشخص کرد (به زیر مراجعه کنید). .PP تعاریف اضافی DS و RRA مجاز هستند و به تعاریف گرفته‌شده از الگو اضافه خواهند شد. .SS "\fB\-\-source\fP|\fB\-r\fP \fIsource\-file\fP" .IX Subsection "--source|-r source-file" می‌توان یک یا چند فایل منبع \fBRRD\fR را در خط فرمان مشخص کرد. داده‌های این فایل‌های منبع برای پیش‌پر کردن فایل \fBRRD\fR ایجادشده به کار خواهند رفت. فایل خروجی و یکی از فایل‌های منبع می‌توانند به یک نام فایل یکسان اشاره کنند. این کار عملاً فایل منبع را با فایل جدید \fBRRD\fR جایگزین می‌کند. هرچند خطر از دست رفتن فایل منبع به دلیل جایگزین شدن وجود دارد، اما هیچ خطری مبنی بر اینکه فایل منبع و فایل جدید در هر مقطعی از زمان با یکدیگر «درهم‌آمیخته و مخدوش» شوند وجود ندارد، زیرا فایل جدید همیشه ابتدا به عنوان یک فایل موقت ایجاد می‌شود و تنها پس از آنکه به طور کامل نوشته شد به مقصد نهایی خود منتقل می‌گردد. .PP پیش‌پر کردن با تطبیق دادن نام‌های DS، ساختارهای RRA و توابع تجمیع (consolidation functions) و انتخاب بهترین تفکیک‌پذیری (resolution) داده در دسترس حین انجام کار صورت می‌گیرد. پیش‌پر کردن ممکن است در همه موارد از نظر ریاضی دقیق نباشد (برای نمونه اگر تفکیک‌پذیری‌ها به دلیل تغییر گام‌بندی (stepping) در RRD مقصد ناچار به تغییر باشند و تفکیک‌پذیری‌های قدیم و جدید با مرزهای bin قدیم/جدید در RRAها هم‌خوانی نداشته باشند). .PP به عبارت دیگر: بیشترین تلاش ممکن انجام می‌شود تا داده‌ها در حین پیش‌پر کردن حفظ شوند. همچنین، پیش‌پر کردن RRAها ممکن است فقط برای انواع خاصی از DS ممکن باشد. علاوه بر این، پیش‌پر کردن ممکن است اثرات عجیبی روی RRAهای پیش‌بینی Holt\-Winters داشته باشد. به بیانی دیگر: هیچ تضمینی برای صحت قطعی داده‌ها وجود ندارد. .PP هنگام «پیش‌پر کردن» یک فایل \fBRRD\fR، ساختار فایل جدید باید طبق معمول با استفاده از مشخصات DS و RRA همان‌گونه که در ادامه شرح داده شده است، تعیین گردد. داده‌ها بر اساس نام‌ها و انواع DS و به همان ترتیبی که فایل‌های منبع مشخص شده‌اند از آن‌ها دریافت می‌شوند. منابع داده با نام یکسان از فایل‌های منبع مختلف با یکدیگر ترکیب می‌شوند تا یک منبع داده جدید تشکیل دهند. به‌طور کلی، برای هر نقطه زمانی که فایل جدید \fBRRD\fR پس از ایجاد پوشش می‌دهد، تنها داده‌های یک فایل منبع برای پیش‌پر کردن استفاده خواهد شد. با این حال، اگر داده‌ها به زمان‌های متفاوتی اشاره داشته باشند یا فایل منبعی که زودتر قید شده دارای داده ناشناخته (unknown) برای زمانی باشد که فایل بعدی برای آن داده معتبر دارد، داده‌های چند منبع ممکن است با یکدیگر ترکیب شوند. .PP اگر این انتخاب خودکار داده مطلوب نباشد، نحو دستور DS امکان می‌دهد نگاشتی میان منابع داده مقصد و منبع برای پیش‌پر کردن تعیین کنید. این نحو به شما اجازه می‌دهد منابع داده را تغییر نام دهید و پیش‌پر کردن یک DS را تنها به استفاده از داده‌های یک فایل منبع خاص محدود سازید. .PP پیش‌پر کردن در حال حاضر فقط برای RRAهایی که از یکی از توابع تجمیع کلاسیک استفاده می‌کنند به‌طور مطمئن کار می‌کند، یعنی یکی از: AVERAGE، MIN، MAX، LAST. همچنین در حال حاضر ممکن است با منابع داده COMPUTE دچار مشکل شود. .PP توجه داشته باشید که عمل پیش‌پر کردن در حین دستور \fBcreate\fR، شبیه به بسیاری از عملیات در دسترس از طریق دستور \fBtune\fR است، اما با استفاده از نحو \fBcreate\fR انجام می‌شود. .SS "\fBDS:\fP\fIds\-name\fP[\fB=\fP\fImapped\-ds\-name\fP[\fB[\fP\fIsource\-index\fP\fB]\fP]]\fB:\fP\fIDST\fP\fB:\fP\fIdst arguments\fP" .IX Subsection "DS:ds-name[=mapped-ds-name[[source-index]]]:DST:dst arguments" یک \fBRRD\fR تکی می‌تواند ورودی را از چندین منبع داده (\fBDS\fR) بپذیرد، برای نمونه ترافیک ورودی و خروجی در یک خط ارتباطی مشخص. با گزینه پیکربندی \fBDS\fR باید برخی ویژگی‌های پایه‌ای هر منبع داده‌ای را که می‌خواهید در \fBRRD\fR ذخیره کنید، تعریف نمایید. .PP \&\fIds\-name\fR نامی است که برای ارجاع به این منبع داده خاص از درون یک \fBRRD\fR استفاده خواهید کرد. یک \fIds\-name\fR باید بین ۱ تا ۱۹ نویسه طول داشته و متشکل از نویسه‌های [a\-zA\-Z0\-9_] باشد. .PP \&\fIDST\fR نوع منبع داده (Data Source Type) را مشخص می‌کند. باقی آرگومان‌های یک مدخل منبع داده به نوع منبع داده بستگی دارد. برای GAUGE، COUNTER، DERIVE، DCOUNTER، DDERIVE و ABSOLUTE قالب یک مدخل منبع داده به این صورت است: .PP \&\fBDS:\fR\fIds\-name\fR\fB:\fR{\fIGAUGE | COUNTER | DERIVE | DCOUNTER | DDERIVE | ABSOLUTE\fR}\fB:\fR\fIheartbeat\fR\fB:\fR\fImin\fR\fB:\fR\fImax\fR .PP برای منابع داده COMPUTE، قالب به این صورت است: .PP \&\fBDS:\fR\fIds\-name\fR\fB:\fR\fICOMPUTE\fR\fB:\fR\fIrpn\-expression\fR .PP برای تصمیم‌گیری درباره اینکه از کدام نوع منبع داده استفاده کنید، تعاریف زیر را بررسی نمایید. همچنین برای آگاهی بیشتر، بخش «HOW TO MEASURE» را مطالعه کنید. .IP \fBGAUGE\fR 4 .IX Item "GAUGE" برای مواردی چون دما، تعداد افراد حاضر در یک اتاق یا ارزش سهام RedHat به کار می‌رود. .IP \fBCOUNTER\fR 4 .IX Item "COUNTER" برای شمارنده‌های افزایشی پیوسته مانند شمارنده ifInOctets در یک روتر است. منبع داده \fBCOUNTER\fR فرض می‌کند که مقدار شمارنده هرگز کاهش نمی‌یابد، مگر زمانی که سرریز (overflow) رخ دهد. تابع به‌روزرسانی این سرریز را در نظر می‌گیرد. شمارنده به صورت یک نرخ بر ثانیه ذخیره می‌شود. هنگامی که شمارنده سرریز می‌کند، RRDtool بررسی می‌کند که آیا سرریز در مرز ۳۲ بیت یا ۶۴ بیت رخ داده است و با افزودن مقدار مناسب به نتیجه، متناسب با آن عمل می‌کند. .IP \fBDCOUNTER\fR 4 .IX Item "DCOUNTER" مشابه با \fBCOUNTER\fR است، اما برای کمیت‌هایی که به صورت عدد ممیز شناور با دقت مضاعف (double\-precision) بیان می‌شوند. می‌تواند برای ردیابی کمیت‌هایی استفاده شود که با اعداد غیرصحیح افزایش می‌یابند، مانند تعداد ثانیه‌هایی که اجرای یک روتین طول کشیده است، وزن کل پردازش‌شده توسط یک تجهیز فناوری و غیره. تنها تفاوت اساسی این است که \fBDCOUNTER\fR می‌تواند شمارش رو به بالا یا رو به پایین داشته باشد، اما نه هر دو به طور هم‌زمان. جهت فعلی به طور خودکار در دومین به‌روزرسانی غیرنامعین (non\-undefined) شمارنده تشخیص داده می‌شود و هرگونه تغییر بعدی در جهت، یک بازنشانی (reset) تلقی می‌گردد. جهت جدید بر اساس دومین به‌روزرسانی پس از بازنشانی و تفاوت آن با مقدار هنگام بازنشانی تعیین و تثبیت می‌شود. .IP \fBDERIVE\fR 4 .IX Item "DERIVE" مشتق خطی را که از مقدار قبلی به مقدار فعلی منبع داده می‌رود ذخیره خواهد کرد. این ویژگی می‌تواند برای مقیاس‌ها مفید باشد، مثلاً برای اندازه‌گیری نرخ ورود یا خروج افراد از یک اتاق. در داخل، derive دقیقاً مانند COUNTER عمل می‌کند اما بدون بررسی سرریز. بنابراین اگر شمارنده شما در ۳۲ یا ۶۴ بیت بازنشانی نمی‌شود، ممکن است بخواهید از DERIVE استفاده کرده و آن را با مقدار MIN برابر با ۰ ترکیب کنید. .IP \fBDDERIVE\fR 4 .IX Item "DDERIVE" مشابه با \fBDERIVE\fR است، اما برای کمیت‌هایی که به صورت عدد ممیز شناور با دقت مضاعف بیان می‌شوند. .Sp \&\fBیادداشتی درباره COUNTER در برابر DERIVE\fR .Sp نوشته Don Baarda .Sp اگر نمی‌توانید تحمل کنید که بازنشانی گاه‌به‌گاه شمارنده به اشتباه یک دور خوردن معتبر شمارنده (counter wrap) قلمداد شود، و ترجیح می‌دهید برای همه دور خوردن‌ها و بازنشانی‌های معتبر، مقادیر «Unknown» ثبت شود، همیشه از DERIVE با min=0 استفاده کنید. در غیر این صورت، استفاده از COUNTER با یک مقدار max مناسب برای تمام دور خوردن‌های معتبر شمارنده مقادیر صحیح را بازمی‌گرداند، برخی بازنشانی‌های شمارنده را «Unknown» علامت می‌زند، اما ممکن است برخی بازنشانی‌های شمارنده را به اشتباه یک دور خوردن معتبر فرض کند. .Sp برای یک step با مدت ۵ دقیقه و یک شمارنده ۳۲ بیتی، احتمال اشتباه گرفتن بازنشانی شمارنده با یک دور خوردن معتبر، تقریباً حدود ۰٫۸٪ به ازای هر ۱ مگابیت بر ثانیه از بیشینه پهنای باند است. توجه داشته باشید که این مقدار برای رابط‌های ۱۰۰ مگابیت بر ثانیه معادل ۸۰٪ است، بنابراین برای رابط‌های با پهنای باند بالا و یک شمارنده ۳۲ بیتی، احتمالاً DERIVE با min=0 ارجحیت دارد. اگر از یک شمارنده ۶۴ بیتی استفاده می‌کنید، تقریباً هر مقداری برای تنظیم max امکان اشتباه گرفتن بازنشانی با دور خوردن شمارنده را از بین خواهد برد. .IP \fBABSOLUTE\fR 4 .IX Item "ABSOLUTE" برای شمارنده‌هایی است که با خوانده شدن بازنشانی می‌شوند. این نوع برای شمارنده‌های سریعی به کار می‌رود که تمایل به سرریز دارند. بنابراین به جای خواندن معمولی، آنها را پس از هر بار خواندن بازنشانی می‌کنید تا اطمینان یابید حداکثر زمان ممکن را پیش از سرریز بعدی در اختیار دارید. کاربرد دیگر برای مواردی است که می‌شمارید، مانند تعداد پیام‌ها از زمان آخرین به‌روزرسانی. .IP \fBCOMPUTE\fR 4 .IX Item "COMPUTE" برای ذخیره نتیجه اعمال یک فرمول بر روی دیگر منابع داده در \fBRRD\fR است. در زمان به‌روزرسانی، مقداری به این منبع داده داده نمی‌شود، بلکه نقاط داده اولیه (PDPها) آن از روی PDPهای سایر منابع داده بر اساس rpn\-expression که فرمول را تعریف می‌کند محاسبه می‌گردد. سپس توابع تجمیع به طور عادی بر روی PDPهای منبع داده COMPUTE اعمال می‌شوند (یعنی rpn\-expression صرفاً برای تولید PDPها اعمال می‌گردد). در نرم‌افزارهای پایگاه داده، به این دسته از مجموعه‌های داده ستون‌های «مجازی» یا «محاسباتی» گفته می‌شود. .PP \&\fIheartbeat\fR حداکثر تعداد ثانیه‌هایی را مشخص می‌کند که می‌تواند بین دو به‌روزرسانی این منبع داده سپری شود، پیش از آن‌که مقدار منبع داده \fI*UNKNOWN*\fR در نظر گرفته شود. .PP \&\fImin\fR و \fImax\fR محدوده مقادیر مورد انتظار را برای داده‌های ارائه‌شده توسط یک منبع داده تعریف می‌کنند. اگر \fImin\fR یا \fImax\fR مشخص شوند، هر مقداری خارج از محدوده تعریف‌شده به عنوان \fI*UNKNOWN*\fR تلقی خواهد شد. اگر از min و max اطلاع ندارید یا اهمیتی برایتان ندارد، آن‌ها را برای ناشناخته روی U تنظیم کنید. توجه داشته باشید که min و max همواره به مقادیر پردازش‌شده DS اشاره دارند. برای یک DS از نوع ترافیک\-\fBCOUNTER\fR، این مقادیر برابر با حداکثر و حداقل نرخ داده (data\-rate) مورد انتظار از دستگاه خواهند بود. .PP \&\fIاگر اطلاعات مربوط به حداقل/حداکثر مقادیر مورد انتظار در دسترس است، همیشه ویژگی‌های min یا max را تنظیم کنید. این امر به RRDtool کمک می‌کند تا هنگام اجرای update یک بررسی صحت‌سنجی ساده روی داده‌های دریافتی انجام دهد.\fR .PP \&\fIrpn\-expression\fR فرمول استفاده‌شده برای محاسبه PDPهای یک منبع داده COMPUTE را از سایر منابع داده در همان مشخص می‌کند. این شبیه به تعریف یک آرگومان \fBCDEF\fR برای دستور graph است. لطفاً برای مشاهده فهرست و توضیح عملیات RPN پشتیبانی‌شده به صفحه راهنمای آن دستور مراجعه فرمایید. برای منابع داده COMPUTE، عملیات RPN زیر پشتیبانی نمی‌شوند: COUNT، PREV، TIME و LTIME. علاوه بر این، در تعریف عبارت RPN، منبع داده COMPUTE تنها می‌تواند به نام‌های منابع داده‌ای ارجاع دهد که پیش‌تر در دستور create فهرست شده‌اند. این مشابه محدودیتی است که در آن \fBCDEF\fRها باید صرفاً به \fBDEF\fRها و \fBCDEF\fRهایی ارجاع دهند که قبلاً در همان دستور graph تعریف شده‌اند. .PP هنگام پیش‌پر کردن فایل جدید \fBRRD\fR با استفاده از یک یا چند \fBRRD\fR منبع، مشخصات DS می‌تواند شامل یک نگاشت اختیاری پس از نام DS باشد. این نگاشت به صورت یک علامت مساوی و به دنبال آن نام DS نگاشته‌شده و یک نمایه منبع اختیاری درون قلاب (کروشه) است. .PP برای مثال، مشخصه DS: .PP .Vb 1 \& DS:a=b[2]:GAUGE:120:0:U .Ve .PP مشخص می‌کند که DS با نام \fIa\fR باید از DS با نام \fIb\fR در دومین فایل منبع فهرست‌شده پیش‌پر شود (نمایه‌های منبع مبتنی بر ۱ هستند)..SS "\fBRRA:\fP\fICF\fP\fB:\fP\fIcf arguments\fP" .IX Subsection "RRA:CF:cf arguments" هدف یک \fBRRD\fR ذخیره داده‌ها در بایگانی‌های چرخشی راند رابین (\fBRRA\fR) است. یک بایگانی شامل تعدادی از مقادیر داده یا آماره‌ها برای هر یک از منبع‌داده‌های تعریف‌شده (\fBDS\fR) است و با یک خط \fBRRA\fR تعریف می‌شود. .PP هنگامی که داده وارد یک \fBRRD\fR می‌شود، ابتدا در بازه‌های زمانی با طولی که با گزینهٔ \fB\-s\fR تعریف شده قرار می‌گیرد و بدین ترتیب به یک \fIنقطه داده اولیه\fR تبدیل می‌شود. .PP داده‌ها همچنین با تابع تجمیع (\fICF\fR) بایگانی پردازش می‌شوند. چندین تابع تجمیع وجود دارد که نقاط داده اولیه را از طریق یک تابع تجمیعی ادغام می‌کنند: \fBAVERAGE\fR، \&\fBMIN\fR، \fBMAX\fR، \fBLAST\fR. .IP AVERAGE 4 .IX Item "AVERAGE" میانگین نقاط داده ذخیره می‌شود. .IP MIN 4 .IX Item "MIN" کوچک‌ترین نقطه داده ذخیره می‌شود. .IP MAX 4 .IX Item "MAX" بزرگ‌ترین نقطه داده ذخیره می‌شود. .IP LAST 4 .IX Item "LAST" آخرین نقطه داده استفاده می‌شود. .PP توجه داشته باشید که تجمیع داده‌ها ناگزیر منجر به از دست رفتن دقت و اطلاعات می‌شود. ترفند کار در این است که تابع تجمیعی را به‌گونه‌ای انتخاب کنید که ویژگی‌های \fIمهم\fR داده‌های شما در طول فرایند تجمیع حفظ شوند. .PP قالب خط \fBRRA\fR برای این توابع تجمیع به صورت زیر است: .PP \&\fBRRA:\fR{\fIAVERAGE | MIN | MAX | LAST\fR}\fB:\fR\fIxff\fR\fB:\fR\fIsteps\fR\fB:\fR\fIrows\fR .PP \&\fIxff\fR ضریب xfiles مشخص می‌کند چه بخشی از یک بازه تجمیع می‌تواند از داده‌های \fI*UNKNOWN*\fR تشکیل شده باشد در حالی که مقدار تجمیع‌شده همچنان شناخته‌شده در نظر گرفته شود. این مقدار به عنوان نسبت PDPهای مجاز \fI*UNKNOWN*\fR به تعداد PDPها در بازه بیان می‌شود. بنابراین، دامنه آن بین 0 تا 1 (غیرشامل) است. .PP \&\fIsteps\fR مشخص می‌کند چند مورد از این \fIنقاط داده اولیه\fR برای ساخت یک \fInقطه داده تجمیع‌شده\fR استفاده می‌شوند که سپس وارد بایگانی می‌گردد. همچنین بخش "STEP, HEARTBEAT, and Rows As Durations" را ببینید. .PP \&\fIrows\fR مشخص می‌کند چه تعداد نسل از مقادیر داده در یک \fBRRA\fR نگهداری می‌شوند. بدیهی است که این مقدار باید بزرگتر از صفر باشد. همچنین بخش "STEP, HEARTBEAT, and Rows As Durations" را ببینید. .SH "تشخیص رفتار ناهنجار با پیش‌بینی هولت\-وینترز (Aberrant Behavior Detection with Holt\-Winters Forecasting)" .IX Header "Aberrant Behavior Detection with Holt-Winters Forecasting" علاوه بر توابع تجمیعی، مجموعه‌ای از توابع تخصصی وجود دارند که به \fBRRDtool\fR امکان می‌دهند تا هموارسازی داده‌ها (از طریق الگوریتم پیش‌بینی هولت\-وینترز)، باندهای اطمینان، و علامت‌گذاری رفتار ناهنجار را در سری‌های زمانی منبع‌داده ارائه دهد: .IP \(bu 4 \&\fBRRA:\fR\fIHWPREDICT\fR\fB:\fR\fIrows\fR\fB:\fR\fIalpha\fR\fB:\fR\fIbeta\fR\fB:\fR\fIseasonal period\fR[\fB:\fR\fIrra\-num\fR] .IP \(bu 4 \&\fBRRA:\fR\fIMHWPREDICT\fR\fB:\fR\fIrows\fR\fB:\fR\fIalpha\fR\fB:\fR\fIbeta\fR\fB:\fR\fIseasonal period\fR[\fB:\fR\fIrra\-num\fR] .IP \(bu 4 \&\fBRRA:\fR\fISEASONAL\fR\fB:\fR\fIseasonal period\fR\fB:\fR\fIgamma\fR\fB:\fR\fIrra\-num\fR[\fB:smoothing\-window=\fR\fIfraction\fR] .IP \(bu 4 \&\fBRRA:\fR\fIDEVSEASONAL\fR\fB:\fR\fIseasonal period\fR\fB:\fR\fIgamma\fR\fB:\fR\fIrra\-num\fR[\fB:smoothing\-window=\fR\fIfraction\fR] .IP \(bu 4 \&\fBRRA:\fR\fIDEVPREDICT\fR\fB:\fR\fIrows\fR\fB:\fR\fIrra\-num\fR .IP \(bu 4 \&\fBRRA:\fR\fIFAILURES\fR\fB:\fR\fIrows\fR\fB:\fR\fIthreshold\fR\fB:\fR\fIwindow length\fR\fB:\fR\fIrra\-num\fR .PP این \fBRRA\fRها از چند جهت با توابع تجمیع واقعی تفاوت دارند. نخست اینکه، هر یک از \fBRRA\fRها به ازای هر نقطه داده اولیه یک بار به‌روزرسانی می‌شوند. دوم اینکه، این \fBRRA\fRها به یکدیگر وابسته هستند. برای تولید محدوده‌های اطمینان بی‌درنگ (real\-time)، باید یک مجموعه منطبق از SEASONAL، DEVSEASONAL، DEVPREDICT و یکی از HWPREDICT یا MHWPREDICT وجود داشته باشد. تولید مقادیر هموارشده از نقاط داده اولیه نیازمند یک \fBRRA\fR از نوع SEASONAL و یکی از \fBRRA\fRهای HWPREDICT یا MHWPREDICT است. تشخیص رفتار ناهنجار نیازمند FAILURES، DEVSEASONAL، SEASONAL و یکی از HWPREDICT یا MHWPREDICT می‌باشد. .PP مقادیر پیش‌بینی‌شده یا هموارشده در \fBRRA\fRهای HWPREDICT یا MHWPREDICT ذخیره می‌شوند. در واقع HWPREDICT و MHWPREDICT دو گونه مختلف از روش هولت\-وینترز هستند. آنها با یکدیگر قابل تعویض‌اند. هر دو تلاش می‌کنند داده‌ها را به سه مؤلفه تجزیه کنند: خط مبنا (baseline)، روند (trend)، و ضریب فصلی. تابع HWPREDICT ضریب فصلی خود را برای تشکیل پیش‌بینی با خط مبنا جمع می‌کند، در حالی که MHWPREDICT ضریب فصلی خود را در خط مبنا ضرب می‌کند تا پیش‌بینی حاصل شود. تفاوت زمانی محسوس است که خط مبنا در طول یک فصل تغییر چشمگیری کند؛ HWPREDICT پیش‌بینی می‌کند که فصلی بودن همگام با تغییر خط مبنا ثابت بماند، اما MHWPREDICT پیش‌بینی می‌کند که فصلی بودن به نسبت خط مبنا رشد کند یا کاهش یابد. انتخاب مناسب روش بستگی به پدیده‌ای دارد که مدل‌سازی می‌شود. برای سادگی، در ادامه این بحث به HWPREDICT اشاره خواهد شد، اما می‌توان MHWPREDICT را به جای آن به کار برد. .PP انحراف‌های پیش‌بینی‌شده در DEVPREDICT ذخیره می‌شوند (مشابه انحراف معیاری که می‌تواند برای ایجاد باند اطمینان مقیاس‌بندی شود). بایگانی \fBRRA\fR از نوع FAILURES نشانگرهای دودویی را ذخیره می‌کند. مقدار 1 مشاهدهٔ نمایه‌گذاری‌شده را به عنوان شکست (ناهنجاری) علامت‌گذاری می‌کند؛ یعنی تعداد نقض‌های محدوده اطمینان در پنجره مشاهدات قبلی به حد آستانه تعیین‌شده رسیده یا از آن فراتر رفته است. مثالی از استفاده از این \fBRRA\fRها برای رسم نمودار محدوده‌های اطمینان و شکست‌ها در rrdgraph آمده است. .PP بایگانی‌های \fBRRA\fR از نوع SEASONAL و DEVSEASONAL به ترتیب ضرایب فصلی برای الگوریتم پیش‌بینی هولت\-وینترز و انحرافات فصلی را ذخیره می‌کنند. به ازای هر نقطه زمانی مشاهده در چرخه فصلی، یک مدخل وجود دارد. به عنوان مثال، اگر نقاط داده اولیه هر پنج دقیقه یک بار تولید شوند و چرخه فصلی ۱ روز باشد، هر دو بایگانی SEASONAL و DEVSEASONAL دارای ۲۸۸ ردیف خواهند بود. .PP به منظور ساده‌سازی ایجاد برای کاربران تازه‌کار، علاوه بر پشتیبانی از ایجاد صریح \fBRRA\fRهای HWPREDICT، SEASONAL، DEVPREDICT، DEVSEASONAL و FAILURES، دستور create در \fBRRDtool\fR از ایجاد ضمنی چهار مورد دیگر در صورتی که HWPREDICT به تنهایی مشخص شده و آرگومان پایانی \fIrra\-num\fR حذف شده باشد، پشتیبانی می‌کند. .PP \&\fIrows\fR طول \fBRRA\fR را پیش از چرخش مجدد مشخص می‌کند. به یاد داشته باشید که بین نقاط داده اولیه و مدخل‌های این RRAها یک تطابق یک‌به‌یک وجود دارد. برای تابع تجمیع HWPREDICT، مقدار \fIrows\fR باید بزرگتر از \fIseasonal period\fR باشد. اگر \fBRRA\fR از نوع DEVPREDICT به صورت ضمنی ایجاد شود، تعداد ردیف‌های پیش‌فرض برابر با آرگومان \fIrows\fR در HWPREDICT خواهد بود. اگر \fBRRA\fR از نوع FAILURES به صورت ضمنی ایجاد شود، \fIrows\fR بر روی مقدار آرگومان \fIseasonal period\fR از \fBRRA\fR مربوط به HWPREDICT تنظیم خواهد شد. البته دستور \fIresize\fR در \fBRRDtool\fR در صورتی که این مقادیر پیش‌فرض کافی نباشند و ایجادکننده مایل باشد از ایجاد صریح سایر \fBRRA\fRهای توابع تخصصی اجتناب کند، در دسترس است. .PP \&\fIseasonal period\fR تعداد نقاط داده اولیه را در یک چرخه فصلی مشخص می‌کند. اگر SEASONAL و DEVSEASONAL به صورت ضمنی ایجاد شوند، این آرگومان برای آن \fBRRA\fRها به طور خودکار روی مقدار مشخص‌شده توسط HWPREDICT تنظیم می‌شود. در صورتی که به صورت صریح ایجاد شوند، ایجادکننده باید بررسی کند که هر سه آرگومان \fIseasonal period\fR با یکدیگر همخوانی داشته باشند. .PP \&\fIalpha\fR پارامتر تطبیق ضریب عرض از مبدأ (یا خط مبنا) در الگوریتم پیش‌بینی هولت\-وینترز است. برای توضیح این الگوریتم rrdtool را ببینید. مقدار \fIalpha\fR باید بین 0 و 1 باشد. مقداری نزدیک‌تر به 1 به این معنی است که مشاهدات اخیر در پیش‌بینی مؤلفه خط مبنا وزن بیشتری دارند. مقداری نزدیک‌تر به 0 بدین معناست که تاریخچه گذشته در پیش‌بینی مؤلفه خط مبنا وزن بیشتری دارد. .PP \&\fIbeta\fR پارامتر تطبیق ضریب شیب (یا روند خطی) در الگوریتم پیش‌بینی هولت\-وینترز است. مقدار \fIbeta\fR باید بین 0 و 1 باشد و همان نقشی را ایفا می‌کند که \fIalpha\fR نسبت به روند خطی پیش‌بینی‌شده دارد. .PP \&\fIgamma\fR پارامتر تطبیق ضرایب فصلی در الگوریتم پیش‌بینی هولت\-وینترز (HWPREDICT) یا پارامتر تطبیق در به‌روزرسانی هموارسازی نمایی انحرافات فصلی است. این مقدار باید بین 0 و 1 باشد. اگر \fBRRA\fRهای SEASONAL و DEVSEASONAL به صورت ضمنی ایجاد شوند، هر دو دارای مقدار یکسانی برای \fIgamma\fR خواهند بود: مقداری که برای آرگومان \fIalpha\fR در HWPREDICT مشخص شده است. توجه داشته باشید که چون برای هر نقطه زمانی در طول چرخه فصلی یک ضریب فصلی (یا انحراف) وجود دارد، نرخ تطبیق بسیار کُندتر از خط مبنا است. هر ضریب فصلی فقط زمانی به‌روزرسانی می‌شود (یا تطبیق می‌یابد) که مقدار مشاهده‌شده در آفست متناظر با آن ضریب در چرخه فصلی رخ دهد. .PP اگر \fBRRA\fRهای SEASONAL و DEVSEASONAL به صورت صریح ایجاد شوند، نیازی نیست \fIgamma\fR برای هر دو یکسان باشد. توجه داشته باشید که \fIgamma\fR همچنین می‌تواند از طریق دستور \fItune\fR در \fBRRDtool\fR تغییر یابد. .PP \&\fIsmoothing\-window\fR کسری از یک فصل را مشخص می‌کند که باید در اطراف هر نقطه میانگین‌گیری شود. به طور پیش‌فرض، مقدار \fIsmoothing\-window\fR برابر با 0.05 است، به این معنی که هر مقدار در SEASONAL و DEVSEASONAL گهگاه با میانگین‌گیری از (\fIseasonal period\fR*0.05) نزدیک‌ترین همسایگانش جایگزین خواهد شد. تنظیم \fIsmoothing\-window\fR روی صفر، هموارساز میانگین متحرک (running\-average) را به طور کامل غیرفعال می‌کند. .PP \&\fIrra\-num\fR پیوندهای بین \fBRRA\fRهای مرتبط را فراهم می‌سازد. اگر HWPREDICT به تنهایی مشخص شده باشد و سایر \fBRRA\fRها به صورت ضمنی ایجاد شوند، نیازی به نگرانی در مورد این آرگومان نیست. اگر \fBRRA\fRها به صورت صریح ایجاد شوند، باید به این آرگومان دقت کافی مبذول فرمایید. برای هر \fBRRA\fR که شامل این آرگومان باشد، یک وابستگی بین آن \fBRRA\fR و یک \fBRRA\fR دیگر وجود دارد. آرگومان \fIrra\-num\fR نمایهٔ بر مبنای ۱ در ترتیب ایجاد \fBRRA\fR است (یعنی ترتیبی که در دستور \fIcreate\fR ظاهر می‌شوند). \fBRRA\fR وابسته برای هر \fBRRA\fR که نیازمند آرگومان \fIrra\-num\fR است، در اینجا فهرست شده است: .IP \(bu 4 در HWPREDICT مقدار \fIrra\-num\fR نمایهٔ \fBRRA\fR مربوط به SEASONAL است. .IP \(bu 4 در SEASONAL مقدار \fIrra\-num\fR نمایهٔ \fBRRA\fR مربوط به HWPREDICT است. .IP \(bu 4 در DEVPREDICT مقدار \fIrra\-num\fR نمایهٔ \fBRRA\fR مربوط به DEVSEASONAL است. .IP \(bu 4 در DEVSEASONAL مقدار \fIrra\-num\fR نمایهٔ \fBRRA\fR مربوط به HWPREDICT است. .IP \(bu 4 در FAILURES مقدار \fIrra\-num\fR نمایهٔ \fBRRA\fR مربوط به DEVSEASONAL است. .PP \&\fIthreshold\fR حداقل تعداد تخطی‌ها (مقادیر مشاهده‌شده خارج از محدوده‌های اطمینان) در یک پنجره است که یک شکست (failure) را تشکیل می‌دهد. اگر \fBRRA\fR از نوع FAILURES به صورت ضمنی ایجاد شود، مقدار پیش‌فرض 7 است. .PP \&\fIwindow length\fR تعداد نقاط زمانی در پنجره است. یک عدد صحیح بزرگتر یا مساوی با آستانه (threshold) و کمتر یا مساوی با 28 مشخص کنید. بازه زمانی که این پنجره نشان می‌دهد به بازه بین نقاط داده اولیه بستگی دارد. اگر \fBRRA\fR از نوع FAILURES به صورت ضمنی ایجاد شود، مقدار پیش‌فرض 9 است..SH "STEP، HEARTBEAT و سطرها به عنوان مدت‌زمان (STEP, HEARTBEAT, and Rows As Durations)" .IX Header "STEP, HEARTBEAT, and Rows As Durations" به‌طور سنتی RRDtool بازه‌های PDP را بر حسب ثانیه و بیشتر مقادیر دیگر را بر حسب ثانیه یا تعداد PDP مشخص می‌کرد. این امر پیکربندی پایگاه‌های داده را تا حدی مبهم می‌ساخت؛ برای مثال: .PP .Vb 7 \& rrdtool create power.rrd \e \& \-\-start now\-2h \-\-step 1 \e \& DS:watts:GAUGE:300:0:24000 \e \& RRA:AVERAGE:0.5:1:864000 \e \& RRA:AVERAGE:0.5:60:129600 \e \& RRA:AVERAGE:0.5:3600:13392 \e \& RRA:AVERAGE:0.5:86400:3660 .Ve .PP یک پایگاه‌داده از مقادیر توان (power) جمع‌آوری‌شده در هر ثانیه یک‌بار، با یک heartbeat پنج دقیقه‌ای (۳۰۰ ثانیه) و چهار \fBRRA\fR ایجاد می‌کند: ده روز میانگین‌های یک ثانیه‌ای، ۹۰ روز میانگین‌های یک دقیقه‌ای، ۱۸ ماه میانگین‌های یک ساعته، و ده سال میانگین‌های یک روزه. .PP مقادیر step، heartbeat، و تعداد و سطرهای PDP را می‌توان به عنوان مدت‌زمان (durations) نیز مشخص کرد؛ این مقادیر اعداد صحیح مثبتی هستند که یک پسوند تک‌نویسه‌ای برای تعیین ضریب مقیاس به همراه دارند. برای مشاهده ضرایب مقیاس پسوندهای پشتیبانی‌شده، بخش "rrd_scaled_duration" در librrd را ببینید: \f(CW\*(C`s\*(C'\fR (ثانیه)، \f(CW\*(C`m\*(C'\fR (دقیقه)، \f(CW\*(C`h\*(C'\fR (ساعت)، \f(CW\*(C`d\*(C'\fR (روز)، \f(CW\*(C`w\*(C'\fR (هفته)، \f(CW\*(C`M\*(C'\fR (ماه)، و \&\f(CW\*(C`y\*(C'\fR (سال). .PP مقادیر مقیاس‌بندی‌شده‌ی step و heartbeat (که ذاتا مدت‌زمان‌هایی بر حسب ثانیه هستند) مستقیما استفاده می‌شوند، در حالی که آرگومان‌های سطر توابع تجمیع (consolidation function) بر مقدار step آن‌ها تقسیم می‌شوند تا تعداد سطرها به دست آید. .PP با استفاده از این قابلیت، همان پیکربندی بالا را می‌توان به این صورت نوشت: .PP .Vb 7 \& rrdtool create power.rrd \e \& \-\-start now\-2h \-\-step 1s \e \& DS:watts:GAUGE:5m:0:24000 \e \& RRA:AVERAGE:0.5:1s:10d \e \& RRA:AVERAGE:0.5:1m:90d \e \& RRA:AVERAGE:0.5:1h:18M \e \& RRA:AVERAGE:0.5:1d:10y .Ve .SH "HEARTBEAT و STEP (The HEARTBEAT and the STEP)" .IX Header "The HEARTBEAT and the STEP" در اینجا توضیحی توسط Don Baarda درباره عملکرد درونی RRDtool ارائه شده است. این توضیح ممکن است به شما کمک کند تا متوجه شوید چرا این همه داده‌ی *UNKNOWN* در پایگاه‌های داده‌تان ظاهر می‌شود: .PP به RRDtool در زمان‌های دلخواه نمونه‌ها/به‌روزرسانی‌ها تحویل داده می‌شود. این ابزار از روی آن‌ها در هر بازه زمانی "step"، نقاط اولیه‌ی داده یا همان Primary Data Points (به اختصار PDP) را می‌سازد. سپس PDPها در RRAها تجمیع می‌شوند. .PP مقدار "heartbeat" حداکثر بازه زمانی مجاز بین نمونه‌ها/به‌روزرسانی‌ها را تعریف می‌کند. اگر فاصله بین نمونه‌ها کمتر از "heartbeat" باشد، نرخ میانگین محاسبه شده و برای آن بازه اعمال می‌گردد. اگر فاصله بین نمونه‌ها بیشتر از "heartbeat" باشد، کل آن بازه به عنوان "unknown" (نامشخص) در نظر گرفته می‌شود. توجه داشته باشید عوامل دیگری نیز می‌توانند یک بازه نمونه را "unknown" کنند، مانند فراتر رفتن نرخ از حدود مجاز یا نمونه‌ای که صراحتا نامشخص علامت‌گذاری شده باشد. .PP نرخ‌های مشخص در طول بازه "step" یک PDP برای محاسبه میانگین نرخ آن PDP استفاده می‌شوند. اگر مجموع زمان‌های "unknown" بیش از \fBنیمی\fR از "step" را تشکیل دهد، کل PDP به عنوان "unknown" علامت زده می‌شود. این بدان معناست که ترکیبی از زمان‌های نمونه‌برداری مشخص و "unknown" در یک "step" منفرد، ممکن است برای ایجاد یک PDP معتبر به مقدار کافی زمان «مشخص» برسد یا نرسد. .PP مقدار "heartbeat" می‌تواند نسبت به بازه "step" بین PDPها کوتاه (غیرمعمول) یا بلند (معمول) باشد. یک "heartbeat" کوتاه یعنی برای هر PDP به چندین نمونه نیاز دارید، و اگر آن‌ها را دریافت نکنید، آن PDP به عنوان unknown علامت‌گذاری می‌شود. یک heartbeat بلند می‌تواند چندین "step" را پوشش دهد، به این معنی که محاسبه چندین PDP از یک نمونه منفرد قابل قبول است. نمونه‌ای افراطی از این حالت می‌تواند یک "step" پنج دقیقه‌ای و یک "heartbeat" یک روزه باشد؛ در این حالت، ثبت فقط یک نمونه در هر روز باعث می‌شود که همه PDPهای کل دوره آن روز با یک نرخ میانگین یکسان تنظیم شوند. \fI\-\- Don Baarda \fR .PP .Vb 10 \& time| \& axis| \& begin_\|_|00| \& |01| \& u|02|\-\-\-\-* sample1, restart "hb"\-timer \& u|03| / \& u|04| / \& u|05| / \& u|06|/ "hbt" expired \& u|07| \& |08|\-\-\-\-* sample2, restart "hb" \& |09| / \& |10| / \& u|11|\-\-\-\-* sample3, restart "hb" \& u|12| / \& u|13| / \& step1_u|14| / \& u|15|/ "swt" expired \& u|16| \& |17|\-\-\-\-* sample4, restart "hb", create "pdp" for step1 = \& |18| / = unknown due to 10 "u" labeled secs > 0.5 * step \& |19| / \& |20| / \& |21|\-\-\-\-* sample5, restart "hb" \& |22| / \& |23| / \& |24|\-\-\-\-* sample6, restart "hb" \& |25| / \& |26| / \& |27|\-\-\-\-* sample7, restart "hb" \& step2_\|_|28| / \& |22| / \& |23|\-\-\-\-* sample8, restart "hb", create "pdp" for step1, create "cdp" \& |24| / \& |25| / .Ve .PP گرافیک از \fIvladimir.lavrov@desy.de\fR. .SH "نحوه اندازه‌گیری (HOW TO MEASURE)" .IX Header "HOW TO MEASURE" در اینجا چند نکته درباره نحوه اندازه‌گیری آورده شده است: .IP "دما (Temperature)" 4 .IX Item "Temperature" معمولا نوعی سنجش‌گر در اختیار دارید که می‌توانید برای خواندن دما از آن استفاده کنید. دما در واقع به یک بازه زمانی متصل نیست؛ تنها ارتباط موجود این است که قرائت دما در زمان معینی انجام شده است. می‌توانید از نوع منبع داده \fBGAUGE\fR برای این منظور استفاده کنید. در این صورت RRDtool مقدار قرائت‌شده را به همراه زمان مربوطه ثبت خواهد کرد. .IP "پیام‌های ایمیل (Mail Messages)" 4 .IX Item "Mail Messages" فرض کنید روشی برای شمارش تعداد پیام‌های جابه‌جا شده توسط سرور ایمیلتان در یک بازه زمانی مشخص دارید، که داده‌هایی مانند «۵ پیام در ۶۵ ثانیه گذشته» به شما می‌دهد. اگر به عدد ۵ به چشم یک نوع داده‌ی \fBABSOLUTE\fR نگاه کنید، می‌توانید به سادگی RRD را با عدد ۵ و زمان پایان دوره نظارت خود به‌روزرسانی کنید. آن‌گاه RRDtool تعداد پیام‌ها در ثانیه را ثبت خواهد کرد. اگر بعدا بخواهید تعداد پیام‌های منتقل‌شده در یک روز را بدانید، می‌توانید میانگین پیام‌ها در ثانیه را برای روز مورد نظر از RRDtool دریافت کرده و آن را در تعداد ثانیه‌های یک روز ضرب کنید. از آنجا که تمام محاسبات ریاضی با اعداد ممیز شناور دو‌دقتی (Doubles) انجام می‌شوند، دقت کار باید کاملا قابل قبول باشد. .IP "همیشه یک نرخ است (It\(Aqs always a Rate)" 4 .IX Item "It's always a Rate" ابزار RRDtool نرخ‌ها را برای داده‌های COUNTER، DERIVE، DCOUNTER، DDERIVE و ABSOLUTE به صورت مقدار/ثانیه ذخیره می‌کند. وقتی داده‌ها را رسم می‌کنید، در محور y مقدار/ثانیه را مشاهده خواهید کرد و ممکن است وسوسه شوید با ضرب کردن آن در اختلاف زمانی (delta\-time) بین نقاط، آن را به یک مقدار مطلق تبدیل کنید. ابزار RRDtool داده‌های پیوسته را رسم می‌کند و به همین دلیل برای رسم مقادیر مطلق، مانند «مجموع کل بایت‌های» ارسال‌شده و دریافت‌شده در یک روتر، مناسب نیست. چیزی که احتمالا می‌خواهید، رسم نرخ‌هایی است که می‌توانید آن‌ها را مثلا به بایت/ساعت تغییر مقیاس دهید، یا رسم مقادیر مطلق با ابزار دیگری است که نمودارهای ستونی (bar\-plots) رسم می‌کند؛ جایی که delta\-time برای هر نقطه روی نمودار مشخص است (به گونه‌ای که هنگام خواندن نمودار، مثلا گیگابایت را روی محور y، روزها را روی محور x و یک ستون را برای هر روز ببینید)..SH "مثال (EXAMPLE)" .IX Header "EXAMPLE" .Vb 6 \& rrdtool create temperature.rrd \-\-step 300 \e \& DS:temp:GAUGE:600:\-273:5000 \e \& RRA:AVERAGE:0.5:1:1200 \e \& RRA:MIN:0.5:12:2400 \e \& RRA:MAX:0.5:12:2400 \e \& RRA:AVERAGE:0.5:12:2400 .Ve .PP این دستور یک \fBRRD\fR به نام \fItemperature.rrd\fR را راه‌اندازی می‌کند که هر ۳۰۰ ثانیه یک مقدار دما را می‌پذیرد. اگر برای بیش از ۶۰۰ ثانیه دادهٔ جدیدی ارائه نشود، دما به وضعیت \fI*UNKNOWN*\fR درمی‌آید. کمترین مقدار قابل‌قبول \-273 و بیشترین مقدار 5\*(Aq000 است. .PP چند ناحیهٔ بایگانی نیز تعریف شده است. اولین ناحیه دماهای ارائه‌شده را برای ۱۰۰ ساعت ذخیره می‌کند (1\*(Aq200 * 300 ثانیه = ۱۰۰ ساعت). دومین RRA کمترین دمای ثبت‌شده در هر ساعت (12 * 300 ثانیه = ۱ ساعت) را برای ۱۰۰ روز (2\*(Aq400 ساعت) ذخیره می‌کند. سومین و چهارمین RRA نیز به ترتیب همین کار را برای بیشترین و میانگین دما انجام می‌دهند. .SH "مثال ۲ (EXAMPLE 2)" .IX Header "EXAMPLE 2" .Vb 4 \& rrdtool create monitor.rrd \-\-step 300 \e \& DS:ifOutOctets:COUNTER:1800:0:125000000 \e \& RRA:AVERAGE:0.5:1:2016 \e \& RRA:HWPREDICT:1440:0.1:0.0035:288 .Ve .PP این مثال بر یک رابط روتر (router interface) نظارت می‌کند. اولین \fBRRA\fR جریان ترافیک را بر حسب بایت (octets) ردیابی می‌کند؛ دومین \fBRRA\fR توابع اختصاصی \fBRRA\fRها را برای شناسایی رفتارهای ناهنجار ایجاد می‌نماید. توجه داشته باشید که آرگومان \fIrra\-num\fR در HWPREDICT ذکر نشده است، بنابراین سایر \fBRRA\fRها به‌طور ضمنی با مقادیر پارامتر پیش‌فرض ساخته خواهند شد. در این مثال، خط مبنای (baseline) الگوریتم پیش‌بینی به سرعت تطبیق می‌یابد؛ در واقع مشاهدات یک ساعت اخیر (هر کدام در فواصل ۵ دقیقه‌ای) ۷۵٪ از پیش‌بینی خط مبنا را تشکیل می‌دهند. پیش‌بینی روند خطی بسیار کندتر تطبیق پیدا می‌کند. مشاهدات انجام‌شده در طول روز گذشته (با ۲۸۸ مشاهده در روز) تنها ۶۵٪ از روند خطی پیش‌بینی‌شده را شامل می‌شوند. نکته: این محاسبات بر پایه یک فرمول هموارسازی نمایی (exponential smoothing) هستند که در مقالهٔ LISA 2000 شرح داده شده است. حداکثر ۱۲۵۰۰۰۰۰۰ بایت در ثانیه متناظر با یک پیوند 1 Gbit/s است. .PP چرخهٔ فصلی یک روز است (۲۸۸ نقطه داده در فواصل ۳۰۰ ثانیه‌ای)، و پارامتر تطبیق فصلی روی 0.1 تنظیم می‌شود. فایل RRD پیش از بازنویسی چرخشی (wrap around)، پیش‌بینی‌ها و مقادیر انحراف مربوط به ۵ روز (1\*(Aq440 نقطه داده) را ذخیره خواهد کرد. این فایل یک روز (یک چرخهٔ فصلی) از نشانگرهای 0\-1 را در \fBRRA\fR از نوع FAILURES نگهداری می‌کند. .PP همان فایل RRD و \fBRRA\fRها را می‌توان با دستور زیر نیز ایجاد کرد، که تمام \fBRRA\fRهای توابع اختصاصی را به صورت صریح با استفاده از «STEP، HEARTBEAT و سطرها به عنوان مدت زمان» می‌سازد. .PP .Vb 8 \& rrdtool create monitor.rrd \-\-step 5m \e \& DS:ifOutOctets:COUNTER:30m:0:125000000 \e \& RRA:AVERAGE:0.5:1:2016 \e \& RRA:HWPREDICT:5d:0.1:0.0035:1d:3 \e \& RRA:SEASONAL:1d:0.1:2 \e \& RRA:DEVSEASONAL:1d:0.1:2 \e \& RRA:DEVPREDICT:5d:5 \e \& RRA:FAILURES:1d:7:9:5 .Ve .PP البته ایجاد صریح نیازی به بازتولید دقیق ایجاد ضمنی ندارد و می‌توان تعدادی از آرگومان‌ها را تغییر داد. .SH "مثال ۳ (EXAMPLE 3)" .IX Header "EXAMPLE 3" .Vb 5 \& rrdtool create proxy.rrd \-\-step 300 \e \& DS:Requests:DERIVE:1800:0:U \e \& DS:Duration:DERIVE:1800:0:U \e \& DS:AvgReqDur:COMPUTE:Duration,Requests,0,EQ,1,Requests,IF,/ \e \& RRA:AVERAGE:0.5:1:2016 .Ve .PP این مثال بر میانگین مدت‌زمان درخواست‌ها در طول هر بازهٔ ۳۰۰ ثانیه‌ای برای درخواست‌های پردازش‌شده توسط یک وب‌پروکسی نظارت می‌کند. در این مورد، پروکسی دو شمارنده ارائه می‌دهد: تعداد درخواست‌های پردازش‌شده از زمان بوت سیستم، و مجموع مدت‌زمان تجمعی تمامی درخواست‌های پردازش‌شده. مسلماً هر دوی این شمارنده‌ها نقطه سرریز دارند، اما استفاده از منبع دادهٔ DERIVE همچنین بازنشانی ناشی از متوقف شدن و راه‌اندازی مجدد وب‌پروکسی را مدیریت می‌کند. .PP در \fBRRD\fR، اولین منبع داده نرخ درخواست بر ثانیه را در طول بازه ذخیره می‌کند. دومین منبع داده مدت‌زمان کل تمام درخواست‌های پردازش‌شده در طول بازه تقسیم بر ۳۰۰ را ذخیره می‌نماید. منبع دادهٔ COMPUTE هر PDP از AccumDuration را بر PDP متناظر آن در TotalRequests تقسیم کرده و میانگین مدت‌زمان درخواست را ذخیره می‌کند. بخش باقی‌ماندهٔ عبارت RPN حالت تقسیم بر صفر را مدیریت می‌کند. .SH "امنیت (SECURITY)" .IX Header "SECURITY" توجه داشته باشید که فایل‌های جدید rrd صرف‌نظر از تنظیمات umask شما، دارای مجوز 0644 خواهند بود. اگر فایلی با همان نام از قبل وجود داشته باشد، تنظیمات مجوز آن به فایل جدید رونوشت خواهد شد. .SH "نویسندگان (AUTHORS)" .IX Header "AUTHORS" Tobias Oetiker , Peter Stamfest