Source code
Revision control
Copy as Markdown
Other Tools
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# Adding a new metric? We have docs for that!
---
$tags:
- 'Core :: Graphics'
paint:
build_displaylist_time:
type: timing_distribution
description: >
The time to build a Gecko display list.
bugs:
data_reviews:
data_sensitivity:
- technical
notification_emails:
- gfx-telemetry-alerts@mozilla.com
- mwoodrow@mozilla.com
expires: never
telemetry_mirror: PAINT_BUILD_DISPLAYLIST_TIME
gpu_process:
feature_status:
type: string
description: >
Current status of the GPU process feature
bugs:
data_reviews:
data_sensitivity:
- technical
notification_emails:
- gfx-telemetry-alerts@mozilla.com
- jnicol@mozilla.com
expires: never
crash_fallbacks:
type: labeled_counter
description: >
How often we use different fallbacks when the GPU process crashes
labels:
- none
- decoding_disabled
- disabled
bugs:
data_reviews:
data_sensitivity:
- technical
notification_emails:
- gfx-telemetry-alerts@mozilla.com
- jnicol@mozilla.com
expires: never
total_launch_attempts:
type: quantity
description: >
The number of total GPU process launch attempts.
unit: launches
bugs:
data_reviews:
data_sensitivity:
- technical
notification_emails:
- gfx-telemetry-alerts@mozilla.com
- jnicol@mozilla.com
expires: never
unstable_launch_attempts:
type: quantity
description: >
The number of consecutive unstable launch attempts.
unit: launches
bugs:
data_reviews:
data_sensitivity:
- technical
notification_emails:
- gfx-telemetry-alerts@mozilla.com
- jnicol@mozilla.com
expires: never
wr:
gpu_wait_time:
type: timing_distribution
description: >
The time spent waiting for the GPU to complete previously issued drawing
commands.
time_unit: microsecond
bugs:
data_reviews:
data_sensitivity:
- technical
notification_emails:
- gfx-telemetry-alerts@mozilla.com
expires: never
telemetry_mirror: WR_GPU_WAIT_TIME
rasterize_glyphs_time:
type: timing_distribution
description: >
The time to rasterize glyphs for consumption by WebRender.
time_unit: microsecond
bugs:
data_reviews:
data_sensitivity:
- technical
notification_emails:
- gfx-telemetry-alerts@mozilla.com
expires: never
telemetry_mirror: WR_RASTERIZE_GLYPHS_TIME
rasterize_blobs_time:
type: timing_distribution
description: >
The time to rasterize blobs for consumption by WebRender.
time_unit: microsecond
bugs:
data_reviews:
data_sensitivity:
- technical
notification_emails:
- gfx-telemetry-alerts@mozilla.com
expires: never
telemetry_mirror: WR_RASTERIZE_BLOBS_TIME
renderer_time:
type: timing_distribution
description: >
WebRender renderer time.
time_unit: microsecond
bugs:
data_reviews:
data_sensitivity:
- technical
notification_emails:
- gfx-telemetry-alerts@mozilla.com
expires: never
telemetry_mirror: WR_RENDERER_TIME
renderer_time_no_sc:
type: timing_distribution
description: >
WebRender renderer time excluding frames in which shader compilation took
place.
time_unit: microsecond
bugs:
data_reviews:
data_sensitivity:
- technical
notification_emails:
- gfx-telemetry-alerts@mozilla.com
expires: never
telemetry_mirror: WR_RENDERER_TIME_NO_SC_MS
framebuild_time:
type: timing_distribution
description: >
The time to rasterize glyphs for consumption by WebRender.
time_unit: microsecond
bugs:
data_reviews:
data_sensitivity:
- technical
notification_emails:
- gfx-telemetry-alerts@mozilla.com
- jmuizelaar@mozilla.com
expires: never
telemetry_mirror: WR_FRAMEBUILD_TIME
scenebuild_time:
type: timing_distribution
description: >
WebRender scene build time.
time_unit: microsecond
bugs:
data_reviews:
data_sensitivity:
- technical
notification_emails:
- gfx-telemetry-alerts@mozilla.com
- jmuizelaar@mozilla.com
expires: never
telemetry_mirror: WR_SCENEBUILD_TIME
sceneswap_time:
type: timing_distribution
description: >
WebRender scene swap time.
time_unit: microsecond
bugs:
data_reviews:
data_sensitivity:
- technical
notification_emails:
- gfx-telemetry-alerts@mozilla.com
- jmuizelaar@mozilla.com
expires: never
telemetry_mirror: WR_SCENESWAP_TIME
texture_cache_update_time:
type: timing_distribution
description: >
Time taken by WebRender to update the texture cache.
time_unit: microsecond
bugs:
data_reviews:
data_sensitivity:
- technical
notification_emails:
- gfx-telemetry-alerts@mozilla.com
expires: never
telemetry_mirror: WR_TEXTURE_CACHE_UPDATE_TIME
time_to_frame_build:
type: timing_distribution
description: >
Time elapsed between the construction of a transaction and the
associated frame build beginning.
time_unit: microsecond
bugs:
data_reviews:
data_sensitivity:
- technical
notification_emails:
- gfx-telemetry-alerts@mozilla.com
expires: never
telemetry_mirror: WR_TIME_TO_FRAME_BUILD_MS
time_to_render_start:
type: timing_distribution
description: >
Time elapsed between the construction of a frame and the start of
rendering.
time_unit: microsecond
bugs:
data_reviews:
data_sensitivity:
- technical
notification_emails:
- gfx-telemetry-alerts@mozilla.com
expires: never
telemetry_mirror: WR_TIME_TO_RENDER_START_MS
gfx:
composite_time:
type: timing_distribution
time_unit: millisecond
telemetry_mirror: COMPOSITE_TIME
description: >
The time taken to composite a frame.
On non-webrender this is the time taken in
`CompositorBridgeParent::CompositeToTarget()`.
On webrender, this is the time taken from the start of
`WebRenderBridgeParent::CompositeToTarget()`,
until the render thread has rendered the frame (in
`RenderThread::HandleFrameOneDoc()`).
(Migrated from the geckoview metric of the same name).
bugs:
data_reviews:
notification_emails:
- gfx-telemetry-alerts@mozilla.com
- jnicol@mozilla.com
expires: never
scroll_present_latency:
type: timing_distribution
time_unit: millisecond
description: >
Time between receiving a scroll
event on the event loop and compositing
its result onto the screen (ms).
(Migrated from the geckoview metric of the same name).
telemetry_mirror: SCROLL_PRESENT_LATENCY
bugs:
data_reviews:
notification_emails:
- sefeng@mozilla.com
- perf-telemetry-alerts@mozilla.com
expires: never
skipped_composites:
type: counter
description: >
Number of skipped composites, happening when rendering is too slow
to keep up with content.
This metric was generated to correspond to the Legacy Telemetry
scalar gfx.skipped_composites.
bugs:
data_reviews:
notification_emails:
- gfx-telemetry-alerts@mozilla.com
- perf-telemetry-alerts@mozilla.com
expires: never
telemetry_mirror: GFX_SKIPPED_COMPOSITES
os_compositor:
type: boolean
description: >
Boolean indicating whether the os compositor is being used by
WebRender. Only collected in the first subsession.
This metric was generated to correspond to the Legacy Telemetry
scalar gfx.os_compositor.
bugs:
data_reviews:
notification_emails:
- gfx-telemetry-alerts@mozilla.com
- jmuizelaar@mozilla.com
expires: never
telemetry_mirror: GFX_OS_COMPOSITOR
linux_window_protocol:
type: string
description: >
Windowing protocol on Linux. Can be Wayland, WaylandDRM, XWayland,
or X11
This metric was generated to correspond to the Legacy Telemetry
scalar gfx.linux_window_protocol.
bugs:
data_reviews:
notification_emails:
- gfx-telemetry-alerts@mozilla.com
- aosmond@mozilla.com
- mkaply@mozilla.com
expires: never
telemetry_mirror: GFX_LINUX_WINDOW_PROTOCOL
supports_hdr:
type: boolean
description: >
Does the hardware support accurate display of HDR content
This metric was generated to correspond to the Legacy Telemetry
scalar gfx.supports_hdr.
bugs:
data_reviews:
notification_emails:
- gfx-telemetry-alerts@mozilla.com
- bwerth@mozilla.com
expires: never
telemetry_mirror: GFX_SUPPORTS_HDR
gfx.display:
count:
description: >
Amount of displays connected to the device
(Migrated from the geckoview metric of the same name).
type: quantity
unit: Display count
# Temporary misuse of the user lifetime approved by Glean team
# due to limitations in Geckoview streaming telemetry.
# DO NOT DUPLICATE unless approved by Glean team.
lifetime: user
bugs:
data_reviews:
notification_emails:
- gfx-telemetry-alerts@mozilla.com
expires: never
primary_width:
description: >
Width of the primary display, takes device rotation into account.
(Migrated from the geckoview metric of the same name).
type: quantity
unit: Pixels
# Temporary misuse of the user lifetime approved by Glean team
# due to limitations in Geckoview streaming telemetry.
# DO NOT DUPLICATE unless approved by Glean team.
lifetime: user
bugs:
data_reviews:
notification_emails:
- gfx-telemetry-alerts@mozilla.com
expires: never
primary_height:
description: >
Height of the primary display, takes device rotation into account.
(Migrated from the geckoview metric of the same name).
type: quantity
unit: Pixels
# Temporary misuse of the user lifetime approved by Glean team
# due to limitations in Geckoview streaming telemetry.
# DO NOT DUPLICATE unless approved by Glean team.
lifetime: user
bugs:
data_reviews:
notification_emails:
- gfx-telemetry-alerts@mozilla.com
expires: never
gfx.checkerboard:
duration:
type: timing_distribution
time_unit: millisecond
telemetry_mirror: CHECKERBOARD_DURATION
description: >
The duration of a checkerboard event.
Checkerboarding is when painting has not kept up with asynchronous
panning and zooming so the compositor has to display a "checkerboard
pattern" (or in practice, the background color) rather than the actual
page content.
(Migrated from the geckoview metric of the same name).
bugs:
data_reviews:
notification_emails:
- gfx-telemetry-alerts@mozilla.com
- botond@mozilla.com
expires: never
peak_pixel_count:
type: custom_distribution
range_max: 66355200
bucket_count: 50
histogram_type: exponential
unit: Pixels
telemetry_mirror: CHECKERBOARD_PEAK
description: >
The peak number of CSS pixels that checkerboarded during a checkerboard
event. The minimum value of the largest histogram bucket is the size of
a 4k display with maximum APZ zooming.
(Migrated from the geckoview metric of the same name).
bugs:
data_reviews:
notification_emails:
- gfx-telemetry-alerts@mozilla.com
- botond@mozilla.com
expires: never
potential_duration:
type: timing_distribution
time_unit: millisecond
telemetry_mirror: CHECKERBOARD_POTENTIAL_DURATION
description: >
The total amount of time that we could reasonably be checkerboarding.
This is the union of two possibly-intersecting sets of time periods:
The first set is that in which checkerboarding was actually happening,
since by definition it could potentially be happening.
The second set is that in which the APZC is actively transforming content
in the compositor, since it could potentially transform it so as to
display checkerboarding to the user. Combined with other information,
this allows us to meaningfully say how frequently users actually
enncounters checkerboarding.
(Migrated from the geckoview metric of the same name).
bugs:
data_reviews:
notification_emails:
- gfx-telemetry-alerts@mozilla.com
- botond@mozilla.com
expires: never
severity:
type: custom_distribution
range_max: 1073741824
bucket_count: 50
histogram_type: exponential
unit: Opaque unit
telemetry_mirror: CHECKERBOARD_SEVERITY
description: >
An opaque measurement of the severity of a checkerboard event.
This doesn't have units, it's just useful for comparing two checkerboard
events to see which one is worse, for some implementation-specific
definition of "worse". The larger the value, the worse the
checkerboarding.
(Migrated from the geckoview metric of the same name).
bugs:
data_reviews:
notification_emails:
- gfx-telemetry-alerts@mozilla.com
- botond@mozilla.com
expires: never
gfx.feature:
webrender:
type: string
description: >
Whether webrender is enabled or disabled, and why.
(Migrated from the geckoview metric of the same name).
lifetime: application
bugs:
data_reviews:
notification_emails:
- gfx-telemetry-alerts@mozilla.com
- jnicol@mozilla.com
expires: never
gfx.status:
compositor:
description: >
Name of the graphics compositor in use.
Possible values are "opengl, d3d11, client, webrender or basic"
(Migrated from the geckoview metric of the same name).
type: string
# Temporary misuse of the user lifetime approved by Glean team
# due to limitations in Geckoview streaming telemetry.
# DO NOT DUPLICATE unless approved by Glean team.
lifetime: user
bugs:
data_reviews:
notification_emails:
- gfx-telemetry-alerts@mozilla.com
expires: never
last_compositor_gecko_version:
description: >
The gecko version at the last time a compositor was initialized, and
therefore when gfx_status_compositor was last updated. Due to
gfx_status_compositor's user lifetime we see lots of unexpected values for
the current gecko version. We believe this is because the user has not
opened a tab since they were updated to a version where webrender should
be enabled on their device. This can be used to verify that theory.
(Migrated from the geckoview metric of the same name).
type: string
# Temporary misuse of the user lifetime approved by Glean team
# due to limitations in Geckoview streaming telemetry.
# DO NOT DUPLICATE unless approved by Glean team.
lifetime: user
bugs:
data_reviews:
notification_emails:
- jnicol@mozilla.com
- gfx-telemetry-alerts@mozilla.com
expires: never
headless:
description: >
Boolean indicated whether graphics is running in
headless (no display) mode
(Migrated from the geckoview metric of the same name).
type: boolean
# Temporary misuse of the user lifetime approved by Glean team
# due to limitations in Geckoview streaming telemetry.
# DO NOT DUPLICATE unless approved by Glean team.
lifetime: user
bugs:
data_reviews:
notification_emails:
- gfx-telemetry-alerts@mozilla.com
expires: never
gfx.content.frame_time:
from_paint:
type: custom_distribution
range_max: 5000
bucket_count: 50
histogram_type: exponential
unit: Percentage of vsync interval
telemetry_mirror: CONTENT_FRAME_TIME
description: >
The time, in percentage of a vsync interval, spent from beginning a paint
in the content process until that frame is presented in the compositor.
(Migrated from the geckoview metric of the same name).
bugs:
data_reviews:
notification_emails:
- gfx-telemetry-alerts@mozilla.com
- jnicol@mozilla.com
expires: never
from_vsync:
type: custom_distribution
range_min: 8
range_max: 792
bucket_count: 100
histogram_type: linear
unit: Percentage of vsync interval
telemetry_mirror: CONTENT_FRAME_TIME_VSYNC
description: >
The time, in percentage of a vsync interval, spent from the vsync that
started a paint in the content process until that frame is presented in
the compositor.
(Migrated from the geckoview metric of the same name).
bugs:
data_reviews:
notification_emails:
- gfx-telemetry-alerts@mozilla.com
expires: never
with_svg:
type: custom_distribution
range_max: 5000
bucket_count: 50
histogram_type: exponential
unit: Percentage of vsync interval
telemetry_mirror: CONTENT_FRAME_TIME_WITH_SVG
description: >
The time, in percentage of a vsync interval, spent from beginning a paint
in the content process until that frame is presented in the compositor,
for frames that contained an SVG to be drawn by webrender.
(Migrated from the geckoview metric of the same name).
bugs:
data_reviews:
notification_emails:
- gfx-telemetry-alerts@mozilla.com
expires: never
without_resource_upload:
type: custom_distribution
range_max: 5000
bucket_count: 50
histogram_type: exponential
unit: Percentage of vsync interval
telemetry_mirror: CONTENT_FRAME_TIME_WITHOUT_RESOURCE_UPLOAD
description: >
The time, in percentage of a vsync interval, spent from beginning a paint
in the content process until that frame is presented in the compositor by
webrender, excluding time spent uploading resources.
(Migrated from the geckoview metric of the same name).
bugs:
data_reviews:
notification_emails:
- gfx-telemetry-alerts@mozilla.com
expires: never
without_upload:
type: custom_distribution
range_max: 5000
bucket_count: 50
histogram_type: exponential
unit: Percentage of vsync interval
telemetry_mirror: CONTENT_FRAME_TIME_WITHOUT_UPLOAD
description: >
The time, in percentage of a vsync interval, spent from beginning a paint
in the content process until that frame is presented in the compositor by
webrender, excluding time spent uploading any content.
(Migrated from the geckoview metric of the same name).
bugs:
data_reviews:
notification_emails:
- gfx-telemetry-alerts@mozilla.com
expires: never
reason:
type: labeled_counter
labels:
- on_time
- no_vsync
- missed_composite
- slow_composite
- missed_composite_mid
- missed_composite_long
- missed_composite_low
- no_vsync_no_id
description: >
The reason that `gfx.content.frame_time.from_paint` recorded a slow
(>200ms) result, if any.
(Migrated from the geckoview metric of the same name).
bugs:
data_reviews:
notification_emails:
- gfx-telemetry-alerts@mozilla.com
expires: never
gfx.content:
paint_time:
type: timing_distribution
time_unit: millisecond
telemetry_mirror: CONTENT_PAINT_TIME
description: >
Time spent in the main-thread paint pipeline for content.
For non-webrender, this includes display list building, layer building,
and when OMTP is disabled, rasterization.
For webrender, this includes display list building, and webrender display
list building.
(Migrated from the geckoview metric of the same name).
bugs:
data_reviews:
notification_emails:
- gfx-telemetry-alerts@mozilla.com
expires: never
full_paint_time:
type: timing_distribution
time_unit: millisecond
telemetry_mirror: CONTENT_FULL_PAINT_TIME
description: >
Time spent in the full paint pipeline for content until it's ready for
composition.
For non-webrender this includes `paint_time`, plus rasterization if OMTP
is enabled.
For webrender, this includes `paint_time`, plus scene building time.
(Migrated from the geckoview metric of the same name).
bugs:
data_reviews:
notification_emails:
- gfx-telemetry-alerts@mozilla.com
- jmuizelaar@mozilla.com
expires: never
gfx.adapter.primary:
description:
description: >
Long form description of the Graphics adapter
(Migrated from the geckoview metric of the same name).
type: string
# Temporary misuse of the user lifetime approved by Glean team
# due to limitations in Geckoview streaming telemetry.
# DO NOT DUPLICATE unless approved by Glean team.
lifetime: user
bugs:
data_reviews:
notification_emails:
- gfx-telemetry-alerts@mozilla.com
expires: never
vendor_id:
description: >
Graphics adapter vendor identification
(Migrated from the geckoview metric of the same name).
type: string
# Temporary misuse of the user lifetime approved by Glean team
# due to limitations in Geckoview streaming telemetry.
# DO NOT DUPLICATE unless approved by Glean team.
lifetime: user
bugs:
data_reviews:
notification_emails:
- gfx-telemetry-alerts@mozilla.com
expires: never
device_id:
description: >
Graphics adapter device identification
(Migrated from the geckoview metric of the same name).
type: string
# Temporary misuse of the user lifetime approved by Glean team
# due to limitations in Geckoview streaming telemetry.
# DO NOT DUPLICATE unless approved by Glean team.
lifetime: user
bugs:
data_reviews:
notification_emails:
- gfx-telemetry-alerts@mozilla.com
expires: never
subsystem_id:
description: >
Graphics adapter subsystem identification
(Migrated from the geckoview metric of the same name).
type: string
# Temporary misuse of the user lifetime approved by Glean team
# due to limitations in Geckoview streaming telemetry.
# DO NOT DUPLICATE unless approved by Glean team.
lifetime: user
bugs:
data_reviews:
notification_emails:
- gfx-telemetry-alerts@mozilla.com
expires: never
ram:
description: >
Graphics adapter dedicated memory
(Migrated from the geckoview metric of the same name).
type: quantity
unit: Megabytes
# Temporary misuse of the user lifetime approved by Glean team
# due to limitations in Geckoview streaming telemetry.
# DO NOT DUPLICATE unless approved by Glean team.
lifetime: user
bugs:
data_reviews:
notification_emails:
- gfx-telemetry-alerts@mozilla.com
expires: never
driver_files:
description: >
List of graphics adapter driver files
(Migrated from the geckoview metric of the same name).
type: string
# Temporary misuse of the user lifetime approved by Glean team
# due to limitations in Geckoview streaming telemetry.
# DO NOT DUPLICATE unless approved by Glean team.
lifetime: user
bugs:
data_reviews:
notification_emails:
- gfx-telemetry-alerts@mozilla.com
expires: never
driver_vendor:
description: >
Graphics adapter driver vendor identification
(Migrated from the geckoview metric of the same name).
type: string
# Temporary misuse of the user lifetime approved by Glean team
# due to limitations in Geckoview streaming telemetry.
# DO NOT DUPLICATE unless approved by Glean team.
lifetime: user
bugs:
data_reviews:
notification_emails:
- gfx-telemetry-alerts@mozilla.com
expires: never
driver_version:
description: >
Graphics adapter driver version
(Migrated from the geckoview metric of the same name).
type: string
# Temporary misuse of the user lifetime approved by Glean team
# due to limitations in Geckoview streaming telemetry.
# DO NOT DUPLICATE unless approved by Glean team.
lifetime: user
bugs:
data_reviews:
notification_emails:
- gfx-telemetry-alerts@mozilla.com
expires: never
driver_date:
description: >
Graphics adapter driver date
(Migrated from the geckoview metric of the same name).
type: string
# Temporary misuse of the user lifetime approved by Glean team
# due to limitations in Geckoview streaming telemetry.
# DO NOT DUPLICATE unless approved by Glean team.
lifetime: user
bugs:
data_reviews:
notification_emails:
- gfx-telemetry-alerts@mozilla.com
expires: never
performance.interaction:
keypress_present_latency:
type: timing_distribution
time_unit: millisecond
telemetry_mirror: KEYPRESS_PRESENT_LATENCY
description: >
Time between receiving a keypress event in the event loop and compositing
its result onto the screen.
(Migrated from the geckoview metric of the same name).
bugs:
data_reviews:
notification_emails:
- perf-telemetry-alerts@mozilla.com
- vchin@mozilla.com
expires: never
mouseup_click_present_latency:
type: timing_distribution
time_unit: millisecond
telemetry_mirror: MOUSEUP_FOLLOWED_BY_CLICK_PRESENT_LATENCY
description: >
Time between receiving a mouseup which follow by a mouseclick
on the event loop and compositing its result onto the screen.
(Migrated from the geckoview metric of the same name).
bugs:
data_reviews:
notification_emails:
- perf-telemetry-alerts@mozilla.com
- sefeng@mozilla.com
expires: never
gfx.hdr:
windows_display_colorspace_bitfield:
type: quantity
description: >
A bitfield representation of the available DXGI color spaces of the
us/windows/desktop/api/dxgicommon/ne-dxgicommon-
dxgi_color_space_type) for definitions of color spaces. Each N'th
bit of this scalar indicates whether the DXGI color space with index
'N' is available on at least one connected monitor.
This metric was generated to correspond to the Legacy Telemetry
scalar gfx.hdr.windows_display_colorspace_bitfield.
bugs:
data_reviews:
notification_emails:
- gfx-telemetry-alerts@mozilla.com
- jmuizelaaar@mozilla.com
expires: never
unit: bitfield
telemetry_mirror: GFX_HDR_WINDOWS_DISPLAY_COLORSPACE_BITFIELD
no_lint:
- UNIT_IN_NAME