-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1752 from obfuscurity/docs/release_notes_0.10.0
WIP update 0.10.0 release notes
- Loading branch information
Showing
2 changed files
with
227 additions
and
52 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,71 +1,246 @@ | ||
.. _0-10-0: | ||
|
||
0.10.0 -- UNDER DEVELOPMENT | ||
=========================== | ||
*TBD* | ||
|
||
.. add the release date below when making a release. | ||
*no release date* | ||
|
||
Changes | ||
------- | ||
Graphite 0.10.0 is now available for usage. This marks the first release of Graphite's main line in many years. There are two new *optional* components available: Carbonate, a suite of tools for managing and rebalancing Whisper files, and Ceres, an experimental new time-series database intended to supplant Whisper in a future release. | ||
|
||
* Graphite-web requires Python >= 2.6 and Django 1.9. | ||
Source bundles are available from GitHub: | ||
|
||
* Metrics can be reordered via the composer. | ||
* https://github.com/graphite-project/graphite-web/archive/0.10.0.tar.gz | ||
* https://github.com/graphite-project/carbon/archive/0.10.0.tar.gz | ||
* https://github.com/graphite-project/whisper/archive/0.10.0.tar.gz | ||
* https://github.com/graphite-project/carbonate/archive/0.10.0.tar.gz | ||
* https://github.com/graphite-project/ceres/archive/0.10.0.tar.gz | ||
|
||
* A WSGI file has been added to ``graphite-web``. This is especially useful for | ||
people running graphite-web with a standalone WSGI sever such as Gunicorn as | ||
they can directly run ``gunicorn graphite.wsgi`` instead of managing their own | ||
WSGI file. | ||
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: | ||
|
||
* ``manage.py`` is no longer available. The alternative is to use the | ||
``django-admin.py`` command provided by Django. ``python manage.py | ||
<command>`` can be replaced with ``django-admin.py <command> | ||
--settings=graphite.settings``. | ||
* http://pypi.python.org/pypi/graphite-web/ | ||
* http://pypi.python.org/pypi/carbon/ | ||
* http://pypi.python.org/pypi/whisper/ | ||
* http://pypi.python.org/pypi/carbonate/ | ||
* http://pypi.python.org/pypi/ceres/ | ||
|
||
* The metrics node in the graphite tree has been renamed from "Graphite" to | ||
"Metrics". | ||
Upgrading | ||
--------- | ||
Graphite-Web requires Python 2.6 or newer and Django version 1.9. Carbon requires Twisted version 13.2 or newer. 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. | ||
|
||
* Pluggable storage finders have been added. This allows graphite to fetch | ||
data from other datastores than Whisper or Ceres. See the :doc:`storage | ||
finder docs <../storage-backends>` for more information. | ||
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: | ||
|
||
* Documentation and settings have been updated to use the up-to-date syntax | ||
for configuring graphite-web's SQL database. Check your config for | ||
``DATABASE_*`` entries and update them to the new ``DATABASES`` syntax. | ||
.. code-block:: none | ||
* The search index file is now generated with the ``build-index`` command that | ||
has been rewritten in Python. ``build-index.sh`` is still available but is | ||
just an alias to ``build-index``. | ||
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 migrate \ | ||
--noinput --settings=graphite.settings --run-syncdb | ||
* The ``CONTENT_DIR`` setting has been replaced with ``STATIC_ROOT`` and now | ||
allows to easily serve non-graphite static files such as Django admin's. See | ||
the :doc:`configuration docs <../config-local-settings>` for usage | ||
instructions. | ||
A new document is available for :doc:`developers and contributors <../development>` that covers how to setup your own development environment, and running & writing tests. | ||
|
||
* `Tox`_ is now used for running the tests locally across the supported Django | ||
and Python versions combinations. A :doc:`section about working on | ||
graphite-web <../development>` has been added to the documentation. | ||
We're also happy to publish a new document for :doc:`Graphite Events <../events>`. It covers the storage, creation, retrieval, and management of events used for annotation or tracking release-style events. | ||
|
||
* Pythons own log rotation can be disabled using the `LOG_ROTATION` setting. This | ||
is useful in case of running multiple WSGI workers. See also: `Github Issue | ||
#499 <https://github.com/graphite-project/graphite-web/pull/499>`_. | ||
|
||
* The cli was deprecated and has been removed. | ||
Security Notes | ||
-------------- | ||
|
||
* A URL shortener has been added to the composer toolbar. | ||
* XSS issue affecting saved graph definitions. Targets are now properly sanitized before being handed back to the user. | ||
|
||
* The events API now requires ``tags`` to be an array when creating tagged | ||
events. Previous versions only accepted string attributes. Tags are also | ||
serialized as arrays. | ||
|
||
.. _Tox: https://testrun.org/tox/latest/ | ||
|
||
New functions | ||
------------- | ||
New Render Functions | ||
-------------------- | ||
|
||
See the :doc:`functions documentation <../functions>` for more information. | ||
|
||
* ``aggregateLine`` | ||
* ``applyByNode`` | ||
* ``averageOutsidePercentile`` | ||
* ``delay`` | ||
* ``fallbackSeries`` | ||
* ``grep`` | ||
* ``groupByNodes`` | ||
* ``integralByInterval`` | ||
* ``interpolate`` | ||
* ``invert`` | ||
* ``isNonNull`` | ||
* ``linearRegression`` | ||
* ``linearRegressionAnalysis`` | ||
* ``mapSeries`` | ||
* ``multiplySeriesWithWildcards`` | ||
* ``offsetToZero`` | ||
* ``pow`` | ||
* ``reduceSeries`` | ||
* ``removeBetweenPercentile`` | ||
* ``removeEmptySeries`` | ||
* ``sortByTotal`` | ||
* ``squareRoot`` | ||
* ``timeSlice`` | ||
* ``verticalLine`` | ||
* ``weightedAverage`` | ||
|
||
|
||
New Display Formats | ||
------------------- | ||
|
||
* ``pdf`` | ||
* ``dygraph`` | ||
* ``rickshaw`` | ||
|
||
|
||
New Graph Parameters | ||
-------------------- | ||
|
||
* ``hideNullFromLegend`` | ||
* ``hideXAxis`` | ||
* ``noNullPoints`` | ||
* ``pieLabels`` | ||
* ``valueLabels`` | ||
* ``valueLabelsColor`` | ||
* ``valueLabelsMin`` | ||
|
||
|
||
Bug Fixes | ||
--------- | ||
|
||
Graphite-Web | ||
^^^^^^^^^^^^ | ||
|
||
* Render infinite values correctly for compatibility with JSON consumers (e.g. Grafana). | ||
|
||
* Fix for ``aliasByMetric`` to handle trailing parentheses properly. | ||
|
||
* Some functions would not handle ``event`` tags formatting. The format for these strings has been fixed. | ||
|
||
* Improved data extraction from CarbonLink cache when crossing archive boundaries. | ||
|
||
* Follow symlinks for RRD files. | ||
|
||
* Unicode fixes for RRD paths. | ||
|
||
* Support for the FNV1a_ch hashing algorithm used by the `carbon-c-relay <https://github.com/grobian/carbon-c-relay>`_ project. | ||
|
||
* Fix for ``smartSummarize`` where it would discard timezone information, sometimes resulting in an exception due to broken intervals. | ||
|
||
* Better handling for missing data in the divisor series for ``divideSeries``. | ||
|
||
* Fix function name reported in path expression for ``stdev``. | ||
|
||
* The ``countSeries`` function will now return zeroes instead of an empty series. | ||
|
||
* The ``constantLine`` function can now be rendered without any other series. | ||
|
||
* Incorrect float format across a variety of functions. | ||
|
||
* Fix "thousands" unit for y-axis. | ||
|
||
|
||
Carbon | ||
^^^^^^ | ||
|
||
* Avoid duplication of aggregator statistics by using a dedicated pipeline. | ||
|
||
* Log incorrect schemas missing the ``retentions`` attribute. | ||
|
||
* Improved logging for writer create or update failures. | ||
|
||
* Fix long-standing issue with negative cache size statistic. | ||
|
||
* Use the correct ``AGGREGATION_RULES`` configuration file. | ||
|
||
* Fix race condition possible when queue is full and destinations reconnect. | ||
|
||
* Fix ``--profile`` option for recording performance data. | ||
|
||
* Improved help documentation in the Composer. | ||
|
||
|
||
Other Changes | ||
------------- | ||
|
||
Graphite-Web | ||
^^^^^^^^^^^^ | ||
|
||
* New Graphite logo in the Composer banner. | ||
|
||
* Pluggable storage finders have been added. This allows graphite to fetch data from other datastores than Whisper or Ceres. See the :doc:`storage finder docs <../storage-backends>` for more information. | ||
|
||
* The search index file is now generated with the ``build-index`` command that has been rewritten in Python. ``build-index.sh`` is still available but is just an alias to ``build-index``. | ||
|
||
* The ``CONTENT_DIR`` setting has been replaced with ``STATIC_ROOT`` and now allows to easily serve non-graphite static files such as Django admin's. See the :doc:`configuration docs <../config-local-settings>` for usage instructions. | ||
|
||
* `Tox <https://testrun.org/tox/latest/>`_ is now used for running the tests locally across the supported Django and Python version combinations. A :doc:`section about working on graphite-web <../development>` has been added to the documentation. | ||
|
||
* Python's own log rotation can be disabled using the `LOG_ROTATION` setting. This is useful when running multiple WSGI workers. | ||
|
||
* The events API now requires ``tags`` to be an array when creating tagged events. Previous versions only accepted string attributes. Tags are also serialized as arrays. | ||
|
||
* Enhancements and optimizations to brace expansion for wildcards. | ||
|
||
* Graphite Dashboards support absolute time ranges passed in the URL. | ||
|
||
* Dumping the known metrics list with ``/metrics/index.json`` now includes RRD metrics. | ||
|
||
* Improved support for special characters in metric names. | ||
|
||
* Support for jsonp requests in the metrics view. | ||
|
||
* New "refresh" button in the metrics tree navigation panel. | ||
|
||
* Refresh all visible nodes in the metrics tree navigation view, not just the current node level. | ||
|
||
* Support for globstar matching in target paths. | ||
|
||
* Introduce the ``MAX_TAG_LENGTH`` setting for overriding the maximum tag length for events. | ||
|
||
* Ability to retrieve a single event via the API. Previously you would have to dump the entire events database to inspect any events. | ||
|
||
* Configurable ``DATE_FORMAT`` setting for overriding the short date format. | ||
|
||
* New ``nodelist`` format for the metrics find view. This mode makes it easier for clients to query metric node information from the API. | ||
|
||
* Ability to pass units suffix string (e.g. "Kb") to ``cactiStyle``. | ||
|
||
* Interpolate across null values in ``perSecond`` function. | ||
|
||
* Dashboards are now sorted alphabetically in the finder. | ||
|
||
* Support for unicode in rendered graph text. | ||
|
||
* Improved sorting of saved graphs. | ||
|
||
* Event times are now converted to local time to align with query times. | ||
|
||
* Faster calculation algorithm for ``movingAverage``. | ||
|
||
* Automatically close the Dashboard's upper navigation panel if the dashboard was loaded by a parameterized URL. | ||
|
||
* Cluster servers can now communicate over HTTPS when ``INTRACLUSTER_HTTPS`` is enabled. | ||
|
||
|
||
Carbon | ||
^^^^^^ | ||
|
||
* Support for pluggable protocols and clients. No new protocols have been added yet, but existing protocols have been ported over to use the new design. | ||
|
||
* Support for pluggable routers, including new ``fast-hashing`` and ``fast-aggregated-hashing`` relay methods based on MurmurHash3. | ||
|
||
* Introduced ``CERES_NODE_CACHING_BEHAVIOR`` for tuning Ceres' caching behavior. | ||
|
||
* Aggregators now report ``destinations`` statistics. | ||
|
||
* Remove unused ``list`` and ``match-all`` schema options. | ||
|
||
* Introduced ``WHISPER_FADVISE_RANDOM`` as an option to avoid disk thrashing in certain scenarios. | ||
|
||
* Support for ``MAX_RECEIVER_CONNECTIONS`` to limit the number of TCP connections to the intended Carbon service. | ||
|
||
* Listeners will include metric path details when logging due to invalid line submission. | ||
|
||
* Support logging to syslog with the ``--syslog`` runtime option. | ||
|
||
* Allow Manhole to operate with no passphrase. | ||
|
||
* New ``--profiler`` runtime option for specifying the profiler. | ||
|
||
* Improved ``HUP`` signal handling. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters