2017-09-22 28 views
3

我正在考虑向普罗米修斯出口一些指标,我对我打算做的事情感到紧张。普罗米修斯的高基数标签有多危险?

我的系统由工作流引擎组成,我想跟踪工作流中每个步骤的一些指标。这看起来是合理的,其标准度量标准为wfengine_step_duration_seconds。我的问题是,我的所有工作流程都有数千个步骤。

根据文档here,我不应该以编程方式生成名称的任何部分。那就排除了使用诸如wfengine_step1_duration_secondswfengine_step2_duration_seconds之类的名字,因为步骤名称是编程式的(它们会不时地变化)。

该解决方案然后是步骤名称的标签。但是,这也会带来一个问题,因为文档herehere对于使用高基数的标签有相当强的警示。具体而言,他们建议保持“指标的基数低于10”,基数超过100,“研究替代解决方案,如减少维数或将分析从监测中移开”。

我正在查看低数千(1,000到10,000)的标签值的数量。鉴于其他指标的数量不会非常大,这是普罗米修斯的适当用法,还是我应该将自己限制在更通用的指标上,例如每个步骤的单个合计步长而不是单个持续时间?

回答

1

针对您最大的指标保持在100基数以下的指导方针假设您有1000个服务副本,因为这是一个合理安全的上限。如果您知道每个使用此代码的人都会拥有较少的副本,那么可以在仪表中拥有更高的基数。

说到这一点,数以千计的标签仍然需要注意。如果它已经成千上万,那么它有几十万呢?长期来看,您可能必须将这些数据移至记录基数的日志,因此您现在可能希望这样做。

+0

但是,如果没有区分这些副本与标签,那么它有多少副本呢? – Mark

+0

我越想越觉得这个限制没有意义(或者我误解了某些东西)。例如,对于假设的CPU使用率度量标准,是否将主机名放在度量标准名称中(以编程方式),使用标签(因此将自己限制为10个或100个服务器),或者根本不打算每个服务器的度量标准(因此失去修复破损的服务器的能力)? – Mark

+0

Cardinaity是基数,无论是在指标还是标签中。 –