Airbnb在iOS上的页面性能得分
This is a continuation of our series on Airbnb’s Page Performance Score, a score that measures multiple performance metrics from real users on any platform. Series: Part 1 and Part 2.
这是我们关于以下系列的继续 Airbnb的页面性能得分,这是一个衡量任何平台上真实用户的多种性能指标的分数。系列。 第一部分 和 第二部分.
At Airbnb, we created the Page Performance Score to provide our engineers and data scientists a multitude of user-centric performance metrics to better understand and improve our products. In this post, we will dive deeper into how we define these metrics and instrument them on iOS.
在Airbnb,我们创建了页面性能评分,为我们的工程师和数据科学家提供了大量以用户为中心的性能指标,以更好地了解和改进我们的产品。在这篇文章中,我们将深入探讨我们如何定义这些指标并在iOS上对其进行测量。
Page System
页面系统
The entire customer journey on Airbnb is divided into different pages, each of which has its own measured Page Performance Score (PPS). In order to support this page-based performance tracking system, we built a standardized infrastructure that enables engineers to configure pages representing their features.
Airbnb上的整个客户旅程被划分为不同的页面,每个页面都有自己衡量的页面性能得分(PPS)。为了支持这种基于页面的性能跟踪系统,我们建立了一个标准化的基础设施,使工程师能够配置代表其功能的页面。
On iOS, a page is associated with a UIViewController. We collect performance data throughout a UIViewController’s lifecycle and only emit the logging event on viewDidDisappear. This logging event cannot be created or sent without a PageName, a universal page identifier.
在iOS上,一个页面与一个UIViewController相关。我们在UIViewController的整个生命周期中收集性能数据,只在viewDidDisappear时发出日志事件。如果没有PageName(一个通用的页面标识符),这个日志事件就不能被创建或发送。
Instrumentation
仪器仪表
Due to the many edge cases and complexities involved in instrumenting these metrics, we created a Page Performance Score state machine class, called PPSStateMachine. This class encapsulates all the logic to track and compute the performance metrics and generate logging events. Any engineer who wants to log a PPS event can do so by obtaining the PPSStateMachine associated with their UIViewController and calling the relevant methods during the UIViewController’s lifecycle events. To make things even simpler, we’ve built addition...