From 6c0ae61c91ab56a7ed5bc0ae1bc024575aab560d Mon Sep 17 00:00:00 2001 From: Denys Zhdanov Date: Mon, 18 Dec 2017 19:14:24 +0100 Subject: [PATCH 1/7] First version of 1.1.0 Release Notes --- docs/releases/1_1_0.rst | 257 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 257 insertions(+) create mode 100644 docs/releases/1_1_0.rst diff --git a/docs/releases/1_1_0.rst b/docs/releases/1_1_0.rst new file mode 100644 index 000000000..b41e2a60a --- /dev/null +++ b/docs/releases/1_1_0.rst @@ -0,0 +1,257 @@ +.. _1-1-0: + +1.1.0 +=========================== +*12/21/2017* + +Graphite 1.1.0 is now available for usage. This marks another major milestone on Graphite's releases. + +Source bundles are available from GitHub: + +* https://github.com/graphite-project/graphite-web/archive/1.1.0.tar.gz +* https://github.com/graphite-project/carbon/archive/1.1.0.tar.gz +* https://github.com/graphite-project/whisper/archive/1.1.0.tar.gz +* https://github.com/graphite-project/carbonate/archive/1.1.0.tar.gz + +Graphite can also be installed from `PyPI `_ via +`pip `_. PyPI bundles are here: + +* 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/ + + +Main feature of this release is :doc:`Tagging support ` 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. + +Also, all components of Graphite stack are supporting Python 3 now. Python 3 support considering experimental, this is a first release with a complete Python 3 support. + +Another long-awaited feature is :doc:`Custom functions ` - you can write your own functions and load them to Graphite. There's also :doc:`Function API ` to make your code use new features too. + +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. + +New function ``xFilesFactor`` which sets the xFilesFactor on the series it operates, also aggregation functions (`moving*` and new ``aggregate`` functions) are now supporting ``xFilesFactor`` explicitly - see `PR#2053`_ for details. + +Please check other new features, bug fixes and changes in list below. + + +New features +------------ + +* Tagging support / Tags Autocompletion / TagDB Federation (@DanCech) + +* Python3 support (PR#2139, @takluyver) + +* Custom functions (@DanCech) + +* Buffering support in clustering (PR#2136, @woodsaj / @DanCech) + +* Msgpack support for clustering (PR#2123, @DanCech) + +* New ``CLUSTER_SERVERS`` format (proto, format and local parameters (PR#2123, @DanCech) + +* New custom storage backends mechanics (@DanCech) + +* Move /metrics/index.json handling into finders & use worker pool (PR#2103, @DanCech) + + +Functions +--------- + +* :doc:`Custom functions ` + +* Use timezone-aware dates in ``hitcount``, update epoch to handle naive dates (PR#2088, @DanCech) + +* Added check for empty series list on ``percentileOfSeries`` (PR#2089, @melnikk) + +* Improve efficiency of ``linearRegression``, ``timeShift``, ``timeStack`` & ``useSeriesAbove`` (PR#2072, @DanCech) + +* Implement ``unique()`` (PR#2063, @DanCech) + +* Support using tags in functions that accept nodes (#2055, @DanCech) + +* "Pipe" function chaining syntax (`PR#2042`_, @DanCech) + +* xFilesFactor support, add aggregate function (`PR#2053`_, @DanCech) + +* Support matching series by node in asPercent (PR#2050, @DanCech) + +* Add ``aggregateWithWildcards`` function, minor refactor for movingWindow (PR#2044, @DanCech) + +* Add ``/tags/findSeries``, add filter and pretty parameters to tag list/details endpoints (PR#2034, @DanCech) + +* Implement ``movingWindow`` & round functions, tidy up other "moving" functions (PR#2032, @DanCech) + +* Improve efficiency of ``summarize`` and ``smartSummarize`` functions (PR#1916, @DanCech) + +* Add first and last to ``consolidateBy`` functions (PR#2030, @DanCech) + +* Fix ``perSecond`` null handling, use explicit integer division (PR#2029, @DanCech) + +* ``Min-Max`` Normalization Function (PR#2011, @msk610) + +* Enable advanced alignment for ``smartSummarize`` (PR#2021, @luigiberrettini) + + + + +Frontend changes +---------------- + +* Add a history button to the dashboard kind of like Cacti (@cbowman) + +* Manipulate graph targets and implement New Graph -> New Empty Graph (@cbowman) + +* JS linting (@cbowman) + +Other new features +------------------ + +* Set pathExpression on ``seriesByTag`` results (PR#2124, @DanCech) + +* Aggregate points from carbon cache like whisper (PR#2082, @DanCech) + +* Use ``WEBAPP_VERSION`` in documentation link (@wridgers) + +* Add a history button to the dashboard kind of like Cacti (#2100, @cbowman0) + +* Manipulate graph targets and implement New Graph -> New Empty Graph (PR#424, @cbowman0) + +* Support sending logs to stderr (#2066, @DanCech) + +* Improve parseATTime (PR#2070, @DanCech) + +* Update metrics/find to support the same from/until specifications as render (@DanCech) + +* Improve rendering performance dramatically in certain situations (upstream issue #770) (@powo) + +Bug Fixes +--------- + +* Add median adjustment for even length arrays (#2132, @shanson7) + +* Use default tagdb if ``TAGDB`` setting is not set (@woodsaj) + +* Get rid of OverflowError in perSecond and scaleToSeconds (#2127, @Felixoid) + +* Document week / w suffix (#2107, @mcv21) + +* Add ``REMOTE_USER_MIDDLEWARE`` configuration option and fix ``REMOTE_USER_BACKEND`` documentation (#2091, @wridgers) + +* Fix the url values to match the current document.body.dataset.baseUrl (#2087, @cbowman0) + +* Whisper reader strange results for counters after merge_with_carbonlink (PR#2082, @olevchyk / @DanCech) + +* Handle no data with graphType=pie (#2071, @cbowman0) + +* CarbonLink cache-query return 0 datapoints in some cases (PR#2012, @leochen4891) + +* MaxDataPoints=1 fix (PR#2054, @DanCech) + +* Fix consolidation (PR#2052, @DanCech/@powo) + +* Add median adjustment for even length arrays (@shanson7) + +* Get rid of OverflowError in perSecond and scaleToSeconds (@Felixoid) + +* Clean up perSecond and nonNegativeDerivative maxValue and None handling (@DacCech) + +* Use ``WEBAPP_VERSION`` in documentation link (@wridgers) + +* Handle no data with graphType=pie + +* When maxDataPoints=1, consolidate over entire interval + +* Fnv1a fixes (PR#2014, @olevchuk) + +* Fix divideByZero when FIND_CACHE_DURATION=0 (@woodsaj) + +Upgrading +--------- +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 ` + +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: + +.. 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 migrate \ + --noinput --settings=graphite.settings --run-syncdb + + +Other Changes +------------- + +Graphite-Web +^^^^^^^^^^^^ + +* Clean up a few codacy issues (#2140, @cboman0) + +* Add more tests for render/datalib.py (#2086, @cbowman0) + +* Fix caching in _merge_results and add tests (#2085, @cbowman0) + +* Update render_api.rst (@r3cgm) + +* Use prefetch logic for sub-requests (PR#2076, @DanCech) + +* Test class PrefetchedData (#2079) + +* Fix example vhost filename (@rednixon) + +* Basic tests for render/datalib's _merge_results() (#2075, @cbowman0) + +* Whisper reader updates (PR#2074, @DanCech) + +* Improve test reliability (PR#2056, @DanCech) + +* Add more test coverage for render/functions (PR#2068, @cbowman0) + +* Add timeshift test coverage (PR#2065, @cbowman0) + +* Increasing test coverage for functions (PR#2011, @msk610) + +* Update metrics/find to support the same from/until specifications as render (@DanCech) + + +Carbon +^^^^^^ + +* Py3 compatibility fixes (@piotr1212) + +* Catch TypeError exception from None data value (@retzkek) + +* Added '--logger' and '--logfile' option (Du Zheng/@deniszh) + +* Fixing lint (@DnCech) + +* Fix listening on IPv6 interfaces (PR#683, @mk-fg) + +* Tags support (@DanCech) + +* Fix fnv1a support (PR#679, @olevchyk) + + +Whisper +^^^^^^^ + +* Whisper-fetch: add --time-format option (PR#235, @xavierog) + +* Added test and fix for broken assert in whisper.__archive_update_many (@wk86 / @DanCech) + +* Don't use shell for whisper-resize.py calls (PR#241, @eserte) + + +Carbonate +^^^^^^^^^ + +* Passing empty list for nodes seems to work (PR#87, @olevchyk) + + +.. _msgpack: https://msgpack.org/ +.. _increase the reading speed: https://github.com/graphite-project/graphite-web/issues/2142#issuecomment-349249348 +.. _PR#2042: https://github.com/graphite-project/graphite-web/pull/2042 +.. _PR#2053: https://github.com/graphite-project/graphite-web/pull/2053 \ No newline at end of file From 0d74409002dc01d44607806228d42b40d462cd74 Mon Sep 17 00:00:00 2001 From: Denys Zhdanov Date: Mon, 18 Dec 2017 19:14:52 +0100 Subject: [PATCH 2/7] Other doc fixes --- docs/install.rst | 15 ++++++++------- docs/releases.rst | 1 + webapp/graphite/settings.py | 2 +- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/docs/install.rst b/docs/install.rst index 9a72a2d86..7989ac687 100644 --- a/docs/install.rst +++ b/docs/install.rst @@ -18,7 +18,7 @@ Try Graphite in Docker and have it running in seconds: -p 8126:8126\ graphiteapp/graphite-statsd -Check `docker_repo`_ for details. +Check `docker repo`_ for details. This is portable, fast and easy to use. Or use instructions below for installation. @@ -33,10 +33,10 @@ been met or not. Basic Graphite requirements: * a UNIX-like Operating System -* Python 2.7 or greater but `NOT Python 3` (yet) +* Python 2.7 or greater (including experimental Python3 support) * `cairocffi`_ -* `Django`_ 1.8 - 1.11 -* `django-tagging`_ 0.4.3 (not `django-taggit` yet) +* `Django`_ 1.8 - 1.11 (for Python3 - 1.11 only) +* `django-tagging`_ 0.4.6 (not `django-taggit` yet) * `pytz`_ * `scandir`_ * `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: * Render caching: `memcached`_ and `python-memcache`_ * LDAP authentication: `python-ldap`_ (for LDAP authentication support in the webapp) -* AMQP support: `txamqp`_ +* AMQP support: `txamqp`_ (version 0.8 is required) * RRD support: `python-rrdtool`_ * Dependent modules for additional database support (MySQL, PostgreSQL, etc). See `Django database install`_ instructions and the `Django database`_ documentation for details @@ -186,7 +186,7 @@ Post-Install Tasks Windows Users ------------- -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 ` article will help you set up a Vagrant VM that will run Graphite. In order to leverage this, you will need to install `Vagrant `_. +Unfortunately, native Graphite on Windows is completely unsupported, but you can run Graphite on Windows in `Docker`_ or :doc:`Installing via 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 `_. .. _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 .. _scandir: https://pypi.python.org/pypi/scandir .. _txAMQP: https://launchpad.net/txamqp/ .. _uWSGI: http://uwsgi-docs.readthedocs.io/ -.. _docker_repo: https://github.com/graphite-project/docker-graphite-statsd +.. _Docker: https://www.docker.com/ +.. _docker repo: https://github.com/graphite-project/docker-graphite-statsd diff --git a/docs/releases.rst b/docs/releases.rst index a368ecf4a..49201f0da 100644 --- a/docs/releases.rst +++ b/docs/releases.rst @@ -5,6 +5,7 @@ Release Notes :maxdepth: 1 :glob: + releases/1_1_0 releases/1_0_2 releases/1_0_1 releases/1_0_0 diff --git a/webapp/graphite/settings.py b/webapp/graphite/settings.py index a59cb552e..ce97ba207 100644 --- a/webapp/graphite/settings.py +++ b/webapp/graphite/settings.py @@ -27,7 +27,7 @@ GRAPHITE_WEB_APP_SETTINGS_LOADED = False -WEBAPP_VERSION = '1.1.0-dev' +WEBAPP_VERSION = '1.1.0' DEBUG = False JAVASCRIPT_DEBUG = False From c7deafc0c2df984e7d543fa5d55b8b08a472602a Mon Sep 17 00:00:00 2001 From: Dan Cech Date: Mon, 18 Dec 2017 13:48:41 -0500 Subject: [PATCH 3/7] Update install.rst --- docs/install.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/install.rst b/docs/install.rst index 7989ac687..a9c4dea0a 100644 --- a/docs/install.rst +++ b/docs/install.rst @@ -186,7 +186,7 @@ Post-Install Tasks Windows Users ------------- -Unfortunately, native Graphite on Windows is completely unsupported, but you can run Graphite on Windows in `Docker`_ or :doc:`Installing via 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 `_. +Unfortunately, native Graphite on Windows is completely unsupported, but you can run Graphite on Windows in `Docker`_ or the :doc:`Installing via 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 `_. .. _Apache: https://projects.apache.org/project.html?httpd-http_server From afbf72d1a18c6b866a1d92be90e420ed417885c6 Mon Sep 17 00:00:00 2001 From: Dan Cech Date: Mon, 18 Dec 2017 13:57:10 -0500 Subject: [PATCH 4/7] Update 1_1_0.rst --- docs/releases/1_1_0.rst | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/docs/releases/1_1_0.rst b/docs/releases/1_1_0.rst index b41e2a60a..2593e08cb 100644 --- a/docs/releases/1_1_0.rst +++ b/docs/releases/1_1_0.rst @@ -4,7 +4,7 @@ =========================== *12/21/2017* -Graphite 1.1.0 is now available for usage. This marks another major milestone on Graphite's releases. +Graphite 1.1.0 is now available! This marks another major milestone on Graphite's releases. Source bundles are available from GitHub: @@ -22,17 +22,17 @@ Graphite can also be installed from `PyPI `_ via * http://pypi.python.org/pypi/carbonate/ -Main feature of this release is :doc:`Tagging support ` 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. +The main feature of this release is :doc:`Tagging support ` 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. -Also, all components of Graphite stack are supporting Python 3 now. Python 3 support considering experimental, this is a first release with a complete Python 3 support. +Also, 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. -Another long-awaited feature is :doc:`Custom functions ` - you can write your own functions and load them to Graphite. There's also :doc:`Function API ` - you can write your own functions and load them into Graphite. There's also the :doc:`Function API ` to make your code use new features too. +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 :doc:`new documentation ` to make your code use the new features too. 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. -New function ``xFilesFactor`` which sets the xFilesFactor on the series it operates, also aggregation functions (`moving*` and new ``aggregate`` functions) are now supporting ``xFilesFactor`` explicitly - see `PR#2053`_ for details. +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. Please check other new features, bug fixes and changes in list below. @@ -94,7 +94,7 @@ Functions * Enable advanced alignment for ``smartSummarize`` (PR#2021, @luigiberrettini) - +* add ``filterSeries``, ``highest``, ``lowest`` & ``sortBy`` functions (PR#2146, @DanCech) Frontend changes @@ -106,6 +106,7 @@ Frontend changes * JS linting (@cbowman) + Other new features ------------------ @@ -127,6 +128,7 @@ Other new features * Improve rendering performance dramatically in certain situations (upstream issue #770) (@powo) + Bug Fixes --------- @@ -168,6 +170,7 @@ Bug Fixes * Fix divideByZero when FIND_CACHE_DURATION=0 (@woodsaj) + Upgrading --------- 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 ` @@ -254,4 +257,4 @@ Carbonate .. _msgpack: https://msgpack.org/ .. _increase the reading speed: https://github.com/graphite-project/graphite-web/issues/2142#issuecomment-349249348 .. _PR#2042: https://github.com/graphite-project/graphite-web/pull/2042 -.. _PR#2053: https://github.com/graphite-project/graphite-web/pull/2053 \ No newline at end of file +.. _PR#2053: https://github.com/graphite-project/graphite-web/pull/2053 From 31768fd748d69f0db98e5e7294d7faf8311818c5 Mon Sep 17 00:00:00 2001 From: Dan Cech Date: Mon, 18 Dec 2017 14:01:54 -0500 Subject: [PATCH 5/7] Update 1_1_0.rst --- docs/releases/1_1_0.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/releases/1_1_0.rst b/docs/releases/1_1_0.rst index 2593e08cb..8096b3bee 100644 --- a/docs/releases/1_1_0.rst +++ b/docs/releases/1_1_0.rst @@ -44,7 +44,7 @@ New features * Python3 support (PR#2139, @takluyver) -* Custom functions (@DanCech) +* Custom functions (PR#2146, @DanCech) * Buffering support in clustering (PR#2136, @woodsaj / @DanCech) @@ -52,7 +52,7 @@ New features * New ``CLUSTER_SERVERS`` format (proto, format and local parameters (PR#2123, @DanCech) -* New custom storage backends mechanics (@DanCech) +* New custom storage backends mechanics (PR#2093 / PR#2103 / PR#2128, @DanCech) * Move /metrics/index.json handling into finders & use worker pool (PR#2103, @DanCech) @@ -60,7 +60,7 @@ New features Functions --------- -* :doc:`Custom functions ` +* :doc:`Custom functions ` (PR#2146, @DanCech) * Use timezone-aware dates in ``hitcount``, update epoch to handle naive dates (PR#2088, @DanCech) @@ -229,7 +229,7 @@ Carbon * Added '--logger' and '--logfile' option (Du Zheng/@deniszh) -* Fixing lint (@DnCech) +* Fixing lint (@DanCech) * Fix listening on IPv6 interfaces (PR#683, @mk-fg) From 02773f8728622a8bf8f3f6cdc894ed68b386d3e5 Mon Sep 17 00:00:00 2001 From: Dan Cech Date: Mon, 18 Dec 2017 14:54:17 -0500 Subject: [PATCH 6/7] 1.1.0 release notes updates --- docs/functions.rst | 6 +++++- docs/releases/1_1_0.rst | 18 +++++++++--------- docs/storage-backends.rst | 4 ++++ docs/tags.rst | 2 ++ 4 files changed, 20 insertions(+), 10 deletions(-) diff --git a/docs/functions.rst b/docs/functions.rst index ff88a217f..d341dec71 100644 --- a/docs/functions.rst +++ b/docs/functions.rst @@ -10,13 +10,15 @@ Most functions are applied to one :term:`series list`. Functions with the parame ``*seriesLists`` can take an arbitrary number of series lists. To pass multiple series lists to a function which only takes one, use the :py:func:`group` function. -.. _list-of-functions : +.. _list-of-functions: List of functions ----------------- .. automodule:: graphite.render.functions :members: +.. _function-plugins: + Function Plugins ---------------- @@ -88,6 +90,8 @@ To load a packaged function plugin module, add it to the ``FUNCTION_PLUGINS`` se 'some.function_plugin', ] +.. _function-api: + Function API ------------ diff --git a/docs/releases/1_1_0.rst b/docs/releases/1_1_0.rst index 8096b3bee..40019fa7e 100644 --- a/docs/releases/1_1_0.rst +++ b/docs/releases/1_1_0.rst @@ -22,25 +22,25 @@ Graphite can also be installed from `PyPI `_ via * http://pypi.python.org/pypi/carbonate/ -The main feature of this release is :doc:`Tagging support ` 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. +The main feature of this release is :ref:`tag support ` 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. -Also, 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. +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. -Another long-awaited feature is :doc:`Custom functions ` - you can write your own functions and load them into Graphite. There's also the :doc:`Function API ` - you can write your own functions and load them into Graphite. There's also the :ref:`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. -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 :doc:`new documentation ` to make your code use the new features too. +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 ` to make your code use the new features too. 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. 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. -Please check other new features, bug fixes and changes in list below. +A host of other new features, bug fixes and changes are in the list below. New features ------------ -* Tagging support / Tags Autocompletion / TagDB Federation (@DanCech) +* Tagging support / Tags Autocompletion / TagDB Federation (PR#2002 / PR#2078 / PR#2128, @DanCech) * Python3 support (PR#2139, @takluyver) @@ -60,7 +60,7 @@ New features Functions --------- -* :doc:`Custom functions ` (PR#2146, @DanCech) +* :ref:`Custom functions ` (PR#2146, @DanCech) * Use timezone-aware dates in ``hitcount``, update epoch to handle naive dates (PR#2088, @DanCech) @@ -158,7 +158,7 @@ Bug Fixes * Get rid of OverflowError in perSecond and scaleToSeconds (@Felixoid) -* Clean up perSecond and nonNegativeDerivative maxValue and None handling (@DacCech) +* Clean up perSecond and nonNegativeDerivative maxValue and None handling (@DanCech) * Use ``WEBAPP_VERSION`` in documentation link (@wridgers) @@ -227,7 +227,7 @@ Carbon * Catch TypeError exception from None data value (@retzkek) -* Added '--logger' and '--logfile' option (Du Zheng/@deniszh) +* Added '--logger' and '--logfile' option (Du Zheng / @deniszh) * Fixing lint (@DanCech) diff --git a/docs/storage-backends.rst b/docs/storage-backends.rst index 32f00c08e..90bcfd26d 100644 --- a/docs/storage-backends.rst +++ b/docs/storage-backends.rst @@ -51,6 +51,8 @@ Whisper database and a Ceres database: 'graphite.finders.ceres.CeresFinder', ) +.. _custom-finders: + Custom finders ^^^^^^^^^^^^^^ @@ -119,6 +121,8 @@ the database has gaps: gaps can be filled with ``None`` values. available for this given metric in the database. It must return an ``IntervalSet`` of one or more ``Interval`` objects. +.. _advanced-finders: + Advanced finders ^^^^^^^^^^^^^^^^ diff --git a/docs/tags.rst b/docs/tags.rst index a7f222e52..204f406b5 100644 --- a/docs/tags.rst +++ b/docs/tags.rst @@ -1,3 +1,5 @@ +.. _tags: + Graphite Tag Support ==================== 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. From 5145a611bfcacc0de5b0cc40e4fc54695fceef1a Mon Sep 17 00:00:00 2001 From: Denys Zhdanov Date: Mon, 18 Dec 2017 23:43:11 +0100 Subject: [PATCH 7/7] Minor fixes --- docs/releases/1_1_0.rst | 50 ++++++++++++++++++----------------------- 1 file changed, 22 insertions(+), 28 deletions(-) diff --git a/docs/releases/1_1_0.rst b/docs/releases/1_1_0.rst index 40019fa7e..ebbf696b8 100644 --- a/docs/releases/1_1_0.rst +++ b/docs/releases/1_1_0.rst @@ -26,7 +26,7 @@ The main feature of this release is :ref:`tag support ` in Carbon and Grap 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. -Another long-awaited feature is :ref:`Custom functions ` - you can write your own functions and load them into Graphite. There's also the :ref:`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. +Another long-awaited feature is :ref:`custom functions ` - you can write your own functions and load them into Graphite. There's also the :ref:`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. 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 ` to make your code use the new features too. @@ -70,15 +70,15 @@ Functions * Implement ``unique()`` (PR#2063, @DanCech) -* Support using tags in functions that accept nodes (#2055, @DanCech) +* Support using tags in functions that accept nodes (PR#2055, @DanCech) * "Pipe" function chaining syntax (`PR#2042`_, @DanCech) * xFilesFactor support, add aggregate function (`PR#2053`_, @DanCech) -* Support matching series by node in asPercent (PR#2050, @DanCech) +* Support matching series by node in ``asPercent`` (PR#2050, @DanCech) -* Add ``aggregateWithWildcards`` function, minor refactor for movingWindow (PR#2044, @DanCech) +* Add ``aggregateWithWildcards`` function, minor refactor for ``movingWindow`` (PR#2044, @DanCech) * Add ``/tags/findSeries``, add filter and pretty parameters to tag list/details endpoints (PR#2034, @DanCech) @@ -100,9 +100,9 @@ Functions Frontend changes ---------------- -* Add a history button to the dashboard kind of like Cacti (@cbowman) +* Add a history button to the dashboard kind of like Cacti (PR#2100, @cbowman0) -* Manipulate graph targets and implement New Graph -> New Empty Graph (@cbowman) +* Manipulate graph targets and implement New Graph -> New Empty Graph (PR#424, @cbowman0) * JS linting (@cbowman) @@ -116,11 +116,9 @@ Other new features * Use ``WEBAPP_VERSION`` in documentation link (@wridgers) -* Add a history button to the dashboard kind of like Cacti (#2100, @cbowman0) - -* Manipulate graph targets and implement New Graph -> New Empty Graph (PR#424, @cbowman0) +* Add a history button to the dashboard kind of like Cacti (PR#2100, @cbowman0) -* Support sending logs to stderr (#2066, @DanCech) +* Support sending logs to stderr (PR#2066, @DanCech) * Improve parseATTime (PR#2070, @DanCech) @@ -132,27 +130,27 @@ Other new features Bug Fixes --------- -* Add median adjustment for even length arrays (#2132, @shanson7) +* Add median adjustment for even length arrays (PR#2132, @shanson7) * Use default tagdb if ``TAGDB`` setting is not set (@woodsaj) -* Get rid of OverflowError in perSecond and scaleToSeconds (#2127, @Felixoid) +* Get rid of OverflowError in perSecond and scaleToSeconds (PR#2127, @Felixoid) -* Document week / w suffix (#2107, @mcv21) +* Document week / w suffix (PR#2107, @mcv21) -* Add ``REMOTE_USER_MIDDLEWARE`` configuration option and fix ``REMOTE_USER_BACKEND`` documentation (#2091, @wridgers) +* Add ``REMOTE_USER_MIDDLEWARE`` configuration option and fix ``REMOTE_USER_BACKEND`` documentation (PR#2091, @wridgers) -* Fix the url values to match the current document.body.dataset.baseUrl (#2087, @cbowman0) +* Fix the url values to match the current document.body.dataset.baseUrl (PR#2087, @cbowman0) * Whisper reader strange results for counters after merge_with_carbonlink (PR#2082, @olevchyk / @DanCech) -* Handle no data with graphType=pie (#2071, @cbowman0) +* Handle no data with graphType=pie (PR#2071, @cbowman0) * CarbonLink cache-query return 0 datapoints in some cases (PR#2012, @leochen4891) -* MaxDataPoints=1 fix (PR#2054, @DanCech) +* Render view refactor & maxDataPoints=1 (PR#2054, @DanCech) -* Fix consolidation (PR#2052, @DanCech/@powo) +* Fix consolidation (PR#2052, @DanCech / @powo) * Add median adjustment for even length arrays (@shanson7) @@ -162,10 +160,6 @@ Bug Fixes * Use ``WEBAPP_VERSION`` in documentation link (@wridgers) -* Handle no data with graphType=pie - -* When maxDataPoints=1, consolidate over entire interval - * Fnv1a fixes (PR#2014, @olevchuk) * Fix divideByZero when FIND_CACHE_DURATION=0 (@woodsaj) @@ -191,21 +185,21 @@ Other Changes Graphite-Web ^^^^^^^^^^^^ -* Clean up a few codacy issues (#2140, @cboman0) +* Clean up a few codacy issues (PR#2140, @cboman0) -* Add more tests for render/datalib.py (#2086, @cbowman0) +* Add more tests for render/datalib.py (PR#2086, @cbowman0) -* Fix caching in _merge_results and add tests (#2085, @cbowman0) +* Fix caching in _merge_results and add tests (PR#2085, @cbowman0) * Update render_api.rst (@r3cgm) * Use prefetch logic for sub-requests (PR#2076, @DanCech) -* Test class PrefetchedData (#2079) +* Test class PrefetchedData (PR#2079, @cbowman0) * Fix example vhost filename (@rednixon) -* Basic tests for render/datalib's _merge_results() (#2075, @cbowman0) +* Basic tests for render/datalib's ``_merge_results()`` (PR#2075, @cbowman0) * Whisper reader updates (PR#2074, @DanCech) @@ -213,7 +207,7 @@ Graphite-Web * Add more test coverage for render/functions (PR#2068, @cbowman0) -* Add timeshift test coverage (PR#2065, @cbowman0) +* Add ``timeshift`` test coverage (PR#2065, @cbowman0) * Increasing test coverage for functions (PR#2011, @msk610)