-
Notifications
You must be signed in to change notification settings - Fork 354
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge "Project import generated by Copybara." into main
- Loading branch information
Showing
6 changed files
with
169 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
98 changes: 98 additions & 0 deletions
98
src/trace_processor/perfetto_sql/stdlib/chrome/startups.sql
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,98 @@ | ||
-- Copyright 2023 The Chromium Authors | ||
-- Use of this source code is governed by a BSD-style license that can be | ||
-- found in the LICENSE file. | ||
|
||
INCLUDE PERFETTO MODULE common.slices; | ||
|
||
-- Access all startups, including those that don't lead to any visible content. | ||
-- If TimeToFirstVisibleContent is available, then this event will be the | ||
-- main event of the startup. Otherwise, the event for the start timestamp will | ||
-- be used. | ||
CREATE PERFETTO VIEW internal_startup_start_events AS | ||
WITH | ||
starts AS ( | ||
SELECT | ||
name, | ||
EXTRACT_ARG(arg_set_id, 'startup.activity_id') AS activity_id, | ||
ts, | ||
dur, | ||
upid AS browser_upid | ||
FROM thread_slice | ||
WHERE name = 'Startup.ActivityStart' | ||
), | ||
times_to_first_visible_content AS ( | ||
SELECT | ||
name, | ||
EXTRACT_ARG(arg_set_id, 'startup.activity_id') AS activity_id, | ||
ts, | ||
dur, | ||
upid AS browser_upid | ||
FROM process_slice | ||
WHERE name = 'Startup.TimeToFirstVisibleContent2' | ||
), | ||
all_activity_ids AS ( | ||
SELECT | ||
DISTINCT activity_id, | ||
browser_upid | ||
FROM starts | ||
UNION ALL | ||
SELECT | ||
DISTINCT activity_id, | ||
browser_upid | ||
FROM times_to_first_visible_content | ||
), | ||
activity_ids AS ( | ||
SELECT | ||
DISTINCT activity_id, | ||
browser_upid | ||
FROM all_activity_ids | ||
) | ||
SELECT | ||
activity_ids.activity_id, | ||
'Startup' AS name, | ||
IFNULL(times_to_first_visible_content.ts, starts.ts) AS startup_begin_ts, | ||
times_to_first_visible_content.ts + | ||
times_to_first_visible_content.dur AS first_visible_content_ts, | ||
activity_ids.browser_upid | ||
FROM activity_ids | ||
LEFT JOIN times_to_first_visible_content using(activity_id, browser_upid) | ||
LEFT JOIN starts using(activity_id, browser_upid); | ||
|
||
-- Chrome launch causes, not recorded at start time; use the activity id to | ||
-- join with the actual startup events. | ||
CREATE PERFETTO VIEW internal_launch_causes AS | ||
SELECT | ||
EXTRACT_ARG(arg_set_id, 'startup.activity_id') AS activity_id, | ||
EXTRACT_ARG(arg_set_id, 'startup.launch_cause') AS launch_cause, | ||
upid AS browser_upid | ||
FROM thread_slice | ||
WHERE name = 'Startup.LaunchCause'; | ||
|
||
-- Chrome startups, including launch cause. | ||
CREATE PERFETTO TABLE chrome_startups( | ||
-- Unique ID | ||
id INT, | ||
-- Chrome Activity event id of the launch. | ||
activity_id INT, | ||
-- Name of the launch start event. | ||
name STRING, | ||
-- Timestamp that the startup occurred. | ||
startup_begin_ts INT, | ||
-- Timestamp to the first visible content. | ||
first_visible_content_ts INT, | ||
-- Launch cause. See Startup.LaunchCauseType in chrome_track_event.proto. | ||
launch_cause STRING, | ||
-- Process ID of the Browser where the startup occurred. | ||
browser_upid INT | ||
) AS | ||
SELECT | ||
ROW_NUMBER() OVER (ORDER BY start_events.startup_begin_ts) AS id, | ||
start_events.activity_id, | ||
start_events.name, | ||
start_events.startup_begin_ts, | ||
start_events.first_visible_content_ts, | ||
launches.launch_cause, | ||
start_events.browser_upid | ||
FROM internal_startup_start_events start_events | ||
LEFT JOIN internal_launch_causes launches | ||
USING(activity_id, browser_upid); |
44 changes: 44 additions & 0 deletions
44
src/trace_processor/perfetto_sql/stdlib/chrome/web_content_interactions.sql
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
-- Copyright 2023 The Chromium Authors | ||
-- Use of this source code is governed by a BSD-style license that can be | ||
-- found in the LICENSE file. | ||
|
||
INCLUDE PERFETTO MODULE common.slices; | ||
|
||
-- Chrome web content interactions (InteractionToFirstPaint), including | ||
-- associated high-level metrics and properties. | ||
-- | ||
-- Multiple events may occur for the same interaction; each row in this table | ||
-- represents the primary (longest) event for the interaction. | ||
-- | ||
-- Web content interactions are discrete, as opposed to sustained (e.g. | ||
-- scrolling); and only occur with the web content itself, as opposed to other | ||
-- parts of Chrome (e.g. omnibox). Interaction events include taps, clicks, | ||
-- keyboard input (typing), and drags. | ||
CREATE PERFETTO TABLE chrome_web_content_interactions( | ||
-- Unique id for this interaction. | ||
id INT, | ||
-- Start timestamp of the event. Because multiple events may occur for the | ||
-- same interaction, this is the start timestamp of the longest event. | ||
ts INT, | ||
-- Duration of the event. Because multiple events may occur for the same | ||
-- interaction, this is the duration of the longest event. | ||
dur INT, | ||
-- The interaction type. | ||
interaction_type STRING, | ||
-- The total duration of all events that occurred for the same interaction. | ||
total_duration_ms INT, | ||
-- The process id this event occurred on. | ||
renderer_upid INT | ||
) AS | ||
SELECT | ||
id, | ||
ts, | ||
dur, | ||
EXTRACT_ARG(arg_set_id, 'web_content_interaction.type') AS interaction_type, | ||
EXTRACT_ARG( | ||
arg_set_id, | ||
'web_content_intaraction.total_duration_ms' | ||
) AS total_duration_ms, | ||
upid AS renderer_upid | ||
FROM process_slice | ||
WHERE name = 'Web Interaction'; |