- Subscribe to RSS Feed
- Mark as New
- Mark as Read
- Bookmark
- Subscribe
- Printer Friendly Page
- Report Inappropriate Content
Next Experience Inspector
Table of Contents
Articles Hub
Want to see all of our other articles and blogs related to UI Builder and Workspaces?
You can copy the link above and share it!
Overview
The Next Experience Inspector is a Chrome DevTools tab available from ServiceNow's Next Experience Developer Tools Chrome extension. It allows developers to easily inspect and debug Next Experience application pages in real time, helping you understand exactly how your UI components function behind the scenes.
Family Release: Xanadu
Starting and Stopping a Recording
- Manual Recording: Use this to capture a specific sequence of interactions. Click the
Record
button (a round red icon) to begin recording on the current page. Then perform the actions you want to profile (for example, clicking buttons, opening components, etc.). When done, click theStop
button. The Profiler will then generate the results for the time span you recorded. 'Manual recordings' are ideal for profiling user interactions or specific workflows after the initial page load. - Page Load Recording: Use this to profile the initial page load of a workspace or experience. Click the
Record Page Load
button (often depicted as a reload icon). This will trigger or wait for a full page refresh while capturing the page’s loading performance from the very start. Alternatively, you can start a recording and then manually refresh the page. The Profiler will automatically treat the navigation and load sequence as the profile. Recording page load is useful for analyzing how long the page and its components take to initialize.
Profiler Settings and Options
In the Settings panel, you can:
- Capture all Performance Counters: Toggle whether to collect any available performance counters (discussed later). If disabled, the Performance Counters tab will remain empty.
- Stop Recording after Page Load
- Enable Usage Tracking
- Capture all events: Choose which categories of component events or lifecycle phases to capture. For example, you might enable or disable low-level events if you want a more focused profile.
Timeline View
- Event Frequency Graph: At the very top of the timeline, a line graph plots the number of events occurring over time. Spikes or clusters in this graph indicate periods of high activity (e.g. many component updates firing at once). This helps identify performance-heavy moments at a glance.
- Time Range Sliders: The timeline includes draggable start and end handles (often displayed as small markers or vertical bars). By dragging these sliders, you can manually adjust the selected time range of interest. The area between the sliders is the active range that the Profiler will analyze in detail (the Summary and Events data will update to reflect only events in this range). This is useful for “trimming” the profile to focus on a particular segment (e.g. isolating the page load sequence or a specific user interaction).
- Zoom Controls: In the top-right corner of the timeline panel, you’ll find zoom in/out buttons (magnifying glass icons) and a fit-to-window control. These let you zoom into a shorter time interval for a closer look or zoom out to see the full timeline. You can also click-and-drag or use the mouse wheel to pan and zoom horizontally across the timeline.
- Filter: For precise control, use the Filter button (funnel icon) at the right end of the timeline to “Adjust timeline selection.” This opens a dialog allowing you to define start and end boundaries based on specific events. This is extremely helpful to zero in on a particular component’s lifecycle or any specific sequence of interest without manually hunting through timestamps.
- Reset: you can clear filters to restore the view of all events in the profile.
Flame Graph View
- Component Load Bars: The flame graph typically stacks components in a hierarchy. Top-level bars might represent high-level components or the overall page, and sub-bars beneath them (flames) represent nested components or processes contributing to that total time. The length of each bar is proportional to the time that component took to load or update. All bars together can give a sense of the cumulative time.
- Interactive Zoom: You can click on a bar in the flame graph to “zoom in” on that component
Summary tab
- Total Load Time: At the top of the Summary tab, you’ll see the total duration of the profile (for a full-page load recording, this is the page load time). If you have trimmed the timeline to a subset range, it will show the duration of that range as well.
- Event Count Summary: The Summary includes a visual breakdown of event types that occurred. Typically, this is shown as a chart (often a donut or pie chart) where each slice represents a category of events and its proportion. Each slice’s size corresponds to how many of that event were recorded.
- Breakdown by Event Type: Alongside or below the chart, the Summary may list each event type with its count. This is useful to identify if a certain type of event is happening excessively. For example, you might note that there were 50+ state update events, which could hint at a lot of reactive state changes, or perhaps an unexpectedly high number of re-renders for a component.
Events tab
- Page Load Time: seconds spent logging profile
- Event Time: duration of time (for security reasons the precision has been reduced by ~1ms by the browser. check the official documentation for more information on how to increase this to a microsecond: https://developer.servicenow.com/dev.do#!/reference/next-experience/xanadu/developer-tools/profiler-...)
- Event Type: Type of event (start, end, dispatch, etc)
- Component Tag: categorization tag of component
- Component ID: identification tag of component
- Interaction ID: alphanumeric identification for the interaction
- Details: specific details related to the triggered event (such as update, cause, type, value, etc)
- “All” vs “Component Aggregate” View: Like the Summary, the Events panel offers a toggle between listing All Events and a Component Aggregate view.
Profile Metadata and Performance Counters
Profile Metadata Tab
- Name: Profile metadata name
- Captured On: The date and time when the recording were created.
- Browser: The browser and version. (eg “Chrome Version 134.0.0.0”)
- Next Experience Framework Version: The version of the ServiceNow Next Experience client framework running on the page.
- Page URL: The exact page or app URL that was profiled.
- Viewport: the pages size
Performance Counters Tab
Using the Compare View
Preparing Profiles for Comparison
- Capture and Save the Baseline Profile: Go to the first environment (or the “before” scenario), record a profile (page load or manual actions as needed). Once the profile is generated, click the Download button to save it (it will save as a
.json
or similar profile data file). This is your baseline data. - Capture the Target Profile: Now go to the second environment (or after deploying some changes for a before/after test) and record the profile in the same manner. For fairness, try to capture the same scenario. You can do this on another instance or the same instance after changes. Once recorded, you’ll have this profile in the Profiler.
- Load and Compare: In the Profiler tab, load the baseline file you saved earlier. There is an Import or Upload Profile option. Select the previously saved profile file – the extension will load it, typically marking it as a “Baseline” profile. Now, with one profile set as baseline and the current one as target, click the Compare button. The UI will switch to the Compare View mode, displaying the two profiles’ data side by side.
Compare View Layout and Panels
- Metadata Panel (Baseline vs Target): On the left side, you’ll see a panel that lists key metadata for both profiles. This is similar to the Profile Metadata tab but shown in a comparative format. For each metadata field, the values for the Baseline profile and the Target profile are shown adjacent.
- Comparison Details Panel: The core of the Compare View is a table that highlights differences between the two profiles. Each row in this table represents a particular event type or a component and the columns show the Baseline vs Target metrics for that row, along with the delta (difference). For example, the first row might be “Total Events,” showing the total count of events in each profile (baseline vs target) and the difference between them.
- Interpreting Deltas: In general, more events (positive delta) in the target can signal additional work being done (possibly a regression if it’s unexpected), whereas fewer events (negative delta) might indicate optimization. For example, if a component, such as,
now-button
shows+3 RENDER_END
events, that suggests the new profile rendered that button 3 more times than before – perhaps a clue that something caused extra re-renders. The table highlights these differences in red or green to draw your attention. All differences are relative to baseline vs target. - Sorting & Filtering: The comparison table can be sorted by any column, which is very useful. You can sort by the delta of total events to see which component had the largest increase or decrease in total events. Or sort a specific event type column to see where the biggest change in, say, render events occurred
Conclusion
Congratulations! 🎉 The Next Experience Profiler is a comprehensive tool for ServiceNow developers and implementers to analyze front-end performance. By following the steps above, you can record a profile, inspect timeline and event details, and even compare two runs to catch regressions.
Remember that this extension supports Next Experience (UI Builder-based) interfaces on Xanadu, Yokohama, and later releases of ServiceNow.
Check out the Next Experience Center of Excellence for more resources
- 1,509 Views
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.