added a weighted average function
missed keymap definition for new function
enable get all metrics in CLUSTER_SERVERS
Remove superfluous grid line for log scale.

The code removed in this change added an additional entry to the list of
labels, causing the top of the graph to be extended by self.logBase. As
the corresponding labels have already been drawn, the result is a
graph with n+1 gridlines for n labels. Removing this addition resolves
the issue.

Fixes #235.
Send requests to all carbonlink hosts when metric starts with CARBON_METRIC_PREFIX.

In a multi-carbon environment, the carbon stats are written by the carbon process that generates them and the consistent hash ring is ignored.  So, to gather the real-time stats we must ask all Carbon hosts for each carbon stat.
Add a function "sortByName"
Implementation of Dashboard Templates.

The initial work was done by Aleh Filipovich.  It has been modified to be more generic.
Fix the required Django version

Since the commit fc3f018544c19b90cc63797d18970a4cc27ef2ad graphite-web requires Django > 1.4
Add -q0 option to nc in docs

With some versions of nc, the connection is kept open after all data is sent. Using -q0 parameter will make nc quit immediatly after EOF on stdin.

Debian has two debian packages for nc: netcat-traditional and netcat-openbsd. The former hangs after EOF on stdin, whereas the latter quits. I assume the expected behavior is to quit nc after sending the metric data.
small documentation update concerning feeding in Data with AMQP
Don't error on GET requests to /browser/search/
Modify editDashboard not mangle the graph records just enough that clone graph doesn't work.

Easiest method was to put the results into the same format that loading dashboards uses and invoke refreshGraphs.

This also correct the issue of editDashboard removing automatic titles for single-target graphs and places default sized placeholders for the graphs when they are loading.
Added link to the tools list from the feeding-carbon documentation because that is another great way to get metrics into Carbon. Added entry for txCarbonClient to the tools list.
Python 2.6 on Lucid doesn't like '{}.{}'.format(v1,v2)
Replaced with '{0}.{1}'.format(v1,v2)
Merge pull request #471 from dangarthwaite/fix_utils_empty_format

Python 2.6 on Lucid doesn't like '{}.{}'.format(v1,v2)
Merge pull request #438 from daccle/patch-1

Fix the required Django version
fix UnicodeEncodeError when using `alias()` with Unicode text
Update Django version message

This way it matches the actual comparison
fix data-cache invalidation

This fixes and issue with adding data to the data-cache. The previous
implementation used 'set' instead of 'add'. As discussed in
https://docs.djangoproject.com/en/dev/topics/cache/ 'set' will add the value
again, even if it exists already. This has the side-effect of also updating the
cache expiry time.

This means, that when you use 'set' on values that have been retrieved from the
cache, you keep bumping the cache expiry time and thereby extending the
life-time of the data in the cache.

This behaviour can lead to problems if you select a time in the future as your
value for the 'until' parameter in your query and then keep sending that query
at intervals smaller than the DEFAULT_CACHE_DURATION. The result is that you
will, until you cease requesting at that interval, receive the same values,
even if new values have become available in the meantime.

To reproduce select an existing metric and fix the 'from' and 'until' times to
fixed values selecting the 'until' time to be in the future:

current time is 12:0520131106:

curl "http://grphite/render/?target=METRIC&format=json&from=12:0020131106&until=12:2020131106&local=0"

Then execute the above curl statement in a while loop for about 15 minutes.
Observe how the same set of values is returned over the course of these 15
minutes.  Then, wait one minute (or whatever you set DEFAULT_CACHE_DURATION to)
and execute the curl query once again. Observe how several additional values
have appeared.

The fix is to use 'add' instead of 'set'. 'add' will only add new values if
they do not exist already.

If you apply this patch and try the same while loop again, observe how any new
values are fetched correctly one minute after they actually become available
from carbon.

Of course this depends on how often the metric is written to carbon. In my
example above my metric was written every 5 minutes.
improve data-cache invalidation

The further improves the previous commit by only even communication with the
cache, if the data has not been retrieved from the cache. The 'add' instead of
'set' is still used to make sure that concurrent WSGI workers who are accessing
a distributed cache, e.g. memcached, don't interfer with each other.