以json格式返回石墨中的常量值

时间:2013-12-17 10:02:28

标签: graphite

我们如何获得石墨中的一系列含量值。我检查了函数constantLine(x),但它在“图形”上绘制了一个常量线。但是,我需要json格式的值。

函数Identity(t),返回x(t) = t;我们需要的内容y(t) = constant

目前,在我看来,我们需要将数据点注入石墨数据库。有没有办法我们可以没有它。

[graphite web uri]/render?target=FUNC(x)&format=json.

* 编辑: 我试过了constantLine(x)函数 我明白了: Traceback(最近一次调用最后一次):   *

File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py", line 111, in get_response
    response = callback(request, *callback_args, **callback_kwargs)
  File "/opt/graphite/webapp/graphite/render/views.py", line 104, in renderView
    seriesList = evaluateTarget(requestContext, target)
  File "/opt/graphite/webapp/graphite/render/evaluator.py", line 10, in evaluateTarget
    result = evaluateTokens(requestContext, tokens)
  File "/opt/graphite/webapp/graphite/render/evaluator.py", line 21, in evaluateTokens
    return evaluateTokens(requestContext, tokens.expression)
  File "/opt/graphite/webapp/graphite/render/evaluator.py", line 27, in evaluateTokens
    func = SeriesFunctions[tokens.call.func]
KeyError: u'contantLine'

*

1 个答案:

答案 0 :(得分:0)

graphite.com/render/?target=constantLine(123.456)&format=json

返回

[{"target": "123.456", "datapoints": [[123.456, 1381399794]]}]

这不是你想要的吗?如果您希望石墨返回纯123.456,则必须编辑代码并覆盖结果的显示方式。

  1. functions.py
  2. 中添加新功能customConstantLine(requestContext, value)
  3. 当返回的函数为123.456时,覆盖渲染类以打印纯customConstantLine()
  4. 单挑:您的编辑还必须考虑返回多个目标的情况。

    编辑:

    修补你的functions.py!如果您不想升级Graphite add -

    def constantLine(requestContext, value):
      start = timestamp( requestContext['startTime'] )
      end = timestamp( requestContext['endTime'] )
      step = (end - start) / 1.0
      series = TimeSeries(str(value), start, end, step, [value, value])
      return [series]