Skip to content

Commit

Permalink
Merge pull request #1752 from obfuscurity/docs/release_notes_0.10.0
Browse files Browse the repository at this point in the history
WIP update 0.10.0 release notes
  • Loading branch information
obfuscurity committed Nov 29, 2016
2 parents db726ab + 1b7f391 commit 5f82fd6
Show file tree
Hide file tree
Showing 2 changed files with 227 additions and 52 deletions.
267 changes: 221 additions & 46 deletions docs/releases/0_10_0.rst
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.

12 changes: 6 additions & 6 deletions docs/releases/0_9_14.rst
Original file line number Diff line number Diff line change
Expand Up @@ -172,15 +172,15 @@ Carbon
* 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)
* Fix carbon-cache cpu usage 100% when sent metric with too big name (jssjr, deniszh)
* Fix aggregator replication factor setting (jssjr, 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)
* Move tests to tox (jssjr)
* Add hup signal handler (jssjr)
* Fix instrumentation (avishai-ish-shalom, jssjr)
* Fix exception handling (steve-dave)
* Fix CACHE_WRITE_STRATEGY (jssr)
* Fix CACHE_WRITE_STRATEGY (jssjr)
* Fix aggregated metrics (pgul, ctavan)
* Logging fixes (obfuscurity, piotr1212)
* Fix race condition for full queues (mleinart)
Expand Down

0 comments on commit 5f82fd6

Please sign in to comment.