Skip to content

Show counter values over time in profiler-cli - #6136

Merged
fatadel merged 4 commits into
firefox-devtools:mainfrom
fatadel:issue-6112
Jul 10, 2026
Merged

Show counter values over time in profiler-cli#6136
fatadel merged 4 commits into
firefox-devtools:mainfrom
fatadel:issue-6112

Conversation

@fatadel

@fatadel fatadel commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Main | Deploy preview

Add an "over time" section to counter info that splits the current view into time buckets, so a counter's trajectory is visible rather than only an aggregate. Each slice shows the graph-type-appropriate value (level and delta for accumulated counters, the amount for rate counters), its share of the range, and a CO2e estimate where the schema requests one. Values reuse the tooltip formatters and ts-N time names, matching the timeline.

A fixed-width sparkline of the trajectory is drawn alongside, in both counter info and counter list.

Closes #6112


An example profile to explore - https://share.firefox.dev/4xQbTNj.

Two main changes:

  1. Sparklines in counter list:
image
  1. Overtime data along with sparklines in counter info:
image

@fatadel
fatadel requested review from canova and mstange July 1, 2026 14:17
@fatadel fatadel changed the title Show counter values over time in pq counter info Show counter values over time Jul 1, 2026
@codecov

codecov Bot commented Jul 1, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 85.71429% with 15 lines in your changes missing coverage. Please review.
✅ Project coverage is 83.52%. Comparing base (625c2f6) to head (5ba54e0).
⚠️ Report is 3 commits behind head on main.

Files with missing lines Patch % Lines
src/profile-query/formatters/counter-info.ts 85.71% 15 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #6136      +/-   ##
==========================================
+ Coverage   83.50%   83.52%   +0.02%     
==========================================
  Files         342      342              
  Lines       36522    36621      +99     
  Branches    10125    10259     +134     
==========================================
+ Hits        30497    30587      +90     
- Misses       5597     5607      +10     
+ Partials      428      427       -1     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@canova canova left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the work @fatadel! I added some comments below. Let me know what you think!

Comment thread src/profile-query/formatters/counter-info.ts Outdated
Comment thread src/profile-query/formatters/counter-info.ts Outdated
Comment thread src/profile-query/formatters/counter-info.ts Outdated
Comment thread profiler-cli/src/formatters.ts Outdated
Comment thread src/profile-query/formatters/counter-info.ts Outdated
Comment thread src/profile-query/formatters/counter-info.ts Outdated
Comment thread profiler-cli/guide.txt Outdated
Comment thread profiler-cli/guide.txt
@canova

canova commented Jul 6, 2026

Copy link
Copy Markdown
Member

Ah another thing I noticed while looking at the PRs. Could you please change the PR title and the commit message to include "cli"? Maybe something like Show counter values over time in profiler-cli. Currently it's not easy to understand that this is a cli change just from the commit message or the PR title. This would also help us split the changes for the changelog later.

@fatadel fatadel changed the title Show counter values over time Show counter values over time in profiler-cli Jul 7, 2026
fatadel added 2 commits July 7, 2026 16:17
Add an "over time" section to counter info that splits the current view into
time buckets, so a counter's trajectory is visible rather than only an aggregate.
Each slice shows the graph-type-appropriate value (level and delta for
accumulated counters, the amount for rate counters), its share of the
range, and a CO2e estimate where the schema requests one. Values reuse the
tooltip formatters and ts-N time names, matching the timeline.

A fixed-width sparkline of the trajectory is drawn alongside, in both
`counter info` and `counter list`.

Closes firefox-devtools#6112
- Scale the sparkline per graph type: relative (min-max) for accumulated
  counters, absolute for rate counters (process CPU pinned to 0-100%).
- Compute process-CPU ratios with the range-scoped max, matching the
  timeline tooltip.
- Exclude the padded boundary samples from the range's counts, sums, and
  time span.
- Rename the internal bucket types and helper (drop "binned").
- Trim the guide's counters section.
@fatadel

fatadel commented Jul 7, 2026

Copy link
Copy Markdown
Contributor Author

Thanks for your review, @canova! I've addressed all the issues.

@fatadel
fatadel requested a review from canova July 7, 2026 14:19

@canova canova left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great, thanks a lot for this work! I love the new sparklines!

Comment thread src/profile-query/formatters/counter-info.ts Outdated
fatadel added 2 commits July 10, 2026 13:28
A no-change bucket in "counter info" now prints "0" instead of "+0B"
(no sign, no unit); non-zero deltas keep their sign and unit.
@fatadel
fatadel merged commit 3d4d114 into firefox-devtools:main Jul 10, 2026
23 checks passed
@fatadel
fatadel deleted the issue-6112 branch July 10, 2026 11:36
@canova canova mentioned this pull request Jul 21, 2026
canova added a commit that referenced this pull request Jul 21, 2026
Changes:

[Sky Ning] Skip preview links for non-main PRs (#6161)
[spokodev] fix(gecko-upgrade): don't crash on a counter with empty
sample_groups (#6160)
[fatadel] Show counter values over time in profiler-cli (#6136)
[Markus Stange] Make profile-conversion snapshots more compact and
meaningful (#6152)
[Markus Stange] More typed arrays: sample + counter times, some
frametable columns (#6139)
[Nazım Can Altınova] Only render a marker url field as a link when the
whole value is a URL (#6163)
[fatadel] Show each counter's owning process in profiler-cli (#6164)
[Nazım Can Altınova] Document the pre-existing thread info and network
JSON schemas in the cli (#6171)
[Markus Stange] Copy column contents in
getRawSamplesTableBuilderFromExisting for consistency (#6168)
[Markus Stange] Convert eligible columns to typed arrays when outputting
from profiler-edit (#6167)
[Markus Stange] Remove unused samples.thread column (#6151)
[Markus Stange] Fixed botched merge which broke 'yarn ts' (#6174)
[Nazım Can Altınova] Add marker handles to `profiler-cli thread network`
(#6172)
[Markus Stange] Update json-slabs 0.3.0 → 0.4.0 (major) (#6176)
[Nazım Can Altınova] Surface network activity across profiler-cli
(#6175)
[Nazım Can Altınova] Add `profile meta` command to profiler-cli (#6177)
[Markus Stange] Allow raw marker table's `startTime` and `endTime`
columns to be Float64Array (#6169)
[nightcityblade] Fix light theme text selection colors (#6186)
[Nazım Can Altınova] Import source map URLs from Chrome DevTools traces
(#6190)
[Nazım Can Altınova] Rename yarn `build-profiler-cli` script to
`build-cli` (#6191)
[Nazım Can Altınova] Migrate husky to version 9 (#6201)
[Nazım Can Altınova] Fix horizontal overflow when the transform
navigator is long (#6199)
[fatadel] Add a 'hexadecimal' marker schema field format (#6197)
[Nazım Can Altınova] Bump source-map to 0.8.0 and remove the old type
workaround (#6202)
[Nazım Can Altınova] 🔃 Sync: l10n -> main (July 21, 2026) (#6209)


And special thanks to our localizers:

fr: parmegiani.thomas
fr: Théo Chevalier
sr: Марко Костић (Marko Kostić)
sv-SE: Luna Jernberg
tr: Grk
zh-CN: Ariel
zh-CN: Olvcpr423
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Show counter values over time in profiler-cli

2 participants