graphite-project / graphite-web

A highly scalable real-time graphing system
http://graphite.readthedocs.org/
Apache License 2.0
5.9k stars 1.26k forks source link

Grafana Internal Server Error when using timeFunction #2401

Closed blesaffre closed 4 years ago

blesaffre commented 5 years ago

I am trying to get the timestamp of a value using timeFunction, which works in Graphite-Web, but gives me an internal server error in Grafana.

I am using the latest versions of Graphite and Grafana on RHEL 7.

In the network tab, it says that I passed 4 arguments to the function and it takes 3 at most, while it actually takes 2 at most and I passed 1...

deniszh commented 5 years ago

Hi @blesaffre , Sorry, I don't really understand what's the issue is from your explanation, and Graphite have no time() function, but if it's Grafana-related you need to ask it on Grafana repo?

blesaffre commented 5 years ago

I am talking about timeFunction.

I already asked on Grafana repo, and was told "Probably a graphite issue so closing for now"

The issue is that when I use the mentionned above function on any metric, I get an Internal Server Error, and the graph stops displaying.

When I look for more information about this error in the network tab, I can see

TypeError  

timeFunction() takes at most 3 arguments (4 given)

while I only pass 1 and, according to the documentation, it takes a "name" parameter, and an optionnal "step".

deniszh commented 5 years ago

@blesaffre : Oh, sorry, forgot about that function. But works for me: I'm running Grafana 5.2.4 and Graphite 1.1.4: screenshot 2018-12-19 at 18 28 24

piotr1212 commented 5 years ago

Could you please copy/paste the full error message? Do you have any exceptions in the graphite-web logs?

What are the parameters you gave? Any special characters in them? (*?|/)

blesaffre commented 5 years ago

Here is the full error message I get in Grafana query inspector :

