newly deployed check in https://gerrit.wikimedia.org/r/251526 results in graphite 500 error:
$ curl 'http://graphite.wikimedia.org/render?format=json&from=-5h&target=summarize%28nonNegativeDerivative%28keepLastValue%28swift.eqiad-prod.containers.mw-media.originals.objects%29%29%2C%201h%29' <body style="background-color: #666666; color: black;"> <center> <h2 style='font-family: "Arial"'> <p>Graphite encountered an unexpected error while handling your request.</p> <p>Please contact your site administrator if the problem persists.</p> </h2> <br/> <div style="width: 50%; text-align: center; font-family: monospace; background-color: black; font-weight: bold; color: #ff4422;"> </div> <div style="width: 70%; text-align: left; background-color: black; color: #44ff22; border: thin solid gray;"> <pre> Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py", line 112, in get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/usr/lib/python2.7/dist-packages/graphite/render/views.py", line 122, in renderView seriesList = evaluateTarget(requestContext, target) File "/usr/lib/python2.7/dist-packages/graphite/render/evaluator.py", line 10, in evaluateTarget result = evaluateTokens(requestContext, tokens) File "/usr/lib/python2.7/dist-packages/graphite/render/evaluator.py", line 21, in evaluateTokens return evaluateTokens(requestContext, tokens.expression) File "/usr/lib/python2.7/dist-packages/graphite/render/evaluator.py", line 29, in evaluateTokens return func(requestContext, *args) File "/usr/lib/python2.7/dist-packages/graphite/render/functions.py", line 2510, in summarize bucketInterval = timestamp - (timestamp % interval) ZeroDivisionError: integer division or modulo by zero </pre> </div>
the definition is
check_command check_graphite_threshold!http://graphite.wikimedia.org!10!summarize(nonNegativeDerivative(keepLastValue(swift.eqiad-prod.containers.mw-media.originals.objects)), '1h')!2000!3000!5h!1!--over
it appears to be a quoting problem, when plugging that query into graphite explorer and fetching it via json format it seems to work
$ curl 'http://graphite.wikimedia.org/render?format=json&from=-5h&target=summarize(nonNegativeDerivative(keepLastValue(swift.eqiad-prod.containers.mw-media.originals.objects)),%20%271h%27)' [{"target": "summarize(nonNegativeDerivative(keepLastValue(swift.eqiad-prod.containers.mw-media.originals.objects)), \"1h\", \"sum\")", "datapoints": [[null, 1447236000], [400.0, 1447239600], [600.0, 1447243200], [600.0, 1447246800], [600.0, 1447250400], [500.0, 1447254000]]}]