在生产中被动记录反应应用程序性能

时间:2017-12-22 18:04:41

标签: performance reactjs logging monitoring production

我想知道是否有任何实用程序/模式/范例/标准用于监控生产中的React应用程序。

我已经看过很多关于React性能调试的文档,建议使用Chrome开发工具(这很好,但不是监控最终用户性能的被动方式)

如何记录数据以了解用户等待组件装载或渲染的时间?

到目前为止,我唯一想到的是创建一个扩展Loggable[Pure]Component的{​​{1}},其构造函数React.[Pure]ComponentcomponentWillMount/Update方法会记录渲染/挂载时间到服务器。然后,我想要监视的组件可以扩展这些组件,如果需要,可以在执行自己的工作之前在生命周期方法中调用componentDidMount/Update。要明确知道这些指标所属的组件,我必须在super()类中公开一个方法,它执行类似于Loggable[Pure]Component的操作,然后每个派生类都必须在构造

这一切看起来都很可怕,我非常希望有些人已经实施了,但到目前为止我还没有找到任何东西。

1 个答案:

答案 0 :(得分:0)

我会看看一些APM工具,它们处理前端监控和后端监控。他们都支持反应,人们一直在使用这些用例。这真的取决于你在监控中的目标,你这样做是为了好玩吗?你有创业公司吗?你在为一家大企业工作吗?这个市场有3个主要参与者。

AppDynamics - Enterprise APM,处理最复杂的应用程序。统一产品提供SaaS或内部部署。具有深层数据库,服务器和其他监控功能。 Dynatrace - 企业APM,可以很好地处理复杂的应用程序。分散的产品组合,但SaaS产品很好。 SaaS产品在某些方面的深度有限。处理好服务器和云基础架构监控。 New Relic - 简单而便宜(比其他人更好),不像其他选项那样深入。倾向于受小公司欢迎。做好监控云基础架构服务的工作。

这些产品都能满足您的需求,但这取决于您对数据的目标以及您计划如何分析数据。

如果你想要一些免费且功能较少的东西,有办法用开源做到这一点,但你必须站起来管理一个非常复杂的堆栈。这是一个选择。

查看回旋镖,它可以记录/提取您正在寻找的指标,它不会“理解”反应,但它应该有效。该数据可以发布到许多不同的系统。最适合的可能是ELK堆栈(开源日志分析等)。以下是将这两者结合在一起以提供浏览器性能分析https://github.com/naukri-engineering/NewMonk

的几个示例之一