使用 Sentry Flutter 进行移动端网络监控

2023年9月9日修改
本文从以下问题出发,以解决实际的业务痛点为目标阐述实践经验
1.
为什么要做移动端的网络监控
2.
为什么使用 Sentry 来做监控
3.
如何用 Sentry Flutter 做网络监控
4.
Self Hosted 还是 Cloud?
为什么要做移动端的网络监控
移动端的网络性能监控对于应用的成功和用户体验至关重要
1.
用户体验优化:移动应用的网络性能直接影响用户的满意度和使用体验。通过监控网络性能,可以及时发现并解决潜在的性能问题,提高应用的响应速度和加载时间,从而提升用户体验。
2.
问题定位与解决:监控移动端网络性能可以帮助开发团队快速定位并解决网络相关的问题,如慢速加载、连接错误或请求超时。这有助于减少用户投诉,并提高应用的可靠性和稳定性。
3.
优化网络资源使用:通过监控移动端网络性能,可以了解应用程序在不同网络环境下的性能表现,并根据实际情况优化网络资源的使用,确保应用在不同网络条件下都能正常运行。
4.
数据分析和决策支持:移动端网络性能监控可以提供大量有关应用程序在网络层面的数据。这些数据可用于分析用户行为、用户地理位置、网络连接速度等信息,为产品和业务决策提供支持。
在没有端到端网络监控的情况下,我们收到用户投诉,说网络访问很慢,排查起问题来没有足够的数据支撑。
为什么使用 Sentry 来做监控
移动端有很多数据营销的 sdk,我们很难用单一的某个 sdk 同时完成归因、事件分析、应用性能监控(APM)这些功能。所谓术业有专攻,一个 sdk 做得好不好,除了数据上报,更重要的是数据处理和可视化。
以 Google 的 Firebase 为例,同时有 Firebase Crashlytics、Firebase Performance、Firebase Analytics、Firebase Messaging 等 sdk,分别实现了如下功能:
崩溃监控
性能监控
事件分析
消息推送
简单来讲,Firebase 的功能大而全,但除了消息推送掌握了 Android 系统级服务的主导权外,其他的垂直领域并没有明显优势,这就给了第三方服务机会。
Sentry 从很早就是 Flutter 官方首选的崩溃监控平台,它的优势就是崩溃监控和性能监控。
如果你用它来做用户行为事件上报和分析,那你可找错 sdk 了,但如果你用它来做 Http 网络监控,那简直就是量身定制。
Sentry 相比 Firebase 最大的优势在于以下几点:
Sentry 自身的上报没有地区限制,不存在被墙的问题