diff --git a/docs/releases/0_10_0.rst b/docs/releases/0_10_0.rst index be0ad9253..6583b8cf9 100644 --- a/docs/releases/0_10_0.rst +++ b/docs/releases/0_10_0.rst @@ -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 `_ via +`pip `_. 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 - `` can be replaced with ``django-admin.py - --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 `_. -* 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 `_ 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 `_ 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. + diff --git a/docs/releases/0_9_14.rst b/docs/releases/0_9_14.rst index 94407740a..59219b76f 100644 --- a/docs/releases/0_9_14.rst +++ b/docs/releases/0_9_14.rst @@ -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)