Skip to content

Commit 2d5f15c

Browse files
authored
Merge pull request #2159 from deniszh/DZ-Release-1.1.0
Release Notes for 1.1.0 release
2 parents 6b91f29 + 5145a61 commit 2d5f15c

File tree

7 files changed

+275
-9
lines changed

7 files changed

+275
-9
lines changed

docs/functions.rst

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,15 @@ Most functions are applied to one :term:`series list`. Functions with the parame
1010
``*seriesLists`` can take an arbitrary number of series lists. To pass multiple series lists
1111
to a function which only takes one, use the :py:func:`group` function.
1212

13-
.. _list-of-functions :
13+
.. _list-of-functions:
1414

1515
List of functions
1616
-----------------
1717
.. automodule:: graphite.render.functions
1818
:members:
1919

20+
.. _function-plugins:
21+
2022
Function Plugins
2123
----------------
2224

@@ -88,6 +90,8 @@ To load a packaged function plugin module, add it to the ``FUNCTION_PLUGINS`` se
8890
'some.function_plugin',
8991
]
9092
93+
.. _function-api:
94+
9195
Function API
9296
------------
9397

docs/install.rst

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ Try Graphite in Docker and have it running in seconds:
1818
-p 8126:8126\
1919
graphiteapp/graphite-statsd
2020
21-
Check `docker_repo`_ for details.
21+
Check `docker repo`_ for details.
2222

2323
This is portable, fast and easy to use. Or use instructions below for installation.
2424

@@ -33,10 +33,10 @@ been met or not.
3333
Basic Graphite requirements:
3434

3535
* a UNIX-like Operating System
36-
* Python 2.7 or greater but `NOT Python 3` (yet)
36+
* Python 2.7 or greater (including experimental Python3 support)
3737
* `cairocffi`_
38-
* `Django`_ 1.8 - 1.11
39-
* `django-tagging`_ 0.4.3 (not `django-taggit` yet)
38+
* `Django`_ 1.8 - 1.11 (for Python3 - 1.11 only)
39+
* `django-tagging`_ 0.4.6 (not `django-taggit` yet)
4040
* `pytz`_
4141
* `scandir`_
4242
* `fontconfig`_ and at least one font package (a system package usually)
@@ -55,7 +55,7 @@ There are also several other dependencies required for additional features:
5555

5656
* Render caching: `memcached`_ and `python-memcache`_
5757
* LDAP authentication: `python-ldap`_ (for LDAP authentication support in the webapp)
58-
* AMQP support: `txamqp`_
58+
* AMQP support: `txamqp`_ (version 0.8 is required)
5959
* RRD support: `python-rrdtool`_
6060
* Dependent modules for additional database support (MySQL, PostgreSQL, etc). See `Django database install`_ instructions and the `Django database`_ documentation for details
6161

@@ -186,7 +186,7 @@ Post-Install Tasks
186186

187187
Windows Users
188188
-------------
189-
Despair Not! Even though running Graphite on Windows is completely unsupported (we fear that handling the escaping of paths in the regexes would result only in jibbering madness, and life is just too short; pull requests happily considered!), you are not completely out of luck. There are some solutions that make it easier for you to run a UNIX VM within your Windows box. The :doc:`Installing via Synthesize </install-synthesize>` article will help you set up a Vagrant VM that will run Graphite. In order to leverage this, you will need to install `Vagrant <https://www.vagrantup.com/>`_.
189+
Unfortunately, native Graphite on Windows is completely unsupported, but you can run Graphite on Windows in `Docker`_ or the :doc:`Installing via Synthesize </install-synthesize>` article will help you set up a Vagrant VM that will run Graphite. In order to leverage this, you will need to install `Vagrant <https://www.vagrantup.com/>`_.
190190

191191

192192
.. _Apache: https://projects.apache.org/project.html?httpd-http_server
@@ -211,4 +211,5 @@ Despair Not! Even though running Graphite on Windows is completely unsupported
211211
.. _scandir: https://pypi.python.org/pypi/scandir
212212
.. _txAMQP: https://launchpad.net/txamqp/
213213
.. _uWSGI: http://uwsgi-docs.readthedocs.io/
214-
.. _docker_repo: https://github.com/graphite-project/docker-graphite-statsd
214+
.. _Docker: https://www.docker.com/
215+
.. _docker repo: https://github.com/graphite-project/docker-graphite-statsd

docs/releases.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ Release Notes
55
:maxdepth: 1
66
:glob:
77

8+
releases/1_1_0
89
releases/1_0_2
910
releases/1_0_1
1011
releases/1_0_0

docs/releases/1_1_0.rst

