1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
|
.. _0-9-14:
0.9.14
===========================
*11/7/2015*
Graphite 0.9.14 is now available for usage. Source bundles are available from GitHub:
* https://github.com/graphite-project/graphite-web/archive/0.9.14.tar.gz
* https://github.com/graphite-project/carbon/archive/0.9.14.tar.gz
* https://github.com/graphite-project/whisper/archive/0.9.14.tar.gz
Graphite can also be installed from `PyPI <http://pypi.python.org/>`_ via
`pip <http://www.pip-installer.org/en/latest/index.html>`_. PyPI bundles are here:
* http://pypi.python.org/pypi/graphite-web/
* http://pypi.python.org/pypi/carbon/
* http://pypi.python.org/pypi/whisper/
Upgrading
---------
Graphite 0.9.14 now requires a Django version of at least 1.4. Ensure this dependency is satisfied before updating *graphite-web*.
As always, comparing the example config files with existing ones is recommended to ensure awareness of any new features.
Graphite-web's application database will need to be upgraded for a new Django fixture. It's a good idea to backup the database before proceeding with the migration. The following will upgrade a SQLite database:
.. code-block:: none
sudo cp /opt/graphite/storage/graphite.db \
/opt/graphite/storage/graphite.db.backup-`date +%Y%m%d_%H%M%S`
sudo PYTHONPATH=/opt/graphite/webapp django-admin.py syncdb \
--noinput --no-initial-data --settings=graphite.settings
Security Notes
--------------
No known security issues.
New Features
------------
Graphite-web
^^^^^^^^^^^^
* New ``minimumBelow()`` function (ojilles)
* Add ``margin()`` function to Composer menu (obfuscurity)
* Sort "User Graphs" by creator's username (ciranor)
* New ``changed()`` function (kamaradclimber, obfuscurity)
* Use ``query_bulk`` for improved cache query performance (huy, deniszh)
* A URL shortener has been added to the composer toolbar (seveas, cbowman0, deniszh)
* Allow metric finder to return jsonp objects (kali-hernandez-sociomantic)
* Document use of alpha color values in ``colorList`` and ``bgcolor`` (ojilles)
* Improved documentation for ``areaBetween()`` (ojilles, gwaldo)
* Improved documentation for ``cactiStyle()`` (ojilles)
* Document installation via Synthesize (gwaldo)
* Mention the Synthensize installation method for Windows users (gwaldo)
* Massive cleanup across all of our documentation pages (gwaldo)
* Support for custom remote authentication backends (steve-dave)
* Improvements to the cache hash function (rmca, esc)
* Improved logging on CarbonLink failed queries (jamesjuran)
* Add navigation elements to reorder metrics in Composer (justino)
* Use Django's native TZ method (jcsp)
* New test suite and TravisCI integration (brutasse, esc)
* Rename the metrics node from "Graphite" to "Metrics" (obfuscurity)
* New ``perSecond()`` function (cbowman0, pcn)
* Add Composer button to load existing graph url (justino)
* Add ``maxDataPoints`` to limit number of returned datapoints for json requests (philiphoy, gingerlime)
* Refactor json responses for clarity (whilp)
* New `grafana` color scheme (lainSR)
* Add optional 'now' parameter to remote node fetch (Kixeye)
* Graphlot was completely removed (obfuscurity)
* Use cairocffi instead of pycairo (brutasse, esc)
* New icons converted from Font Awesome project (obfuscurity)
* Adding tests for Django 1.7 (brutasse, syepes)
* Bulk-fetch metrics from remote hosts (bmhatfield, deniszh, favoretti)
* Perform all remote fetches in parallel (bmhatfield)
* Perform ``/metrics/find`` queries in parallel (jraby)
* New prefetch cache for remote queries (jraby)
* New ``REMOTE_STORE_USE_POST`` setting for remote requests (steve-dave)
* New single-hue color templates (obfuscurity)
* New ``sortByName()`` function (jssjr, Krylon360)
* Namespace request-cache data with the local node (jssjr)
* Support for retrieving static assets with whitenoise (brutasse, deniszh)
* Enable buffering in HTTPResponse objects (jjneely, deniszh)
* Merge TimeSeries when more than one returned per key, making this feature optional (jjneely, deniszh)
Carbon
^^^^^^
* Record the blacklist and whitelist metrics (jssjr, deniszh)
* Ability to run in the foreground without debug (jib, deniszh)
* Introduce ``QUEUE_LOW_WATERMARK_PCT`` and ``TIME_TO_DEFER_SENDING`` to improve batching (pcn, steve-dave)
* Configurable files for aggregation and rewrite rules (drawks)
* New bulk cache query type (huy)
* Bulk cache query instrumentation (mleinart)
* Require Twisted >= 13.2.0, adds IPv6 support (obfuscurity)
* Document how to disable individual listeners (steve-dave)
* Support backlogs for TCP listeners (jssjr)
* Improved cache tests (jssjr)
* New ``--profiler`` option (tail, deniszh)
* Support for ``DIVERSE_REPLICAS`` (deniszh, dctrwatson)
Whisper
^^^^^^^
* New whisper-fill utility imported from Carbonate project (jssjr, grobian, deniszh)
* Add ``--estimate`` option to whisper-create (steve-dave)
* New whisper-diff utility (bheilman, deniszh)
Bug fixes
---------
Graphite-web
^^^^^^^^^^^^
* Missing ``pathExpression`` in ``constantLine()`` function (markolson)
* Fix for ``CLUSTER_SERVERS`` when ``ip_nonlocal_bind`` is enabled (PrFalken)
* Missing ExtJS gif in Dashboard when viewed in tree configuration (obfuscurity)
* Fix docs builds for the [render function list](http://graphite.readthedocs.org/en/0.9.x/functions.html) (obfuscurity, gwaldo)
* ``aliasByMetric()`` was including trailing arguments (obfuscurity)
* Fix ``initialState`` for Dashboard (cbownman0, jamesjuran)
* Broken ``series.name`` in ``percentileOfSeries`` (simm42)
* Refresh "My Graphs" *after* graph is saved or deleted (obfuscurity)
* Remove superfluous grid line with log scale (ralphm)
* Fix ``holtWintersAberration()`` when bands have ``None`` values (aaronfc)
* Number of results from cache query was incorrectly logged (steve-dave)
* Dashboard should only refresh on positive values (linkslice)
* Fix ``logBase()`` when value between 0 and 1 (wellle)
* Fix ``PICKLE_SAFE`` for remote rendering (deniszh)
* Fix ``yMaxValue`` when ``areaMode=stacked`` (bitprophet)
* Convert ``time.mktime`` to int to fix ``identity()`` function (dpkp)
* Compatibility fix in Graphlot (steve-dave)
* Off-by-one bug that broke JSON output for ``constantLine`` (steve-dave)
* Minor documentation fix for ``sumSeriesWithWildcards()`` (steve-dave)
* Fix TypeError with ``sum()`` function (macolu)
* Remote storage should return ``None`` when ``seriesList`` is empty (steve-dave)
* Fix project url in ``setup.py`` (esc)
* Fix condition where missing ``until`` paramater caused TypeError (steve-dave)
* Remove old jQuery workaround in Graphlot (steve-dave)
* Fix ``now`` handling in render queries (jcsp)
* Fix ``PICKLE_SAFE`` for CarbonLink queries (Dieterbe)
* Decimals not printed for ``cactiStyle()`` (SuminAndrew, drawks)
* Typo in exception name (also)
* Fix assumption that RemoteNode inherits from Node (mleinart)
* Updating the copyright notice (gwaldo)
* CACHE_* settings are deprecated in Django 1.3, so, was replaced with CACHES setting (brutasse, deniszh)
* Fix data cache invalidation (esc, deniszh)
* Fix documentation for divideSeries (gwaldo)
* Make HTTP clients only cache graphs as long as we keep them in memcached (aroben, deniszh)
* DST fixes, backport from graphite-api (brutasse, deniszh)
* HttpRequest.raw_post_data was deprecated in Django 1.4 (obfuscurity)
* XSS fixes for browser and composer (illicium, piotr1212, deniszh)
* Docs: Python Dev Headers needed for custom install location (gwaldo)
* Fix pytz install dependency (deniszh)
* Javascript compatibility fixes for Internet Explorer (piotr1212)
* Timezone fixes and tests (brutasse, MFAnderson, deniszh)
* Fix for remote fetch threads (deniszh)
* Fixes for ``normalize()`` (g76r, jstangroome)
* Avoid exceptions when ``CARBONLINK_HOSTS`` is an empty list (jstangroome)
* Lock django-tagging to fix Travis CI (jstangroome)
* Set default timezone (jjneely)
* Never attempt to write empty data to request-cache (apg-pk)
* Never merge CarbonLink results with Whisper rollups (penpen, obfuscurity)
* Fix for SVG graphs (grobian, obfuscurity)
* Skip empty target parameters (obfuscurity)
* Remove unnecessary dependencies (obfuscurity)
Carbon
^^^^^^
* Restore recursive mkdir on ``LOG_DIR`` (jamesjuran)
* More accurate queue length reporting (pcn, bitprophet)
* Set ownership on log subdirectories if ``USER`` is defined (jamesjuran)
* Improved documentation for ``FORWARD_ALL`` (hdoshi)
* Fix whisper directory umask (alexandreboisvert, steve-dave)
* Unable to load ``AGGREGATION_RULES`` (drawks)
* Compatibility with Twisted 13.2.0 (esc, drawks)
* Incorrect log rotation documentation (mleinart)
* Fix carbon-cache cpu usage 100% when sent metric with too big name (jssr, deniszh)
* Fix aggregator replication factor setting (jssr, deniszh)
* Change the max update on shutdown (f80)
* Document the fact that one can use regexps in the aggregation-rules (ctavan)
* Move tests to tox (jssr)
* Add hup signal handler (jssr)
* Fix instrumentation (avishai-ish-shalom, jssr)
* Fix exception handling (steve-dave)
* Fix CACHE_WRITE_STRATEGY (jssr)
* Fix aggregated metrics (pgul, ctavan)
* Logging fixes (obfuscurity, piotr1212)
* Fix race condition for full queues (mleinart)
* Default value for ``MAX_UPDATES_PER_SECOND_ON_SHUTDOWN`` (jssjr)
* Never cache empty aggregation results (mleinart)
* Fixes for MetricsCache size leak (jssjr, deniszh)
* Documentation fix for relay-rules (obfuscurity)
* Fix test assertions (obfuscurity)
* Fix for ``--profile`` arg (tail, deniszh)
* Move Red Hat initscripts to examples (deniszh, bmhatfield)
Whisper
^^^^^^^
* Write optimization in ``update_many`` (timob, deniszh)
* Add optional ``now`` parameter to fetch for graphite-web compatibility (jcsp, steve-dave)
* Remove unused Tox configuration (steve-dave)
* TravisCI no longer supports Python 2.5 (steve-dave)
* Unlink Whisper file if empty/corrupted (jraby)
* Enforce closing of Whisper files (AstromechZA, jjneely)
* Handle zero length time ranges by returning the next valid point (jjneely)
* Used wrong ``until`` boundary for selecting archive (obfuscurity)
|