graphite-api icon indicating copy to clipboard operation
graphite-api copied to clipboard

TypeError in currentAbove()

Open zmc opened this issue 7 years ago • 1 comments

A query with target=countSeries(currentAbove(collectd.{host0,host1,host2}.our_domain.cephmetrics.gauge.ceph.osd.*.fs_percent_used,80)) is getting a 500 error in response.

The query is being issued by a Grafana singlestat panel. I have a few other clusters running the same queries - and correctly reporting that zero hosts have near-full disks - except they are talking to graphite-web.

The traceback itself:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1817, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1477, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1381, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/lib/python3/dist-packages/flask/_compat.py", line 33, in reraise
    raise value
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1475, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/lib/python3/dist-packages/flask/app.py", line 1461, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/usr/lib/python3/dist-packages/graphite_api/app.py", line 401, in render
    series_list = evaluateTarget(context, target, data_store)
  File "/usr/lib/python3/dist-packages/graphite_api/app.py", line 496, in evaluateTarget
    result = evaluateTokens(requestContext, tokens, data_store)
  File "/usr/lib/python3/dist-packages/graphite_api/app.py", line 506, in evaluateTokens
    return evaluateTokens(requestContext, tokens.expression, data_store)
  File "/usr/lib/python3/dist-packages/graphite_api/app.py", line 514, in evaluateTokens
    arg, data_store) for arg in tokens.call.args]
  File "/usr/lib/python3/dist-packages/graphite_api/app.py", line 514, in
    arg, data_store) for arg in tokens.call.args]
  File "/usr/lib/python3/dist-packages/graphite_api/app.py", line 506, in evaluateTokens
    return evaluateTokens(requestContext, tokens.expression, data_store)
  File "/usr/lib/python3/dist-packages/graphite_api/app.py", line 520, in evaluateTokens
    ret = func(requestContext, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/graphite_api/functions.py", line 1608, in currentAbove
    return [series for series in seriesList if safeLast(series) >= n]
  File "/usr/lib/python3/dist-packages/graphite_api/functions.py", line 1608, in
    return [series for series in seriesList if safeLast(series) >= n]
TypeError: unorderable types: NoneType() >= int()

zmc avatar Aug 09 '17 17:08 zmc

Traceback is saying there are no metrics for the collectd.{host0,host1,host2}.our_domain.cephmetrics.gauge.ceph.osd.*.fs_percent_used target.

Does a metric path query for the above work?

pkittenis avatar Aug 10 '17 10:08 pkittenis