forked from mirrors/gecko-dev
19 KiB
19 KiB
Metrics
This document enumerates the metrics collected by this project. This project may depend on other projects which also collect metrics. This means you might have to go searching through the dependency tree to get a full picture of everything collected by this project.
Pings
metrics
This is a built-in ping that is assembled out of the box by the Glean SDK.
See the Glean SDK documentation for the metrics ping.
The following metrics are added to the ping:
| Name | Type | Description | Data reviews | Extras | Expiration |
|---|---|---|---|---|---|
| geckoview.build_id | string | The Buildid of the Gecko engine, example: 20200205124310 | 1 | 2021-02-01 | |
| geckoview.document_site_origins | custom_distribution | When a document is loaded, report the number of [site origins](https://searchfox.org/ mozilla-central/rev/ 3300072e993ae05d50d5c63d815260367eaf9179/ caps/nsIPrincipal.idl#264) of the entire browser if it has been at least 5 minutes since last time we collect this data. | 1 | never | |
| geckoview.page_load_progress_time | timing_distribution | Time between page load progress starts (0) and completion (100). | 1 | never | |
| geckoview.page_load_time | timing_distribution | The time taken to load a page. This includes all static contents, no dynamic content. Loading of about: pages is not counted. | 1 | never | |
| geckoview.page_reload_time | timing_distribution | Time taken to reload a page. This includes all static contents, no dynamic content. Loading of about: pages is not counted. | 1 | never | |
| geckoview.startup_runtime | timing_distribution | The time taken to initialize GeckoRuntime. | 1 | never | |
| geckoview.version | string | The version of the Gecko engine, example: 74.0a1 | 1 | 2021-02-01 | |
| gfx.adapter.primary.description | string | Long form description of the Graphics adapter | 1 | 2021-02-01 | |
| gfx.adapter.primary.device_id | string | Graphics adapter device identification | 1 | 2021-02-01 | |
| gfx.adapter.primary.driver_date | string | Graphics adapter driver date | 1 | 2021-02-01 | |
| gfx.adapter.primary.driver_files | string | List of graphics adapter driver files | 1 | 2021-02-01 | |
| gfx.adapter.primary.driver_vendor | string | Graphics adapter driver vendor identification | 1 | 2021-02-01 | |
| gfx.adapter.primary.driver_version | string | Graphics adapter driver version | 1 | 2021-02-01 | |
| gfx.adapter.primary.ram | quantity | Graphics adapter dedicated memory | 1 | 2021-02-01 | |
| gfx.adapter.primary.subsystem_id | string | Graphics adapter subsystem identification | 1 | 2021-02-01 | |
| gfx.adapter.primary.vendor_id | string | Graphics adapter vendor identification | 1 | 2021-02-01 | |
| gfx.checkerboard.duration | timing_distribution | 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. | 1 | never | |
| gfx.checkerboard.peak_pixel_count | custom_distribution | 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. | 1 | never | |
| gfx.checkerboard.potential_duration | timing_distribution | 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. | 1 | never | |
| gfx.checkerboard.severity | custom_distribution | 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. | 1 | never | |
| gfx.composite_time | timing_distribution | 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()). |
1 | never | |
| gfx.content.frame_time.from_paint | custom_distribution | 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. | 1 | never | |
| gfx.content.frame_time.from_vsync | custom_distribution | 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. | 1 | never | |
| gfx.content.frame_time.reason | labeled_counter | The reason that gfx.content.frame_time.from_paint recorded a slow (>200ms) result, if any. |
1 |
|
never |
| gfx.content.frame_time.with_svg | custom_distribution | 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. | 1 | never | |
| gfx.content.frame_time.without_resource_upload | custom_distribution | 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. | 1 | never | |
| gfx.content.frame_time.without_upload | custom_distribution | 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. | 1 | never | |
| gfx.content.full_paint_time | timing_distribution | 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. |
1 | never | |
| gfx.content.paint_time | timing_distribution | 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. | 1 | never | |
| gfx.display.count | quantity | Amount of displays connected to the device | 1 | 2021-02-01 | |
| gfx.display.primary_height | quantity | Height of the primary display, takes device rotation into account. | 1 | 2021-02-01 | |
| gfx.display.primary_width | quantity | Width of the primary display, takes device rotation into account. | 1 | 2021-02-01 | |
| gfx.scroll_present_latency | timing_distribution | Time between receiving a scroll event on the event loop and compositing its result onto the screen (ms). | 1 | never | |
| gfx.status.compositor | string | Name of the graphics compositor in use. Possible values are "opengl, d3d11, client, webrender or basic" | 1 | 2021-02-01 | |
| gfx.status.framebuild_time | timing_distribution | The time taken to build a webrender frame. This involves calculating the visibility of primitives, requesting resources, and building the render passes which will be used to render the frame. | 1 | never | |
| gfx.status.headless | boolean | Boolean indicated whether graphics is running in headless (no display) mode | 1 | 2021-02-01 | |
| gfx.status.sceneswap_time | timing_distribution | The time taken to do a webrender scene swap. This is book-keeping that APZ must perform once webrender has built a new scene. | 1 | never | |
| gfx.webrender.scenebuild_time | timing_distribution | The time taken to build a webrender scene. This occurs each time webrender receives a new display list. This additionally includes blob rasterization time. | 1 | never | |
| network.cache_hit_time | timing_distribution | Time to open existing cache entry file. | 1 | never | |
| network.dns_end | timing_distribution | In the HTTP page channel, time from the DNS request being issued to the response. | 1 | never | |
| network.dns_start | timing_distribution | In the HTTP page channel, time from connection open to the DNS request being issued. | 1 | never | |
| network.first_from_cache | timing_distribution | In the HTTP page channel, time from connection open to cache read start. | 1 | never | |
| network.font_download_end | timing_distribution | Time after navigationStart that all webfont downloads are completed. | 1 | never | |
| network.tcp_connection | timing_distribution | In the HTTP page channel, time from the TCP SYN packet is received to the connection is established and ready for HTTP. | 1 | never | |
| network.tls_handshake | timing_distribution | In the HTTP page channel, time from after the TCP SYN packet is received to the secure connection is established and ready for HTTP. | 1 | never | |
| performance.interaction.keypress_present_latency | timing_distribution | Time between receiving a keypress event in the event loop and compositing its result onto the screen. | 1 | never | |
| performance.interaction.tab_switch_composite | timing_distribution | Time between tab selection and first composite of the tab content onto the screen. | 1 | never | |
| performance.page.non_blank_paint | timing_distribution | The time between navigationStart and the first non-blank paint of a foreground root content document, in milliseconds. This only records documents that were in an active docshell throughout the whole time between navigation start and non-blank paint. The non-blank paint timestamp is taken during display list building and does not include rasterization or compositing of that paint. | 1 | never | |
| performance.page.total_content_page_load | timing_distribution | Time to load all of a page's resources and render. | 1 | never | |
| performance.time.dom_complete | timing_distribution | Time from navigationStart to domComplete as per the W3C Performance Timing API. | 1 | never | |
| performance.time.dom_content_loaded_end | timing_distribution | Time from navigationStart to domContentLoadedEventEnd as per the W3C Performance Timing API. | 1 | never | |
| performance.time.dom_content_loaded_start | timing_distribution | Time from navigationStart to domContentLoadedEventStart as per the W3C Performance Timing API. | 1 | never | |
| performance.time.dom_interactive | timing_distribution | Time from navigationStart to domInteractive as per the W3C Performance Timing API. | 1 | never | |
| performance.time.load_event_end | timing_distribution | Time from navigationStart to loadEventEnd as per the W3C Performance Timing API. | 1 | never | |
| performance.time.load_event_start | timing_distribution | Time from navigationStart to loadEventStart as per the W3C Performance Timing API. | 1 | never | |
| performance.time.response_start | timing_distribution | Time from navigationStart to responseStart as per the W3C Performance Timing API. | 1 | never | |
| test.glean.geckoview.streaming | timing_distribution | A test-only, disabled metric. This is required to guarantee that a GleanGeckoHistogramMapping is always generated, even though the GeckoView AAR exports no metric. Please note that the data-review field below contains no review, since this metric is disabled and not allowed to collect any data. |
1 | never |