ui: Simplify & merge 'simple' tracks & debug tracks

- Merge debug* tracks and simple* tracks.
- Add createQuerySliceTrack() & createQueryCounterTrack, which are
  async track factories that create a perfetto table from a query and
  return a track that uses that prefetto table.
  - The reason we do this up front rather than lazily in the track's
    onCreate function is because the details panel needs the source
    table, which could be selected before the track has been 'created'.
    This is what debug tracks have always done, so it's not really
    much of a change.
- Rename simple_*_track.ts to query_*_track and move to public/lib.
- Sensible defaults for track columns, as 90% of callsites were
  pointlessly specifying these repeatedly:
  - Slice tracks: {ts: 'ts', dur: 'dur', name: 'name'}
  - Counter tracks: {ts: 'ts', value: 'value'}
- Make argColumns optional, as 90% of callsites passed an empty list
  here.
- Changed addDebug*Track() to reuse createQuery*Track() on the
  backend.
- Tweaked interface of addDebug*Track() to use the same defaults as
  createQuery*Track(), and move all args into an object so all args are
  named - for improved readability.
- Remove 'Debug' theming from the slice table details panel as it's
  used for 'query' slice tracks as well, which are not debug tracks.

Change-Id: Ibd1fb63da215792c42cce0ca83b3405aad9a49d5
43 files changed
tree: dcc7dcb3a9686fa02c69d693a89848baea56fa8e
  1. .github/
  2. bazel/
  3. build_overrides/
  4. buildtools/
  5. debian/
  6. docs/
  7. examples/
  8. gn/
  9. include/
  10. infra/
  11. protos/
  12. python/
  13. src/
  14. test/
  15. third_party/
  16. tools/
  17. ui/
  18. .bazelignore
  19. .bazelrc
  20. .clang-format
  21. .clang-tidy
  22. .git-blame-ignore-revs
  23. .gitattributes
  24. .gitignore
  25. .gn
  26. .style.yapf
  27. Android.bp
  28. Android.bp.extras
  29. BUILD
  30. BUILD.extras
  31. BUILD.gn
  32. CHANGELOG
  33. codereview.settings
  34. DIR_METADATA
  35. heapprofd.rc
  36. LICENSE
  37. meson.build
  38. METADATA
  39. MODULE_LICENSE_APACHE2
  40. OWNERS
  41. perfetto.rc
  42. PerfettoIntegrationTests.xml
  43. persistent_cfg.pbtxt
  44. PRESUBMIT.py
  45. README.chromium
  46. README.md
  47. TEST_MAPPING
  48. traced_perf.rc
  49. WATCHLISTS
  50. WORKSPACE
README.md

Perfetto - System profiling, app tracing and trace analysis

Perfetto is a production-grade open-source stack for performance instrumentation and trace analysis. It offers services and libraries and for recording system-level and app-level traces, native + java heap profiling, a library for analyzing traces using SQL and a web-based UI to visualize and explore multi-GB traces.

See https://perfetto.dev/docs or the /docs/ directory for documentation.