- 필수 기능
- 시작하기
- Glossary
- 표준 속성
- Guides
- Agent
- 통합
- 개방형텔레메트리
- 개발자
- Administrator's Guide
- API
- Datadog Mobile App
- CoScreen
- Cloudcraft
- 앱 내
- 서비스 관리
- 인프라스트럭처
- 애플리케이션 성능
- APM
- Continuous Profiler
- 스팬 시각화
- 데이터 스트림 모니터링
- 데이터 작업 모니터링
- 디지털 경험
- 소프트웨어 제공
- 보안
- AI Observability
- 로그 관리
- 관리
RUM captures events from your browser applications and lets you explore them to troubleshoot slow pages and code errors, or to analyze application usage. All captured events are available in RUM Explorer for querying, dashboarding, and alerting.
If your browser application is large, it’s likely been built by multiple web development teams. Each team has an area of ownership that they focus on when troubleshooting errors, slowness, or analyzing usage.
This guide describes how to define an application in RUM. In addition, it covers common use cases in large applications where web development teams may require visibility into the health and usage of their area of ownership.
The first step to tracking and analyzing your browser application is to create a RUM application. A RUM application maps a browser application available at a given domain that renders the experience for what customers would perceive as a website.
Whether your browser application is a single page application or is one that uses server-side rendering, the Browser RUM SDK automatically tracks route changes and creates a view event for every route change.
@view.url
, such as https://www.yourwebsite.com/about
.@view.url_path
, such as /about
.If, for example, automatically capturing pageviews by route change does not provide enough visibility, you can specify a different name for your pages. To do this, you can track views manually and assign them each a name available at @view.name
, such as “About Us”.
The Browser SDK automatically tracks a set of industry-standard timings, Core Web Vitals, page loading times and more.
In addition, you can track the time it takes for a specific item on the page to render, such as an image or a component. You can track more timings by capturing them in code, then pasting the values in your view events. For details on how to do this, see the documentation on adding your own performance timing.
Once timings are captured, they are available like any auto-collected timing. You can use timings to do the following:
If your browser application uses UI components that are present across multiple pages in one application and/or across multiple applications, you can use custom instrumentation to track the usage and rendering time of these components across pages.
Generate a custom action to track the lifecycle of components across pages. Let’s imagine the /myorders
page and the /search
page both use the search box component below.
You can track the following milestones in the lifecycle of the search component by sending a custom action every time:
search_component_render
: The search component renderssearch_component_input
: The search component gets input from the user keyboardsearch_component_suggestions_display
: The search component displays suggestionsThe custom action then automatically carries attributes for:
@view
: The page it was rendered in@geo
: Geolocation information (if enabled)@session
: The session identifier of the userWith custom instrumentation, the custom action can be assigned attributes for:
datadogRum.addAction('search_component_render', {
'team': 'Team A', // for example, 42.12
'time_to_full_render': 16.5, // for example, ['tomato', 'strawberries']
})
From the RUM Explorer, you can then analyze:
Imagine a web development team owns a set of pages like the example below.
Inside your RUM application, create services for each set of pages owned by a team by doing the following:
trackViewsManually
to true
."purchase"
service for the pages available at /checkout
, /payment
, /confirmOrder
."catalog"
service for the pages available at /beds
, /chairs/123
, /search
.Get insights into the performance or the adoption of a given team’s scope by using the service
attribute in RUM:
service
to get a holistic view for a team’s scopeservice
attribute to filter:Components are tracked using custom actions mentioned above:
추가 유용한 문서, 링크 및 기사: