从桌面客户端应用程序收集分析统计信息

Gather profiling statistics from desktop client applications

我有一些桌面应用程序的大量客户端实例。 此应用程序的一些用户在使用某些特定的复制步骤和他们的私人执行上下文时遇到性能问题(即假设使用一些他们不想与任何人分享的私人小猫照片)。

我想尽量减少与用户的交流次数,并在我的开发环境中成功重现他们的问题。 由于法律原因,我不能使用他们的执行上下文。

所以我在这里看到的唯一选择是收集应用程序使用情况的统计信息(即方法调用、CPU 负载因子)。 理想情况下,我想简化用户的生活,当他们看到一些问题时,只要求他们 enable/disable 在应用程序中收集统计信息。所有其他(即捕获自定义统计信息、将统计信息传输到支持)将在后台完成。

看起来是一个相当普遍的需求。 是否有任何解决方案可以帮助实现所描述的行为?

JProfiler 允许您免费分发分析代理并在 离线模式 下运行它。通过将特殊的 VM 参数添加到 JVM 的调用 (-agentpath:...) 来激活分析代理。

然后就可以使用Controller class记录数据和保存快照到磁盘了。在桌面应用程序中用于记录统计信息的 start/stop 按钮将调用这些方法。

如果应用程序被混淆,JProfiler 可以在您打开快照时对其进行反混淆处理。

要设置这一切,请在 JProfiler 中创建一个本地启动的会话,然后选择

Sesssion->Conversion Wizards->Convert Application Session To Redistributed Session

免责声明:我公司开发了 JProfiler。

分布式追踪正是我所需要的。

Google 有一个 Dapper projectZipkin 来自 Twitter,具有许多集成,包括 Spring 通过 Sleuth。