以编程方式访问 Graphite 数据的最佳方式是啥? [关闭]

Posted

技术标签:

【中文标题】以编程方式访问 Graphite 数据的最佳方式是啥? [关闭]【英文标题】:What is the best way to access Graphite data programmatically? [closed]以编程方式访问 Graphite 数据的最佳方式是什么? [关闭] 【发布时间】:2013-12-03 02:41:02 【问题描述】:

从 Graphite 渲染 API 访问数据的最佳方式是什么?

https://graphite.readthedocs.org/en/latest/render_api.html#data-display-formats

是否有兼容 JVM 的客户端实现? 或者有可能使用其他 API 来检索这些数据?

我确实意识到这种格式是自我描述的,它不是一门火箭科学,但重用和贡献而不是从头开始编写会很棒。

【问题讨论】:

所以答案是——目前没有合适的Java客户端。 【参考方案1】:

正如您提到的,渲染 api 允许以下变量以及 API 调用-

&format=png
&format=raw
&format=csv
&format=json
&format=svg

对于诸如 的实现,您可以直接进行 curl 调用,例如:

curl "http://graphite.com/render/?target=carbon.agents.host.creates&format=json"

调用会返回:

[
    "target": "carbon.agents.ip-10-0-0-111-a.creates", 
    "datapoints": [
        [4.0, 1384870140], 
        [1.0, 1384870200], 
        [18.0, 1384870260], 
        [0.0, 1384870320], 
        [4.0, 1384870380], 
        [12.0, 1384870440], 
        [3.0, 1384870500],
        [7.0, 1384870560], 
        [8.0, 1384870620], 
        [null, 1384870680]
    ]
]

因为它是这么简单,所以仅仅为了进行 curl 调用而实现一些东西是很蹩脚的。社区所做的是,他们将这些用作自定义前端、查询警报脚本、nagios 插件等的基本构建块。

您是否正在寻找更具体的内容?

【讨论】:

感谢您的回复!我真的很懒,目前写了几百行代码来创建一个包装器,所以我想知道是否有人这样做过。 有一些非常有趣的函数可以节省大量时间和/或算术。例如,target=groupByNode(Application.timers.production.machinerole.*.*.*.message.time,6,"averageSeries") 将对大约第 6 个深度的整个子树进行分组和平均。 @erbdex:我有一个问题:有没有办法返回 Graphite 中可用的所有目标(所有路径/指标)?

以上是关于以编程方式访问 Graphite 数据的最佳方式是啥? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式搜索 CNN 头条新闻的存档?

以编程方式填充组合框 dojo (1.8) 的最佳方法是啥?

为 ASP.NET MVC 项目设置数据访问的最佳方式是啥?

存储数据(表)的最佳方式并易于访问以表示它

使用 Javascript 以编程方式创建 Azure 存储帐户的最佳选择是啥?

以编程方式读取 ildasm 输出的最佳方法是啥