fixed solaris regression introduced in r1904 ... now the isnan macro should work...
[rrdtool.git] / NEWS
1 #####################################
2 Major Changes between 1.4.x and ...
3 -------------------------------------
4 $Id$
5
6 RRD Graph
7 ---------
8 * GRAD element for graph, it acts more or less like an AREA,
9   except you can specify a second color and a height which is used to
10   create a gradient from one color to the next
11   by Rian Shelley
12
13 * RRDcached awareness. Instead of just flushing the file, data can now
14   be pulled in from remote RRDcached instances.
15
16 * VDEF results do now explicitly KNOW when they have no time associated
17   and can behave appropriately. -- Jean-Edouard Babin
18
19 RRDcached
20 ----------
21 * New FETCH command allowing rrd_fetch to operate through the daemon and
22   thus work remotely. By Florian Forster
23
24 API
25 ---
26 * exported rrd_update_v_r for theadsave rrd_update calls
27
28
29 #####################################
30 Major Changes between 1.3.x and 1.4.x
31 -------------------------------------
32
33 RRD Caching Daemon (rrdcached)
34 ------------------------------
35 by Florian Forster and Kevin Brintnall
36
37 The RRD Caching Daemon can dramatically improve the 'update' performance
38 of your system.  Due to file handling overheads, the time it takes todo one
39 update is virtually the same as to doing two updates in a row.
40
41 The Cache Daemon intercepts rrdtool update calls, assembling multiple
42 updates before writing them to the actual rrd file. When calling rrdtool
43 graph in such a setup, the command will tell the daemon to flush out all
44 pending updates for the rrd files, required to draw the graph.
45
46 See rrdcached documentation.
47
48 RRD Dumping and Restoring (rrdtool dump/restore)
49 ------------------------------------------------
50 by Tobi Oetiker
51
52 The output of rrdtool dump has been adjusted to be simpler to parse by
53 existing xml parsers.
54
55 The restore core has been completely re-written yet again and is now relying
56 on an incremental xml parser. This has the advantage that the memory
57 consumption while restoring xml files is only slightly larger than the
58 resulting rrd file. Which is much less than the requirements of the 1.3 and
59 even 1.2
60
61 RRD Graphing functions (rrdtool graph)
62 --------------------------------------
63 by Martin Sperl
64
65 * VDEF PERCENTNAN (a PRECENT that ignores NAN)
66
67 * CDEF PREDICT and PREDICTSIGMA functions for on-the-fly
68   data prediction without the need to modify existing rrd files as it is
69   required for HoltWinters.
70
71 * LibDBI integration provides a path to read data directly of a supported
72   SQL database into rrdtool graph. See rrdgraph_libdbi documentation.
73
74 Miscellaneous Changes
75 ---------------------
76 * graph legends can now be placed left, right or above the graph with the
77   new --legend-direction and --legend-positon placement options. 
78   by Melchior Rabe
79
80 * switched to using automake 1.11 which provides a 'silent' build process,
81   causing errors and warnings to stand out much more than before.
82   by Tobi Oetiker
83
84 * switched from intltoolize to autopoint for the i18n configuration.
85   by Tobi Oetiker
86
87 * new graph option --grid-dash on:off to configure the dash length
88   in the grid painted over the graph by Tobi Oetiker
89
90 * lua bindings for rrdtool
91   by Fidelis Assis
92
93 * various improvements to rrd_open functions and mmap handling
94   by Daniel Pocock
95
96 * allow the HW smoothing window size to be set to 0 with rrdtool tune
97   by sylvain luiset
98
99 * new graph option --border to set the 3d border width 
100   by Bernhard Reutner-Fischer
101
102 * draw different color markers (enable with --dynamic-labels) depending on the
103   type of element in the graph by Loïc Tortay
104
105 for more detail see the CHANGES file.
106
107 #####################################
108 Major Changes between 1.2.x and 1.3.x
109 -------------------------------------
110
111 NEW Fast file access methods (Bernhard Fischer / Tobi Oetiker)
112 ----------------------------
113 * introduced file-accessor functions rrd_read/rrd_seek/rrd_write
114
115 * implemented full mmap-based file access with madvise hints for
116   improved scalability, much reduced memory-footprint and much less
117   blocking while accessing the disk
118
119 * implemented optional full file-descriptor access instead of FILE*
120   access
121
122 NEW Graphing (Tobi Oetiker)
123 ------------
124 * libart has been replaced by cairo/pango
125
126 * pango markup is supported (--pango-markup)
127
128 * full grid fitting
129
130 * --graph-render-mode=mono for non anti aliased graphing
131
132 * --font-render-mode=mono for non anti aliased fonts
133
134 * fonts come through fontconfig, use the Pango font naming scheme
135   -> 'Times 20' ... it is not possible to use true-type fonts
136   directly anymore.
137
138 * Tabs are position independent.
139
140 * TRENDNAN filter that ignores NAN values while calculating the
141   TREND data. (Timo Stripf)
142
143 * --full-size-mode to specify the outer border of the image and not
144   just of the graphing canvas (Matthew Chambers)
145
146 * TEXTALIGN command to alter default text alignment behavior
147
148 * C API in-memory graphing with rrd_graph_v (Evan Miller)
149
150 * draw dashed lines in graphs (Thomas Gutzler)
151
152 * new interface graphv which returns information using the rrd_info
153   interface (Tobi Oetiker and Mark Plaksin)
154
155 * improved horizontal grid. Have a bit more grid lines and y-axis
156   labels while keeping them far enough apart to not run into each
157   other.
158
159 NEW Forecasting (Evan Miller)
160 ---------------
161 * the new MHWPREDICT consolidation function uses a variation of the
162   Holt-Winters method. It is a drop-in replacement for HWPREDICT,
163   and is better suited for data whose seasonal variations grow or
164   shrink in proportion to the average.
165
166 * If you create an RRD with the new MHWPREDICT function, the
167   resulting rrd file will be version 0004 and can only be used in
168   rrdtool 1.3.
169
170 Rewrites
171 --------
172 * rrd_restore now uses libxml for parsing which makes things much
173   more tolerant towards xml variations. The old code could mostly
174   just parse the XML as it was output by rrdtool dump. See also:
175   the note at the bottom of this document. (by Florian octo
176   Forster)
177
178 * rrd_update rewritten to make it more modular. Fixed two
179   longstanding HW bugs in the process (Evan Miller)
180
181 Internationalization (Takao Fujiwara and Tobi Oetiker)
182 --------------------
183 * The help output by rrdtool has been internationalized. There are
184   no real translations included with rrdtool yet, contributions are
185   welcome.
186
187 * The internationalization will only be compiled if libintl and
188   friends are available on your system. Use the configure option
189   --disable-libintl if you want to disable this feature
190
191 Language Bindings
192 -----------------
193 * ruby rrd_fetch will return step as a last property -- Mike Perham
194
195 RRDtool dump / restore incompatibility
196 --------------------------------------
197 * rrdtool dump 1.3 does emit completely legal XML. Basically this
198   means that it contains an XML header and a DOCTYPE definition.
199   Unfortunately this causes older versions of rrdtool restore to be
200   unhappy.
201
202 * To restore a new dump with an old rrdtool restore version, either
203   remove the XML header and the doctype by hand (both on the first
204   line of the dump) or use rrdtool dump --no-header.
205
206
207 ######################################################################################
208 Major Changes between 1.0.x and 1.2.x
209 ======================================================================================
210 Graphing
211 --------
212
213 * rewritten graphics generation based on libart.
214   - anti-aliased output
215   - alpha transparency support
216   - truetype fonts
217  
218 * additional graphics formats: EPS, PDF, SVG
219
220 * extended multi-part documentation
221
222 * VDEF support; define and use variables.  Find, and use, the
223   maximum rate seen by rrdtool; compute and show the average
224
225 * Sliding window (trend) analysis
226   Compute a smoother average, for instance over the last 6 CDPs
227
228 * percentile (95th or other)
229   Remove peaks, 95 percent of all rates are at or below the
230   returned value
231
232 Logging
233 -------
234 * a second logging interface: rrdtool updatev
235   Verbose updating of the database; show CPDs being created
236
237 * Aberrant Behavior Detection with Holt-Winters Forecasting
238   Compare current data with expected data, detect and log when
239   the rates are outside expected levels
240
241 * COMPUTE data type for artificial data-sources calculating their
242   input using RPN math and data from the other data-sources.
243  
244 Incompatibilities
245 -----------------
246 * Colons in COMMENT arguments to rrdtool graph must be escaped with a backslash
247
248 * the --alt-y-mrtg option is gone or rather since 1.2.7 it is back but
249   without functionality.
250
251 * In pipe mode, rrdtool answers with OK only if it was successful with the
252   command. Otherwhise the answer will be ERROR...
253
254
255 Behind the Scenes
256 -----------------
257 * In order to support Holt-Winters and Calculated Datasources,
258   the rrdtool data format has changed. While the new version of rrdtool can
259   read files created with rrdtool 1.0.x. It is not possible to read files
260   created by rrdtool-1.2.x with rrdtool-1.0.x
261
262 * External libraries are not included with rrdtool anymore. This is in line
263   with todays trend of using shared libraries everywhere. With the exception
264   of the cgi library most things required by rrdtool will be found on every recent
265   system.
266
267 * Memory Mapped IO support for faster logging.