10.9.10
2======
3*5/31/12*
4
5Graphite 0.9.10 has been released and is now available. The packages for Whisper, Carbon, and Graphite-web are available via several sources:
6
7* Pypi (and by extension, `pip <http://www.pip-installer.org/en/latest/index.html>`_)
8
9 - http://pypi.python.org/pypi/graphite-web/
10 - http://pypi.python.org/pypi/carbon/
11 - http://pypi.python.org/pypi/whisper/
12
13* Github
14
15 - https://github.com/graphite-project/graphite-web/downloads
16 - https://github.com/graphite-project/carbon/downloads
17 - https://github.com/graphite-project/whisper/downloads
18
19* Launchpad
20
21 - https://launchpad.net/graphite/0.9/0.9.10
22
23This release contains a fabulous amount of incremental improvement over 0.9.9. Some highlights include:
24* Fixes to several annoying Composer and Dashboard UI bugs
25* Import of Saved Graphs into Dashboards
26* Fixes to cache-full behavior for carbon-cache and carbon senders (relay and aggregator)
27* Many new useful render functions and graph options
28* Improvements to the rendering engine and fixes to many rendering bugs
29* Support for rendering graphs as annotated SVG
30* Better organized and more flexible Graphite-web config layout (local_settings.py)
31
32Upgrading from 0.9.9 should be as simple as updating the packages. It is recommended but not necessary that local_settings.py be recreated based on the newly shipped local_settings.py.example as it includes many newly exposed settings and an improved organization and comments. Carbon's config files also have a few new settings as well to check out.
33
34The Graphite project is also in the midst of some project changes. For those who have not yet noticed, the Graphite codebase has been moved to Github (http://github.com/graphite-project) and split into individual components (Graphite-web, Carbon, Whisper, and soon Ceres). The Launchpad project remains active in supporting the project with its Answers (http://answers.launchpad.net/graphite/) and Bugs (http://bugs.launchpad.net/graphite/) functionality.
35
36Development going forward will focus on preparing what will become Graphite 0.10.0 which will include support for the Ceres database format as well as a major refactor of the Carbon daemon (nicknamed "Megacarbon"). The master branches of the project should be considered to be in an 'alpha' state for the time being and subject to backwards-incompatible changes. Fixes to the current version will be maintained in the 0.9.x project branches but no 0.9.11 version is planned for the time being.
37
38A big thanks goes out to all those who have helped the project in contributions of time and energy in the form of code contributions, testing, discussion, and helping each other out with support questions. Additional thanks are due to Aman Gupta (tmm1) for all of his great work on the rendering engine and other fixes, Sidnei Da Silva for his work migrating the project to Github and his fixes, and everyone who's taken the time to answer questions on the Answers site and on IRC.
39
40As always, if you need any assistance please `ask a question <https://answers.launchpad.net/graphite>`_ or join us on IRC in #graphite on Freenode.
41
42The following is a summary of changes since the last release:
43
44New features
45------------
46
47Whisper
48^^^^^^^
49
50* Allocate Whisper files in chunks by default (jordansissel)
51* Allow Whisper files to be allocated sparsely (jordansissel)
52* Add whisper-merge command to copy data from one file to another (sidnei)
53* Add whisper-dump utility (amosshapira)
54
55Graphite Dashboard
56^^^^^^^^^^^^^^^^^^
57
58* New button to retrieve Graph URL (octplane)
59* Add button to send email of rendered graph as attachment (bkjones)
60* Allow relative ‘until’ time to be set in dashboard (daniellawrence)
61* Add ability to import Graphs into dashboards from URL or Saved Graphs
62
63Rendering Engine
64^^^^^^^^^^^^^^^^
65
66* New minorY option to configure minor gridlines (whd)
67* New alpha() function to set individual color alpha values (tmm1)
68* Allow areaAlpha to set alpha values for all styles of stacked graphs (tmm1)
69* New minimumAbove() function: draw only series whose min is above n (tmm1)
70* New areaBetween() function: draw the area between two graph lines (tmm1)
71* New holtWintersConfidenceArea() function: display area between Holt-Winters confidence bands (tmm1)
72* New SVG output format with embedded graph metadata (tmm1)
73* New metric whitelist/blacklist functionality using pattern files
74* New filterBelowPercentile() function: remove data below n percentile from a series (tmm1)
75* New removeAbovePercentile() and removeAboveValue() functions to remove outliers (tmm1)
76* New removeBelowPercentile() and removeBelowValue() functions to match above counterparts
77* New aliasSub() function: perform a regex search/replace on metric names (tmm1)
78* New rangeOfSeries() function: reduces multiple series into the value range of each point (saysjonathan)
79* New movingMedian() function: moving median, similar to movingAverage (recursify)
80* New multiplySeries() function: combine series by multiplying them
81* New hideYAxis option (mdeeks)
82* New percentileOfSeries() function: Combines series into the value at n percentile for each point
83* New tranformNull() function: transforms None values to specified (cbrinley)
84* New scaleToSeconds() function: scales values based on series step (redbaron)
85* New aliasByMetric() function: trims all but the last element of metric name in legend (obfuscurity)
86* New uniqueLegend option to filter duplicate metric names in legend (mdeeks)
87* New vtitleRight option to label 2nd Y-axis
88
89Carbon
90^^^^^^
91
92* Allow flock() mode to be configured for Whisper
93* Allow flushing of rrdcached before rrd data fetches (shufgy)
94* Add ability to configure carbon metric prefix (jblaine)
95
96Bug fixes
97---------
98Whisper
99^^^^^^^
100
101* Record only the last value when duplicate timestamps are sent (knyar)
102* Fix rrd2whisper.py script to work with newer python-rrdtool api
103
104Carbon
105^^^^^^
106
107* Fix full drain of queue after cache-full event when flow-control is enabled in both client and carbon-cache
108* Fix unnecessary drop of a single metric point when cache is full
109* Fix instrumentation of carbon-relay (darrellb)
110
111Webapp
112^^^^^^
113
114* Fix reading of Gzip’d whisper files and remote reading of RRDs
115* Fix registration of Event model in admin site
116* Fix events() to work with timezone aware dates
117* Fix Event model to use tagging properly and fix compatibility with MySQL (hellvinz)
118* Fix compatibility of built-in json module in events and graphlot
119* Fix loading of saved graphs where a target has a ‘%’ in the name
120
121Rendering Engine
122^^^^^^^^^^^^^^^^
123
124* Fix removal of whitespace above stacked graphs with yMax setting (tmm1)
125* Use powers of 2 when calculating yStep and yUnitSystem=binary (tmm1)
126* Force 100% usage of vertical space when yMax=max
127* Compact memcached keys to keep size under 250 after Django processing (Kevin Clark)
128* Fix alignFromTrue functionality in summarize() (tmm1)
129* Fix cases of mismatched units in holt-winters bootstraps (lapsu,tmm1)
130* Force integer in moving average window parameter (lapsu)
131* Fix incorrect cache fetch when storage dir is symlinked (mk-fraggod)
132* Fix infinite loop in Y-axis render when series range is very-very small
133* Fix “Undo Function” button when braces expressions are present in the target
134* Fix legend column calculation (darrellb)
135* Fix broken aliasByNode() (darrellb)
136* Fix rendering failures when infinite values are present in series
137* Fix legend text overlap with dual Y-axis mode (nleskiw)
138* Fix missing hunk of graph on right side with Dual Y-axis
139* Fix cactiStyle() handling of None values
140* Fix rendering breakage during DST time switch
141* Allow multiple named stacks of metrics (aleh)
142* Fix incorrect/misaligned graphs when series with unaligned steps are mixed in a graph
143* Properly shift over series that have a later start time than the graph start
144
145Composer
146^^^^^^^^
147
148* Fix JS error on IE due to tailing list commas (reed-r-lance)
149* Fix usage of + instead of %20 for spaces in URL encoding in composer view
150* Fix display of a broken image rather than “No Data” when last target is removed
151* Fix the loss of multiple targets when loading a saved graph with new params (vilkaspilkas)
152* Fix unremovable duplicate metrics
153
154Dashboard
155^^^^^^^^^
156
157* Fix automatic edit field selection on click (octplane)
158* Fix usage of browser cache-busting uniq parameter to be filtered from memcache key (sidnei)
159* Fix inability to remove Graphs with duplicate target lists
160
161Other improvements
162------------------
163
164Carbon
165^^^^^^
166
167* Match time units used in storage-schemas.conf with those in the webapp (ohlol)
168* Only log Carbon queue fullness once (sidnei)
169* Only log Carbon queue space free if it was once full (sidnei)
170* Log a message with the affected filename when a Whisper update fails (bmhatfield)
171* Move carbon instance logs to their own own directory to prevent clobbering
172* Prevent carbon-aggregator from clobbering aggregated values when aggregating to same-name
173* Add SSL option to amqp publisher (sidnei)
174* Remove duplicate dot metric path filtering for performance (drawks)
175* Refactor of schema validation to give more informative errors
176* Add reloading of rewrite-rules and aggregation-schemas for consistency
177
178Webapp
179^^^^^^
180
181* Refactor settings.py to allow more complete configuration in local_settings.py
182* Make Graphite compatible with Django 1.4
183* Add jsonp support for /browser endpoint
184* Make it harder to break metric browsing with a bad DATA_DIRS entry
185
186Rendering Engine
187^^^^^^^^^^^^^^^^
188
189* Make asPercent() much more flexible and useful
190* stddev() function made more robust
191* Allow metrics to begin with a braces-wildcard
192* Prevent drawAsInfinite() lines from affecting Y axis height (bmhatfield)
193* Pass through time with secondly rather than minutely resolution to rrdfetch (tmm1)
194* Tree branches should display above all leaves (mdeeks)
195* Add alignToInterval to hitcount() function similar to summarize() (jwoschitz)
196* Fix PieGraph missing function
197* Allow timeShift() to shift forward as well as backward
198
199Composer
200^^^^^^^^
201
202* Don’t reorder targets when applying functions
203* Refactor of Graph Options menu
204
205Dashboard
206^^^^^^^^^
207
208* Explicitly size img tags to keep scroll position intact during reloads
209* Default the navBar as collapsed when loading an existing dashboard view
210* Show wildcards in top nav browsing view
211* Allow dashboards to have any character in title (octplane)
212* Make “Remove All Graphs” and “Change Size” dialogs modal (dannyla)
213* Make the new “north” navbar the default
214
215
216