chore(tracing): dedupe duration-axis config, error-rate formatting, and duration-range type - #71495
Conversation
…nd duration-range type
Three helpers existed as near-verbatim copies: the category duration
axis config (TracingSparkline + OperationHistogram), the error-rate
computation and sub-1% formatting rule (OperationsTable + the operation
scene), and the {minNs, maxNs} range type (durationBuckets +
operationFilters). Each now lives in one place. bucketUpperBound derives
from fillBucketSeries so the 1-2-5 series is encoded once, and a dead
pager ternary is dropped. No behavior change.
Generated-By: PostHog Code
Task-Id: 7f7a85c7-f491-4e9d-b5b1-93aa85c5ba9e
🤖 CI report✅ Bundle size — 🟢 -11.5 KiB (-0.0%)Uncompressed size of every built Total: 64.78 MiB · 🟢 -11.5 KiB (-0.0%)
Posted automatically by build-bundle-size-report · uncompressed bytes from dist-report ✅ Eager graph — within budgetHow much code each root ships on the eager path — downloaded and parsed before the surface is interactive. Measured from the esbuild output chunks (post-tree-shake, static imports only); lazy
🟢 Largest files eagerly shipped from
|
| Size | File |
|---|---|
| 126.8 KiB | ../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js |
| 24.6 KiB | ../node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.js |
| 6.3 KiB | ../node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react.production.min.js |
| 4.5 KiB | ../node_modules/.pnpm/@jspm+core@2.1.0/node_modules/@jspm/core/nodelibs/browser/process.js |
| 3.9 KiB | ../node_modules/.pnpm/scheduler@0.23.2/node_modules/scheduler/cjs/scheduler.production.min.js |
| 1.4 KiB | ../node_modules/.pnpm/base64-js@1.5.1/node_modules/base64-js/index.js |
| 1.3 KiB | src/RootErrorBoundary.tsx |
| 912 B | ../node_modules/.pnpm/ieee754@1.2.1/node_modules/ieee754/index.js |
| 789 B | src/scenes/ChunkLoadErrorBoundary.tsx |
| 762 B | src/index.tsx |
Largest files eagerly shipped from src/scenes/AuthenticatedShell.tsx
| Size | File |
|---|---|
| 281.3 KiB | ../node_modules/.pnpm/posthog-js@1.402.3/node_modules/posthog-js/dist/rrweb.js |
| 267.7 KiB | ../node_modules/.pnpm/@posthog+icons@0.38.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.js |
| 235.5 KiB | src/taxonomy/core-filter-definitions-by-group.json |
| 222.9 KiB | ../node_modules/.pnpm/posthog-js@1.402.3/node_modules/posthog-js/dist/module.js |
| 164.0 KiB | src/queries/validators.js |
| 154.3 KiB | ../node_modules/.pnpm/re2js@0.4.1/node_modules/re2js/build/index.esm.js |
| 126.8 KiB | ../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js |
| 105.8 KiB | src/lib/api.ts |
| 93.3 KiB | ../node_modules/.pnpm/prosemirror-view@1.40.1/node_modules/prosemirror-view/dist/index.js |
| 92.7 KiB | ../packages/quill/packages/quill/dist/index.js |
Posted automatically by check-eager-graph · sizes are eager output bytes (shipped, post-tree-shake) from the esbuild metafile · part of #32479
✅ Dist folder size — 🟢 -924 B (-0.0%)
Total size of the built frontend/dist folder (all assets), compared against the base branch.
Total: 1312.81 MiB · 🟢 -924 B (-0.0%)
|
Reviews (1): Last reviewed commit: "chore(tracing): dedupe duration-axis con..." | Re-trigger Greptile |
🦔 Hogbox preview · ✅ ready▶ Open the preview
commit |
There was a problem hiding this comment.
Verified this is a genuine no-behavior-change refactor: the dedup extraction (categoryDurationXScale, errorRate/formatErrorRate, DurationRange) and the bucketUpperBound reimplementation via fillBucketSeries are logically equivalent to the code they replace, and the removed pager ternary is confirmed dead (only reached inside a samples.length > 0 branch). Frontend-only, single-team, STRONG-familiarity author, no risky territory touched.
- Author wrote 100% of the modified lines and has 47 merged PRs in these paths (familiarity STRONG).
- 👍 on the PR from greptile-apps[bot], hex-security-app[bot].
Gate mechanics and policy version
| Gate | Result | |
|---|---|---|
| prerequisites | ✓ | all clear |
| deny-list | ✓ | no deny categories matched |
| size | ✓ | 101L, 6F substantive — within ceiling |
| tier | ✓ | T1-agent / T1c-medium (101L, 6F, single-area, chore) |
| stamphog 2.0.0b3 | .stamphog/policy.yml @ 800cd6f · reviewed head bc6b340 |
Problem
Three helpers exist as near-verbatim copies that can silently drift: the category duration axis config (
TracingSparkline+OperationHistogram, character-for-character identical), the error-rate computation and its sub-1% formatting rule (OperationsTable+ the operation scene), and the{minNs, maxNs}range shape (durationBuckets+operationFilters). The 1-2-5 bucket series math is also hand-rolled three times in one file.Changes
Each helper now lives in one place:
categoryDurationXScaleexported fromTracingSparkline,errorRate/formatErrorRateexported fromOperationsTable,DurationRangedeclared indurationBucketsand re-exported fromoperationFilters.bucketUpperBoundderives fromfillBucketSeriesso the series is encoded once. Also drops a dead pager ternary. Refactor only, no behavior change.How did you test this code?
durationBuckets.test.tspasses locally (27 tests), coveringbucketUpperBound's reimplementation. Component changes are import/reference swaps of identical code.Automatic notifications
Docs update
🤖 Agent context
Autonomy: Human-driven (agent-assisted)
Built with PostHog Code (Claude). Part of a set of small PRs split from the too-broad #71484 (now closed); these are the reuse findings from a multi-angle review pass.
Created with PostHog Code