{
  "xhrStatus": "complete",
  "request": {
    "method": "POST",
    "url": "api/datasources/proxy/1/render",
    "data": "target=timeFunction(stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count%2C%20'%22The.time.series%22')&target=stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.REGISTER.count&from=-24h&until=now&format=json&maxDataPoints=960"
  },
  "response": {
    "error": "Internal Server Error",
    "response": "\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">\n  <meta name=\"robots\" content=\"NONE,NOARCHIVE\">\n  <title>TypeError at /render</title>\n  <style type=\"text/css\">\n    html * { padding:0; margin:0; }\n    body * { padding:10px 20px; }\n    body * * { padding:0; }\n    body { font:small sans-serif; }\n    body>div { border-bottom:1px solid #ddd; }\n    h1 { font-weight:normal; }\n    h2 { margin-bottom:.8em; }\n    h2 span { font-size:80%; color:#666; font-weight:normal; }\n    h3 { margin:1em 0 .5em 0; }\n    h4 { margin:0 0 .5em 0; font-weight: normal; }\n    code, pre { font-size: 100%; white-space: pre-wrap; }\n    table { border:1px solid #ccc; border-collapse: collapse; width:100%; background:white; }\n    tbody td, tbody th { vertical-align:top; padding:2px 3px; }\n    thead th {\n      padding:1px 6px 1px 3px; background:#fefefe; text-align:left;\n      font-weight:normal; font-size:11px; border:1px solid #ddd;\n    }\n    tbody th { width:12em; text-align:right; color:#666; padding-right:.5em; }\n    table.vars { margin:5px 0 2px 40px; }\n    table.vars td, table.req td { font-family:monospace; }\n    table td.code { width:100%; }\n    table td.code pre { overflow:hidden; }\n    table.source th { color:#666; }\n    table.source td { font-family:monospace; white-space:pre; border-bottom:1px solid #eee; }\n    ul.traceback { list-style-type:none; color: #222; }\n    ul.traceback li.frame { padding-bottom:1em; color:#666; }\n    ul.traceback li.user { background-color:#e0e0e0; color:#000 }\n    div.context { padding:10px 0; overflow:hidden; }\n    div.context ol { padding-left:30px; margin:0 10px; list-style-position: inside; }\n    div.context ol li { font-family:monospace; white-space:pre; color:#777; cursor:pointer; padding-left: 2px; }\n    div.context ol li pre { display:inline; }\n    div.context ol.context-line li { color:#505050; background-color:#dfdfdf; padding: 3px 2px; }\n    div.context ol.context-line li span { position:absolute; right:32px; }\n    .user div.context ol.context-line li { background-color:#bbb; color:#000; }\n    .user div.context ol li { color:#666; }\n    div.commands { margin-left: 40px; }\n    div.commands a { color:#555; text-decoration:none; }\n    .user div.commands a { color: black; }\n    #summary { background: #ffc; }\n    #summary h2 { font-weight: normal; color: #666; }\n    #explanation { background:#eee; }\n    #template, #template-not-exist { background:#f6f6f6; }\n    #template-not-exist ul { margin: 0 0 10px 20px; }\n    #template-not-exist .postmortem-section { margin-bottom: 3px; }\n    #unicode-hint { background:#eee; }\n    #traceback { background:#eee; }\n    #requestinfo { background:#f6f6f6; padding-left:120px; }\n    #summary table { border:none; background:transparent; }\n    #requestinfo h2, #requestinfo h3 { position:relative; margin-left:-100px; }\n    #requestinfo h3 { margin-bottom:-1em; }\n    .error { background: #ffc; }\n    .specific { color:#cc3300; font-weight:bold; }\n    h2 span.commands { font-size:.7em;}\n    span.commands a:link {color:#5E5694;}\n    pre.exception_value { font-family: sans-serif; color: #666; font-size: 1.5em; margin: 10px 0 10px 0; }\n    .append-bottom { margin-bottom: 10px; }\n  </style>\n  \n  <script type=\"text/javascript\">\n  //<!--\n    function getElementsByClassName(oElm, strTagName, strClassName){\n        // Written by Jonathan Snook, http://www.snook.ca/jon; Add-ons by Robert Nyman, http://www.robertnyman.com\n        var arrElements = (strTagName == \"*\" && document.all)? document.all :\n        oElm.getElementsByTagName(strTagName);\n        var arrReturnElements = new Array();\n        strClassName = strClassName.replace(/\\-/g, \"\\\\-\");\n        var oRegExp = new RegExp(\"(^|\\\\s)\" + strClassName + \"(\\\\s|$)\");\n        var oElement;\n        for(var i=0; i<arrElements.length; i++){\n            oElement = arrElements[i];\n            if(oRegExp.test(oElement.className)){\n                arrReturnElements.push(oElement);\n            }\n        }\n        return (arrReturnElements)\n    }\n    function hideAll(elems) {\n      for (var e = 0; e < elems.length; e++) {\n        elems[e].style.display = 'none';\n      }\n    }\n    window.onload = function() {\n      hideAll(getElementsByClassName(document, 'table', 'vars'));\n      hideAll(getElementsByClassName(document, 'ol', 'pre-context'));\n      hideAll(getElementsByClassName(document, 'ol', 'post-context'));\n      hideAll(getElementsByClassName(document, 'div', 'pastebin'));\n    }\n    function toggle() {\n      for (var i = 0; i < arguments.length; i++) {\n        var e = document.getElementById(arguments[i]);\n        if (e) {\n          e.style.display = e.style.display == 'none' ? 'block': 'none';\n        }\n      }\n      return false;\n    }\n    function varToggle(link, id) {\n      toggle('v' + id);\n      var s = link.getElementsByTagName('span')[0];\n      var uarr = String.fromCharCode(0x25b6);\n      var darr = String.fromCharCode(0x25bc);\n      s.textContent = s.textContent == uarr ? darr : uarr;\n      return false;\n    }\n    function switchPastebinFriendly(link) {\n      s1 = \"Switch to copy-and-paste view\";\n      s2 = \"Switch back to interactive view\";\n      link.textContent = link.textContent.trim() == s1 ? s2: s1;\n      toggle('browserTraceback', 'pastebinTraceback');\n      return false;\n    }\n    //-->\n  </script>\n  \n</head>\n<body>\n<div id=\"summary\">\n  <h1>TypeError at /render</h1>\n  <pre class=\"exception_value\">unsupported type for timedelta seconds component: unicode</pre>\n  <table class=\"meta\">\n\n    <tr>\n      <th>Request Method:</th>\n      <td>POST</td>\n    </tr>\n    <tr>\n      <th>Request URL:</th>\n      <td>http://localhost:81/render</td>\n    </tr>\n\n    <tr>\n      <th>Django Version:</th>\n      <td>1.11.16</td>\n    </tr>\n\n    <tr>\n      <th>Exception Type:</th>\n      <td>TypeError</td>\n    </tr>\n\n\n    <tr>\n      <th>Exception Value:</th>\n      <td><pre>unsupported type for timedelta seconds component: unicode</pre></td>\n    </tr>\n\n\n    <tr>\n      <th>Exception Location:</th>\n      <td>/opt/graphite/webapp/graphite/render/functions.py in timeFunction, line 5210</td>\n    </tr>\n\n    <tr>\n      <th>Python Executable:</th>\n      <td>/usr/bin/python</td>\n    </tr>\n    <tr>\n      <th>Python Version:</th>\n      <td>2.7.5</td>\n    </tr>\n    <tr>\n      <th>Python Path:</th>\n      <td><pre>[&#39;/usr/lib64/python27.zip&#39;,\n &#39;/usr/lib64/python2.7&#39;,\n &#39;/usr/lib64/python2.7/plat-linux2&#39;,\n &#39;/usr/lib64/python2.7/lib-tk&#39;,\n &#39;/usr/lib64/python2.7/lib-old&#39;,\n &#39;/usr/lib64/python2.7/lib-dynload&#39;,\n &#39;/usr/lib64/python2.7/site-packages&#39;,\n &#39;/usr/lib64/python2.7/site-packages/gtk-2.0&#39;,\n &#39;/usr/lib/python2.7/site-packages&#39;,\n &#39;/opt/graphite/webapp&#39;]</pre></td>\n    </tr>\n    <tr>\n      <th>Server time:</th>\n      <td>Mon, 24 Dec 2018 09:43:30 +0100</td>\n    </tr>\n  </table>\n</div>\n\n\n\n\n<div id=\"traceback\">\n  <h2>Traceback <span class=\"commands\"><a href=\"#\" onclick=\"return switchPastebinFriendly(this);\">\n    Switch to copy-and-paste view</a></span>\n  </h2>\n  <div id=\"browserTraceback\">\n    <ul class=\"traceback\">\n      \n        \n        <li class=\"frame django\">\n          <code>/usr/lib64/python2.7/site-packages/django/core/handlers/exception.py</code> in <code>inner</code>\n\n          \n            <div class=\"context\" id=\"c140530490956256\">\n              \n                <ol start=\"34\" class=\"pre-context\" id=\"pre140530490956256\">\n                \n                  <li onclick=\"toggle('pre140530490956256', 'post140530490956256')\"><pre>    This decorator is automatically applied to all middleware to ensure that</pre></li>\n                \n                  <li onclick=\"toggle('pre140530490956256', 'post140530490956256')\"><pre>    no middleware leaks an exception and that the next middleware in the stack</pre></li>\n                \n                  <li onclick=\"toggle('pre140530490956256', 'post140530490956256')\"><pre>    can rely on getting a response instead of an exception.</pre></li>\n                \n                  <li onclick=\"toggle('pre140530490956256', 'post140530490956256')\"><pre>    &quot;&quot;&quot;</pre></li>\n                \n                  <li onclick=\"toggle('pre140530490956256', 'post140530490956256')\"><pre>    @wraps(get_response, assigned=available_attrs(get_response))</pre></li>\n                \n                  <li onclick=\"toggle('pre140530490956256', 'post140530490956256')\"><pre>    def inner(request):</pre></li>\n                \n                  <li onclick=\"toggle('pre140530490956256', 'post140530490956256')\"><pre>        try:</pre></li>\n                \n                </ol>\n              \n              <ol start=\"41\" class=\"context-line\">\n                <li onclick=\"toggle('pre140530490956256', 'post140530490956256')\"><pre>\n            response = get_response(request)</pre> <span>...</span></li></ol>\n              \n                <ol start='42' class=\"post-context\" id=\"post140530490956256\">\n                  \n                  <li onclick=\"toggle('pre140530490956256', 'post140530490956256')\"><pre>        except Exception as exc:</pre></li>\n                  \n                  <li onclick=\"toggle('pre140530490956256', 'post140530490956256')\"><pre>            response = response_for_exception(request, exc)</pre></li>\n                  \n                  <li onclick=\"toggle('pre140530490956256', 'post140530490956256')\"><pre>        return response</pre></li>\n                  \n                  <li onclick=\"toggle('pre140530490956256', 'post140530490956256')\"><pre>    return inner</pre></li>\n                  \n                  <li onclick=\"toggle('pre140530490956256', 'post140530490956256')\"><pre></pre></li>\n                  \n                  <li onclick=\"toggle('pre140530490956256', 'post140530490956256')\"><pre></pre></li>\n                  \n              </ol>\n              \n            </div>\n          \n\n          \n            <div class=\"commands\">\n                \n                    <a href=\"#\" onclick=\"return varToggle(this, '140530490956256')\"><span>&#x25b6;</span> Local vars</a>\n                \n            </div>\n            <table class=\"vars\" id=\"v140530490956256\">\n              <thead>\n                <tr>\n                  <th>Variable</th>\n                  <th>Value</th>\n                </tr>\n              </thead>\n              <tbody>\n                \n                  <tr>\n                    <td>exc</td>\n                    <td class=\"code\"><pre>TypeError(&#39;unsupported type for timedelta seconds component: unicode&#39;,)</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>get_response</td>\n                    <td class=\"code\"><pre>&lt;bound method WSGIHandler._get_response of &lt;django.core.handlers.wsgi.WSGIHandler object at 0x7fcfe00b8190&gt;&gt;</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>request</td>\n                    <td class=\"code\"><pre>&lt;WSGIRequest: POST &#39;/render&#39;&gt;</pre></td>\n                  </tr>\n                \n              </tbody>\n            </table>\n          \n        </li>\n      \n        \n        <li class=\"frame django\">\n          <code>/usr/lib64/python2.7/site-packages/django/core/handlers/base.py</code> in <code>_get_response</code>\n\n          \n            <div class=\"context\" id=\"c140530490955464\">\n              \n                <ol start=\"180\" class=\"pre-context\" id=\"pre140530490955464\">\n                \n                  <li onclick=\"toggle('pre140530490955464', 'post140530490955464')\"><pre>                break</pre></li>\n                \n                  <li onclick=\"toggle('pre140530490955464', 'post140530490955464')\"><pre></pre></li>\n                \n                  <li onclick=\"toggle('pre140530490955464', 'post140530490955464')\"><pre>        if response is None:</pre></li>\n                \n                  <li onclick=\"toggle('pre140530490955464', 'post140530490955464')\"><pre>            wrapped_callback = self.make_view_atomic(callback)</pre></li>\n                \n                  <li onclick=\"toggle('pre140530490955464', 'post140530490955464')\"><pre>            try:</pre></li>\n                \n                  <li onclick=\"toggle('pre140530490955464', 'post140530490955464')\"><pre>                response = wrapped_callback(request, *callback_args, **callback_kwargs)</pre></li>\n                \n                  <li onclick=\"toggle('pre140530490955464', 'post140530490955464')\"><pre>            except Exception as e:</pre></li>\n                \n                </ol>\n              \n              <ol start=\"187\" class=\"context-line\">\n                <li onclick=\"toggle('pre140530490955464', 'post140530490955464')\"><pre>\n                response = self.process_exception_by_middleware(e, request)</pre> <span>...</span></li></ol>\n              \n                <ol start='188' class=\"post-context\" id=\"post140530490955464\">\n                  \n                  <li onclick=\"toggle('pre140530490955464', 'post140530490955464')\"><pre></pre></li>\n                  \n                  <li onclick=\"toggle('pre140530490955464', 'post140530490955464')\"><pre>        # Complain if the view returned None (a common error).</pre></li>\n                  \n                  <li onclick=\"toggle('pre140530490955464', 'post140530490955464')\"><pre>        if response is None:</pre></li>\n                  \n                  <li onclick=\"toggle('pre140530490955464', 'post140530490955464')\"><pre>            if isinstance(callback, types.FunctionType):    # FBV</pre></li>\n                  \n                  <li onclick=\"toggle('pre140530490955464', 'post140530490955464')\"><pre>                view_name = callback.__name__</pre></li>\n                  \n                  <li onclick=\"toggle('pre140530490955464', 'post140530490955464')\"><pre>            else:                                           # CBV</pre></li>\n                  \n              </ol>\n              \n            </div>\n          \n\n          \n            <div class=\"commands\">\n                \n                    <a href=\"#\" onclick=\"return varToggle(this, '140530490955464')\"><span>&#x25b6;</span> Local vars</a>\n                \n            </div>\n            <table class=\"vars\" id=\"v140530490955464\">\n              <thead>\n                <tr>\n                  <th>Variable</th>\n                  <th>Value</th>\n                </tr>\n              </thead>\n              <tbody>\n                \n                  <tr>\n                    <td>callback</td>\n                    <td class=\"code\"><pre>&lt;function renderView at 0x7fcfd428a488&gt;</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>callback_args</td>\n                    <td class=\"code\"><pre>()</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>callback_kwargs</td>\n                    <td class=\"code\"><pre>{}</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>e</td>\n                    <td class=\"code\"><pre>TypeError(&#39;unsupported type for timedelta seconds component: unicode&#39;,)</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>request</td>\n                    <td class=\"code\"><pre>&lt;WSGIRequest: POST &#39;/render&#39;&gt;</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>resolver</td>\n                    <td class=\"code\"><pre>&lt;RegexURLResolver &#39;graphite.urls&#39; (None:None) ^/&gt;</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>resolver_match</td>\n                    <td class=\"code\"><pre>ResolverMatch(func=graphite.render.views.renderView, args=(), kwargs={}, url_name=render, app_names=[], namespaces=[])</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>response</td>\n                    <td class=\"code\"><pre>None</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>self</td>\n                    <td class=\"code\"><pre>&lt;django.core.handlers.wsgi.WSGIHandler object at 0x7fcfe00b8190&gt;</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>wrapped_callback</td>\n                    <td class=\"code\"><pre>&lt;function renderView at 0x7fcfd428a488&gt;</pre></td>\n                  </tr>\n                \n              </tbody>\n            </table>\n          \n        </li>\n      \n        \n        <li class=\"frame django\">\n          <code>/usr/lib64/python2.7/site-packages/django/core/handlers/base.py</code> in <code>_get_response</code>\n\n          \n            <div class=\"context\" id=\"c140530490954672\">\n              \n                <ol start=\"178\" class=\"pre-context\" id=\"pre140530490954672\">\n                \n                  <li onclick=\"toggle('pre140530490954672', 'post140530490954672')\"><pre>            response = middleware_method(request, callback, callback_args, callback_kwargs)</pre></li>\n                \n                  <li onclick=\"toggle('pre140530490954672', 'post140530490954672')\"><pre>            if response:</pre></li>\n                \n                  <li onclick=\"toggle('pre140530490954672', 'post140530490954672')\"><pre>                break</pre></li>\n                \n                  <li onclick=\"toggle('pre140530490954672', 'post140530490954672')\"><pre></pre></li>\n                \n                  <li onclick=\"toggle('pre140530490954672', 'post140530490954672')\"><pre>        if response is None:</pre></li>\n                \n                  <li onclick=\"toggle('pre140530490954672', 'post140530490954672')\"><pre>            wrapped_callback = self.make_view_atomic(callback)</pre></li>\n                \n                  <li onclick=\"toggle('pre140530490954672', 'post140530490954672')\"><pre>            try:</pre></li>\n                \n                </ol>\n              \n              <ol start=\"185\" class=\"context-line\">\n                <li onclick=\"toggle('pre140530490954672', 'post140530490954672')\"><pre>\n                response = wrapped_callback(request, *callback_args, **callback_kwargs)</pre> <span>...</span></li></ol>\n              \n                <ol start='186' class=\"post-context\" id=\"post140530490954672\">\n                  \n                  <li onclick=\"toggle('pre140530490954672', 'post140530490954672')\"><pre>            except Exception as e:</pre></li>\n                  \n                  <li onclick=\"toggle('pre140530490954672', 'post140530490954672')\"><pre>                response = self.process_exception_by_middleware(e, request)</pre></li>\n                  \n                  <li onclick=\"toggle('pre140530490954672', 'post140530490954672')\"><pre></pre></li>\n                  \n                  <li onclick=\"toggle('pre140530490954672', 'post140530490954672')\"><pre>        # Complain if the view returned None (a common error).</pre></li>\n                  \n                  <li onclick=\"toggle('pre140530490954672', 'post140530490954672')\"><pre>        if response is None:</pre></li>\n                  \n                  <li onclick=\"toggle('pre140530490954672', 'post140530490954672')\"><pre>            if isinstance(callback, types.FunctionType):    # FBV</pre></li>\n                  \n              </ol>\n              \n            </div>\n          \n\n          \n            <div class=\"commands\">\n                \n                    <a href=\"#\" onclick=\"return varToggle(this, '140530490954672')\"><span>&#x25b6;</span> Local vars</a>\n                \n            </div>\n            <table class=\"vars\" id=\"v140530490954672\">\n              <thead>\n                <tr>\n                  <th>Variable</th>\n                  <th>Value</th>\n                </tr>\n              </thead>\n              <tbody>\n                \n                  <tr>\n                    <td>callback</td>\n                    <td class=\"code\"><pre>&lt;function renderView at 0x7fcfd428a488&gt;</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>callback_args</td>\n                    <td class=\"code\"><pre>()</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>callback_kwargs</td>\n                    <td class=\"code\"><pre>{}</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>e</td>\n                    <td class=\"code\"><pre>TypeError(&#39;unsupported type for timedelta seconds component: unicode&#39;,)</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>request</td>\n                    <td class=\"code\"><pre>&lt;WSGIRequest: POST &#39;/render&#39;&gt;</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>resolver</td>\n                    <td class=\"code\"><pre>&lt;RegexURLResolver &#39;graphite.urls&#39; (None:None) ^/&gt;</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>resolver_match</td>\n                    <td class=\"code\"><pre>ResolverMatch(func=graphite.render.views.renderView, args=(), kwargs={}, url_name=render, app_names=[], namespaces=[])</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>response</td>\n                    <td class=\"code\"><pre>None</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>self</td>\n                    <td class=\"code\"><pre>&lt;django.core.handlers.wsgi.WSGIHandler object at 0x7fcfe00b8190&gt;</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>wrapped_callback</td>\n                    <td class=\"code\"><pre>&lt;function renderView at 0x7fcfd428a488&gt;</pre></td>\n                  </tr>\n                \n              </tbody>\n            </table>\n          \n        </li>\n      \n        \n        <li class=\"frame user\">\n          <code>/opt/graphite/webapp/graphite/render/views.py</code> in <code>renderView</code>\n\n          \n            <div class=\"context\" id=\"c140530490955968\">\n              \n                <ol start=\"111\" class=\"pre-context\" id=\"pre140530490955968\">\n                \n                  <li onclick=\"toggle('pre140530490955968', 'post140530490955968')\"><pre>        log.cache(&quot;Data-Cache miss [%s]&quot; % dataKey)</pre></li>\n                \n                  <li onclick=\"toggle('pre140530490955968', 'post140530490955968')\"><pre></pre></li>\n                \n                  <li onclick=\"toggle('pre140530490955968', 'post140530490955968')\"><pre>    if cachedData is not None:</pre></li>\n                \n                  <li onclick=\"toggle('pre140530490955968', 'post140530490955968')\"><pre>      requestContext[&#39;data&#39;] = data = cachedData</pre></li>\n                \n                  <li onclick=\"toggle('pre140530490955968', 'post140530490955968')\"><pre>    else: # Have to actually retrieve the data now</pre></li>\n                \n                  <li onclick=\"toggle('pre140530490955968', 'post140530490955968')\"><pre>      targets = requestOptions[&#39;targets&#39;]</pre></li>\n                \n                  <li onclick=\"toggle('pre140530490955968', 'post140530490955968')\"><pre></pre></li>\n                \n                </ol>\n              \n              <ol start=\"118\" class=\"context-line\">\n                <li onclick=\"toggle('pre140530490955968', 'post140530490955968')\"><pre>\n      data.extend(evaluateTarget(requestContext, targets))</pre> <span>...</span></li></ol>\n              \n                <ol start='119' class=\"post-context\" id=\"post140530490955968\">\n                  \n                  <li onclick=\"toggle('pre140530490955968', 'post140530490955968')\"><pre></pre></li>\n                  \n                  <li onclick=\"toggle('pre140530490955968', 'post140530490955968')\"><pre>      if useCache:</pre></li>\n                  \n                  <li onclick=\"toggle('pre140530490955968', 'post140530490955968')\"><pre>        cache.add(dataKey, data, cacheTimeout)</pre></li>\n                  \n                  <li onclick=\"toggle('pre140530490955968', 'post140530490955968')\"><pre></pre></li>\n                  \n                  <li onclick=\"toggle('pre140530490955968', 'post140530490955968')\"><pre>    renderStart = time()</pre></li>\n                  \n                  <li onclick=\"toggle('pre140530490955968', 'post140530490955968')\"><pre></pre></li>\n                  \n              </ol>\n              \n            </div>\n          \n\n          \n            <div class=\"commands\">\n                \n                    <a href=\"#\" onclick=\"return varToggle(this, '140530490955968')\"><span>&#x25b6;</span> Local vars</a>\n                \n            </div>\n            <table class=\"vars\" id=\"v140530490955968\">\n              <thead>\n                <tr>\n                  <th>Variable</th>\n                  <th>Value</th>\n                </tr>\n              </thead>\n              <tbody>\n                \n                  <tr>\n                    <td>cacheTimeout</td>\n                    <td class=\"code\"><pre>60</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>cachedData</td>\n                    <td class=\"code\"><pre>None</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>data</td>\n                    <td class=\"code\"><pre>[]</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>dataKey</td>\n                    <td class=\"code\"><pre>&#39;810d5d986488b218bca6d3d800c90414&#39;</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>endTime</td>\n                    <td class=\"code\"><pre>datetime.datetime(2018, 12, 24, 9, 43, 29, 671663, tzinfo=&lt;DstTzInfo &#39;Europe/Paris&#39; CET+1:00:00 STD&gt;)</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>graphOptions</td>\n                    <td class=\"code\"><pre>{&#39;height&#39;: 250, &#39;outputFormat&#39;: &#39;png&#39;, &#39;width&#39;: 330}</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>request</td>\n                    <td class=\"code\"><pre>&lt;WSGIRequest: POST &#39;/render&#39;&gt;</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>requestContext</td>\n                    <td class=\"code\"><pre>{&#39;args&#39;: ([([([u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;pathExpression&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, 0)]})], {&#39;expression&#39;: [(([u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;pathExpression&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, 0)]}), 0)]}), ([u&#39;\\&#39;&quot;The.time.series&quot;\\&#39;&#39;], {&#39;string&#39;: [(u&#39;\\&#39;&quot;The.time.series&quot;\\&#39;&#39;, 0)]})], {}),\n &#39;data&#39;: [],\n &#39;endTime&#39;: datetime.datetime(2018, 12, 24, 9, 43, 29, 671663, tzinfo=&lt;DstTzInfo &#39;Europe/Paris&#39; CET+1:00:00 STD&gt;),\n &#39;forwardHeaders&#39;: {},\n &#39;localOnly&#39;: False,\n &#39;now&#39;: datetime.datetime(2018, 12, 24, 9, 43, 29, 671663, tzinfo=&lt;DstTzInfo &#39;Europe/Paris&#39; CET+1:00:00 STD&gt;),\n &#39;prefetched&#39;: {(1545554609, 1545641009, 1545641009): defaultdict(&lt;type &#39;list&#39;&gt;, {u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.TUTOR.registration.775b949a-74f818be10.141.0.5.200.count&#39;, ((1545554640, 1545641040, 60), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.... &lt;trimmed 464867 bytes string&gt;</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>requestKey</td>\n                    <td class=\"code\"><pre>&#39;72eed04c5bfc8aa228bc6b53e9bffc76&#39;</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>requestOptions</td>\n                    <td class=\"code\"><pre>{&#39;cacheTimeout&#39;: 60,\n &#39;endTime&#39;: datetime.datetime(2018, 12, 24, 9, 43, 29, 671663, tzinfo=&lt;DstTzInfo &#39;Europe/Paris&#39; CET+1:00:00 STD&gt;),\n &#39;format&#39;: u&#39;json&#39;,\n &#39;forwardHeaders&#39;: {},\n &#39;graphClass&#39;: &lt;class graphite.render.glyph.LineGraph at 0x7fcfd4312ce8&gt;,\n &#39;graphType&#39;: &#39;line&#39;,\n &#39;localOnly&#39;: False,\n &#39;maxDataPoints&#39;: 960,\n &#39;now&#39;: datetime.datetime(2018, 12, 24, 9, 43, 29, 671663, tzinfo=&lt;DstTzInfo &#39;Europe/Paris&#39; CET+1:00:00 STD&gt;),\n &#39;pieMode&#39;: &#39;average&#39;,\n &#39;pretty&#39;: False,\n &#39;startTime&#39;: datetime.datetime(2018, 12, 23, 9, 43, 29, 671663, tzinfo=&lt;DstTzInfo &#39;Europe/Paris&#39; CET+1:00:00 STD&gt;),\n &#39;targets&#39;: [u&#39;timeFunction(stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count, \\&#39;&quot;The.time.series&quot;\\&#39;)&#39;,\n             u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.REGISTER.count&#39;],\n &#39;template&#39;: {},\n &#39;tzinfo&#39;: &lt;DstTzInfo &#39;Europe/Paris&#39; PMT+0:09:00 STD&gt;,\n &#39;xFilesFactor&#39;: 0.0}</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>response</td>\n                    <td class=\"code\"><pre>None</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>start</td>\n                    <td class=\"code\"><pre>1545641009.670845</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>startTime</td>\n                    <td class=\"code\"><pre>datetime.datetime(2018, 12, 23, 9, 43, 29, 671663, tzinfo=&lt;DstTzInfo &#39;Europe/Paris&#39; CET+1:00:00 STD&gt;)</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>targets</td>\n                    <td class=\"code\"><pre>[u&#39;timeFunction(stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count, \\&#39;&quot;The.time.series&quot;\\&#39;)&#39;,\n u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.REGISTER.count&#39;]</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>useCache</td>\n                    <td class=\"code\"><pre>True</pre></td>\n                  </tr>\n                \n              </tbody>\n            </table>\n          \n        </li>\n      \n        \n        <li class=\"frame user\">\n          <code>/opt/graphite/webapp/graphite/render/evaluator.py</code> in <code>evaluateTarget</code>\n\n          \n            <div class=\"context\" id=\"c140530490954960\">\n              \n                <ol start=\"21\" class=\"pre-context\" id=\"pre140530490954960\">\n                \n                  <li onclick=\"toggle('pre140530490954960', 'post140530490954960')\"><pre>      continue</pre></li>\n                \n                  <li onclick=\"toggle('pre140530490954960', 'post140530490954960')\"><pre></pre></li>\n                \n                  <li onclick=\"toggle('pre140530490954960', 'post140530490954960')\"><pre>    if isinstance(target, six.string_types):</pre></li>\n                \n                  <li onclick=\"toggle('pre140530490954960', 'post140530490954960')\"><pre>      if not target.strip():</pre></li>\n                \n                  <li onclick=\"toggle('pre140530490954960', 'post140530490954960')\"><pre>        continue</pre></li>\n                \n                  <li onclick=\"toggle('pre140530490954960', 'post140530490954960')\"><pre>      target = grammar.parseString(target)</pre></li>\n                \n                  <li onclick=\"toggle('pre140530490954960', 'post140530490954960')\"><pre></pre></li>\n                \n                </ol>\n              \n              <ol start=\"28\" class=\"context-line\">\n                <li onclick=\"toggle('pre140530490954960', 'post140530490954960')\"><pre>\n    result = evaluateTokens(requestContext, target)</pre> <span>...</span></li></ol>\n              \n                <ol start='29' class=\"post-context\" id=\"post140530490954960\">\n                  \n                  <li onclick=\"toggle('pre140530490954960', 'post140530490954960')\"><pre></pre></li>\n                  \n                  <li onclick=\"toggle('pre140530490954960', 'post140530490954960')\"><pre>    # we have to return a list of TimeSeries objects</pre></li>\n                  \n                  <li onclick=\"toggle('pre140530490954960', 'post140530490954960')\"><pre>    if isinstance(result, TimeSeries):</pre></li>\n                  \n                  <li onclick=\"toggle('pre140530490954960', 'post140530490954960')\"><pre>      seriesList.append(result)</pre></li>\n                  \n                  <li onclick=\"toggle('pre140530490954960', 'post140530490954960')\"><pre>    elif result:</pre></li>\n                  \n                  <li onclick=\"toggle('pre140530490954960', 'post140530490954960')\"><pre>      seriesList.extend(result)</pre></li>\n                  \n              </ol>\n              \n            </div>\n          \n\n          \n            <div class=\"commands\">\n                \n                    <a href=\"#\" onclick=\"return varToggle(this, '140530490954960')\"><span>&#x25b6;</span> Local vars</a>\n                \n            </div>\n            <table class=\"vars\" id=\"v140530490954960\">\n              <thead>\n                <tr>\n                  <th>Variable</th>\n                  <th>Value</th>\n                </tr>\n              </thead>\n              <tbody>\n                \n                  <tr>\n                    <td>pathExpressions</td>\n                    <td class=\"code\"><pre>[u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;,\n u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.REGISTER.count&#39;]</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>requestContext</td>\n                    <td class=\"code\"><pre>{&#39;args&#39;: ([([([u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;pathExpression&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, 0)]})], {&#39;expression&#39;: [(([u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;pathExpression&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, 0)]}), 0)]}), ([u&#39;\\&#39;&quot;The.time.series&quot;\\&#39;&#39;], {&#39;string&#39;: [(u&#39;\\&#39;&quot;The.time.series&quot;\\&#39;&#39;, 0)]})], {}),\n &#39;data&#39;: [],\n &#39;endTime&#39;: datetime.datetime(2018, 12, 24, 9, 43, 29, 671663, tzinfo=&lt;DstTzInfo &#39;Europe/Paris&#39; CET+1:00:00 STD&gt;),\n &#39;forwardHeaders&#39;: {},\n &#39;localOnly&#39;: False,\n &#39;now&#39;: datetime.datetime(2018, 12, 24, 9, 43, 29, 671663, tzinfo=&lt;DstTzInfo &#39;Europe/Paris&#39; CET+1:00:00 STD&gt;),\n &#39;prefetched&#39;: {(1545554609, 1545641009, 1545641009): defaultdict(&lt;type &#39;list&#39;&gt;, {u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.TUTOR.registration.775b949a-74f818be10.141.0.5.200.count&#39;, ((1545554640, 1545641040, 60), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.... &lt;trimmed 464867 bytes string&gt;</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>seriesList</td>\n                    <td class=\"code\"><pre>[]</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>target</td>\n                    <td class=\"code\"><pre>([([([0, u&#39;timeFunction&#39;, ([([u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;pathExpression&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, 0)]})], {&#39;expression&#39;: [(([u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;pathExpression&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, 0)]}), 0)]}), ([u&#39;\\&#39;&quot;The.time.series&quot;\\&#39;&#39;], {&#39;string&#39;: [(u&#39;\\&#39;&quot;The.time.series&quot;\\&#39;&#39;, 0)]}), 108], {&#39;start&#39;: [(0, 0)], &#39;args&#39;: [(([([u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;pathExpression&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, 0)]})], {&#39;expression&#39;: [(([u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;pathExpression&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, 0)]}), 0)]}), 2), (([u&#39;\\&#39;&quot;The.time.series&quot;\\&#39;&#39;], {&#39;string&#39;: [(u&#39;\\&#39;&quot;The.time.series&quot;\\&#39;&#39;, 0)]}), 3)], &#39;end&#39;: [(108, 4)], &#39;funcname&#39;: [(u&#39;timeFunction&#39;, 1)]}), ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;call&#39;: [(([0, u&#39;timeFunction&#39;, ([([u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;pathExpression&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, 0)]})], {&#39;expression&#39;: [(([u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;pathExpression&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, 0)]}), 0)]}), ([u&#39;\\&#39;&quot;The.time.series&quot;\\&#39;&#39;], {&#39;string&#39;: [(u&#39;\\&#39;&quot;The.time.series&quot;\\&#39;&#39;, 0)]}), 108], {&#39;start&#39;: [(0, 0)], &#39;args&#39;: [(([([u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;pathExpression&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, 0)]})], {&#39;expression&#39;: [(([u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;pathExpression&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, 0)]}), 0)]}), 2), (([u&#39;\\&#39;&quot;The.time.series&quot;\\&#39;&#39;], {&#39;string&#39;: [(u&#39;\\&#39;&quot;The.time.series&quot;\\&#39;&#39;, 0)]}), 3)], &#39;end&#39;: [(108, 4)], &#39;funcname&#39;: [(u&#39;timeFunction&#39;, 1)]}), 0)]})], {&#39;expression&#39;: [(([([0, u&#39;timeFunction&#39;, ([([u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;pathExpression&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, 0)]})], {&#39;expression&#39;: [(([u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;pathExpression&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, 0)]}), 0)]}), ([u&#39;\\&#39;&quot;The.time.series&quot;\\&#39;&#39;], {&#39;string&#39;: [(u&#39;\\&#39;&quot;The.time.series&quot;\\&#39;&#39;, 0)]}), 108], {&#39;start&#39;: [(0, 0)], &#39;args&#39;: [(([([u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;pathExpression&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, 0)]})], {&#39;expression&#39;: [(([u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;pathExpression&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, 0)]}), 0)]}), 2), (([u&#39;\\&#39;&quot;The.time.series&quot;\\&#39;&#39;], {&#39;string&#39;: [(u&#39;\\&#39;&quot;The.time.series&quot;\\&#39;&#39;, 0)]}), 3)], &#39;end&#39;: [(108, 4)], &#39;funcname&#39;: [(u&#39;timeFunction&#39;, 1)]}), ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;call&#39;: [(([0, u&#39;timeFunction&#39;, ([([u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;pathExpression&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200... &lt;trimmed 5113 bytes string&gt;</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>targets</td>\n                    <td class=\"code\"><pre>[u&#39;timeFunction(stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count, \\&#39;&quot;The.time.series&quot;\\&#39;)&#39;,\n u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.REGISTER.count&#39;]</pre></td>\n                  </tr>\n                \n              </tbody>\n            </table>\n          \n        </li>\n      \n        \n        <li class=\"frame user\">\n          <code>/opt/graphite/webapp/graphite/render/evaluator.py</code> in <code>evaluateTokens</code>\n\n          \n            <div class=\"context\" id=\"c140530490996856\">\n              \n                <ol start=\"50\" class=\"pre-context\" id=\"pre140530490996856\">\n                \n                  <li onclick=\"toggle('pre140530490996856', 'post140530490996856')\"><pre>  if tokens.expression:</pre></li>\n                \n                  <li onclick=\"toggle('pre140530490996856', 'post140530490996856')\"><pre>    if tokens.expression.pipedCalls:</pre></li>\n                \n                  <li onclick=\"toggle('pre140530490996856', 'post140530490996856')\"><pre>      # when the expression has piped calls, we pop the right-most call and pass the remaining</pre></li>\n                \n                  <li onclick=\"toggle('pre140530490996856', 'post140530490996856')\"><pre>      # expression into it via pipedArg, to get the same result as a nested call</pre></li>\n                \n                  <li onclick=\"toggle('pre140530490996856', 'post140530490996856')\"><pre>      rightMost = tokens.expression.pipedCalls.pop()</pre></li>\n                \n                  <li onclick=\"toggle('pre140530490996856', 'post140530490996856')\"><pre>      return evaluateTokens(requestContext, rightMost, replacements, tokens)</pre></li>\n                \n                  <li onclick=\"toggle('pre140530490996856', 'post140530490996856')\"><pre></pre></li>\n                \n                </ol>\n              \n              <ol start=\"57\" class=\"context-line\">\n                <li onclick=\"toggle('pre140530490996856', 'post140530490996856')\"><pre>\n    return evaluateTokens(requestContext, tokens.expression, replacements)</pre> <span>...</span></li></ol>\n              \n                <ol start='58' class=\"post-context\" id=\"post140530490996856\">\n                  \n                  <li onclick=\"toggle('pre140530490996856', 'post140530490996856')\"><pre></pre></li>\n                  \n                  <li onclick=\"toggle('pre140530490996856', 'post140530490996856')\"><pre>  if tokens.pathExpression:</pre></li>\n                  \n                  <li onclick=\"toggle('pre140530490996856', 'post140530490996856')\"><pre>    expression = tokens.pathExpression</pre></li>\n                  \n                  <li onclick=\"toggle('pre140530490996856', 'post140530490996856')\"><pre>    if replacements:</pre></li>\n                  \n                  <li onclick=\"toggle('pre140530490996856', 'post140530490996856')\"><pre>      for name in replacements:</pre></li>\n                  \n                  <li onclick=\"toggle('pre140530490996856', 'post140530490996856')\"><pre>        if expression == &#39;$&#39;+name:</pre></li>\n                  \n              </ol>\n              \n            </div>\n          \n\n          \n            <div class=\"commands\">\n                \n                    <a href=\"#\" onclick=\"return varToggle(this, '140530490996856')\"><span>&#x25b6;</span> Local vars</a>\n                \n            </div>\n            <table class=\"vars\" id=\"v140530490996856\">\n              <thead>\n                <tr>\n                  <th>Variable</th>\n                  <th>Value</th>\n                </tr>\n              </thead>\n              <tbody>\n                \n                  <tr>\n                    <td>pipedArg</td>\n                    <td class=\"code\"><pre>None</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>replacements</td>\n                    <td class=\"code\"><pre>None</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>requestContext</td>\n                    <td class=\"code\"><pre>{&#39;args&#39;: ([([([u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;pathExpression&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, 0)]})], {&#39;expression&#39;: [(([u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;pathExpression&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, 0)]}), 0)]}), ([u&#39;\\&#39;&quot;The.time.series&quot;\\&#39;&#39;], {&#39;string&#39;: [(u&#39;\\&#39;&quot;The.time.series&quot;\\&#39;&#39;, 0)]})], {}),\n &#39;data&#39;: [],\n &#39;endTime&#39;: datetime.datetime(2018, 12, 24, 9, 43, 29, 671663, tzinfo=&lt;DstTzInfo &#39;Europe/Paris&#39; CET+1:00:00 STD&gt;),\n &#39;forwardHeaders&#39;: {},\n &#39;localOnly&#39;: False,\n &#39;now&#39;: datetime.datetime(2018, 12, 24, 9, 43, 29, 671663, tzinfo=&lt;DstTzInfo &#39;Europe/Paris&#39; CET+1:00:00 STD&gt;),\n &#39;prefetched&#39;: {(1545554609, 1545641009, 1545641009): defaultdict(&lt;type &#39;list&#39;&gt;, {u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.TUTOR.registration.775b949a-74f818be10.141.0.5.200.count&#39;, ((1545554640, 1545641040, 60), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.... &lt;trimmed 464867 bytes string&gt;</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>tokens</td>\n                    <td class=\"code\"><pre>([([([0, u&#39;timeFunction&#39;, ([([u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;pathExpression&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, 0)]})], {&#39;expression&#39;: [(([u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;pathExpression&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, 0)]}), 0)]}), ([u&#39;\\&#39;&quot;The.time.series&quot;\\&#39;&#39;], {&#39;string&#39;: [(u&#39;\\&#39;&quot;The.time.series&quot;\\&#39;&#39;, 0)]}), 108], {&#39;start&#39;: [(0, 0)], &#39;args&#39;: [(([([u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;pathExpression&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, 0)]})], {&#39;expression&#39;: [(([u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;pathExpression&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, 0)]}), 0)]}), 2), (([u&#39;\\&#39;&quot;The.time.series&quot;\\&#39;&#39;], {&#39;string&#39;: [(u&#39;\\&#39;&quot;The.time.series&quot;\\&#39;&#39;, 0)]}), 3)], &#39;end&#39;: [(108, 4)], &#39;funcname&#39;: [(u&#39;timeFunction&#39;, 1)]}), ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;call&#39;: [(([0, u&#39;timeFunction&#39;, ([([u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;pathExpression&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, 0)]})], {&#39;expression&#39;: [(([u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;pathExpression&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, 0)]}), 0)]}), ([u&#39;\\&#39;&quot;The.time.series&quot;\\&#39;&#39;], {&#39;string&#39;: [(u&#39;\\&#39;&quot;The.time.series&quot;\\&#39;&#39;, 0)]}), 108], {&#39;start&#39;: [(0, 0)], &#39;args&#39;: [(([([u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;pathExpression&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, 0)]})], {&#39;expression&#39;: [(([u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;pathExpression&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, 0)]}), 0)]}), 2), (([u&#39;\\&#39;&quot;The.time.series&quot;\\&#39;&#39;], {&#39;string&#39;: [(u&#39;\\&#39;&quot;The.time.series&quot;\\&#39;&#39;, 0)]}), 3)], &#39;end&#39;: [(108, 4)], &#39;funcname&#39;: [(u&#39;timeFunction&#39;, 1)]}), 0)]})], {&#39;expression&#39;: [(([([0, u&#39;timeFunction&#39;, ([([u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;pathExpression&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, 0)]})], {&#39;expression&#39;: [(([u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;pathExpression&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, 0)]}), 0)]}), ([u&#39;\\&#39;&quot;The.time.series&quot;\\&#39;&#39;], {&#39;string&#39;: [(u&#39;\\&#39;&quot;The.time.series&quot;\\&#39;&#39;, 0)]}), 108], {&#39;start&#39;: [(0, 0)], &#39;args&#39;: [(([([u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;pathExpression&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, 0)]})], {&#39;expression&#39;: [(([u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;pathExpression&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, 0)]}), 0)]}), 2), (([u&#39;\\&#39;&quot;The.time.series&quot;\\&#39;&#39;], {&#39;string&#39;: [(u&#39;\\&#39;&quot;The.time.series&quot;\\&#39;&#39;, 0)]}), 3)], &#39;end&#39;: [(108, 4)], &#39;funcname&#39;: [(u&#39;timeFunction&#39;, 1)]}), ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;call&#39;: [(([0, u&#39;timeFunction&#39;, ([([u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;pathExpression&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200... &lt;trimmed 5113 bytes string&gt;</pre></td>\n                  </tr>\n                \n              </tbody>\n            </table>\n          \n        </li>\n      \n        \n        <li class=\"frame user\">\n          <code>/opt/graphite/webapp/graphite/render/evaluator.py</code> in <code>evaluateTokens</code>\n\n          \n            <div class=\"context\" id=\"c140530644020400\">\n              \n                <ol start=\"86\" class=\"pre-context\" id=\"pre140530644020400\">\n                \n                  <li onclick=\"toggle('pre140530644020400', 'post140530644020400')\"><pre>    if pipedArg is not None:</pre></li>\n                \n                  <li onclick=\"toggle('pre140530644020400', 'post140530644020400')\"><pre>      rawArgs.insert(0, pipedArg)</pre></li>\n                \n                  <li onclick=\"toggle('pre140530644020400', 'post140530644020400')\"><pre>    args = [evaluateTokens(requestContext, arg, replacements) for arg in rawArgs]</pre></li>\n                \n                  <li onclick=\"toggle('pre140530644020400', 'post140530644020400')\"><pre>    requestContext[&#39;args&#39;] = rawArgs</pre></li>\n                \n                  <li onclick=\"toggle('pre140530644020400', 'post140530644020400')\"><pre>    kwargs = dict([(kwarg.argname, evaluateTokens(requestContext, kwarg.args[0], replacements))</pre></li>\n                \n                  <li onclick=\"toggle('pre140530644020400', 'post140530644020400')\"><pre>                   for kwarg in tokens.call.kwargs])</pre></li>\n                \n                  <li onclick=\"toggle('pre140530644020400', 'post140530644020400')\"><pre>    try:</pre></li>\n                \n                </ol>\n              \n              <ol start=\"93\" class=\"context-line\">\n                <li onclick=\"toggle('pre140530644020400', 'post140530644020400')\"><pre>\n      return func(requestContext, *args, **kwargs)</pre> <span>...</span></li></ol>\n              \n                <ol start='94' class=\"post-context\" id=\"post140530644020400\">\n                  \n                  <li onclick=\"toggle('pre140530644020400', 'post140530644020400')\"><pre>    except NormalizeEmptyResultError:</pre></li>\n                  \n                  <li onclick=\"toggle('pre140530644020400', 'post140530644020400')\"><pre>      return []</pre></li>\n                  \n                  <li onclick=\"toggle('pre140530644020400', 'post140530644020400')\"><pre></pre></li>\n                  \n                  <li onclick=\"toggle('pre140530644020400', 'post140530644020400')\"><pre>  return evaluateScalarTokens(tokens)</pre></li>\n                  \n                  <li onclick=\"toggle('pre140530644020400', 'post140530644020400')\"><pre></pre></li>\n                  \n                  <li onclick=\"toggle('pre140530644020400', 'post140530644020400')\"><pre></pre></li>\n                  \n              </ol>\n              \n            </div>\n          \n\n          \n            <div class=\"commands\">\n                \n                    <a href=\"#\" onclick=\"return varToggle(this, '140530644020400')\"><span>&#x25b6;</span> Local vars</a>\n                \n            </div>\n            <table class=\"vars\" id=\"v140530644020400\">\n              <thead>\n                <tr>\n                  <th>Variable</th>\n                  <th>Value</th>\n                </tr>\n              </thead>\n              <tbody>\n                \n                  <tr>\n                    <td>arg</td>\n                    <td class=\"code\"><pre>([u&#39;\\&#39;&quot;The.time.series&quot;\\&#39;&#39;], {&#39;string&#39;: [(u&#39;\\&#39;&quot;The.time.series&quot;\\&#39;&#39;, 0)]})</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>args</td>\n                    <td class=\"code\"><pre>[[TimeSeries(name=stats.sets.stats.kamailio.marek.customer.LEGOS.registration.51cc3fa2-992430fc10.141.0.19.200.count, start=1545554640, end=1545641040, step=60, valuesPerPoint=1, consolidationFunc=average, xFilesFactor=0.0),\n  TimeSeries(name=stats.sets.stats.kamailio.marek.customer.LEGOS.registration.6297b5a5-e9e1fb4310.141.0.9.200.count, start=1545554640, end=1545641040, step=60, valuesPerPoint=1, consolidationFunc=average, xFilesFactor=0.0),\n  TimeSeries(name=stats.sets.stats.kamailio.marek.customer.LEGOS.registration.663c7873-17c866cd10.141.0.9.200.count, start=1545554640, end=1545641040, step=60, valuesPerPoint=1, consolidationFunc=average, xFilesFactor=0.0),\n  TimeSeries(name=stats.sets.stats.kamailio.marek.customer.LEGOS.registration.86bd53d4-2049da7210.141.0.19.200.count, start=1545554640, end=1545641040, step=60, valuesPerPoint=1, consolidationFunc=average, xFilesFactor=0.0),\n  TimeSeries(name=stats.sets.stats.kamailio.marek.customer.LEGOS.registration.8cb892ba-b58238c410.141.0.19.200.count, start=1545554640, end=1545641040, step=60, valuesPerPoint=1, consolidationFunc=average, xFilesFactor=0.0),\n  TimeSeries(name=stats.sets.stats.kamailio.marek.customer.NOMOTECH.registration.909eed5e-c02cf6ca10.141.0.5.200.count, start=1545554640, end=1545641040, step=60, valuesPerPoint=1, consolidationFunc=average, xFilesFactor=0.0),\n  TimeSeries(name=stats.sets.stats.kamailio.marek.customer.TUTOR.registration.775b949a-74f818be10.141.0.5.200.count, start=1545554640, end=1545641040, step=60, valuesPerPoint=1, consolidationFunc=average, xFilesFactor=0.0),\n  TimeSeries(name=stats.sets.stats.kamailio.marek.customer.VIALIS.registration.00022356-9DFC-E811-8AD6-61C77B1F482D192.168.56.25.200.count, start=1545554640, end=1545641040, step=60, valuesPerPoint=1, consolidationFunc=average, xFilesFactor=0.0),\n  TimeSeries(name=stats.sets.stats.kamailio.marek.customer.VIALIS.registration.0010DD94-1401-E911-977F-294F3246EEF8192.168.56.59.200.count, start=1545554640, end=1545641040, step=60, valuesPerPoint=1, consolidationFunc=average, xFilesFactor=0.0),\n  TimeSeries(name=stats.sets.stats.kamailio.marek.customer.VIALIS.registration.002ACC58-92FC-E811-8AB6-61C77B1F482D192.168.56.25.200.count, start=1545554640, end=1545641040, step=60, valuesPerPoint=1, consolidationFunc=average, xFilesFactor=0.0),\n  TimeSeries(name=stats.sets.stats.kamailio.marek.customer.VIALIS.registration.006A3F97-1401-E911-979F-294F3246EEF8192.168.56.59.200.count, start=1545554640, end=1545641040, step=60, valuesPerPoint=1, consolidationFunc=average, xFilesFactor=0.0),\n  TimeSeries(name=stats.sets.stats.kamailio.marek.customer.VIALIS.registration.00781A63-1901-E911-97DA-294F3246EEF8192.168.56.59.200.count, start=1545554640, end=1545641040, step=60, valuesPerPoint=1, consolidationFunc=average, xFilesFactor=0.0),\n  TimeSeries(name=stats.sets.stats.kamailio.marek.customer.VIALIS.registration.0087D424-2001-E911-97FE-294F3246EEF8192.168.56.59.200.count, start=1545554640, end=1545641040, step=60, valuesPerPoint=1, consolidationFunc=average, xFilesFactor=0.0),\n  TimeSeries(name=stats.sets.stats.kamailio.marek.customer.VIALIS.registration.00894991-1401-E911-974F-294F3246EEF8192.168.56.59.200.count, start=1545554640, end=1545641040, step=60, valuesPerPoint=1, consolidationFunc=average, xFilesFactor=0.0),\n  TimeSeries(name=stats.sets.stats.kamailio.marek.customer.VIALIS.registration.00977098-1401-E911-97AF-294F3246EEF8192.168.56.59.200.count, start=1545554640, end=1545641040, step=60, valuesPerPoint=1, consolidationFunc=average, xFilesFactor=0.0),\n  TimeSeries(name=stats.sets.stats.kamailio.marek.customer.VIALIS.registration.009AD221-1201-E911-972C-294F3246EEF8192.168.56.59.200.count, start=1545554640, end=1545641040, step=60, valuesPerPoint=1, consolidationFunc=average, xFilesFactor=0.0),\n  TimeSeries(name=stats.sets.stats.kamailio.marek.customer.VIALIS.registration.00B67A92-1401-E911-975F-294F3246EEF8192.168.56.59.200.count, start=1545554640, end=1545641040, step=60, valuesPerPoint=1, consolidationFunc=average, xFilesFactor=0.0),\n  TimeSeries(name=stats.sets.stats.kamailio.marek.cu... &lt;trimmed 7503 bytes string&gt;</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>func</td>\n                    <td class=\"code\"><pre>&lt;function timeFunction at 0x7fcfd4304de8&gt;</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>kwargs</td>\n                    <td class=\"code\"><pre>{}</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>pipedArg</td>\n                    <td class=\"code\"><pre>None</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>rawArgs</td>\n                    <td class=\"code\"><pre>([([([u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;pathExpression&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, 0)]})], {&#39;expression&#39;: [(([u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;pathExpression&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, 0)]}), 0)]}), ([u&#39;\\&#39;&quot;The.time.series&quot;\\&#39;&#39;], {&#39;string&#39;: [(u&#39;\\&#39;&quot;The.time.series&quot;\\&#39;&#39;, 0)]})], {})</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>replacements</td>\n                    <td class=\"code\"><pre>None</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>requestContext</td>\n                    <td class=\"code\"><pre>{&#39;args&#39;: ([([([u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;pathExpression&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, 0)]})], {&#39;expression&#39;: [(([u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;pathExpression&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, 0)]}), 0)]}), ([u&#39;\\&#39;&quot;The.time.series&quot;\\&#39;&#39;], {&#39;string&#39;: [(u&#39;\\&#39;&quot;The.time.series&quot;\\&#39;&#39;, 0)]})], {}),\n &#39;data&#39;: [],\n &#39;endTime&#39;: datetime.datetime(2018, 12, 24, 9, 43, 29, 671663, tzinfo=&lt;DstTzInfo &#39;Europe/Paris&#39; CET+1:00:00 STD&gt;),\n &#39;forwardHeaders&#39;: {},\n &#39;localOnly&#39;: False,\n &#39;now&#39;: datetime.datetime(2018, 12, 24, 9, 43, 29, 671663, tzinfo=&lt;DstTzInfo &#39;Europe/Paris&#39; CET+1:00:00 STD&gt;),\n &#39;prefetched&#39;: {(1545554609, 1545641009, 1545641009): defaultdict(&lt;type &#39;list&#39;&gt;, {u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.TUTOR.registration.775b949a-74f818be10.141.0.5.200.count&#39;, ((1545554640, 1545641040, 60), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.... &lt;trimmed 464867 bytes string&gt;</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>tokens</td>\n                    <td class=\"code\"><pre>([([0, u&#39;timeFunction&#39;, ([([u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;pathExpression&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, 0)]})], {&#39;expression&#39;: [(([u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;pathExpression&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, 0)]}), 0)]}), ([u&#39;\\&#39;&quot;The.time.series&quot;\\&#39;&#39;], {&#39;string&#39;: [(u&#39;\\&#39;&quot;The.time.series&quot;\\&#39;&#39;, 0)]}), 108], {&#39;start&#39;: [(0, 0)], &#39;args&#39;: [(([([u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;pathExpression&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, 0)]})], {&#39;expression&#39;: [(([u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;pathExpression&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, 0)]}), 0)]}), 2), (([u&#39;\\&#39;&quot;The.time.series&quot;\\&#39;&#39;], {&#39;string&#39;: [(u&#39;\\&#39;&quot;The.time.series&quot;\\&#39;&#39;, 0)]}), 3)], &#39;end&#39;: [(108, 4)], &#39;funcname&#39;: [(u&#39;timeFunction&#39;, 1)]}), ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;call&#39;: [(([0, u&#39;timeFunction&#39;, ([([u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;pathExpression&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, 0)]})], {&#39;expression&#39;: [(([u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;pathExpression&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, 0)]}), 0)]}), ([u&#39;\\&#39;&quot;The.time.series&quot;\\&#39;&#39;], {&#39;string&#39;: [(u&#39;\\&#39;&quot;The.time.series&quot;\\&#39;&#39;, 0)]}), 108], {&#39;start&#39;: [(0, 0)], &#39;args&#39;: [(([([u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;pathExpression&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, 0)]})], {&#39;expression&#39;: [(([u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;pathExpression&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, 0)]}), 0)]}), 2), (([u&#39;\\&#39;&quot;The.time.series&quot;\\&#39;&#39;], {&#39;string&#39;: [(u&#39;\\&#39;&quot;The.time.series&quot;\\&#39;&#39;, 0)]}), 3)], &#39;end&#39;: [(108, 4)], &#39;funcname&#39;: [(u&#39;timeFunction&#39;, 1)]}), 0)]})</pre></td>\n                  </tr>\n                \n              </tbody>\n            </table>\n          \n        </li>\n      \n        \n        <li class=\"frame user\">\n          <code>/opt/graphite/webapp/graphite/render/functions.py</code> in <code>timeFunction</code>\n\n          \n            <div class=\"context\" id=\"c140530644019752\">\n              \n                <ol start=\"5203\" class=\"pre-context\" id=\"pre140530644019752\">\n                \n                  <li onclick=\"toggle('pre140530644019752', 'post140530644019752')\"><pre></pre></li>\n                \n                  <li onclick=\"toggle('pre140530644019752', 'post140530644019752')\"><pre>  This would create a series named &quot;The.time.series&quot; that contains in Y the same</pre></li>\n                \n                  <li onclick=\"toggle('pre140530644019752', 'post140530644019752')\"><pre>  value (in seconds) as X.</pre></li>\n                \n                  <li onclick=\"toggle('pre140530644019752', 'post140530644019752')\"><pre>  Accepts optional second argument as &#39;step&#39; parameter (default step is 60 sec)</pre></li>\n                \n                  <li onclick=\"toggle('pre140530644019752', 'post140530644019752')\"><pre></pre></li>\n                \n                  <li onclick=\"toggle('pre140530644019752', 'post140530644019752')\"><pre>  &quot;&quot;&quot;</pre></li>\n                \n                  <li onclick=\"toggle('pre140530644019752', 'post140530644019752')\"><pre>  # TODO: align both startTime and endTime when creating the TimeSeries.</pre></li>\n                \n                </ol>\n              \n              <ol start=\"5210\" class=\"context-line\">\n                <li onclick=\"toggle('pre140530644019752', 'post140530644019752')\"><pre>\n  delta = timedelta(seconds=step)</pre> <span>...</span></li></ol>\n              \n                <ol start='5211' class=\"post-context\" id=\"post140530644019752\">\n                  \n                  <li onclick=\"toggle('pre140530644019752', 'post140530644019752')\"><pre>  when = requestContext[&quot;startTime&quot;]</pre></li>\n                  \n                  <li onclick=\"toggle('pre140530644019752', 'post140530644019752')\"><pre>  values = []</pre></li>\n                  \n                  <li onclick=\"toggle('pre140530644019752', 'post140530644019752')\"><pre></pre></li>\n                  \n                  <li onclick=\"toggle('pre140530644019752', 'post140530644019752')\"><pre>  while when &lt; requestContext[&quot;endTime&quot;]:</pre></li>\n                  \n                  <li onclick=\"toggle('pre140530644019752', 'post140530644019752')\"><pre>    values.append(time.mktime(when.timetuple()))</pre></li>\n                  \n                  <li onclick=\"toggle('pre140530644019752', 'post140530644019752')\"><pre>    when += delta</pre></li>\n                  \n              </ol>\n              \n            </div>\n          \n\n          \n            <div class=\"commands\">\n                \n                    <a href=\"#\" onclick=\"return varToggle(this, '140530644019752')\"><span>&#x25b6;</span> Local vars</a>\n                \n            </div>\n            <table class=\"vars\" id=\"v140530644019752\">\n              <thead>\n                <tr>\n                  <th>Variable</th>\n                  <th>Value</th>\n                </tr>\n              </thead>\n              <tbody>\n                \n                  <tr>\n                    <td>name</td>\n                    <td class=\"code\"><pre>[TimeSeries(name=stats.sets.stats.kamailio.marek.customer.LEGOS.registration.51cc3fa2-992430fc10.141.0.19.200.count, start=1545554640, end=1545641040, step=60, valuesPerPoint=1, consolidationFunc=average, xFilesFactor=0.0),\n TimeSeries(name=stats.sets.stats.kamailio.marek.customer.LEGOS.registration.6297b5a5-e9e1fb4310.141.0.9.200.count, start=1545554640, end=1545641040, step=60, valuesPerPoint=1, consolidationFunc=average, xFilesFactor=0.0),\n TimeSeries(name=stats.sets.stats.kamailio.marek.customer.LEGOS.registration.663c7873-17c866cd10.141.0.9.200.count, start=1545554640, end=1545641040, step=60, valuesPerPoint=1, consolidationFunc=average, xFilesFactor=0.0),\n TimeSeries(name=stats.sets.stats.kamailio.marek.customer.LEGOS.registration.86bd53d4-2049da7210.141.0.19.200.count, start=1545554640, end=1545641040, step=60, valuesPerPoint=1, consolidationFunc=average, xFilesFactor=0.0),\n TimeSeries(name=stats.sets.stats.kamailio.marek.customer.LEGOS.registration.8cb892ba-b58238c410.141.0.19.200.count, start=1545554640, end=1545641040, step=60, valuesPerPoint=1, consolidationFunc=average, xFilesFactor=0.0),\n TimeSeries(name=stats.sets.stats.kamailio.marek.customer.NOMOTECH.registration.909eed5e-c02cf6ca10.141.0.5.200.count, start=1545554640, end=1545641040, step=60, valuesPerPoint=1, consolidationFunc=average, xFilesFactor=0.0),\n TimeSeries(name=stats.sets.stats.kamailio.marek.customer.TUTOR.registration.775b949a-74f818be10.141.0.5.200.count, start=1545554640, end=1545641040, step=60, valuesPerPoint=1, consolidationFunc=average, xFilesFactor=0.0),\n TimeSeries(name=stats.sets.stats.kamailio.marek.customer.VIALIS.registration.00022356-9DFC-E811-8AD6-61C77B1F482D192.168.56.25.200.count, start=1545554640, end=1545641040, step=60, valuesPerPoint=1, consolidationFunc=average, xFilesFactor=0.0),\n TimeSeries(name=stats.sets.stats.kamailio.marek.customer.VIALIS.registration.0010DD94-1401-E911-977F-294F3246EEF8192.168.56.59.200.count, start=1545554640, end=1545641040, step=60, valuesPerPoint=1, consolidationFunc=average, xFilesFactor=0.0),\n TimeSeries(name=stats.sets.stats.kamailio.marek.customer.VIALIS.registration.002ACC58-92FC-E811-8AB6-61C77B1F482D192.168.56.25.200.count, start=1545554640, end=1545641040, step=60, valuesPerPoint=1, consolidationFunc=average, xFilesFactor=0.0),\n TimeSeries(name=stats.sets.stats.kamailio.marek.customer.VIALIS.registration.006A3F97-1401-E911-979F-294F3246EEF8192.168.56.59.200.count, start=1545554640, end=1545641040, step=60, valuesPerPoint=1, consolidationFunc=average, xFilesFactor=0.0),\n TimeSeries(name=stats.sets.stats.kamailio.marek.customer.VIALIS.registration.00781A63-1901-E911-97DA-294F3246EEF8192.168.56.59.200.count, start=1545554640, end=1545641040, step=60, valuesPerPoint=1, consolidationFunc=average, xFilesFactor=0.0),\n TimeSeries(name=stats.sets.stats.kamailio.marek.customer.VIALIS.registration.0087D424-2001-E911-97FE-294F3246EEF8192.168.56.59.200.count, start=1545554640, end=1545641040, step=60, valuesPerPoint=1, consolidationFunc=average, xFilesFactor=0.0),\n TimeSeries(name=stats.sets.stats.kamailio.marek.customer.VIALIS.registration.00894991-1401-E911-974F-294F3246EEF8192.168.56.59.200.count, start=1545554640, end=1545641040, step=60, valuesPerPoint=1, consolidationFunc=average, xFilesFactor=0.0),\n TimeSeries(name=stats.sets.stats.kamailio.marek.customer.VIALIS.registration.00977098-1401-E911-97AF-294F3246EEF8192.168.56.59.200.count, start=1545554640, end=1545641040, step=60, valuesPerPoint=1, consolidationFunc=average, xFilesFactor=0.0),\n TimeSeries(name=stats.sets.stats.kamailio.marek.customer.VIALIS.registration.009AD221-1201-E911-972C-294F3246EEF8192.168.56.59.200.count, start=1545554640, end=1545641040, step=60, valuesPerPoint=1, consolidationFunc=average, xFilesFactor=0.0),\n TimeSeries(name=stats.sets.stats.kamailio.marek.customer.VIALIS.registration.00B67A92-1401-E911-975F-294F3246EEF8192.168.56.59.200.count, start=1545554640, end=1545641040, step=60, valuesPerPoint=1, consolidationFunc=average, xFilesFactor=0.0),\n TimeSeries(name=stats.sets.stats.kamailio.marek.customer.VIALIS.regi... &lt;trimmed 7448 bytes string&gt;</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>requestContext</td>\n                    <td class=\"code\"><pre>{&#39;args&#39;: ([([([u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;pathExpression&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, 0)]})], {&#39;expression&#39;: [(([u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, ([], {})], {&#39;pipedCalls&#39;: [(([], {}), 1)], &#39;pathExpression&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;, 0)]}), 0)]}), ([u&#39;\\&#39;&quot;The.time.series&quot;\\&#39;&#39;], {&#39;string&#39;: [(u&#39;\\&#39;&quot;The.time.series&quot;\\&#39;&#39;, 0)]})], {}),\n &#39;data&#39;: [],\n &#39;endTime&#39;: datetime.datetime(2018, 12, 24, 9, 43, 29, 671663, tzinfo=&lt;DstTzInfo &#39;Europe/Paris&#39; CET+1:00:00 STD&gt;),\n &#39;forwardHeaders&#39;: {},\n &#39;localOnly&#39;: False,\n &#39;now&#39;: datetime.datetime(2018, 12, 24, 9, 43, 29, 671663, tzinfo=&lt;DstTzInfo &#39;Europe/Paris&#39; CET+1:00:00 STD&gt;),\n &#39;prefetched&#39;: {(1545554609, 1545641009, 1545641009): defaultdict(&lt;type &#39;list&#39;&gt;, {u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.200.count&#39;: [(u&#39;stats.sets.stats.kamailio.marek.customer.TUTOR.registration.775b949a-74f818be10.141.0.5.200.count&#39;, ((1545554640, 1545641040, 60), [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.... &lt;trimmed 464867 bytes string&gt;</pre></td>\n                  </tr>\n                \n                  <tr>\n                    <td>step</td>\n                    <td class=\"code\"><pre>u&#39;&quot;The.time.series&quot;&#39;</pre></td>\n                  </tr>\n                \n              </tbody>\n            </table>\n          \n        </li>\n      \n    </ul>\n  </div>\n  <form action=\"http://dpaste.com/\" name=\"pasteform\" id=\"pasteform\" method=\"post\">\n\n  <div id=\"pastebinTraceback\" class=\"pastebin\">\n    <input type=\"hidden\" name=\"language\" value=\"PythonConsole\">\n    <input type=\"hidden\" name=\"title\"\n      value=\"TypeError at /render\">\n    <input type=\"hidden\" name=\"source\" value=\"Django Dpaste Agent\">\n    <input type=\"hidden\" name=\"poster\" value=\"Django\">\n    <textarea name=\"content\" id=\"traceback_area\" cols=\"140\" rows=\"25\">\nEnvironment:\n\n\nRequest Method: POST\nRequest URL: http://localhost:81/render\n\nDjango Version: 1.11.16\nPython Version: 2.7.5\nInstalled Applications:\n(&#39;graphite.account&#39;,\n &#39;graphite.browser&#39;,\n &#39;graphite.composer&#39;,\n &#39;graphite.dashboard&#39;,\n &#39;graphite.events&#39;,\n &#39;graphite.functions&#39;,\n &#39;graphite.metrics&#39;,\n &#39;graphite.render&#39;,\n &#39;graphite.tags&#39;,\n &#39;graphite.url_shortener&#39;,\n &#39;graphite.whitelist&#39;,\n &#39;django.contrib.auth&#39;,\n &#39;django.contrib.sessions&#39;,\n &#39;django.contrib.admin&#39;,\n &#39;django.contrib.contenttypes&#39;,\n &#39;django.contrib.staticfiles&#39;,\n &#39;tagging&#39;)\nInstalled Middleware:\n(&#39;graphite.middleware.LogExceptionsMiddleware&#39;,\n &#39;django.middleware.common.CommonMiddleware&#39;,\n &#39;django.middleware.gzip.GZipMiddleware&#39;,\n &#39;django.contrib.sessions.middleware.SessionMiddleware&#39;,\n &#39;django.contrib.auth.middleware.AuthenticationMiddleware&#39;,\n &#39;django.contrib.messages.middleware.MessageMiddleware&#39;,\n &#39;whitenoise.middleware.WhiteNoiseMiddleware&#39;)\n\n\n\nTraceback:\n\nFile \"/usr/lib64/python2.7/site-packages/django/core/handlers/exception.py\" in inner\n  41.             response = get_response(request)\n\nFile \"/usr/lib64/python2.7/site-packages/django/core/handlers/base.py\" in _get_response\n  187.                 response = self.process_exception_by_middleware(e, request)\n\nFile \"/usr/lib64/python2.7/site-packages/django/core/handlers/base.py\" in _get_response\n  185.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)\n\nFile \"/opt/graphite/webapp/graphite/render/views.py\" in renderView\n  118.       data.extend(evaluateTarget(requestContext, targets))\n\nFile \"/opt/graphite/webapp/graphite/render/evaluator.py\" in evaluateTarget\n  28.     result = evaluateTokens(requestContext, target)\n\nFile \"/opt/graphite/webapp/graphite/render/evaluator.py\" in evaluateTokens\n  57.     return evaluateTokens(requestContext, tokens.expression, replacements)\n\nFile \"/opt/graphite/webapp/graphite/render/evaluator.py\" in evaluateTokens\n  93.       return func(requestContext, *args, **kwargs)\n\nFile \"/opt/graphite/webapp/graphite/render/functions.py\" in timeFunction\n  5210.   delta = timedelta(seconds=step)\n\nException Type: TypeError at /render\nException Value: unsupported type for timedelta seconds component: unicode\n</textarea>\n  <br><br>\n  <input type=\"submit\" value=\"Share this traceback on a public website\">\n  </div>\n</form>\n</div>\n\n\n\n<div id=\"requestinfo\">\n  <h2>Request information</h2>\n\n\n  \n    <h3 id=\"user-info\">USER</h3>\n    <p>AnonymousUser</p>\n  \n\n  <h3 id=\"get-info\">GET</h3>\n  \n    <p>No GET data</p>\n  \n\n  <h3 id=\"post-info\">POST</h3>\n  \n    <table class=\"req\">\n      <thead>\n        <tr>\n          <th>Variable</th>\n          <th>Value</th>\n        </tr>\n      </thead>\n      <tbody>\n        \n          <tr>\n            <td>format</td>\n            <td class=\"code\"><pre>u&#39;json&#39;</pre></td>\n          </tr>\n        \n          <tr>\n            <td>from</td>\n            <td class=\"code\"><pre>u&#39;-24h&#39;</pre></td>\n          </tr>\n        \n          <tr>\n            <td>target</td>\n            <td class=\"code\"><pre>u&#39;stats.sets.stats.kamailio.marek.customer.*.registration.*.*.*.*.REGISTER.count&#39;</pre></td>\n          </tr>\n        \n          <tr>\n            <td>maxDataPoints</td>\n            <td class=\"code\"><pre>u&#39;960&#39;</pre></td>\n          </tr>\n        \n          <tr>\n            <td>until</td>\n            <td class=\"code\"><pre>u&#39;now&#39;</pre></td>\n          </tr>\n        \n      </tbody>\n    </table>\n  \n  <h3 id=\"files-info\">FILES</h3>\n  \n    <p>No FILES data</p>\n  \n\n\n  <h3 id=\"cookie-info\">COOKIES</h3>\n  \n    <p>No cookie data</p>\n  \n\n  <h3 id=\"meta-info\">META</h3>\n  <table class=\"req\">\n    <thead>\n      <tr>\n        <th>Variable</th>\n        <th>Value</th>\n      </tr>\n    </thead>\n    <tbody>\n      \n        <tr>\n          <td>CONTENT_LENGTH</td>\n          <td class=\"code\"><pre>&#39;259&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>CONTENT_TYPE</td>\n          <td class=\"code\"><pre>&#39;application/x-www-form-urlencoded&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>CONTEXT_DOCUMENT_ROOT</td>\n          <td class=\"code\"><pre>&#39;/opt/graphite/webapp&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>CONTEXT_PREFIX</td>\n          <td class=\"code\"><pre>&#39;&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>DOCUMENT_ROOT</td>\n          <td class=\"code\"><pre>&#39;/opt/graphite/webapp&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>GATEWAY_INTERFACE</td>\n          <td class=\"code\"><pre>&#39;CGI/1.1&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>HTTP_ACCEPT</td>\n          <td class=\"code\"><pre>&#39;application/json, text/plain, */*&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>HTTP_ACCEPT_ENCODING</td>\n          <td class=\"code\"><pre>&#39;gzip, deflate, br&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>HTTP_ACCEPT_LANGUAGE</td>\n          <td class=\"code\"><pre>&#39;fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>HTTP_HOST</td>\n          <td class=\"code\"><pre>&#39;localhost:81&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>HTTP_USER_AGENT</td>\n          <td class=\"code\"><pre>&#39;Grafana/5.4.2&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>HTTP_X_DASHBOARD_ID</td>\n          <td class=\"code\"><pre>&#39;2&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>HTTP_X_FORWARDED_FOR</td>\n          <td class=\"code\"><pre>&#39;10.141.0.40, 10.141.0.40&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>HTTP_X_GRAFANA_ORG_ID</td>\n          <td class=\"code\"><pre>&#39;1&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>HTTP_X_PANEL_ID</td>\n          <td class=\"code\"><pre>&#39;8&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>PATH_INFO</td>\n          <td class=\"code\"><pre>u&#39;/render&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>PATH_TRANSLATED</td>\n          <td class=\"code\"><pre>&#39;/opt/graphite/conf/graphite.wsgi/render&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>QUERY_STRING</td>\n          <td class=\"code\"><pre>&#39;&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>REMOTE_ADDR</td>\n          <td class=\"code\"><pre>&#39;::1&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>REMOTE_PORT</td>\n          <td class=\"code\"><pre>&#39;43938&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>REQUEST_METHOD</td>\n          <td class=\"code\"><pre>&#39;POST&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>REQUEST_SCHEME</td>\n          <td class=\"code\"><pre>&#39;http&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>REQUEST_URI</td>\n          <td class=\"code\"><pre>&#39;/render&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>SCRIPT_FILENAME</td>\n          <td class=\"code\"><pre>&#39;/opt/graphite/conf/graphite.wsgi&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>SCRIPT_NAME</td>\n          <td class=\"code\"><pre>u&#39;&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>SERVER_ADDR</td>\n          <td class=\"code\"><pre>&#39;::1&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>SERVER_ADMIN</td>\n          <td class=\"code\"><pre>&#39;root@localhost&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>SERVER_NAME</td>\n          <td class=\"code\"><pre>&#39;localhost&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>SERVER_PORT</td>\n          <td class=\"code\"><pre>&#39;81&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>SERVER_PROTOCOL</td>\n          <td class=\"code\"><pre>&#39;HTTP/1.1&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>SERVER_SIGNATURE</td>\n          <td class=\"code\"><pre>&#39;&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>SERVER_SOFTWARE</td>\n          <td class=\"code\"><pre>&#39;Apache/2.4.6 (Red Hat Enterprise Linux) PHP/5.4.16 mod_wsgi/3.4 Python/2.7.5&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>UNIQUE_ID</td>\n          <td class=\"code\"><pre>&#39;XCCcMRHQdbgmbW3TAHor7wAAAAA&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>mod_wsgi.application_group</td>\n          <td class=\"code\"><pre>&#39;&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>mod_wsgi.callable_object</td>\n          <td class=\"code\"><pre>&#39;application&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>mod_wsgi.enable_sendfile</td>\n          <td class=\"code\"><pre>&#39;0&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>mod_wsgi.handler_script</td>\n          <td class=\"code\"><pre>&#39;&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>mod_wsgi.input_chunked</td>\n          <td class=\"code\"><pre>&#39;0&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>mod_wsgi.listener_host</td>\n          <td class=\"code\"><pre>&#39;&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>mod_wsgi.listener_port</td>\n          <td class=\"code\"><pre>&#39;81&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>mod_wsgi.process_group</td>\n          <td class=\"code\"><pre>&#39;graphite&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>mod_wsgi.queue_start</td>\n          <td class=\"code\"><pre>&#39;1545641009669303&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>mod_wsgi.request_handler</td>\n          <td class=\"code\"><pre>&#39;wsgi-script&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>mod_wsgi.script_reloading</td>\n          <td class=\"code\"><pre>&#39;1&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>mod_wsgi.version</td>\n          <td class=\"code\"><pre>(3, 4)</pre></td>\n        </tr>\n      \n        <tr>\n          <td>wsgi.errors</td>\n          <td class=\"code\"><pre>&lt;mod_wsgi.Log object at 0x7fcfcdfbb330&gt;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>wsgi.file_wrapper</td>\n          <td class=\"code\"><pre>&#39;&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>wsgi.input</td>\n          <td class=\"code\"><pre>&lt;mod_wsgi.Input object at 0x7fcfcdfbb170&gt;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>wsgi.multiprocess</td>\n          <td class=\"code\"><pre>True</pre></td>\n        </tr>\n      \n        <tr>\n          <td>wsgi.multithread</td>\n          <td class=\"code\"><pre>True</pre></td>\n        </tr>\n      \n        <tr>\n          <td>wsgi.run_once</td>\n          <td class=\"code\"><pre>False</pre></td>\n        </tr>\n      \n        <tr>\n          <td>wsgi.url_scheme</td>\n          <td class=\"code\"><pre>&#39;http&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>wsgi.version</td>\n          <td class=\"code\"><pre>(1, 0)</pre></td>\n        </tr>\n      \n    </tbody>\n  </table>\n\n\n  <h3 id=\"settings-info\">Settings</h3>\n  <h4>Using settings module <code>graphite.local_settings</code></h4>\n  <table class=\"req\">\n    <thead>\n      <tr>\n        <th>Setting</th>\n        <th>Value</th>\n      </tr>\n    </thead>\n    <tbody>\n      \n        <tr>\n          <td>ABSOLUTE_URL_OVERRIDES</td>\n          <td class=\"code\"><pre>{}</pre></td>\n        </tr>\n      \n        <tr>\n          <td>ADMINS</td>\n          <td class=\"code\"><pre>[]</pre></td>\n        </tr>\n      \n        <tr>\n          <td>ALLOWED_HOSTS</td>\n          <td class=\"code\"><pre>[&#39;*&#39;]</pre></td>\n        </tr>\n      \n        <tr>\n          <td>ALLOW_ANONYMOUS_CLI</td>\n          <td class=\"code\"><pre>True</pre></td>\n        </tr>\n      \n        <tr>\n          <td>APPEND_SLASH</td>\n          <td class=\"code\"><pre>False</pre></td>\n        </tr>\n      \n        <tr>\n          <td>AUTHENTICATION_BACKENDS</td>\n          <td class=\"code\"><pre>[&#39;django.contrib.auth.backends.ModelBackend&#39;]</pre></td>\n        </tr>\n      \n        <tr>\n          <td>AUTH_PASSWORD_VALIDATORS</td>\n          <td class=\"code\"><pre>u&#39;********************&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>AUTH_USER_MODEL</td>\n          <td class=\"code\"><pre>u&#39;auth.User&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>AUTO_REFRESH_INTERVAL</td>\n          <td class=\"code\"><pre>60</pre></td>\n        </tr>\n      \n        <tr>\n          <td>CACHES</td>\n          <td class=\"code\"><pre>{&#39;default&#39;: {&#39;BACKEND&#39;: &#39;django.core.cache.backends.dummy.DummyCache&#39;}}</pre></td>\n        </tr>\n      \n        <tr>\n          <td>CACHE_MIDDLEWARE_ALIAS</td>\n          <td class=\"code\"><pre>u&#39;default&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>CACHE_MIDDLEWARE_KEY_PREFIX</td>\n          <td class=\"code\"><pre>u&#39;********************&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>CACHE_MIDDLEWARE_SECONDS</td>\n          <td class=\"code\"><pre>600</pre></td>\n        </tr>\n      \n        <tr>\n          <td>CARBONLINK_HASHING_KEYFUNC</td>\n          <td class=\"code\"><pre>u&#39;********************&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>CARBONLINK_HASHING_TYPE</td>\n          <td class=\"code\"><pre>&#39;carbon_ch&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>CARBONLINK_HOSTS</td>\n          <td class=\"code\"><pre>[&#39;127.0.0.1:7002&#39;]</pre></td>\n        </tr>\n      \n        <tr>\n          <td>CARBONLINK_RETRY_DELAY</td>\n          <td class=\"code\"><pre>15</pre></td>\n        </tr>\n      \n        <tr>\n          <td>CARBONLINK_TIMEOUT</td>\n          <td class=\"code\"><pre>1.0</pre></td>\n        </tr>\n      \n        <tr>\n          <td>CARBON_METRIC_PREFIX</td>\n          <td class=\"code\"><pre>&#39;carbon&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>CERES_DIR</td>\n          <td class=\"code\"><pre>&#39;/opt/graphite/storage/ceres/&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>CLUSTER_SERVERS</td>\n          <td class=\"code\"><pre>[]</pre></td>\n        </tr>\n      \n        <tr>\n          <td>CONF_DIR</td>\n          <td class=\"code\"><pre>&#39;/opt/graphite/conf&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>CSRF_COOKIE_AGE</td>\n          <td class=\"code\"><pre>31449600</pre></td>\n        </tr>\n      \n        <tr>\n          <td>CSRF_COOKIE_DOMAIN</td>\n          <td class=\"code\"><pre>None</pre></td>\n        </tr>\n      \n        <tr>\n          <td>CSRF_COOKIE_HTTPONLY</td>\n          <td class=\"code\"><pre>False</pre></td>\n        </tr>\n      \n        <tr>\n          <td>CSRF_COOKIE_NAME</td>\n          <td class=\"code\"><pre>u&#39;csrftoken&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>CSRF_COOKIE_PATH</td>\n          <td class=\"code\"><pre>u&#39;/&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>CSRF_COOKIE_SECURE</td>\n          <td class=\"code\"><pre>False</pre></td>\n        </tr>\n      \n        <tr>\n          <td>CSRF_FAILURE_VIEW</td>\n          <td class=\"code\"><pre>u&#39;django.views.csrf.csrf_failure&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>CSRF_HEADER_NAME</td>\n          <td class=\"code\"><pre>u&#39;HTTP_X_CSRFTOKEN&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>CSRF_TRUSTED_ORIGINS</td>\n          <td class=\"code\"><pre>[]</pre></td>\n        </tr>\n      \n        <tr>\n          <td>CSRF_USE_SESSIONS</td>\n          <td class=\"code\"><pre>False</pre></td>\n        </tr>\n      \n        <tr>\n          <td>DASHBOARD_CONF</td>\n          <td class=\"code\"><pre>&#39;/opt/graphite/conf/dashboard.conf&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>DASHBOARD_REQUIRE_AUTHENTICATION</td>\n          <td class=\"code\"><pre>False</pre></td>\n        </tr>\n      \n        <tr>\n          <td>DASHBOARD_REQUIRE_EDIT_GROUP</td>\n          <td class=\"code\"><pre>None</pre></td>\n        </tr>\n      \n        <tr>\n          <td>DASHBOARD_REQUIRE_PERMISSIONS</td>\n          <td class=\"code\"><pre>False</pre></td>\n        </tr>\n      \n        <tr>\n          <td>DATABASES</td>\n          <td class=\"code\"><pre>{&#39;default&#39;: {&#39;ATOMIC_REQUESTS&#39;: False,\n             &#39;AUTOCOMMIT&#39;: True,\n             &#39;CONN_MAX_AGE&#39;: 0,\n             &#39;ENGINE&#39;: &#39;django.db.backends.sqlite3&#39;,\n             &#39;HOST&#39;: &#39;&#39;,\n             &#39;NAME&#39;: &#39;/opt/graphite/storage/graphite.db&#39;,\n             &#39;OPTIONS&#39;: {},\n             &#39;PASSWORD&#39;: u&#39;********************&#39;,\n             &#39;PORT&#39;: &#39;&#39;,\n             &#39;TEST&#39;: {&#39;CHARSET&#39;: None,\n                      &#39;COLLATION&#39;: None,\n                      &#39;MIRROR&#39;: None,\n                      &#39;NAME&#39;: None},\n             &#39;TIME_ZONE&#39;: None,\n             &#39;USER&#39;: &#39;&#39;}}</pre></td>\n        </tr>\n      \n        <tr>\n          <td>DATABASE_ROUTERS</td>\n          <td class=\"code\"><pre>[]</pre></td>\n        </tr>\n      \n        <tr>\n          <td>DATA_UPLOAD_MAX_MEMORY_SIZE</td>\n          <td class=\"code\"><pre>2621440</pre></td>\n        </tr>\n      \n        <tr>\n          <td>DATA_UPLOAD_MAX_NUMBER_FIELDS</td>\n          <td class=\"code\"><pre>1000</pre></td>\n        </tr>\n      \n        <tr>\n          <td>DATETIME_FORMAT</td>\n          <td class=\"code\"><pre>u&#39;N j, Y, P&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>DATETIME_INPUT_FORMATS</td>\n          <td class=\"code\"><pre>[u&#39;%Y-%m-%d %H:%M:%S&#39;,\n u&#39;%Y-%m-%d %H:%M:%S.%f&#39;,\n u&#39;%Y-%m-%d %H:%M&#39;,\n u&#39;%Y-%m-%d&#39;,\n u&#39;%m/%d/%Y %H:%M:%S&#39;,\n u&#39;%m/%d/%Y %H:%M:%S.%f&#39;,\n u&#39;%m/%d/%Y %H:%M&#39;,\n u&#39;%m/%d/%Y&#39;,\n u&#39;%m/%d/%y %H:%M:%S&#39;,\n u&#39;%m/%d/%y %H:%M:%S.%f&#39;,\n u&#39;%m/%d/%y %H:%M&#39;,\n u&#39;%m/%d/%y&#39;]</pre></td>\n        </tr>\n      \n        <tr>\n          <td>DATE_FORMAT</td>\n          <td class=\"code\"><pre>&#39;%m/%d&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>DATE_INPUT_FORMATS</td>\n          <td class=\"code\"><pre>[u&#39;%Y-%m-%d&#39;,\n u&#39;%m/%d/%Y&#39;,\n u&#39;%m/%d/%y&#39;,\n u&#39;%b %d %Y&#39;,\n u&#39;%b %d, %Y&#39;,\n u&#39;%d %b %Y&#39;,\n u&#39;%d %b, %Y&#39;,\n u&#39;%B %d %Y&#39;,\n u&#39;%B %d, %Y&#39;,\n u&#39;%d %B %Y&#39;,\n u&#39;%d %B, %Y&#39;]</pre></td>\n        </tr>\n      \n        <tr>\n          <td>DEBUG</td>\n          <td class=\"code\"><pre>True</pre></td>\n        </tr>\n      \n        <tr>\n          <td>DEBUG_PROPAGATE_EXCEPTIONS</td>\n          <td class=\"code\"><pre>False</pre></td>\n        </tr>\n      \n        <tr>\n          <td>DECIMAL_SEPARATOR</td>\n          <td class=\"code\"><pre>u&#39;.&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>DEFAULT_CACHE_DURATION</td>\n          <td class=\"code\"><pre>60</pre></td>\n        </tr>\n      \n        <tr>\n          <td>DEFAULT_CACHE_POLICY</td>\n          <td class=\"code\"><pre>[]</pre></td>\n        </tr>\n      \n        <tr>\n          <td>DEFAULT_CHARSET</td>\n          <td class=\"code\"><pre>u&#39;utf-8&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>DEFAULT_CONTENT_TYPE</td>\n          <td class=\"code\"><pre>u&#39;text/html&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>DEFAULT_EXCEPTION_REPORTER_FILTER</td>\n          <td class=\"code\"><pre>u&#39;django.views.debug.SafeExceptionReporterFilter&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>DEFAULT_FILE_STORAGE</td>\n          <td class=\"code\"><pre>u&#39;django.core.files.storage.FileSystemStorage&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>DEFAULT_FROM_EMAIL</td>\n          <td class=\"code\"><pre>u&#39;webmaster@localhost&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>DEFAULT_INDEX_TABLESPACE</td>\n          <td class=\"code\"><pre>u&#39;&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>DEFAULT_TABLESPACE</td>\n          <td class=\"code\"><pre>u&#39;&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>DEFAULT_XFILES_FACTOR</td>\n          <td class=\"code\"><pre>0</pre></td>\n        </tr>\n      \n        <tr>\n          <td>DISALLOWED_USER_AGENTS</td>\n          <td class=\"code\"><pre>[]</pre></td>\n        </tr>\n      \n        <tr>\n          <td>DJANGO_VERSION</td>\n          <td class=\"code\"><pre>(1, 11, 16, u&#39;final&#39;, 0)</pre></td>\n        </tr>\n      \n        <tr>\n          <td>DOCUMENTATION_URL</td>\n          <td class=\"code\"><pre>&#39;https://graphite.readthedocs.io/en/latest/&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>DOCUMENTATION_VERSION</td>\n          <td class=\"code\"><pre>&#39;latest&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>EMAIL_BACKEND</td>\n          <td class=\"code\"><pre>u&#39;django.core.mail.backends.smtp.EmailBackend&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>EMAIL_HOST</td>\n          <td class=\"code\"><pre>u&#39;localhost&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>EMAIL_HOST_PASSWORD</td>\n          <td class=\"code\"><pre>u&#39;********************&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>EMAIL_HOST_USER</td>\n          <td class=\"code\"><pre>u&#39;&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>EMAIL_PORT</td>\n          <td class=\"code\"><pre>25</pre></td>\n        </tr>\n      \n        <tr>\n          <td>EMAIL_SSL_CERTFILE</td>\n          <td class=\"code\"><pre>None</pre></td>\n        </tr>\n      \n        <tr>\n          <td>EMAIL_SSL_KEYFILE</td>\n          <td class=\"code\"><pre>u&#39;********************&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>EMAIL_SUBJECT_PREFIX</td>\n          <td class=\"code\"><pre>u&#39;[Django] &#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>EMAIL_TIMEOUT</td>\n          <td class=\"code\"><pre>None</pre></td>\n        </tr>\n      \n        <tr>\n          <td>EMAIL_USE_LOCALTIME</td>\n          <td class=\"code\"><pre>False</pre></td>\n        </tr>\n      \n        <tr>\n          <td>EMAIL_USE_SSL</td>\n          <td class=\"code\"><pre>False</pre></td>\n        </tr>\n      \n        <tr>\n          <td>EMAIL_USE_TLS</td>\n          <td class=\"code\"><pre>False</pre></td>\n        </tr>\n      \n        <tr>\n          <td>FETCH_TIMEOUT</td>\n          <td class=\"code\"><pre>6.0</pre></td>\n        </tr>\n      \n        <tr>\n          <td>FILE_CHARSET</td>\n          <td class=\"code\"><pre>u&#39;utf-8&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>FILE_UPLOAD_DIRECTORY_PERMISSIONS</td>\n          <td class=\"code\"><pre>None</pre></td>\n        </tr>\n      \n        <tr>\n          <td>FILE_UPLOAD_HANDLERS</td>\n          <td class=\"code\"><pre>[u&#39;django.core.files.uploadhandler.MemoryFileUploadHandler&#39;,\n u&#39;django.core.files.uploadhandler.TemporaryFileUploadHandler&#39;]</pre></td>\n        </tr>\n      \n        <tr>\n          <td>FILE_UPLOAD_MAX_MEMORY_SIZE</td>\n          <td class=\"code\"><pre>2621440</pre></td>\n        </tr>\n      \n        <tr>\n          <td>FILE_UPLOAD_PERMISSIONS</td>\n          <td class=\"code\"><pre>None</pre></td>\n        </tr>\n      \n        <tr>\n          <td>FILE_UPLOAD_TEMP_DIR</td>\n          <td class=\"code\"><pre>None</pre></td>\n        </tr>\n      \n        <tr>\n          <td>FIND_CACHE_DURATION</td>\n          <td class=\"code\"><pre>300</pre></td>\n        </tr>\n      \n        <tr>\n          <td>FIND_TIMEOUT</td>\n          <td class=\"code\"><pre>3.0</pre></td>\n        </tr>\n      \n        <tr>\n          <td>FIND_TOLERANCE</td>\n          <td class=\"code\"><pre>600</pre></td>\n        </tr>\n      \n        <tr>\n          <td>FIRST_DAY_OF_WEEK</td>\n          <td class=\"code\"><pre>0</pre></td>\n        </tr>\n      \n        <tr>\n          <td>FIXTURE_DIRS</td>\n          <td class=\"code\"><pre>[]</pre></td>\n        </tr>\n      \n        <tr>\n          <td>FLUSHRRDCACHED</td>\n          <td class=\"code\"><pre>&#39;&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>FORCE_SCRIPT_NAME</td>\n          <td class=\"code\"><pre>None</pre></td>\n        </tr>\n      \n        <tr>\n          <td>FORMAT_MODULE_PATH</td>\n          <td class=\"code\"><pre>None</pre></td>\n        </tr>\n      \n        <tr>\n          <td>FORM_RENDERER</td>\n          <td class=\"code\"><pre>u&#39;django.forms.renderers.DjangoTemplates&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>FUNCTION_PLUGINS</td>\n          <td class=\"code\"><pre>[]</pre></td>\n        </tr>\n      \n        <tr>\n          <td>GRAPHITE_ROOT</td>\n          <td class=\"code\"><pre>&#39;/opt/graphite&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>GRAPHITE_WEB_APP_SETTINGS_LOADED</td>\n          <td class=\"code\"><pre>True</pre></td>\n        </tr>\n      \n        <tr>\n          <td>GRAPHTEMPLATES_CONF</td>\n          <td class=\"code\"><pre>&#39;/opt/graphite/conf/graphTemplates.conf&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>IGNORABLE_404_URLS</td>\n          <td class=\"code\"><pre>[]</pre></td>\n        </tr>\n      \n        <tr>\n          <td>INDEX_FILE</td>\n          <td class=\"code\"><pre>&#39;/opt/graphite/storage/index&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>INSTALLED_APPS</td>\n          <td class=\"code\"><pre>(&#39;graphite.account&#39;,\n &#39;graphite.browser&#39;,\n &#39;graphite.composer&#39;,\n &#39;graphite.dashboard&#39;,\n &#39;graphite.events&#39;,\n &#39;graphite.functions&#39;,\n &#39;graphite.metrics&#39;,\n &#39;graphite.render&#39;,\n &#39;graphite.tags&#39;,\n &#39;graphite.url_shortener&#39;,\n &#39;graphite.whitelist&#39;,\n &#39;django.contrib.auth&#39;,\n &#39;django.contrib.sessions&#39;,\n &#39;django.contrib.admin&#39;,\n &#39;django.contrib.contenttypes&#39;,\n &#39;django.contrib.staticfiles&#39;,\n &#39;tagging&#39;)</pre></td>\n        </tr>\n      \n        <tr>\n          <td>INTERNAL_IPS</td>\n          <td class=\"code\"><pre>[]</pre></td>\n        </tr>\n      \n        <tr>\n          <td>INTRACLUSTER_HTTPS</td>\n          <td class=\"code\"><pre>False</pre></td>\n        </tr>\n      \n        <tr>\n          <td>JAVASCRIPT_DEBUG</td>\n          <td class=\"code\"><pre>False</pre></td>\n        </tr>\n      \n        <tr>\n          <td>LANGUAGES</td>\n          <td class=\"code\"><pre>[(u&#39;af&#39;, u&#39;Afrikaans&#39;),\n (u&#39;ar&#39;, u&#39;Arabic&#39;),\n (u&#39;ast&#39;, u&#39;Asturian&#39;),\n (u&#39;az&#39;, u&#39;Azerbaijani&#39;),\n (u&#39;bg&#39;, u&#39;Bulgarian&#39;),\n (u&#39;be&#39;, u&#39;Belarusian&#39;),\n (u&#39;bn&#39;, u&#39;Bengali&#39;),\n (u&#39;br&#39;, u&#39;Breton&#39;),\n (u&#39;bs&#39;, u&#39;Bosnian&#39;),\n (u&#39;ca&#39;, u&#39;Catalan&#39;),\n (u&#39;cs&#39;, u&#39;Czech&#39;),\n (u&#39;cy&#39;, u&#39;Welsh&#39;),\n (u&#39;da&#39;, u&#39;Danish&#39;),\n (u&#39;de&#39;, u&#39;German&#39;),\n (u&#39;dsb&#39;, u&#39;Lower Sorbian&#39;),\n (u&#39;el&#39;, u&#39;Greek&#39;),\n (u&#39;en&#39;, u&#39;English&#39;),\n (u&#39;en-au&#39;, u&#39;Australian English&#39;),\n (u&#39;en-gb&#39;, u&#39;British English&#39;),\n (u&#39;eo&#39;, u&#39;Esperanto&#39;),\n (u&#39;es&#39;, u&#39;Spanish&#39;),\n (u&#39;es-ar&#39;, u&#39;Argentinian Spanish&#39;),\n (u&#39;es-co&#39;, u&#39;Colombian Spanish&#39;),\n (u&#39;es-mx&#39;, u&#39;Mexican Spanish&#39;),\n (u&#39;es-ni&#39;, u&#39;Nicaraguan Spanish&#39;),\n (u&#39;es-ve&#39;, u&#39;Venezuelan Spanish&#39;),\n (u&#39;et&#39;, u&#39;Estonian&#39;),\n (u&#39;eu&#39;, u&#39;Basque&#39;),\n (u&#39;fa&#39;, u&#39;Persian&#39;),\n (u&#39;fi&#39;, u&#39;Finnish&#39;),\n (u&#39;fr&#39;, u&#39;French&#39;),\n (u&#39;fy&#39;, u&#39;Frisian&#39;),\n (u&#39;ga&#39;, u&#39;Irish&#39;),\n (u&#39;gd&#39;, u&#39;Scottish Gaelic&#39;),\n (u&#39;gl&#39;, u&#39;Galician&#39;),\n (u&#39;he&#39;, u&#39;Hebrew&#39;),\n (u&#39;hi&#39;, u&#39;Hindi&#39;),\n (u&#39;hr&#39;, u&#39;Croatian&#39;),\n (u&#39;hsb&#39;, u&#39;Upper Sorbian&#39;),\n (u&#39;hu&#39;, u&#39;Hungarian&#39;),\n (u&#39;ia&#39;, u&#39;Interlingua&#39;),\n (u&#39;id&#39;, u&#39;Indonesian&#39;),\n (u&#39;io&#39;, u&#39;Ido&#39;),\n (u&#39;is&#39;, u&#39;Icelandic&#39;),\n (u&#39;it&#39;, u&#39;Italian&#39;),\n (u&#39;ja&#39;, u&#39;Japanese&#39;),\n (u&#39;ka&#39;, u&#39;Georgian&#39;),\n (u&#39;kk&#39;, u&#39;Kazakh&#39;),\n (u&#39;km&#39;, u&#39;Khmer&#39;),\n (u&#39;kn&#39;, u&#39;Kannada&#39;),\n (u&#39;ko&#39;, u&#39;Korean&#39;),\n (u&#39;lb&#39;, u&#39;Luxembourgish&#39;),\n (u&#39;lt&#39;, u&#39;Lithuanian&#39;),\n (u&#39;lv&#39;, u&#39;Latvian&#39;),\n (u&#39;mk&#39;, u&#39;Macedonian&#39;),\n (u&#39;ml&#39;, u&#39;Malayalam&#39;),\n (u&#39;mn&#39;, u&#39;Mongolian&#39;),\n (u&#39;mr&#39;, u&#39;Marathi&#39;),\n (u&#39;my&#39;, u&#39;Burmese&#39;),\n (u&#39;nb&#39;, u&#39;Norwegian Bokm\\xe5l&#39;),\n (u&#39;ne&#39;, u&#39;Nepali&#39;),\n (u&#39;nl&#39;, u&#39;Dutch&#39;),\n (u&#39;nn&#39;, u&#39;Norwegian Nynorsk&#39;),\n (u&#39;os&#39;, u&#39;Ossetic&#39;),\n (u&#39;pa&#39;, u&#39;Punjabi&#39;),\n (u&#39;pl&#39;, u&#39;Polish&#39;),\n (u&#39;pt&#39;, u&#39;Portuguese&#39;),\n (u&#39;pt-br&#39;, u&#39;Brazilian Portuguese&#39;),\n (u&#39;ro&#39;, u&#39;Romanian&#39;),\n (u&#39;ru&#39;, u&#39;Russian&#39;),\n (u&#39;sk&#39;, u&#39;Slovak&#39;),\n (u&#39;sl&#39;, u&#39;Slovenian&#39;),\n (u&#39;sq&#39;, u&#39;Albanian&#39;),\n (u&#39;sr&#39;, u&#39;Serbian&#39;),\n (u&#39;sr-latn&#39;, u&#39;Serbian Latin&#39;),\n (u&#39;sv&#39;, u&#39;Swedish&#39;),\n (u&#39;sw&#39;, u&#39;Swahili&#39;),\n (u&#39;ta&#39;, u&#39;Tamil&#39;),\n (u&#39;te&#39;, u&#39;Telugu&#39;),\n (u&#39;th&#39;, u&#39;Thai&#39;),\n (u&#39;tr&#39;, u&#39;Turkish&#39;),\n (u&#39;tt&#39;, u&#39;Tatar&#39;),\n (u&#39;udm&#39;, u&#39;Udmurt&#39;),\n (u&#39;uk&#39;, u&#39;Ukrainian&#39;),\n (u&#39;ur&#39;, u&#39;Urdu&#39;),\n (u&#39;vi&#39;, u&#39;Vietnamese&#39;),\n (u&#39;zh-hans&#39;, u&#39;Simplified Chinese&#39;),\n (u&#39;zh-hant&#39;, u&#39;Traditional Chinese&#39;)]</pre></td>\n        </tr>\n      \n        <tr>\n          <td>LANGUAGES_BIDI</td>\n          <td class=\"code\"><pre>[u&#39;he&#39;, u&#39;ar&#39;, u&#39;fa&#39;, u&#39;ur&#39;]</pre></td>\n        </tr>\n      \n        <tr>\n          <td>LANGUAGE_CODE</td>\n          <td class=\"code\"><pre>&#39;en-us&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>LANGUAGE_COOKIE_AGE</td>\n          <td class=\"code\"><pre>None</pre></td>\n        </tr>\n      \n        <tr>\n          <td>LANGUAGE_COOKIE_DOMAIN</td>\n          <td class=\"code\"><pre>None</pre></td>\n        </tr>\n      \n        <tr>\n          <td>LANGUAGE_COOKIE_NAME</td>\n          <td class=\"code\"><pre>u&#39;django_language&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>LANGUAGE_COOKIE_PATH</td>\n          <td class=\"code\"><pre>u&#39;/&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>LDAP_BASE_PASS</td>\n          <td class=\"code\"><pre>u&#39;********************&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>LDAP_BASE_USER</td>\n          <td class=\"code\"><pre>&#39;&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>LDAP_PORT</td>\n          <td class=\"code\"><pre>389</pre></td>\n        </tr>\n      \n        <tr>\n          <td>LDAP_SEARCH_BASE</td>\n          <td class=\"code\"><pre>&#39;&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>LDAP_SERVER</td>\n          <td class=\"code\"><pre>&#39;&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>LDAP_URI</td>\n          <td class=\"code\"><pre>None</pre></td>\n        </tr>\n      \n        <tr>\n          <td>LDAP_USER_DN_TEMPLATE</td>\n          <td class=\"code\"><pre>None</pre></td>\n        </tr>\n      \n        <tr>\n          <td>LDAP_USER_QUERY</td>\n          <td class=\"code\"><pre>&#39;&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>LDAP_USE_TLS</td>\n          <td class=\"code\"><pre>False</pre></td>\n        </tr>\n      \n        <tr>\n          <td>LEGEND_MAX_ITEMS</td>\n          <td class=\"code\"><pre>10</pre></td>\n        </tr>\n      \n        <tr>\n          <td>LOCALE_PATHS</td>\n          <td class=\"code\"><pre>[]</pre></td>\n        </tr>\n      \n        <tr>\n          <td>LOGGING</td>\n          <td class=\"code\"><pre>{}</pre></td>\n        </tr>\n      \n        <tr>\n          <td>LOGGING_CONFIG</td>\n          <td class=\"code\"><pre>u&#39;logging.config.dictConfig&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>LOGIN_REDIRECT_URL</td>\n          <td class=\"code\"><pre>u&#39;/accounts/profile/&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>LOGIN_URL</td>\n          <td class=\"code\"><pre>u&#39;/account/login&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>LOGOUT_REDIRECT_URL</td>\n          <td class=\"code\"><pre>None</pre></td>\n        </tr>\n      \n        <tr>\n          <td>LOG_CACHE_PERFORMANCE</td>\n          <td class=\"code\"><pre>False</pre></td>\n        </tr>\n      \n        <tr>\n          <td>LOG_DIR</td>\n          <td class=\"code\"><pre>&#39;/opt/graphite/storage/log/webapp&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>LOG_FILE_CACHE</td>\n          <td class=\"code\"><pre>&#39;cache.log&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>LOG_FILE_EXCEPTION</td>\n          <td class=\"code\"><pre>&#39;exception.log&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>LOG_FILE_INFO</td>\n          <td class=\"code\"><pre>&#39;info.log&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>LOG_FILE_RENDERING</td>\n          <td class=\"code\"><pre>&#39;rendering.log&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>LOG_RENDERING_PERFORMANCE</td>\n          <td class=\"code\"><pre>False</pre></td>\n        </tr>\n      \n        <tr>\n          <td>LOG_ROTATION</td>\n          <td class=\"code\"><pre>True</pre></td>\n        </tr>\n      \n        <tr>\n          <td>LOG_ROTATION_COUNT</td>\n          <td class=\"code\"><pre>1</pre></td>\n        </tr>\n      \n        <tr>\n          <td>MANAGERS</td>\n          <td class=\"code\"><pre>[]</pre></td>\n        </tr>\n      \n        <tr>\n          <td>MAX_FETCH_RETRIES</td>\n          <td class=\"code\"><pre>2</pre></td>\n        </tr>\n      \n        <tr>\n          <td>MAX_TAG_LENGTH</td>\n          <td class=\"code\"><pre>50</pre></td>\n        </tr>\n      \n        <tr>\n          <td>MEDIA_ROOT</td>\n          <td class=\"code\"><pre>&#39;&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>MEDIA_URL</td>\n          <td class=\"code\"><pre>&#39;&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>MEMCACHE_HOSTS</td>\n          <td class=\"code\"><pre>[]</pre></td>\n        </tr>\n      \n        <tr>\n          <td>MEMCACHE_KEY_PREFIX</td>\n          <td class=\"code\"><pre>u&#39;********************&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>MEMCACHE_OPTIONS</td>\n          <td class=\"code\"><pre>{}</pre></td>\n        </tr>\n      \n        <tr>\n          <td>MESSAGE_STORAGE</td>\n          <td class=\"code\"><pre>u&#39;django.contrib.messages.storage.fallback.FallbackStorage&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>METRICS_FIND_FAILURE_THRESHOLD</td>\n          <td class=\"code\"><pre>inf</pre></td>\n        </tr>\n      \n        <tr>\n          <td>METRICS_FIND_WARNING_THRESHOLD</td>\n          <td class=\"code\"><pre>inf</pre></td>\n        </tr>\n      \n        <tr>\n          <td>MIDDLEWARE</td>\n          <td class=\"code\"><pre>(&#39;graphite.middleware.LogExceptionsMiddleware&#39;,\n &#39;django.middleware.common.CommonMiddleware&#39;,\n &#39;django.middleware.gzip.GZipMiddleware&#39;,\n &#39;django.contrib.sessions.middleware.SessionMiddleware&#39;,\n &#39;django.contrib.auth.middleware.AuthenticationMiddleware&#39;,\n &#39;django.contrib.messages.middleware.MessageMiddleware&#39;,\n &#39;whitenoise.middleware.WhiteNoiseMiddleware&#39;)</pre></td>\n        </tr>\n      \n        <tr>\n          <td>MIDDLEWARE_CLASSES</td>\n          <td class=\"code\"><pre>[u&#39;django.middleware.common.CommonMiddleware&#39;,\n u&#39;django.middleware.csrf.CsrfViewMiddleware&#39;]</pre></td>\n        </tr>\n      \n        <tr>\n          <td>MIGRATION_MODULES</td>\n          <td class=\"code\"><pre>{}</pre></td>\n        </tr>\n      \n        <tr>\n          <td>MONTH_DAY_FORMAT</td>\n          <td class=\"code\"><pre>u&#39;F j&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>NUMBER_GROUPING</td>\n          <td class=\"code\"><pre>0</pre></td>\n        </tr>\n      \n        <tr>\n          <td>PASSWORD_HASHERS</td>\n          <td class=\"code\"><pre>u&#39;********************&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>PASSWORD_RESET_TIMEOUT_DAYS</td>\n          <td class=\"code\"><pre>u&#39;********************&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>POOL_MAX_WORKERS</td>\n          <td class=\"code\"><pre>10</pre></td>\n        </tr>\n      \n        <tr>\n          <td>PREPEND_WWW</td>\n          <td class=\"code\"><pre>False</pre></td>\n        </tr>\n      \n        <tr>\n          <td>REMOTE_BUFFER_SIZE</td>\n          <td class=\"code\"><pre>1048576</pre></td>\n        </tr>\n      \n        <tr>\n          <td>REMOTE_EXCLUDE_LOCAL</td>\n          <td class=\"code\"><pre>False</pre></td>\n        </tr>\n      \n        <tr>\n          <td>REMOTE_FETCH_TIMEOUT</td>\n          <td class=\"code\"><pre>None</pre></td>\n        </tr>\n      \n        <tr>\n          <td>REMOTE_FIND_TIMEOUT</td>\n          <td class=\"code\"><pre>None</pre></td>\n        </tr>\n      \n        <tr>\n          <td>REMOTE_RENDERING</td>\n          <td class=\"code\"><pre>False</pre></td>\n        </tr>\n      \n        <tr>\n          <td>REMOTE_RENDER_CONNECT_TIMEOUT</td>\n          <td class=\"code\"><pre>1.0</pre></td>\n        </tr>\n      \n        <tr>\n          <td>REMOTE_RETRY_DELAY</td>\n          <td class=\"code\"><pre>60.0</pre></td>\n        </tr>\n      \n        <tr>\n          <td>REMOTE_STORE_FORWARD_HEADERS</td>\n          <td class=\"code\"><pre>[]</pre></td>\n        </tr>\n      \n        <tr>\n          <td>REMOTE_STORE_MERGE_RESULTS</td>\n          <td class=\"code\"><pre>True</pre></td>\n        </tr>\n      \n        <tr>\n          <td>REMOTE_STORE_USE_POST</td>\n          <td class=\"code\"><pre>False</pre></td>\n        </tr>\n      \n        <tr>\n          <td>REMOTE_USER_BACKEND</td>\n          <td class=\"code\"><pre>&#39;&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>REMOTE_USER_MIDDLEWARE</td>\n          <td class=\"code\"><pre>&#39;&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>RENDERING_HOSTS</td>\n          <td class=\"code\"><pre>[]</pre></td>\n        </tr>\n      \n        <tr>\n          <td>REPLICATION_FACTOR</td>\n          <td class=\"code\"><pre>1</pre></td>\n        </tr>\n      \n        <tr>\n          <td>ROOT_URLCONF</td>\n          <td class=\"code\"><pre>&#39;graphite.urls&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>RRD_CF</td>\n          <td class=\"code\"><pre>&#39;AVERAGE&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>RRD_DIR</td>\n          <td class=\"code\"><pre>&#39;/opt/graphite/storage/rrd/&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>SECRET_KEY</td>\n          <td class=\"code\"><pre>u&#39;********************&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>SECURE_BROWSER_XSS_FILTER</td>\n          <td class=\"code\"><pre>False</pre></td>\n        </tr>\n      \n        <tr>\n          <td>SECURE_CONTENT_TYPE_NOSNIFF</td>\n          <td class=\"code\"><pre>False</pre></td>\n        </tr>\n      \n        <tr>\n          <td>SECURE_HSTS_INCLUDE_SUBDOMAINS</td>\n          <td class=\"code\"><pre>False</pre></td>\n        </tr>\n      \n        <tr>\n          <td>SECURE_HSTS_PRELOAD</td>\n          <td class=\"code\"><pre>False</pre></td>\n        </tr>\n      \n        <tr>\n          <td>SECURE_HSTS_SECONDS</td>\n          <td class=\"code\"><pre>0</pre></td>\n        </tr>\n      \n        <tr>\n          <td>SECURE_PROXY_SSL_HEADER</td>\n          <td class=\"code\"><pre>None</pre></td>\n        </tr>\n      \n        <tr>\n          <td>SECURE_REDIRECT_EXEMPT</td>\n          <td class=\"code\"><pre>[]</pre></td>\n        </tr>\n      \n        <tr>\n          <td>SECURE_SSL_HOST</td>\n          <td class=\"code\"><pre>None</pre></td>\n        </tr>\n      \n        <tr>\n          <td>SECURE_SSL_REDIRECT</td>\n          <td class=\"code\"><pre>False</pre></td>\n        </tr>\n      \n        <tr>\n          <td>SERVER_EMAIL</td>\n          <td class=\"code\"><pre>u&#39;root@localhost&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>SESSION_CACHE_ALIAS</td>\n          <td class=\"code\"><pre>u&#39;default&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>SESSION_COOKIE_AGE</td>\n          <td class=\"code\"><pre>1209600</pre></td>\n        </tr>\n      \n        <tr>\n          <td>SESSION_COOKIE_DOMAIN</td>\n          <td class=\"code\"><pre>None</pre></td>\n        </tr>\n      \n        <tr>\n          <td>SESSION_COOKIE_HTTPONLY</td>\n          <td class=\"code\"><pre>True</pre></td>\n        </tr>\n      \n        <tr>\n          <td>SESSION_COOKIE_NAME</td>\n          <td class=\"code\"><pre>u&#39;sessionid&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>SESSION_COOKIE_PATH</td>\n          <td class=\"code\"><pre>u&#39;/&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>SESSION_COOKIE_SECURE</td>\n          <td class=\"code\"><pre>False</pre></td>\n        </tr>\n      \n        <tr>\n          <td>SESSION_ENGINE</td>\n          <td class=\"code\"><pre>u&#39;django.contrib.sessions.backends.db&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>SESSION_EXPIRE_AT_BROWSER_CLOSE</td>\n          <td class=\"code\"><pre>False</pre></td>\n        </tr>\n      \n        <tr>\n          <td>SESSION_FILE_PATH</td>\n          <td class=\"code\"><pre>None</pre></td>\n        </tr>\n      \n        <tr>\n          <td>SESSION_SAVE_EVERY_REQUEST</td>\n          <td class=\"code\"><pre>False</pre></td>\n        </tr>\n      \n        <tr>\n          <td>SESSION_SERIALIZER</td>\n          <td class=\"code\"><pre>u&#39;django.contrib.sessions.serializers.JSONSerializer&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>SETTINGS_MODULE</td>\n          <td class=\"code\"><pre>&#39;graphite.local_settings&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>SHORT_DATETIME_FORMAT</td>\n          <td class=\"code\"><pre>u&#39;m/d/Y P&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>SHORT_DATE_FORMAT</td>\n          <td class=\"code\"><pre>u&#39;m/d/Y&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>SIGNING_BACKEND</td>\n          <td class=\"code\"><pre>u&#39;django.core.signing.TimestampSigner&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>SILENCED_SYSTEM_CHECKS</td>\n          <td class=\"code\"><pre>[&#39;urls.W002&#39;]</pre></td>\n        </tr>\n      \n        <tr>\n          <td>SMTP_SERVER</td>\n          <td class=\"code\"><pre>&#39;localhost&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>STANDARD_DIRS</td>\n          <td class=\"code\"><pre>[&#39;/opt/graphite/storage/whisper/&#39;]</pre></td>\n        </tr>\n      \n        <tr>\n          <td>STATICFILES_DIRS</td>\n          <td class=\"code\"><pre>(&#39;/opt/graphite/webapp/content&#39;,)</pre></td>\n        </tr>\n      \n        <tr>\n          <td>STATICFILES_FINDERS</td>\n          <td class=\"code\"><pre>[u&#39;django.contrib.staticfiles.finders.FileSystemFinder&#39;,\n u&#39;django.contrib.staticfiles.finders.AppDirectoriesFinder&#39;]</pre></td>\n        </tr>\n      \n        <tr>\n          <td>STATICFILES_STORAGE</td>\n          <td class=\"code\"><pre>u&#39;django.contrib.staticfiles.storage.StaticFilesStorage&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>STATIC_ROOT</td>\n          <td class=\"code\"><pre>&#39;/opt/graphite/static&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>STATIC_URL</td>\n          <td class=\"code\"><pre>&#39;/static/&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>STORAGE_DIR</td>\n          <td class=\"code\"><pre>&#39;/opt/graphite/storage&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>STORAGE_FINDERS</td>\n          <td class=\"code\"><pre>(&#39;graphite.finders.remote.RemoteFinder&#39;,\n &#39;graphite.finders.standard.StandardFinder&#39;)</pre></td>\n        </tr>\n      \n        <tr>\n          <td>STORE_FAIL_ON_ERROR</td>\n          <td class=\"code\"><pre>False</pre></td>\n        </tr>\n      \n        <tr>\n          <td>TAGDB</td>\n          <td class=\"code\"><pre>&#39;graphite.tags.localdatabase.LocalDatabaseTagDB&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>TAGDB_AUTOCOMPLETE_LIMIT</td>\n          <td class=\"code\"><pre>100</pre></td>\n        </tr>\n      \n        <tr>\n          <td>TAGDB_CACHE_DURATION</td>\n          <td class=\"code\"><pre>60</pre></td>\n        </tr>\n      \n        <tr>\n          <td>TAGDB_HTTP_AUTOCOMPLETE</td>\n          <td class=\"code\"><pre>False</pre></td>\n        </tr>\n      \n        <tr>\n          <td>TAGDB_HTTP_PASSWORD</td>\n          <td class=\"code\"><pre>u&#39;********************&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>TAGDB_HTTP_URL</td>\n          <td class=\"code\"><pre>&#39;&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>TAGDB_HTTP_USER</td>\n          <td class=\"code\"><pre>&#39;&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>TAGDB_REDIS_DB</td>\n          <td class=\"code\"><pre>0</pre></td>\n        </tr>\n      \n        <tr>\n          <td>TAGDB_REDIS_HOST</td>\n          <td class=\"code\"><pre>&#39;localhost&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>TAGDB_REDIS_PORT</td>\n          <td class=\"code\"><pre>6379</pre></td>\n        </tr>\n      \n        <tr>\n          <td>TEMPLATES</td>\n          <td class=\"code\"><pre>[{&#39;APP_DIRS&#39;: True,\n  &#39;BACKEND&#39;: &#39;django.template.backends.django.DjangoTemplates&#39;,\n  &#39;DIRS&#39;: [&#39;/opt/graphite/webapp/graphite/templates&#39;],\n  &#39;OPTIONS&#39;: {&#39;context_processors&#39;: [&#39;django.contrib.auth.context_processors.auth&#39;,\n                                     &#39;django.template.context_processors.debug&#39;,\n                                     &#39;django.template.context_processors.i18n&#39;,\n                                     &#39;django.template.context_processors.media&#39;,\n                                     &#39;django.template.context_processors.static&#39;,\n                                     &#39;django.template.context_processors.tz&#39;,\n                                     &#39;django.contrib.messages.context_processors.messages&#39;]}}]</pre></td>\n        </tr>\n      \n        <tr>\n          <td>TEMPLATE_DEBUG</td>\n          <td class=\"code\"><pre>False</pre></td>\n        </tr>\n      \n        <tr>\n          <td>TEST_NON_SERIALIZED_APPS</td>\n          <td class=\"code\"><pre>[]</pre></td>\n        </tr>\n      \n        <tr>\n          <td>TEST_RUNNER</td>\n          <td class=\"code\"><pre>u&#39;django.test.runner.DiscoverRunner&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>THOUSAND_SEPARATOR</td>\n          <td class=\"code\"><pre>u&#39;,&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>TIME_FORMAT</td>\n          <td class=\"code\"><pre>u&#39;P&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>TIME_INPUT_FORMATS</td>\n          <td class=\"code\"><pre>[u&#39;%H:%M:%S&#39;, u&#39;%H:%M:%S.%f&#39;, u&#39;%H:%M&#39;]</pre></td>\n        </tr>\n      \n        <tr>\n          <td>TIME_ZONE</td>\n          <td class=\"code\"><pre>&#39;Europe/Paris&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>URL_PREFIX</td>\n          <td class=\"code\"><pre>&#39;&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>USE_ETAGS</td>\n          <td class=\"code\"><pre>False</pre></td>\n        </tr>\n      \n        <tr>\n          <td>USE_I18N</td>\n          <td class=\"code\"><pre>True</pre></td>\n        </tr>\n      \n        <tr>\n          <td>USE_L10N</td>\n          <td class=\"code\"><pre>False</pre></td>\n        </tr>\n      \n        <tr>\n          <td>USE_LDAP_AUTH</td>\n          <td class=\"code\"><pre>False</pre></td>\n        </tr>\n      \n        <tr>\n          <td>USE_REMOTE_USER_AUTHENTICATION</td>\n          <td class=\"code\"><pre>False</pre></td>\n        </tr>\n      \n        <tr>\n          <td>USE_THOUSAND_SEPARATOR</td>\n          <td class=\"code\"><pre>False</pre></td>\n        </tr>\n      \n        <tr>\n          <td>USE_TZ</td>\n          <td class=\"code\"><pre>True</pre></td>\n        </tr>\n      \n        <tr>\n          <td>USE_WORKER_POOL</td>\n          <td class=\"code\"><pre>True</pre></td>\n        </tr>\n      \n        <tr>\n          <td>USE_X_FORWARDED_HOST</td>\n          <td class=\"code\"><pre>False</pre></td>\n        </tr>\n      \n        <tr>\n          <td>USE_X_FORWARDED_PORT</td>\n          <td class=\"code\"><pre>False</pre></td>\n        </tr>\n      \n        <tr>\n          <td>WEBAPP_DIR</td>\n          <td class=\"code\"><pre>&#39;/opt/graphite/webapp&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>WEBAPP_VERSION</td>\n          <td class=\"code\"><pre>&#39;1.2.0-dev&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>WEB_DIR</td>\n          <td class=\"code\"><pre>&#39;/opt/graphite/webapp/graphite&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>WHISPER_DIR</td>\n          <td class=\"code\"><pre>&#39;/opt/graphite/storage/whisper/&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>WHITELIST_FILE</td>\n          <td class=\"code\"><pre>&#39;/opt/graphite/storage/lists/whitelist&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>WSGI_APPLICATION</td>\n          <td class=\"code\"><pre>None</pre></td>\n        </tr>\n      \n        <tr>\n          <td>X_FRAME_OPTIONS</td>\n          <td class=\"code\"><pre>u&#39;SAMEORIGIN&#39;</pre></td>\n        </tr>\n      \n        <tr>\n          <td>YEAR_MONTH_FORMAT</td>\n          <td class=\"code\"><pre>u&#39;F Y&#39;</pre></td>\n        </tr>\n      \n    </tbody>\n  </table>\n\n</div>\n\n  <div id=\"explanation\">\n    <p>\n      You're seeing this error because you have <code>DEBUG = True</code> in your\n      Django settings file. Change that to <code>False</code>, and Django will\n      display a standard page generated by the handler for this status code.\n    </p>\n  </div>\n\n</body>\n</html>\n",
    "message": "Internal Server Error"
  }
}

