我想知道是否有任何实用程序/模式/范例/标准用于监控生产中的React应用程序。
我已经看过很多关于React性能调试的文档,建议使用Chrome开发工具(这很好,但不是监控最终用户性能的被动方式)
如何记录数据以了解用户等待组件装载或渲染的时间?
到目前为止,我唯一想到的是创建一个扩展Loggable[Pure]Component
的{{1}},其构造函数React.[Pure]Component
和componentWillMount/Update
方法会记录渲染/挂载时间到服务器。然后,我想要监视的组件可以扩展这些组件,如果需要,可以在执行自己的工作之前在生命周期方法中调用componentDidMount/Update
。要明确知道这些指标所属的组件,我必须在super()
类中公开一个方法,它执行类似于Loggable[Pure]Component
的操作,然后每个派生类都必须在构造
这一切看起来都很可怕,我非常希望有些人已经实施了,但到目前为止我还没有找到任何东西。
答案 0 :(得分:0)
我会看看一些APM工具,它们处理前端监控和后端监控。他们都支持反应,人们一直在使用这些用例。这真的取决于你在监控中的目标,你这样做是为了好玩吗?你有创业公司吗?你在为一家大企业工作吗?这个市场有3个主要参与者。
AppDynamics - Enterprise APM,处理最复杂的应用程序。统一产品提供SaaS或内部部署。具有深层数据库,服务器和其他监控功能。 Dynatrace - 企业APM,可以很好地处理复杂的应用程序。分散的产品组合,但SaaS产品很好。 SaaS产品在某些方面的深度有限。处理好服务器和云基础架构监控。 New Relic - 简单而便宜(比其他人更好),不像其他选项那样深入。倾向于受小公司欢迎。做好监控云基础架构服务的工作。
这些产品都能满足您的需求,但这取决于您对数据的目标以及您计划如何分析数据。
如果你想要一些免费且功能较少的东西,有办法用开源做到这一点,但你必须站起来管理一个非常复杂的堆栈。这是一个选择。
查看回旋镖,它可以记录/提取您正在寻找的指标,它不会“理解”反应,但它应该有效。该数据可以发布到许多不同的系统。最适合的可能是ELK堆栈(开源日志分析等)。以下是将这两者结合在一起以提供浏览器性能分析https://github.com/naukri-engineering/NewMonk
的几个示例之一