度量标准的 StatsD/Graphite 命名约定
Posted
技术标签:
【中文标题】度量标准的 StatsD/Graphite 命名约定【英文标题】:StatsD/Graphite Naming Conventions for Metrics 【发布时间】:2013-08-09 02:30:48 【问题描述】:我正在开始检测 Web 应用程序,并使用 StatsD 收集尽可能多的相关指标。例如,以下是我目前使用的一些高级指标名称的示例:
http.responseTime
http.status.4xx
http.status.5xx
view.renderTime
oauth.begin.facebook
oauth.complete.facebook
oauth.time.facebook
users.active
...还有很多很多。我现在正在努力解决的问题是为各种指标建立一致的层次结构和一组命名约定,以便当前的指标有意义,并且有逻辑桶可以在其中添加未来的指标。
我的问题有两个:
-
您收集了哪些您认为不可或缺的相关指标?
您使用什么命名结构对指标进行分类?
【问题讨论】:
Naming pattern in graphite and statsd 的可能重复项 【参考方案1】:这是一个没有明确答案的问题,但我们在 Datadog 上是这样做的(我们是托管监控服务,所以我们倾向于对这些事情着迷)。
1.哪些指标是必不可少的?这取决于旁观者。但在高层次上,对于每个团队来说,任何尽可能接近其目标的指标(这可能不是最容易收集的)。
系统指标(例如系统负载、内存等)收集起来微不足道,但很少有可操作性,因为它们很难可靠地将它们与可能的原因联系起来。
另一方面,对于任何负责确保新用户从使用产品的第一分钟起就感到满意的人来说,完成的产品导览次数很重要。 StatsD 让这类东西很容易收集。
我们还发现,任何团队的核心关键指标集都会随着产品的发展而变化,因此有一个持续的编辑过程。
这反过来意味着公司中的任何人都需要能够挑选对他们来说重要的指标。不要求任何权限,获取数据没有任何障碍。
2。命名结构 最高层次的层次结构是产品线或流程。我们的 Web 前端在内部称为 dogweb,因此该组件的所有指标都以 dogweb.
为前缀。下一级层次结构是子组件,例如dogweb.db.
、dogweb.http.
等
最后一层是被测量的东西(例如renderTime
或responseTime
)。
graphite 中未解决的问题是指标名称中指标元数据的编码(以及使用*
进行选择,例如dogweb.http.browser.*.renderTime
)它很聪明,但可能会妨碍。
我们最终在数据模型中实现了显式元数据,但这不在 statsd/graphite 中,所以我将省略细节。如果您想了解更多,请直接与我联系。
【讨论】:
以上是关于度量标准的 StatsD/Graphite 命名约定的主要内容,如果未能解决你的问题,请参考以下文章
spss19.0中,度量标准如何区分,以及角色栏是啥意思。谢谢!!!