Graphite和Statsd中的命名模式

4
问题描述: 我有一个模块能够执行以下功能。
delete/folder
delete/file
move/folder
move/file

这个应用程序运行在多个主机上。我无法找到更好的命名空间模式来将其存储在statsd中:

我考虑了以下模式:

<env>.<app>.<action>.<object>.<host>.exec_time
<env>.<app>.<action>.<object>.<host>.failed
<env>.<app>.<action>.<object>.<host>.succeeded

我正在考虑的第二种模式是:
<env>.<app>.<object>.<action>.<host>.exec_time
<env>.<app>.<object>.<action>.<host>.failed
<env>.<app>.<object>.<action>.<host>.succeeded

我可以有更多像这样的模式吗?
<env>.<app>.<object>.<action>.exec_time.<host>
<env>.<app>.<object>.<action>.failed.<host>

我不知道哪种模式比较好,也不知道为什么。你能给些建议吗?

目前,我考虑以下指标。

  1. 全局 QOS
  2. 全局动作级别 QOS
  3. 全局对象级别 QOS
  4. 主机 QOS
  5. 主机动作级别 QOS
  6. 主机对象级别 QOS
1个回答

7

这非常取决于你的需求。已经有了一些通用的规则(如常识),你可能已经遵循了,但整个主题非常个体化。

我确实遇到过一个很好的指南,关于这个主题。来自该指南的内容:

<命名空间>.<被检测部分>.<目标(名词)>.<动作(过去式动词)>

例如:

accounts.authentication.password.attempted

虽然该指南提供了一些不错的见解,但我认为还需要进行一些试错。在我们公司,我们有数百个指标,花费了一段时间来对它们进行组织。您还应该学习如何从Carbon中删除不必要的指标!这将有助于清除Graphite界面中的垃圾数据,以避免看到无用信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接