我考虑将一些指标输出到普罗米修斯,而且我对我计划做的事情感到紧张。
我的系统由工作流引擎组成,我想跟踪工作流中每个步骤的一些指标。这似乎是合理的,使用称为wfengine_step_duration_seconds
的衡量指标。我的问题是我的所有工作流程都有数千个步骤。
根据文档here,我不应该以编程方式生成名称的任何部分。这就排除了wfengine_step1_duration_seconds
和wfengine_step2_duration_seconds
等名称的使用,因为步骤名称是程序化的(它们会不时变化)。
解决方案,然后是步骤名称的标签。但这也存在问题,因为文档here和here强烈反对使用具有高基数的标签。具体来说,他们建议将指标的基数保持在10"以下,并且对于基数超过100,"调查其他解决方案,例如减少维度数量或将分析从监控中移开"
我正在查看数千个(1,000到10,000)的标签值。鉴于其他方面的指标数量非常大,这是普罗米修斯的适当用法,还是应该将自己局限于更通用的指标,例如单个聚合步骤持续时间而不是每个步骤的个别持续时间? / p>
答案 0 :(得分:2)
根据您的最大指标保留在100基数以下的准则假设您拥有1000个服务的副本,因为这是一个相当安全的上限。如果您知道使用此代码的每个人都将拥有较少数量的副本,则可以在检测中获得更高的基数。
说,成千上万的标签仍然值得注意。如果它已经成千上万,它需要多长时间才能成千上万?从长远来看,你可能不得不将这些数据移动到给定基数的日志中,所以你现在可能希望这样做。