I get the following exception in graphite-web :

Traceback (most recent call last):
  File "/usr/lib64/python2.7/site-packages/django/core/handlers/base.py", line 185, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/opt/graphite/webapp/graphite/render/views.py", line 118, in renderView
    data.extend(evaluateTarget(requestContext, targets))
  File "/opt/graphite/webapp/graphite/render/evaluator.py", line 28, in evaluateTarget
    result = evaluateTokens(requestContext, target)
  File "/opt/graphite/webapp/graphite/render/evaluator.py", line 57, in evaluateTokens
    return evaluateTokens(requestContext, tokens.expression, replacements)
  File "/opt/graphite/webapp/graphite/render/evaluator.py", line 93, in evaluateTokens
    return func(requestContext, *args, **kwargs)
  File "/opt/graphite/webapp/graphite/render/functions.py", line 5210, in timeFunction
    delta = timedelta(seconds=step)
TypeError: unsupported type for timedelta seconds component: unicode

I gave one parameter which is the one given in the exemple from Graphite's documentation ("The.time.series") and also tried with 2 parameters, adding the default "60" as step. No special character.

deniszh commented 5 years ago

@blesaffre : According to error you calling function like timeFunction(stats.sets.stats.kamailio.marek.customer..registration.....200.count, '"The.time.series"'), i.e. providing it with second parameter string "The.time.series". According to documentation, the second parameter should be step and it should be integer, not string.

