We're sunsetting PodQuest on 2025-07-28. Thank you for your support!
Export Podcast Subscriptions
cover of episode 115. Demystifying the User Experience with Performance Monitoring

115. Demystifying the User Experience with Performance Monitoring

2021/5/11
logo of podcast Code[ish]

Code[ish]

AI Deep Dive AI Chapters Transcript
People
G
Greg Noakes
I
Innocent
Topics
Innocent: 作为Raygun的开发者,我认为Raygun提供的工具能够帮助开发者通过崩溃报告、浏览器性能和应用性能监控来提高软件质量。我关注用户在高峰期的体验,并以此为基础反向追踪支持应用的技术。我会检查代码路径的执行频率,是否存在N+1查询问题,并考虑重构代码和数据模型,以便数据能够以更一致和及时的方式从数据库中提取。Raygun可以将浏览器中的页面加载性能数据与服务器端的性能和崩溃报告关联起来,提供全面的客户体验视图。APM不会跟踪每个用户的全部trace,而是根据采样率来减少数据噪音,只提供有用的信息。 Greg Noakes: 我是Greg Noakes,我想了解Raygun是什么,以及你在Raygun的工作内容。我想知道Raygun是否提供工具来检查代码在运行环境中的实际表现并获得反馈?我喜欢分析单个请求,查看在不同函数和后端服务上花费的时间,以便优化高访问端点的性能。Raygun能帮助我做到这一点吗?我想知道Raygun如何跟踪用户在应用程序中的旅程,以便查看用户访问的所有端点并了解他们的个人体验?

Deep Dive

Chapters
Innocent Bindura from Raygun shares his holistic approach to performance monitoring, emphasizing that the absence of crash reports doesn't guarantee optimal performance. He stresses the importance of considering end-user experience, especially during peak periods, and then working backward to identify technological issues.
  • Absence of crash reports doesn't equal optimal performance
  • Holistic approach: consider end-user experience during peak periods, then investigate supporting technology
  • Analyze load times, response codes, browser vs. server-side issues
  • Examine surrounding applications, exceptions, queries, and code paths
  • Optimize database queries and data presentation for timely response

Shownotes Transcript

In this episode of Codeish, Greg Nokes, distinguished technical architect with Salesforce Heroku, talks with Innocent Bindura, a senior developer at Raygun about performance monitoring.

Raygun provides tools and utilities for developers to improve software quality through crash reporting and browser and application performance monitoring.

According to Innocent, the absence of crash reports does not mean that software is performing well. Software can work - but not be optimal. Thus, Innocent takes a holistic view:

“I look at the size of my audience, and if it's something sizable, that gets a lot of traffic, for example, a shopping cart that gets a lot of traffic on a Black Friday. I would want to be in a comfort zone when I know that during the peak periods my application is still performing, so I tend to look at the end-user, how their experience looks like during very high peak periods. And from there I start working my way back to the technology that is supporting that application.”

Raygun really shines in monitoring the time spent in different functions and helping to improve the performance of highly hit endpoints. This includes performance telemetry of browser pages, the current application running, and server-side performance application monitoring. Raygun has lightweight SDKs or lightweight providers that can be injected into code. These provide a catch-all to deal with unhandled exceptions. They also encourage best practices for developers.

Greg asks how to track a user's journey through the application in order to see the endpoints being hit, and the user experience. A RAM tool can provide opt-in user information. In the case of Javascript, an SDK is integrated with code to create a session ID that follows the user through every single page that they visit. This internal ID can also be associated with crash reports.

Over time, Raygun can provide a complete picture of how the user session performed “from the point they visited your page, logged in, visited a couple of pages, and then left your application. The crash reports and the traces relating to that particular user are also tied up with that session on the Raygun side.” Innocent highlights a sampling strategy that reduces the noise of APM data.

Raygun also provides a birds-eye application view that provides aggregated stats on application performance: “For the run product, you will have each page aggregated over time, regardless of how many users you've had in a period of time. You want to look at the individual sessions. That information is aggregated and you're able to see, for example, your median, your P90, and P99.”

Innocent focuses on the P99 figure because “whoever is in there has had a terrible time, and that forms the basis of my investigations. I want to know why there are so many sessions in that P99, and that P99 is probably a six or seven-second load time. I want to move that to a sub-three-second.” Innocent provides a definition of P99 for new customers undergoing the journey of performance optimization.

Next, Innocent asserts that decisions should be based on numbers and empirical evidence. He has found that the use of actionable data has enabled him to redesign applications and focus on the mission-critical command needed in real time.

Innocent concludes: “I think the life of a developer is an interesting one. We fit in everywhere situations permit, and we definitely take different routes to develop our careers. But ultimately what we should all be concerned about is the quality of the products that I produce. This definitely reflects on my capability as a software developer. What sets me apart from the next developer is not the number of cool techniques I can do with code, it's delivering a product that actually works and what better way of knowing what works when you actually measure things. Everybody should live by the philosophy of assuming nothing, measure everything. Everything and everything should be measured.”

Links from this episode

Raygun)