Lines changed: 254 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,254 @@
1+
.. _1-1-0:
2+
3+
1.1.0
4+
===========================
5+
*12/21/2017*
6+
7+
Graphite 1.1.0 is now available! This marks another major milestone on Graphite's releases.
8+
9+
Source bundles are available from GitHub:
10+
11+
* https://github.com/graphite-project/graphite-web/archive/1.1.0.tar.gz
12+
* https://github.com/graphite-project/carbon/archive/1.1.0.tar.gz
13+
* https://github.com/graphite-project/whisper/archive/1.1.0.tar.gz
14+
* https://github.com/graphite-project/carbonate/archive/1.1.0.tar.gz
15+
16+
Graphite can also be installed from `PyPI <http://pypi.python.org/>`_ via
17+
`pip <http://www.pip-installer.org/en/latest/index.html>`_. PyPI bundles are here:
18+
19+
* http://pypi.python.org/pypi/graphite-web/
20+
* http://pypi.python.org/pypi/carbon/
21+
* http://pypi.python.org/pypi/whisper/
22+
* http://pypi.python.org/pypi/carbonate/
23+
24+
25+
The main feature of this release is :ref:`tag support <tags>` in Carbon and Graphite-web. From the release of the 1.1.x series, Graphite supports storing data using tags to identify each series. This allows for much more flexibility than the traditional hierarchical layout. When using tag support, each series is uniquely identified by its name and set of tag/value pairs. We also have new functions (``seriesByTags``, ``groupByTags`` and ``aliasByTags``) for querying tagged series, and support for using tags in all existing aggregation & grouping functions.
26+
27+
All components of Graphite stack now support Python 3. Python 3 support is however considered experimental, as this is the first release with complete Python 3 support.
28+
29+
Another long-awaited feature is :ref:`custom functions <function-plugins>` - you can write your own functions and load them into Graphite. There's also the :ref:`Function API <function-api>` to get a list of available functions, or the details of a specific function. Please note that the built-in frontend code does not yet use the Functions API, so your functions will not be present in the Graphite-web interface.
30+
31+
Graphite 1.1.0 also has completely refactored clustering code - for example, now clustering can use `msgpack`_ format for intra-cluster communications and supports buffering HTTP when talking to cluster servers, which should `increase the reading speed`_. If you're using custom finders you can use :ref:`new documentation <advanced-finders>` to make your code use the new features too.
32+
33+
Graphite now supports "pipe" chaining syntax for functions. With this update the following query ``aliasByNode(movingAverage(sortByName(test.*),"5min"),1)`` can be written as ``test.*|sortByName()|movingAverage("5min")|aliasByNode(1)``. See `PR#2042`_ for details.
34+
35+
New function ``xFilesFactor`` which sets the xFilesFactor for runtime aggregation and consolidation, also aggregation functions (`moving*` and new ``aggregate`` function) now supporting ``xFilesFactor`` explicitly - see `PR#2053`_ for details.
36+
37+
A host of other new features, bug fixes and changes are in the list below.
38+
39+
40+
New features
41+
------------
42+
43+
* Tagging support / Tags Autocompletion / TagDB Federation (PR#2002 / PR#2078 / PR#2128, @DanCech)
44+
45+
* Python3 support (PR#2139, @takluyver)
46+
47+
* Custom functions (PR#2146, @DanCech)
48+
49+
* Buffering support in clustering (PR#2136, @woodsaj / @DanCech)
50+
51+
* Msgpack support for clustering (PR#2123, @DanCech)
52+
53+
* New ``CLUSTER_SERVERS`` format (proto, format and local parameters (PR#2123, @DanCech)
54+
55+
* New custom storage backends mechanics (PR#2093 / PR#2103 / PR#2128, @DanCech)
56+
57+
* Move /metrics/index.json handling into finders & use worker pool (PR#2103, @DanCech)
58+
59+
60+
Functions
61+
---------
62+
63+
* :ref:`Custom functions <function-plugins>` (PR#2146, @DanCech)
64+
65+
* Use timezone-aware dates in ``hitcount``, update epoch to handle naive dates (PR#2088, @DanCech)
66+
67+
* Added check for empty series list on ``percentileOfSeries`` (PR#2089, @melnikk)
68+
69+
* Improve efficiency of ``linearRegression``, ``timeShift``, ``timeStack`` & ``useSeriesAbove`` (PR#2072, @DanCech)
70+
71+
* Implement ``unique()`` (PR#2063, @DanCech)
72+
73+
* Support using tags in functions that accept nodes (PR#2055, @DanCech)
74+
75+
* "Pipe" function chaining syntax (`PR#2042`_, @DanCech)
76+
77+
* xFilesFactor support, add aggregate function (`PR#2053`_, @DanCech)
78+
79+
* Support matching series by node in ``asPercent`` (PR#2050, @DanCech)
80+
81+
* Add ``aggregateWithWildcards`` function, minor refactor for ``movingWindow`` (PR#2044, @DanCech)
82+
83+
* Add ``/tags/findSeries``, add filter and pretty parameters to tag list/details endpoints (PR#2034, @DanCech)
84+
85+
* Implement ``movingWindow`` & round functions, tidy up other "moving" functions (PR#2032, @DanCech)
86+
87+
* Improve efficiency of ``summarize`` and ``smartSummarize`` functions (PR#1916, @DanCech)
88+
89+
* Add first and last to ``consolidateBy`` functions (PR#2030, @DanCech)
90+
91+
* Fix ``perSecond`` null handling, use explicit integer division (PR#2029, @DanCech)
92+
93+
* ``Min-Max`` Normalization Function (PR#2011, @msk610)
94+
95+
* Enable advanced alignment for ``smartSummarize`` (PR#2021, @luigiberrettini)
96+
97+
* add ``filterSeries``, ``highest``, ``lowest`` & ``sortBy`` functions (PR#2146, @DanCech)
98+
99+
100+
Frontend changes
101+
----------------
102+
103+
* Add a history button to the dashboard kind of like Cacti (PR#2100, @cbowman0)
104+
105+
* Manipulate graph targets and implement New Graph -> New Empty Graph (PR#424, @cbowman0)
106+
107+
* JS linting (@cbowman)
108+
109+
110+
Other new features
111+
------------------
112+
113+
* Set pathExpression on ``seriesByTag`` results (PR#2124, @DanCech)
114+
115+
* Aggregate points from carbon cache like whisper (PR#2082, @DanCech)
116+
117+
* Use ``WEBAPP_VERSION`` in documentation link (@wridgers)
118+
119+
* Add a history button to the dashboard kind of like Cacti (PR#2100, @cbowman0)
120+
121+
* Support sending logs to stderr (PR#2066, @DanCech)
122+
123+
* Improve parseATTime (PR#2070, @DanCech)
124+
125+
* Update metrics/find to support the same from/until specifications as render (@DanCech)
126+
127+
* Improve rendering performance dramatically in certain situations (upstream issue #770) (@powo)
128+
129+
130+
Bug Fixes
131+
---------
132+
133+
* Add median adjustment for even length arrays (PR#2132, @shanson7)
134+
135+
* Use default tagdb if ``TAGDB`` setting is not set (@woodsaj)
136+
137+
* Get rid of OverflowError in perSecond and scaleToSeconds (PR#2127, @Felixoid)
138+
139+
* Document week / w suffix (PR#2107, @mcv21)
140+
141+
* Add ``REMOTE_USER_MIDDLEWARE`` configuration option and fix ``REMOTE_USER_BACKEND`` documentation (PR#2091, @wridgers)
142+
143+
* Fix the url values to match the current document.body.dataset.baseUrl (PR#2087, @cbowman0)
144+
145+
* Whisper reader strange results for counters after merge_with_carbonlink (PR#2082, @olevchyk / @DanCech)
146+
147+
* Handle no data with graphType=pie (PR#2071, @cbowman0)
148+
149+
* CarbonLink cache-query return 0 datapoints in some cases (PR#2012, @leochen4891)
150+
151+
* Render view refactor & maxDataPoints=1 (PR#2054, @DanCech)
152+
153+
* Fix consolidation (PR#2052, @DanCech / @powo)
154+
155+
* Add median adjustment for even length arrays (@shanson7)
156+
157+
* Get rid of OverflowError in perSecond and scaleToSeconds (@Felixoid)
158+
159+
* Clean up perSecond and nonNegativeDerivative maxValue and None handling (@DanCech)
160+
161+
* Use ``WEBAPP_VERSION`` in documentation link (@wridgers)
162+
163+
* Fnv1a fixes (PR#2014, @olevchuk)
164+
165+
* Fix divideByZero when FIND_CACHE_DURATION=0 (@woodsaj)
166+
167+
168+
Upgrading
169+
---------
170+
Graphite-Web requires Python 2.7 or newer and Django version 1.8 - 1.11 (Python3 supported only in Django 1.11). Carbon requires Twisted version 13.2 or newer. For AMQP support txAMQP version 0.8 is required now. There are a number of new features in this release, but we've been careful to avoid any behaviorial regressions in the default settings files. You'll want to review the new Graphite-Web and Carbon service options in the ``local_settings.py.example`` and ``carbon.conf.example`` files, respectively, before merging those into your production configurations. Please also check :doc:`config file documentation </config-local-settings>`
171+
172+
If you're not already running from the *master* branch, Graphite-Web's application database will need to be upgraded . It's a good idea to backup the database before proceeding with the migration. The following steps will upgrade a SQLite database:
173+
174+
.. code-block:: none
175+
176+
sudo cp /opt/graphite/storage/graphite.db \
177+
/opt/graphite/storage/graphite.db.backup-`date +%Y%m%d_%H%M%S`
178+
sudo PYTHONPATH=/opt/graphite/webapp django-admin.py migrate \
179+
--noinput --settings=graphite.settings --run-syncdb
180+
181+
182+
Other Changes
183+
-------------
184+
185+
Graphite-Web
186+
^^^^^^^^^^^^
187+
188+
* Clean up a few codacy issues (PR#2140, @cboman0)
189+
190+
* Add more tests for render/datalib.py (PR#2086, @cbowman0)
191+
192+
* Fix caching in _merge_results and add tests (PR#2085, @cbowman0)
193+
194+
* Update render_api.rst (@r3cgm)
195+
196+
* Use prefetch logic for sub-requests (PR#2076, @DanCech)
197+
198+
* Test class PrefetchedData (PR#2079, @cbowman0)
199+
200+
* Fix example vhost filename (@rednixon)
201+
202+
* Basic tests for render/datalib's ``_merge_results()`` (PR#2075, @cbowman0)
203+
204+
* Whisper reader updates (PR#2074, @DanCech)
205+
206+
* Improve test reliability (PR#2056, @DanCech)
207+
208+
* Add more test coverage for render/functions (PR#2068, @cbowman0)
209+
210+
* Add ``timeshift`` test coverage (PR#2065, @cbowman0)
211+
212+
* Increasing test coverage for functions (PR#2011, @msk610)
213+
214+
* Update metrics/find to support the same from/until specifications as render (@DanCech)
215+
216+
217+
Carbon
218+
^^^^^^
219+
220+
* Py3 compatibility fixes (@piotr1212)
221+
222+
* Catch TypeError exception from None data value (@retzkek)
223+
224+
* Added '--logger' and '--logfile' option (Du Zheng / @deniszh)
225+
226+
* Fixing lint (@DanCech)
227+
228+
* Fix listening on IPv6 interfaces (PR#683, @mk-fg)
229+
230+
* Tags support (@DanCech)
231+
232+
* Fix fnv1a support (PR#679, @olevchyk)
233+
234+
235+
Whisper
236+
^^^^^^^
237+
238+
* Whisper-fetch: add --time-format option (PR#235, @xavierog)
239+
240+
* Added test and fix for broken assert in whisper.__archive_update_many (@wk86 / @DanCech)
241+
242+
* Don't use shell for whisper-resize.py calls (PR#241, @eserte)
243+
244+
245+
Carbonate
246+
^^^^^^^^^
247+
248+
* Passing empty list for nodes seems to work (PR#87, @olevchyk)
249+
250+
251+
.. _msgpack: https://msgpack.org/
252+
.. _increase the reading speed: https://github.com/graphite-project/graphite-web/issues/2142#issuecomment-349249348
253+
.. _PR#2042: https://github.com/graphite-project/graphite-web/pull/2042
254+
.. _PR#2053: https://github.com/graphite-project/graphite-web/pull/2053

docs/storage-backends.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,8 @@ Whisper database and a Ceres database:
5151
'graphite.finders.ceres.CeresFinder',
5252
)
5353
54+
.. _custom-finders:
55+
5456
Custom finders
5557
^^^^^^^^^^^^^^
5658

@@ -119,6 +121,8 @@ the database has gaps: gaps can be filled with ``None`` values.
119121
available for this given metric in the database. It must return an
120122
``IntervalSet`` of one or more ``Interval`` objects.
121123

124+
.. _advanced-finders:
125+
122126
Advanced finders
123127
^^^^^^^^^^^^^^^^
124128

docs/tags.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
.. _tags:
2+
13
Graphite Tag Support
24
====================
35
From the release of the 1.1.x series, Graphite supports storing data using tags to identify each series. This allows for much more flexibility than the traditional hierarchical layout. When using tag support, each series is uniquely identified by its name and set of tag/value pairs.

webapp/graphite/settings.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727

2828

2929
GRAPHITE_WEB_APP_SETTINGS_LOADED = False
30-
WEBAPP_VERSION = '1.1.0-dev'
30+
WEBAPP_VERSION = '1.1.0'
3131
DEBUG = False
3232
JAVASCRIPT_DEBUG = False
3333

0 commit comments

Comments
 (0)