尝试在一次调用中获取多个图形的原始Graphite数据...是否可以嵌套目标?

时间:2012-12-03 23:14:51

标签: json graph get graphite graphiti-js

为了使我的Graphite图形更具可定制性和交互性,我正在从Graphiti切换到获取原始数据并使用Javascript库(flot)绘制它。我每隔10秒就从Graphite获取原始的JSON数据,但是我希望在一个GET请求中获取所有数据。我可以要求多个目标,但我还没有找到一种方法来组织它们。理想情况下,我想找到一种方法将与每个图形相关的目标嵌套到它们自己的JSON对象中。我试图避免必须解析所有目标名称并将它们分类到透视图中。

实施例: 如果我做这样的事情:

mysite.com/graphite/render/?format=json&from=-1minute&target=aliasByNode(stats.production.api.response_codes.*,6)&target=aliasByNode(stats.production.app.*.CPUUtilization.Average,3)

我得到这样的东西:

[ {"target": "400", "datapoints": [...]},
{"target": "500", "datapoints": [...]},
{"target": "cpu.5", "datapoints": [...]},
{"target": "cpu.1", "datapoints": [...]},
{"target": "cpu.2", "datapoints": [...]},
{"target": "cpu.3", "datapoints": [...]},
{"target": "cpu.4", "datapoints": [...]},
{"target": "cpu.5", "datapoints": [...]} ]

我想回到这样的事情:

[ {"api_errors": {
    {"target": "400", "datapoints": [...]},
    {"target": "500", "datapoints": [...]} },
  {"cpu_utilization": {
    {"target": "cpu.5", "datapoints": [...]},
    {"target": "cpu.1", "datapoints": [...]},
    {"target": "cpu.2", "datapoints": [...]},
    {"target": "cpu.3", "datapoints": [...]},
    {"target": "cpu.4", "datapoints": [...]},
    {"target": "cpu.5", "datapoints": [...]} }
} ]

有没有人有任何想法?

1 个答案:

答案 0 :(得分:2)

很抱歉,但这是不可能的 - Graphite网络应用程序并非专为该用例而设计。

您可以随时在graphite-web app应用上使用新功能发出问题/拉取请求。