Features for RRDtool 1.3
Multiplicative Holt-Winters Forecasting
Evan Miller of IMVU added support for multiplicative Holt-Winters:
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.
MMAP IO
The whole IO subsystem has been redone by Bernhard Fischer. It can now uses MMAPed IO for all RRD file access and uses madvise extensively to help the kernel with cache handling.
The net effect is that in-memory updates are about twice as fast as before. My CoreDuo? Thinkpad was able to do 12k updates per second (in memory) with the 1.2 code base. With the 1.3 code base it is able to do 22k updates per second (in memory).
Obviously RRD data has to go to disk eventually, there has not been all that much change, since the OS still has to write the blocks. My 5400 RPM Thinkpad HD continues to run at about 250 RRD updates per second.
Since we are now telling the kernel that we will not read/write the whole RRD file but just some blocks of it (random access) the disk access could be optimized and cache usage generally reduced. The number of RRD files that can be kept in cache at any one time is 3 to 5 times as large in 1.3 as in 1.2.
Graphing with Cairo/Pango?
No more libart, no more strange error messages about stability. The switch to Cairo makes for a number of neat new features:
- --graph-render-mode=mono brings back the rrdtool 1.0.x look and feel
. The anti aliasing can be configured for graph and fonts separately. - full grid-fitting of all drawing operations makes for crisper looking graph output
even when anti aliasing is active.
- PDF, SVG and EPS output are now created through cairo. The most striking difference here is that you can use the same fonts as in PNG output. A sample file is attached below.
We now use Pango for all text rendering. Pango integrates with Cairo, Freetype and Fontconfig. This has a number of implications:
- Fonts are accessed through the fontconfig interface. This means you get access to all fonts on your system, and at the same time loose the ability to use true type fonts directly.
- All text is passed through Pango Markup. This means it is now possible to switch font properties inside any rrdtool graph text field.
New graphv Interface
With web applications becoming more interactive, the need for additional information about the graphs generated with rrdtool has grown. The new graphv interface works in the same way as rrd_info except that it returns a lot of meta information about the graph. If the name of the graph is '-' then even the graph itself will be returned via the new interface. With these features the new graphv function will build the basis for a new bread of interactive rrdtool applications.
Other Enhancements
- TEXTALIGN
-
The TEXTALIGN command lets you specify how the legend of the graph should be aligned by
default.
TEXTALIGN:left
- --pango-markup
- Lets you use a simple markup language in the rrdtool graph text strings.
- beginnings of c api
- If you want to use rrdtool directly from your c program, have a look at rrd.h it documents all public functions.
- libxml for rrd restore
- rrdtool restore now uses libxml for parsing its input. This makes it more tolerant.
Attachments (4)
-
minmax.mono.png
(7.3 KB) -
added by oetiker 16 years ago.
All antialiasing can be disabled ... font and graph seperately.
-
minmax.anti.png
(14.7 KB) -
added by oetiker 16 years ago.
Antialiased and grid fitted demo graph.
-
minmax.12.png
(19.5 KB) -
added by oetiker 16 years ago.
The test graph rendered by rrdtool 1.2.23
-
minmax.2.pdf
(18.7 KB) -
added by oetiker 16 years ago.
PDF output created by RRDtool 1.3
Download all attachments as: .zip