Lets have a look at the example above. For the first RRA, 12 (steps)
PDPs (DS variables) are AVERAGEed (CF) to form one CDP. 24 (rows) of
-theses CDPs are archived. Each PDP occurs at 300 seconds. 12 PDPs
+these CDPs are archived. Each PDP occurs at 300 seconds. 12 PDPs
represent 12 times 300 seconds which is 1 hour. It means 1 CDP (which
is equal to 12 PDPs) represents data worth 1 hour. 24 such CDPs
represent 1 day (1 hour times 24 CDPs). This means, this RRA is an
L<https://oss.oetiker.ch/rrdtool/doc/rrdcreate.en.html> - This one is on the official site. Actually it's the manual page for "rrdcreate", and it reveals what's under the hood with regard to PDP calculation in its "The HEARTBEAT and the STEP" section.
-The text graph by Don Baarda provides a vivid explanation on how B<UNKOWN> data are produced and how heartbeat value can influence in the sampling. Unfortunately, it fails to give a clear method by which PDPs are calculated.
+The text graph by Don Baarda provides a vivid explanation on how B<UNKNOWN> data are produced and how heartbeat value can influence in the sampling. Unfortunately, it fails to give a clear method by which PDPs are calculated.
L<https://oss.oetiker.ch/rrdtool/tut/rrdtutorial.en.html> - Another detailed official tutorial by Alex van den Bogaerdt. Similarly, it only provides examples with data evenly and exactly distributed according to the step set.
I<percent>,I<count>,B<PERCENT>
pop two elements (I<count>,I<percent>) from the stack. Now pop I<count> element, order them by size
-(while the smalles elements are -INF, the largest are INF and NaN is larger than -INF but smaller
+(while the smallest elements are -INF, the largest are INF and NaN is larger than -INF but smaller
than anything else. No pick the element from the ordered list where I<percent> of the elements
are equal then the one picked. Push the result back on to the stack.
mkdir "db-$$" or die $!;
chdir "db-$$";
- my $step = $Chunk; # number of rrds to creat for every round
+ my $step = $Chunk; # number of rrds to create for every round
my @path;
my $time=int(time);
* ds - Data Source (ds) providing input to the database. A Data Source (ds)
* can be a traffic counter, a temperature, the number of users logged
* into a system. The rrd database format can handle the input of
- * several Data Sources (ds) in a singe database.
+ * several Data Sources (ds) in a single database.
*
* dst - Data Source Type (dst). The Data Source Type (dst) defines the rules
* applied to Build Primary Data Points from the input provided by the
}
/* from http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm */
-/* yes we are loosing precision by doing tos with floats instead of doubles
+/* yes we are losing precision by doing tos with floats instead of doubles
but it seems more stable this way. */
static int AlmostEqual2sComplement(
return -1;
}
- /* dont draw horizontal grid if there is no min and max val */
+ /* don't draw horizontal grid if there is no min and max val */
if (!res) {
char *nodata = "No Data found";
}
if (im->title && im->title[0] != '\0') {
- /* The title is placed "inbetween" two text lines so it
+ /* The title is placed "in between" two text lines so it
** automatically has some vertical spacing. The horizontal
** spacing is added here, on each side.
*/
}
}
- // We previous found a delimitor so lets null terminate it
+ // We previous found a delimiter so lets null terminate it
if (found_pos)
*found_pos = '\0';
consumed = found_pos;
}
- // move the consumed pointer past any delimitor, so we can loop around again
+ // move the consumed pointer past any delimiter, so we can loop around again
consumed = consumed + found_size;
}
// must not create more than MAX lines, so must stop splitting
}
rraopcnt++;
} else {
- rrd_set_error("unparseable argument: %s", argv[i]);
+ rrd_set_error("unparsable argument: %s", argv[i]);
rc = -1;
goto done;
}
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WEHTHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
*current_time = floor(tmp);
*current_time_usec = (long) ((tmp - (double) *current_time) * 1e6f);
}
- /* dont do any correction for old version RRDs */
+ /* don't do any correction for old version RRDs */
if (version < 3)
*current_time_usec = 0;
/* NOTE: DST_CDEF should never enter this if block, because
* updvals[ds_idx+1][0] is initialized to 'U'; unless the caller
- * accidently specified a value for the DST_CDEF. To handle this case,
+ * accidentally specified a value for the DST_CDEF. To handle this case,
* an extra check is required. */
if ((updvals[ds_idx + 1][0] != 'U') &&
unsigned long ds_idx, cdp_idx;
/* update CDP_PREP areas */
- /* loop over data soures within each RRA */
+ /* loop over data sources within each RRA */
for (ds_idx = 0; ds_idx < rrd->stat_head->ds_cnt; ds_idx++) {
cdp_idx = rra_idx * rrd->stat_head->ds_cnt + ds_idx;
report "create"
-declare -a UPDATE_LIST=("1548500700:0:0:0" # Initalize PDP with 0
+declare -a UPDATE_LIST=("1548500700:0:0:0" # Initialize PDP with 0
"1548500760:1:60:60" # 1.0 steps value 1
"1548500790:0:60:0" # 0.5 steps value 0
"1548501000:1:270:210" # 3.5 steps value 1