blesaffre commented 5 years ago

Yes I know that, but that is the problem, because I am calling the function like that : timeFunction("The.time.series") and not as it is displayed in the error.

In the error, the first parameter you see is the metric I apply the function to, not the parameter I give to it.

deniszh commented 5 years ago

@blesaffre : Ah, I know what's going on. In Graphite function is accepting time series and usually returns time series - https://graphite.readthedocs.io/en/latest/functions.html You can chain function calls, but normally you doing that directly. E.g. if you have series stats.sets.stats.kamailio.marek.customer.registration.200.count, and you need to apply e.g. time() and alias() function, you need to do it like this: alias(time(stats.sets.stats.kamailio.marek.customer.registration.200.count),'blah') Grafana assuming that you know how Graphite functions work, so, it was hiding that semantic in the user interface, showing that you applying chain of functions to metric name. But in reality, it's good old Graphite under the hood, and first argument is always coming from metric name or previous function call. You can check real function call if you toggle edit mode (three stripes button -> Toggle Edit mode) or go to Query Inspector and check request.data (but then you need to apply some url decoder). So, in your case you just need to call timeFunction function, without parameters. "The.time.series" in the example is only example of series name.

deniszh commented 5 years ago

Ah, I'm wrong. Indeed, time() function IS NOT accepting time series as parameter, so, you can't (and shouldn't) include it in function call chain later. You can use it only as first function in the call chain.

deniszh commented 5 years ago

Maybe it will be easier if you describe what are you trying to achieve?

blesaffre commented 5 years ago

Awesome I didn't know about that.

It seems to work however. Not exactly what I want but I need to change a few things.

What I am trying to achieve is to get the time at which 2 metrics are received to compare delay between them.

So right now what I get, using your example "alias(time(stats.sets.stats.kamailio.marek.customer.registration.200.count),'blah')" and replacing "blah" with what I want to be displayed, is the timestamp of the metric given to time().

stale[bot] commented 4 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.