【问题标题】:Naming statsd metrics for short lived streams为短期流命名 statsd 指标
【发布时间】:2014-03-26 00:56:18
【问题描述】:

我正在尝试对统计数据进行建模以提交给 statsd/graphite。但是,我正在监视的是以“会话”为中心的。例如,我有一个实时玩的游戏。服务器上有多个活动的游戏实例。每个游戏都有多个(并且数量不定)参与者。每个游戏实例都有一个唯一的 ID,每个玩家也是如此。 我想跟踪(和绘制)每个玩家的统计数据,然后将指标向上滚动到整个实例,然后再滚动到游戏的所有实例。例如,在给定时间可能有两个游戏实例处于活动状态。假设每个游戏中有两个玩家

GameTitle.RealTime.VoiceErrors.game_instance_a.player_id_1 10
GameTitle.RealTime.VoiceErrors.game_instance_a.player_id_2 20
GameTitle.RealTime.VoiceErrors.game_instance_b.player_id_3 50
GameTitle.RealTime.VoiceErrors.game_instance_b.player_id_4 70

其中 game_instances 和 player_ids 是 128 位数字

我希望能够看到 game_instance_a 的所有语音错误的值为 30 而整个系统的所有语音错误都是 150

鉴于此,我有三个问题

  1. 您对命名指标有什么指导。
  2. 指标名称中包含“动态”标识符是否符合规定?
  3. 他们对此有什么规模限制。如果我有 10 万个游戏实例 假设一个游戏中有多达 1000 名玩家,这会杀死 statsd/graphite 吗?

谢谢!

【问题讨论】:

    标签: monitoring graphite statsd


    【解决方案1】:

    您会在命名指标方面给出什么指导?

    Graphite 建议使用"Volatile path components should be kept as deep into the hierarchy as possible"。这实质上意味着,如果您可以将经常唯一的指标部分推送到“存储桶”的末尾而不影响您的分组查询,那么您应该尝试这样做。

    这是关于使用 Graphite 的 great post,其中包括命名建议。这里是来自 Jason Dixon 的another one with additional info(一般来说,石墨材料的绝佳来源)。

    指标名称中包含“动态”标识符是否符合规定?

    我通常会尽量避免在指标名称中使用标识符,除非它们的数量非常少(Graphite 将为每个指标名称存储一个 .wsp 文件,如果您决定更改配置,您将很难重新调整大小或调整存储设置。此外,Graphite UI 将为每个指标名称提供一个“文件夹”,因此您可以轻松地使 UI 无法使用。

    在您的情况下,我可能会绘制游戏实例总数、玩家总数和错误数(按类型)等图表。此外,我可能会尝试跟踪每个实例的玩家(通常)如果我有这种能力(即在我的应用程序中存储每个实例的状态),那么每个实例可能会出现错误(同样不知道实际实例。例如 GameTitle.RealTime.PerInstance.VoiceErrors)。

    Logstash、弹性搜索、Kibana

    我建议使用实例和播放器 ID 记录此错误信息,并使用 logstash 将您的日志发送到 elastic search and kibana。然后我会观看 Graphite 进行实时错误和健康异常检测,并使用 Kibana(以及下面的 Elastic Search)进行更深入的挖掘。

    对此有什么规模限制。如果我有一个 100K 的游戏实例,并且游戏中有多达 1000 名玩家,这会杀死 statsd/graphite 吗?

    Statsd 对此应该没有问题,因为它只是充当 - 大部分 - 愚蠢的聚合器。虽然它确实在内部保持某种状态,但我预计不会出现问题。

    我认为内部 Graphite Whisper Storage 本身不会有问题,因为它只是使用文件和文件夹。但是,正如我上面提到的,Graphite Web UI 将无法使用,我认为您还会面临其他可管理性问题的风险。

    总结

    在名称末尾保留易失(动态)指标桶,避免超过几百个。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多