1# PerfettoSQL Chrome Standard Library 2 3The [PerfettoSQL Standard Library](https://perfetto.dev/docs/analysis/stdlib-docs) contains commonly used SQL tables, views, functions and macros to make it easier for users to query traces. The Chrome Standard Library contains those metrics that are specific to Chrome. 4 5The source of truth of the Perfetto SQL Chrome stdlib is the Chromium repository in `base/tracing/stdlib/` which makes it easier to develop new metrics and add tests for them in a single Chromium CL. So any changes to the Chrome stdlib should be made here. 6 7## Modifying the Chrome Stdlib 8 9You can add or modify a metric in `base/tracing/stdlib/chrome/`. If you add a new file here, you must add this to `perfetto_sql_files.gni` as well so it can be added to the source set. 10 11If you make changes to the chrome stdlib, you should add/modify a diff test too. You may also wish to add an end-to-end TestTraceProcessor unit/browser test. See [instructions](../../test/README) on how to add these tests. 12 13## PerfettoSQL Schema 14 15The Perfetto CI runs a [script](https://source.chromium.org/chromium/chromium/src/+/main:third_party/perfetto/tools/check_sql_modules.py) to check that standard library modules are documented with the proper schema. In Chromium, we can run these checks locally by running `tools/tracing/check_stdlib.py`. This is also run as a presubmit check, so you could also run `git cl presubmit` to run these after you've created a CL.