缺少json格式的值写入

2024-09-30 16:23:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我在尝试从graphite webapp请求json格式的数据时缺少最后一个值。以下内容来自render/视图.py在graphite web应用程序中。我试着用阈值函数来得到恒定的数据。在使用constantLine/threshold函数时,如何强制graphite webapp以json格式输出两点。在

对于原始格式:

if format == 'raw':
      response = HttpResponse(mimetype='text/plain')
      for series in data:
        response.write( "%s,%d,%d,%d|" % (series.name, series.start, series.end, series.step) )
        response.write( ','.join(map(str,series)) )
        response.write('\n')

我的输出是:

^{pr2}$

但是,对于写入json

^{3}$

我的输出是:

[{"target": "stats.gauges.server1.throughput", "datapoints": [[1190.0, 1387364980], [1190.0, 1387364990], [1190.0, 1387365000], [1190.0, 1387365010], [1190.0, 1387365020], [1190.0, 1387365030]]}, {"target": "hello", "datapoints": [[45, 1387364979]]}]

理想情况下,我希望:

[{"target": "stats.gauges.server1.throughput", "datapoints": [[1190.0, 1387364980], [1190.0, 1387364990], [1190.0, 1387365000], [1190.0, 1387365010], [1190.0, 1387365020], [1190.0, 1387365030]]}, {"target": "hello", "datapoints": [[45, 1387364979], [45, 1387365030 ]]}]

我猜虫子在这里:

def constantLine(requestContext, value):
  """
  Takes a float F.

  Draws a horizontal line at value F across the graph.

  Example:

  .. code-block:: none

    &target=constantLine(123.456)

  """
  start = timestamp( requestContext["startTime"] )
  end = timestamp( requestContext["endTime"])
  #step = int((end - start) / 1)
  step = 5000
  series = TimeSeries(str(value), start, end, step, [value])
  return [series]

Tags: jsontargetvalueresponse格式stepstartwebapp
1条回答
网友
1楼 · 发布于 2024-09-30 16:23:14

石墨只给出一个常数线函数或阈值函数的值。考虑到我们只使用graphite查询json中的值,并使用第三方图表工具,如D3、Rickshaw或Highcharts,那么我们将遇到只有一个值需要绘制的问题。在这种情况下,我们需要修改constantLine函数,如下所示:

start = timestamp( requestContext["startTime"] )
  end = timestamp( requestContext["endTime"])
  #step = (end -start -1)/1.0
  step = 10
  val_tmp = [value] * int((end-start))
  series = TimeSeries(str(value), start, end, step,val_tmp)
  return [series]

如果使用django1.6,不要忘记按照[here](https://github.com/graphite-project/graphite-web/commit/fc3f018544c19b90cc63797d18970a4cc27ef2ad#diff-e383725a971fca0685db19bfe7c65b32)更改导入函数

希望这对某人有帮助。在

相关问题 更多 >