added missing ;
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1199 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1199 a5681a0c-68f1-0310-ab6d-d61299d08faa
* mimic write() and read() even better -- Bernhard Fischer
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1198 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1198 a5681a0c-68f1-0310-ab6d-d61299d08faa
rrd_open.c (rrd_read): Mimicing read() behaviour for EOF case and NULL buffer case.
-- Bernhard Fischer
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1197 a5681a0c-68f1-0310-ab6d-d61299d08faa
-- Bernhard Fischer
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1197 a5681a0c-68f1-0310-ab6d-d61299d08faa
fixed speling of horizon
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1196 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1196 a5681a0c-68f1-0310-ab6d-d61299d08faa
a better performance tester
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1194 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1194 a5681a0c-68f1-0310-ab6d-d61299d08faa
added holt winters example back into the examples documentation
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1193 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1193 a5681a0c-68f1-0310-ab6d-d61299d08faa
Fix for HoltWinters phase-shift bug described below.
When one or more primary data point times were missed, the SEASONAL and
DEVSEASONAL archives were marked as being up-to-date, so that they would not
be written to. It was correct not to write to these archives, but the code
failed to advance the pointers within the SEASONAL and DEVSEASONAL archives
so that future updates would go to the correct location in the archives.
Rather than mark these archives as up-to-date (by setting
rra_step_cnt[rra_idx] = 0), my patch allocates a new "skip_update" array
that is set to 1 for SEASONAL and DEVSEASONAL archives that have missed one
or more primary data points. When an RRA is written to, the cur_row pointer
advancement happens for all archives, but the skip_update array is checked
just before actually writing out the changes.
Please give it a whirl!
-- Evan Miller emiller imvu.com
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1192 a5681a0c-68f1-0310-ab6d-d61299d08faa
When one or more primary data point times were missed, the SEASONAL and
DEVSEASONAL archives were marked as being up-to-date, so that they would not
be written to. It was correct not to write to these archives, but the code
failed to advance the pointers within the SEASONAL and DEVSEASONAL archives
so that future updates would go to the correct location in the archives.
Rather than mark these archives as up-to-date (by setting
rra_step_cnt[rra_idx] = 0), my patch allocates a new "skip_update" array
that is set to 1 for SEASONAL and DEVSEASONAL archives that have missed one
or more primary data points. When an RRA is written to, the cur_row pointer
advancement happens for all archives, but the skip_update array is checked
just before actually writing out the changes.
Please give it a whirl!
-- Evan Miller emiller imvu.com
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1192 a5681a0c-68f1-0310-ab6d-d61299d08faa
Refactored rrd_update code in preparation of finding the HW update
problem -- Evan Miller
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1191 a5681a0c-68f1-0310-ab6d-d61299d08faa
problem -- Evan Miller
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1191 a5681a0c-68f1-0310-ab6d-d61299d08faa
updated build instructions for 1.3
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1190 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1190 a5681a0c-68f1-0310-ab6d-d61299d08faa
initial talk
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1189 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1189 a5681a0c-68f1-0310-ab6d-d61299d08faa
addded details
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1187 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1187 a5681a0c-68f1-0310-ab6d-d61299d08faa
prepare for the release of rrdtool-1.2.99907080300
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1185 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1185 a5681a0c-68f1-0310-ab6d-d61299d08faa
remove some things we do not need anymore in 1.3
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1184 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1184 a5681a0c-68f1-0310-ab6d-d61299d08faa
prepare for the release of rrdtool-1.2.99907080300
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1183 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1183 a5681a0c-68f1-0310-ab6d-d61299d08faa
prepare for 1.3 beta 1
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1182 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1182 a5681a0c-68f1-0310-ab6d-d61299d08faa
continue with the revision numbering
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1181 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1181 a5681a0c-68f1-0310-ab6d-d61299d08faa
added notes on pango inline formatting
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1180 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1180 a5681a0c-68f1-0310-ab6d-d61299d08faa
talk updates
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1179 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1179 a5681a0c-68f1-0310-ab6d-d61299d08faa
only release cairo stuff if we ever initialized it.
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1178 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1178 a5681a0c-68f1-0310-ab6d-d61299d08faa
fix for 64bit portability problem ... unsigned long is not int
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1177 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1177 a5681a0c-68f1-0310-ab6d-d61299d08faa
added toppics
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1174 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1174 a5681a0c-68f1-0310-ab6d-d61299d08faa
fixed indenting
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1173 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1173 a5681a0c-68f1-0310-ab6d-d61299d08faa
17 years agomake sure we check input even when the previous update was a 'U' ... and some indenti...
make sure we check input even when the previous update was a 'U' ... and some indenting fixes
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1172 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1172 a5681a0c-68f1-0310-ab6d-d61299d08faa
added missing header
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1170 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1170 a5681a0c-68f1-0310-ab6d-d61299d08faa
new consolidation functions must be added last or this will break binary compatibility
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1169 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1169 a5681a0c-68f1-0310-ab6d-d61299d08faa
don't force data out ... let cache management do this
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1168 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1168 a5681a0c-68f1-0310-ab6d-d61299d08faa
Only create version 4 rrd files if the new holtwinters MHW.. CF is used.
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1167 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1167 a5681a0c-68f1-0310-ab6d-d61299d08faa
* remove some experimental code from rrd_open
* rrd_dontneed will release all data except for header blocks and RRA hot blocks
which are going to be updated withing 10 minutes.
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1166 a5681a0c-68f1-0310-ab6d-d61299d08faa
* rrd_dontneed will release all data except for header blocks and RRA hot blocks
which are going to be updated withing 10 minutes.
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1166 a5681a0c-68f1-0310-ab6d-d61299d08faa
for now, do not release fetched data ... in the future we may call rrd_dontneed and let the users decied with an option
if they want to keep the data in cache ...
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1165 a5681a0c-68f1-0310-ab6d-d61299d08faa
if they want to keep the data in cache ...
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1165 a5681a0c-68f1-0310-ab6d-d61299d08faa
the fonts are now taken from the system. we do not distribute them anympore
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1164 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1164 a5681a0c-68f1-0310-ab6d-d61299d08faa
not on update rrd version
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1163 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1163 a5681a0c-68f1-0310-ab6d-d61299d08faa
we have a new holtwinders aggregation fucntion, so we have a new version ...
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1162 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1162 a5681a0c-68f1-0310-ab6d-d61299d08faa
check for fadvise all the time
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1161 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1161 a5681a0c-68f1-0310-ab6d-d61299d08faa
better docs on the aggregate functions
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1160 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1160 a5681a0c-68f1-0310-ab6d-d61299d08faa
added note on locale
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1159 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1159 a5681a0c-68f1-0310-ab6d-d61299d08faa
some more piechart removed
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1158 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1158 a5681a0c-68f1-0310-ab6d-d61299d08faa
make sure all ascii to float parsing uses LC_NUMERIC = C so that we do not stuble on locales confusing the , with a .
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1157 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1157 a5681a0c-68f1-0310-ab6d-d61299d08faa
* rrd_open: rrd_close does not purge file from cache
* rrd_open: new function rrd_dontneed for purging un-needed pages from core
* rrd_open: in linux at least only fadivse DONTNEED has the power to purge
pages from cache, so letst call madvise as well as fadvise
* rrd_create: uses open/write/close now, flushes file to disk and keeps only hot pages in core
* rrd_update: keeps only hot pages in core
* configure enables FADVISE even when mmap is in use
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1156 a5681a0c-68f1-0310-ab6d-d61299d08faa
* rrd_open: new function rrd_dontneed for purging un-needed pages from core
* rrd_open: in linux at least only fadivse DONTNEED has the power to purge
pages from cache, so letst call madvise as well as fadvise
* rrd_create: uses open/write/close now, flushes file to disk and keeps only hot pages in core
* rrd_update: keeps only hot pages in core
* configure enables FADVISE even when mmap is in use
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1156 a5681a0c-68f1-0310-ab6d-d61299d08faa
added comment on float cookie
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1155 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1155 a5681a0c-68f1-0310-ab6d-d61299d08faa
fix for fetch in ruby bindings and support for info added.
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1154 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1154 a5681a0c-68f1-0310-ab6d-d61299d08faa
added report
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1152 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1152 a5681a0c-68f1-0310-ab6d-d61299d08faa
improve wording
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1149 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1149 a5681a0c-68f1-0310-ab6d-d61299d08faa
fix tcl build settup
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1148 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1148 a5681a0c-68f1-0310-ab6d-d61299d08faa
monor updates
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1147 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1147 a5681a0c-68f1-0310-ab6d-d61299d08faa
usr rrd_free for freeing the rrd structs ... vito caputo
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1146 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1146 a5681a0c-68f1-0310-ab6d-d61299d08faa
fixed linebreak
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1144 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1144 a5681a0c-68f1-0310-ab6d-d61299d08faa
remove the 3.5h comment
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1143 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1143 a5681a0c-68f1-0310-ab6d-d61299d08faa
initial emanics versions
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1142 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1142 a5681a0c-68f1-0310-ab6d-d61299d08faa
prevent potential segfaults on boxes where time_t is not long
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1141 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1141 a5681a0c-68f1-0310-ab6d-d61299d08faa
add halfday
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1138 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1138 a5681a0c-68f1-0310-ab6d-d61299d08faa
updated for lisa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1135 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1135 a5681a0c-68f1-0310-ab6d-d61299d08faa
fix indentation
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1134 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1134 a5681a0c-68f1-0310-ab6d-d61299d08faa
Bernhard Fischer:
- move several static struct option out of loops and makes them
non-static
- moves some functions from old-style definitions into new-style
definitions
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1133 a5681a0c-68f1-0310-ab6d-d61299d08faa
- move several static struct option out of loops and makes them
non-static
- moves some functions from old-style definitions into new-style
definitions
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1133 a5681a0c-68f1-0310-ab6d-d61299d08faa
Bernhard is not Benrard
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1132 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1132 a5681a0c-68f1-0310-ab6d-d61299d08faa
lets have just a single rrdtool extension annd not two ...
-- Jarod Wilson <jwilson@redhat.com>
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1131 a5681a0c-68f1-0310-ab6d-d61299d08faa
-- Jarod Wilson <jwilson@redhat.com>
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1131 a5681a0c-68f1-0310-ab6d-d61299d08faa
notes on evans contribs
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1130 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1130 a5681a0c-68f1-0310-ab6d-d61299d08faa
rrdtool.spec from Jarod "redhat" Wilson
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1129 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1129 a5681a0c-68f1-0310-ab6d-d61299d08faa
updated contributors
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1127 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1127 a5681a0c-68f1-0310-ab6d-d61299d08faa
added note on TEXTALIGN
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1126 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1126 a5681a0c-68f1-0310-ab6d-d61299d08faa
There are two popular variants of the Holt-Winters forecasting method; RRDtool
supports the "additive" method, which means that seasonal variation is simply
added to the baseline. For our application, it would be more appropriate to use
the "multiplicative" Holt-Winters method, where seasonal variation is a
coefficient multiplied by the baseline. Quick example to illustrate the
difference: if the average doubles season-over-season, the additive method
would predict the delta between min and max to be constant, whereas the
multiplicative method would predict the delta to double as well.
Attached is a patch against trunk to support the multiplicative method. I've
done this with a new consolidation function, MHWPREDICT, which is essentially
interchangeable with HWPREDICT. There is a noticeable improvement in prediction
deviations for certain types of functions; the attachments show HWPREDICT and
MHWPREDICT predictions for a function with an x*sin(x) component.
Because HWPREDICT and MHWPREDICT differ only in their equations, I've factored
out their math into rrd_hw_math.c. The appropriate smoothing functions are
passed to the update functions in a container of function pointers, which are
called where appropriate. Thus the additive and multiplicative methods use the
same update functions, and the right equations are evaluated without having
flag checks everywhere. This approach, I think, makes the algorithms quite
clear, with minimal duplicate code.
I have moved update_hwpredict, update_seasonal, update_devpredict,
update_devseasonal, and update_failures into a separate file, rrd_hw_update.c,
with some slight refactoring related to rrd_hw_math.c. I ran some
regression tests against trunk to make sure I didn't break anything with
the existing HWPREDICT code.
MHWPREDICT uses the same deviation smoothing and failure detection algorithms
as HWPREDICT.
Some helpful references on the multiplicative Holt-Winters method:
http://www.it.iitb.ac.in/~praj/acads/seminar/04329008_ExponentialSmoothing.pdf
(a student's quick overview of additive vs. multiplicative HW)
http://ideas.repec.org/p/msh/ebswps/1999-1.html (paper on variations to the
multiplicative Holt-Winters, including variance calculations; FYI, my
implementation uses "Model 1")
My employer and the owner of this patch (IMVU, Inc.) is happy to license it
under the same terms as RRDtool, i.e. give it to the project.
-- Evan Miller emiller imvu.com
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1125 a5681a0c-68f1-0310-ab6d-d61299d08faa
supports the "additive" method, which means that seasonal variation is simply
added to the baseline. For our application, it would be more appropriate to use
the "multiplicative" Holt-Winters method, where seasonal variation is a
coefficient multiplied by the baseline. Quick example to illustrate the
difference: if the average doubles season-over-season, the additive method
would predict the delta between min and max to be constant, whereas the
multiplicative method would predict the delta to double as well.
Attached is a patch against trunk to support the multiplicative method. I've
done this with a new consolidation function, MHWPREDICT, which is essentially
interchangeable with HWPREDICT. There is a noticeable improvement in prediction
deviations for certain types of functions; the attachments show HWPREDICT and
MHWPREDICT predictions for a function with an x*sin(x) component.
Because HWPREDICT and MHWPREDICT differ only in their equations, I've factored
out their math into rrd_hw_math.c. The appropriate smoothing functions are
passed to the update functions in a container of function pointers, which are
called where appropriate. Thus the additive and multiplicative methods use the
same update functions, and the right equations are evaluated without having
flag checks everywhere. This approach, I think, makes the algorithms quite
clear, with minimal duplicate code.
I have moved update_hwpredict, update_seasonal, update_devpredict,
update_devseasonal, and update_failures into a separate file, rrd_hw_update.c,
with some slight refactoring related to rrd_hw_math.c. I ran some
regression tests against trunk to make sure I didn't break anything with
the existing HWPREDICT code.
MHWPREDICT uses the same deviation smoothing and failure detection algorithms
as HWPREDICT.
Some helpful references on the multiplicative Holt-Winters method:
http://www.it.iitb.ac.in/~praj/acads/seminar/04329008_ExponentialSmoothing.pdf
(a student's quick overview of additive vs. multiplicative HW)
http://ideas.repec.org/p/msh/ebswps/1999-1.html (paper on variations to the
multiplicative Holt-Winters, including variance calculations; FYI, my
implementation uses "Model 1")
My employer and the owner of this patch (IMVU, Inc.) is happy to license it
under the same terms as RRDtool, i.e. give it to the project.
-- Evan Miller emiller imvu.com
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1125 a5681a0c-68f1-0310-ab6d-d61299d08faa
oops missed to update the in memory output interface here
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1124 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1124 a5681a0c-68f1-0310-ab6d-d61299d08faa
added interface to get rendered image via a pointer to allocated memory ... Evan Miller emmiller gmail.com
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1123 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1123 a5681a0c-68f1-0310-ab6d-d61299d08faa
improve fontnaming
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1122 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1122 a5681a0c-68f1-0310-ab6d-d61299d08faa
fixed indentation
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1121 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1121 a5681a0c-68f1-0310-ab6d-d61299d08faa
added TEXTALIGN command to change the default text alignment
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1120 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1120 a5681a0c-68f1-0310-ab6d-d61299d08faa
fixed tcl includes
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1119 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1119 a5681a0c-68f1-0310-ab6d-d61299d08faa
17 years agobe more helpful when raising rb_eTypeError in string_arr string_arr_new(VALUE rb_stri...
be more helpful when raising rb_eTypeError in string_arr string_arr_new(VALUE rb_strings). This patch indicates which index is in error as well as the type you are erroneously passing. -- anonymous
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1118 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1118 a5681a0c-68f1-0310-ab6d-d61299d08faa
Bernhard Fischer:
- fix nulling the updvals
- cosmetic change to move the option struct out of the loop.
- need to operate on a copy of optarg
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1116 a5681a0c-68f1-0310-ab6d-d61299d08faa
- fix nulling the updvals
- cosmetic change to move the option struct out of the loop.
- need to operate on a copy of optarg
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1116 a5681a0c-68f1-0310-ab6d-d61299d08faa
added TRENDNAN function -- Timo Stripf
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1115 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1115 a5681a0c-68f1-0310-ab6d-d61299d08faa
allow output to stdout -- Timo Stripf
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1114 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1114 a5681a0c-68f1-0310-ab6d-d61299d08faa
added more news
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1113 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1113 a5681a0c-68f1-0310-ab6d-d61299d08faa
fixed indentation, added documentation note on gridfitting.
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1112 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1112 a5681a0c-68f1-0310-ab6d-d61299d08faa
fix arrow locations
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1111 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1111 a5681a0c-68f1-0310-ab6d-d61299d08faa
disable gridfitting for vector formats
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1110 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1110 a5681a0c-68f1-0310-ab6d-d61299d08faa
make pdf output work
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1109 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1109 a5681a0c-68f1-0310-ab6d-d61299d08faa
added detail
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1108 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1108 a5681a0c-68f1-0310-ab6d-d61299d08faa
--font-render-mode is back, and there is also
--graph-render-mode now. It allows to enable
mono graphs that look strikingly like rrdtool 1.0.x
--tobi
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1107 a5681a0c-68f1-0310-ab6d-d61299d08faa
--graph-render-mode now. It allows to enable
mono graphs that look strikingly like rrdtool 1.0.x
--tobi
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1107 a5681a0c-68f1-0310-ab6d-d61299d08faa
Bernhard Fischer:
- NEWS mention the new file accessors
- rrd_update.c: remove unused some cruft
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1106 a5681a0c-68f1-0310-ab6d-d61299d08faa
- NEWS mention the new file accessors
- rrd_update.c: remove unused some cruft
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1106 a5681a0c-68f1-0310-ab6d-d61299d08faa
Bernhard Fischer:
- fix maintaining our file-pos when we have to wrap the rra_ptr in
update().
- no need to update the header-data a second time for the mmap case.
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1105 a5681a0c-68f1-0310-ab6d-d61299d08faa
- fix maintaining our file-pos when we have to wrap the rra_ptr in
update().
- no need to update the header-data a second time for the mmap case.
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1105 a5681a0c-68f1-0310-ab6d-d61299d08faa
updated news
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1104 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1104 a5681a0c-68f1-0310-ab6d-d61299d08faa
* added some documentation
* updated version number
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1103 a5681a0c-68f1-0310-ab6d-d61299d08faa
* updated version number
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1103 a5681a0c-68f1-0310-ab6d-d61299d08faa
switched graphics library from arts to cairo+pango
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1102 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1102 a5681a0c-68f1-0310-ab6d-d61299d08faa
Bernhard Fischer:
- new configure option --enable-static-programs
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1101 a5681a0c-68f1-0310-ab6d-d61299d08faa
- new configure option --enable-static-programs
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1101 a5681a0c-68f1-0310-ab6d-d61299d08faa
Bernhard:
- implement resize SHRINK for FD (mmap is to be done)
- indent
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1100 a5681a0c-68f1-0310-ab6d-d61299d08faa
- implement resize SHRINK for FD (mmap is to be done)
- indent
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1100 a5681a0c-68f1-0310-ab6d-d61299d08faa
--full-size-mode with and without --no-legend should work now -- Matthew Chambers
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1099 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1099 a5681a0c-68f1-0310-ab6d-d61299d08faa
Bernhard
- fill the file with DNAN and add the remaining data in after the fact ...
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1098 a5681a0c-68f1-0310-ab6d-d61299d08faa
- fill the file with DNAN and add the remaining data in after the fact ...
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1098 a5681a0c-68f1-0310-ab6d-d61299d08faa
Bernhard Fischer
- implement resize, growing part. truncation is to be done.
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1097 a5681a0c-68f1-0310-ab6d-d61299d08faa
- implement resize, growing part. truncation is to be done.
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1097 a5681a0c-68f1-0310-ab6d-d61299d08faa
Bernhard Fischer
- use 'z' length modifier when printing size_t
- add a cast to __rrd_read and document why it is there
- add RANDOM hint for the header
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1096 a5681a0c-68f1-0310-ab6d-d61299d08faa
- use 'z' length modifier when printing size_t
- add a cast to __rrd_read and document why it is there
- add RANDOM hint for the header
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1096 a5681a0c-68f1-0310-ab6d-d61299d08faa
Bernhard:
- plug tiny mem-leak in error path of rrd_close where freeing the
rrd_file was forgotten.
- improve two error messages
- use CHECK_MADVISE_OVERLAPS per default
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1095 a5681a0c-68f1-0310-ab6d-d61299d08faa
- plug tiny mem-leak in error path of rrd_close where freeing the
rrd_file was forgotten.
- improve two error messages
- use CHECK_MADVISE_OVERLAPS per default
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1095 a5681a0c-68f1-0310-ab6d-d61299d08faa
fix rrd_write -- Bernhard Fischer
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1094 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1094 a5681a0c-68f1-0310-ab6d-d61299d08faa
fix indenting ... again
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1093 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1093 a5681a0c-68f1-0310-ab6d-d61299d08faa
From Bernhard Fischer
- rrd_close(): call close on the file and use rrd_close consistently
- clean up some error paths. The fadvise error path is leaking memory (see XXX in these spots).
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1092 a5681a0c-68f1-0310-ab6d-d61299d08faa
- rrd_close(): call close on the file and use rrd_close consistently
- clean up some error paths. The fadvise error path is leaking memory (see XXX in these spots).
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1092 a5681a0c-68f1-0310-ab6d-d61299d08faa
make this work on recent php4 versions -- Bernhard Fischer
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1090 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1090 a5681a0c-68f1-0310-ab6d-d61299d08faa
switch for rrd_graph to specify the outer-size of the graph and not just the
size of the canvas: --full-size-mode -- matthew.chambers vanderbilt.edu
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1089 a5681a0c-68f1-0310-ab6d-d61299d08faa
size of the canvas: --full-size-mode -- matthew.chambers vanderbilt.edu
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1089 a5681a0c-68f1-0310-ab6d-d61299d08faa
More updates from Bernhard Fischer
- flag rrd_resize's old file with RRD_COPY
- cleanup error-handling pathes in rrd_update and fix a few typos in
comments
- rrd_close(): implement printing mincore results for the rrd if
DEBUG=2 was defined
- rrd_open(): madvise start addresses need to be page-aligned; implement
alternative path to the fine-grained (i.e. exact) madvise by flagging
just the first two pages as needed (see TWO_PAGES). Implement
alternative path that records the last madvise()ed area to avoid
redundant calls to madvise() on identical areas (due to
page-alignment constraints) -- see CHECK_MADVISE_OVERLAPS. Implement
path for USE_DIRECT_IO.
- configure: add check for O_DIRECT flag to open(2). Add option
--enable-direct-io. Add _GNU_SOURCE to CFLAGS to silence warnings
about chroot which is marked LEGACY since SUSv2 and is a non POSIX
extension. Make checks for posix_fadvise() dependant on
--disable-mmap, since we do not need fadvise for the mmap case.
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1088 a5681a0c-68f1-0310-ab6d-d61299d08faa
- flag rrd_resize's old file with RRD_COPY
- cleanup error-handling pathes in rrd_update and fix a few typos in
comments
- rrd_close(): implement printing mincore results for the rrd if
DEBUG=2 was defined
- rrd_open(): madvise start addresses need to be page-aligned; implement
alternative path to the fine-grained (i.e. exact) madvise by flagging
just the first two pages as needed (see TWO_PAGES). Implement
alternative path that records the last madvise()ed area to avoid
redundant calls to madvise() on identical areas (due to
page-alignment constraints) -- see CHECK_MADVISE_OVERLAPS. Implement
path for USE_DIRECT_IO.
- configure: add check for O_DIRECT flag to open(2). Add option
--enable-direct-io. Add _GNU_SOURCE to CFLAGS to silence warnings
about chroot which is marked LEGACY since SUSv2 and is a non POSIX
extension. Make checks for posix_fadvise() dependant on
--disable-mmap, since we do not need fadvise for the mmap case.
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1088 a5681a0c-68f1-0310-ab6d-d61299d08faa
tobis old cruft removal program ...
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1086 a5681a0c-68f1-0310-ab6d-d61299d08faa
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1086 a5681a0c-68f1-0310-ab6d-d61299d08faa
updates from Bernhard Fischer rep dot nop gmail com
- add some more rrd_sterror calls to failure paths.
- make rrdtool updatev work like 1.2.23 (i.e. multiple values are still
broken, but at least updating a single value works; see
http://oss.oetiker.ch/rrdtool-trac/ticket/8)
- indent touched files.
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1085 a5681a0c-68f1-0310-ab6d-d61299d08faa
- add some more rrd_sterror calls to failure paths.
- make rrdtool updatev work like 1.2.23 (i.e. multiple values are still
broken, but at least updating a single value works; see
http://oss.oetiker.ch/rrdtool-trac/ticket/8)
- indent touched files.
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1085 a5681a0c-68f1-0310-ab6d-d61299d08faa
Updates from Bernhard Fischer rep dot nop gmail com
- fix typo in rrd_fetch where rrd_read result was checked against an
incorrect size.
- in rrd_fetch, drop rrd_head_size in favour of rrd_file->header_len
- in rrd_fetch, make the message "post fetch" unambiguous (now past vs.
post).
- change usage of param rdwr of rrd_open: allow for RRD_READONLY,
RRD_READWRITE, RRD_CREAT, RRD_READAHEAD; adjust callers accordingly:
+ rrd_resize needs CREAT
+ rrd_dump may want READAHEAD
- implement FD based I/O in rrd_open, rrd_read, rrd_write, rrd_seek.
- in rrd_update, unify write_RRA_row().
- sort | uniq the -T in .indent.pro (info_t was duplicated)
- add stub of an option to use O_DIRECT to the configury
- in Makefile.am, simplify the "indent" invocation of find:
My find may not support "-o" resp. "-or" nor braces.
Using -name "*.[ch]" works everywhere, AFAIK.
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1084 a5681a0c-68f1-0310-ab6d-d61299d08faa
- fix typo in rrd_fetch where rrd_read result was checked against an
incorrect size.
- in rrd_fetch, drop rrd_head_size in favour of rrd_file->header_len
- in rrd_fetch, make the message "post fetch" unambiguous (now past vs.
post).
- change usage of param rdwr of rrd_open: allow for RRD_READONLY,
RRD_READWRITE, RRD_CREAT, RRD_READAHEAD; adjust callers accordingly:
+ rrd_resize needs CREAT
+ rrd_dump may want READAHEAD
- implement FD based I/O in rrd_open, rrd_read, rrd_write, rrd_seek.
- in rrd_update, unify write_RRA_row().
- sort | uniq the -T in .indent.pro (info_t was duplicated)
- add stub of an option to use O_DIRECT to the configury
- in Makefile.am, simplify the "indent" invocation of find:
My find may not support "-o" resp. "-or" nor braces.
Using -name "*.[ch]" works everywhere, AFAIK.
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1084 a5681a0c-68f1-0310-ab6d-d61299d08faa