在12因子应用中,应如何将指标发送到指标监控服务器?

时间:2016-06-10 12:34:29

标签: metrics 12factor

12因素应用宣言推荐writing all log output to stdout。如果您的服务/应用程序在docker容器中运行,这非常容易实现。然后,您可以使用docker日志驱动程序将日志发送到日志托运者,如fluentd,然后可以将它们发送到elasticsearch进行分析或类似HDFS进行长期存储。

虽然很清楚如何处理日志,但似乎没有关于如何处理指标的任何指导。例如,我们可能希望跟踪每个请求所花费的时间,错误率以及我们服务的其他内容。

可以让服务直接发送指标,但这似乎违反了12因素应用原则。此外,如果度量服务器出现故障,或者服务出现故障,我们需要处理将度量标准写入磁盘以及其他类似写入日志的功能,这会增加复杂性。

一种可能的解决方案是将指标编写到stdout并流利地过滤它们。但在这种情况下,我们将日志和指标混合在一起,我们需要为日志和指标区分它们设置格式,这可能不是我们不编写的服务的选项。

在12因子应用中,如何将应用/服务的指标发送到指标服务器?

1 个答案:

答案 0 :(得分:0)

度量服务器与任何其他依赖项实际上没有任何不同,例如数据库或其他。依赖关系位置是通过环境变量(http://12factor.net/config)配置的,因此请使用它来传入应用程序应发送其指标的位置。

指标服务出现故障的问题可能超出配置范围。应用程序如何处理其中一个不可用的依赖项实际上更多的是应用程序设计问题。您可以选择在RAM或某种短暂的文件系统中缓冲一定量,或者只删除任何无法发送的内容 - 您的选择。关键是该位置是针对该环境配置的,其他任何问题都是设计问题。

只是我的2c,HTH。