Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a changelog, dates to 2017-08-23 #103

Closed
wants to merge 2 commits into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
311 changes: 311 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,311 @@
# Changes merged into master



## [#103](https://github.com/jaegertracing/jaeger-ui/pull/103) Add a changelog, dates to 2017-08-23

Non-functional change.

Adds a `CHANGELOG.md` document that details merged PRs.

Starts from late August, 2017.


## [#93](https://github.com/jaegertracing/jaeger-ui/pull/93) Keyboard shortcuts and minimap UX (2017-10-20)

![93-00-viewrange-ux-kbd](https://user-images.githubusercontent.com/2304337/31641055-2c00529e-b2b0-11e7-9ff2-34716ecfcc70.gif)

**Issues addressed:**

- [In-trace search should allow navigation between results](https://github.com/uber/jaeger-ui/issues/91) (partially addresses)
- Fix #89 - [trace view - Drag and release on timeline header row zooms into respective range](https://github.com/uber/jaeger-ui/issues/89)
- Fix #23 - [trace view - Navigate and zoom via minimap](https://github.com/uber/jaeger-ui/issues/23)
- Fix #22 - [trace view - Pan and zoom via keyboard shortcuts](https://github.com/uber/jaeger-ui/issues/22)

**Changes:**

- Revamped mouse UX on trace minimap
- Adjusted rendering of the trace minimap to make spans more visible in large traces
- Added visuals and mouse UX for zooming to trace timeline header row
- Added keyboard shortcuts:
- Scroll up, down (`w`, `s`)
- Scroll to next, previous visible span (`f`, `b`)
- Pan left, right (`a` or `left`, `d` or `right`)
- Large pan left, right (`shift+left`, `shift+right`)
- Zoom in, out (`up`, `down`)
- Large zoom in, out (`shift+up`, `shift+down`)



## [#84](https://github.com/jaegertracing/jaeger-ui/pull/84) Improve search dropdowns (2017-09-28)

- Fix #79 - Sort services and operations operations (case insensitive)
- Fix #31 - Filter options based on contains instead of starts with
- Fix #30 - Filter options based on case insensitive match



## [#78](https://github.com/jaegertracing/jaeger-ui/pull/78) Custom menu via /api/config with project links as defaults (2017-09-26)

Fix #44.

- Configurable top-level links
- Attempts to download `/api/config`, errors cause fall-back to default
- Supports one level of nesting
- Supports a `label` and `url` for each link
- Groups support a `label` and `items` where `items` is an array of links
- **All links open to external tabs**
- **Does not currently support a "selected" state for links**

Default menu config:

- About Jaeger
- [GitHub](https://github.com/uber/jaeger)
- [Docs](http://jaeger.readthedocs.io/en/latest/)
- [Twitter](https://twitter.com/JaegerTracing)
- [Discussion Group](https://groups.google.com/forum/#!forum/jaeger-tracing)
- [Gitter.im](https://gitter.im/jaegertracing/Lobby)
- [Blog](https://medium.com/jaegertracing/)
- ~Create a ticket~

**Screenshot updated**
![screen shot 2017-09-21 at 2 37 09 pm](https://user-images.githubusercontent.com/2304337/30712608-94d114e6-9eda-11e7-952a-b44a09a7e967.png)



## [#81](https://github.com/jaegertracing/jaeger-ui/pull/81) Fix Google Analytics tracking (2017-09-26)

Fix #80.

Created an HOC that checks the state of the router and tracks a page-view whenever the URL or query string changes. This is necessary because react-router v4 [did away with the onUpdate](https://github.com/ReactTraining/react-router/blob/master/packages/react-router/docs/guides/migrating.md#on-properties) lifecycle event.



## [#83](https://github.com/jaegertracing/jaeger-ui/pull/83) Fix traceIDs query params clobbering form search (2017-09-26)

Fix #82.

Changed functionality is: traceIDs are ignored when the search form is triggering the search.



## [#77](https://github.com/jaegertracing/jaeger-ui/pull/77) Fix trace mini-map blurry when < 60 spans (2017-09-21)

Fix #76.

Before: <img width="931" alt="screen shot 2017-09-20 at 8 25 08 pm" src="https://user-images.githubusercontent.com/2304337/30673937-a400f3aa-9e44-11e7-8d16-a6bb7e025b53.png">

After: <img width="929" alt="screen shot 2017-09-20 at 8 44 45 pm" src="https://user-images.githubusercontent.com/2304337/30673929-96652bc6-9e44-11e7-836e-86e32fce0d89.png">



## [#74](https://github.com/jaegertracing/jaeger-ui/pull/74) Make left column adjustable in trace detail (2017-09-20)

Fix #63 .

Column width of span name is now adjustable, within the bounds of [15%, 85%]. It's not clear in the gif, below, but the reduced opacity highlight color is present when dragging the column in either direction.

![64-01-resize-left-column](https://user-images.githubusercontent.com/2304337/30423428-9b2808e2-98f7-11e7-9fb0-559d6dbc4268.gif)



## [#72](https://github.com/jaegertracing/jaeger-ui/pull/72) Use canvas instead of SVG for trace mini-map (2017-09-17)

Fix #61.

- Render span graph via canvas instead of SVG
- Zoom range changed to [0, 1], e.g. time and trace agnostic (allowed removal of some utils)
- "Timeline" -> 0ms
- Use props instead of context to provide span graph with viewing range
- Move all span graph related classes into same folder
- Misc CSS cleanup



## [#71](https://github.com/jaegertracing/jaeger-ui/pull/71) [trave view] Mouseover expands truncated text to full length in left column (2017-09-14)

Fix #65.

See attached screenshot (text is blurry due to scaling down retina dpi).

Mouseover in the span name column expands the service/operation text if it is truncated.

Also, fixed regression in header for left column ("Span Name" -> "Service & Operation").

![span-name-hover-marked](https://user-images.githubusercontent.com/2304337/30237887-ac93a510-9509-11e7-9842-ecf96e928da0.png)




## [#68](https://github.com/jaegertracing/jaeger-ui/pull/68) Virtualized scrolling for trace detail view (2017-09-08)

### Description

Started with [react-virtualized](https://github.com/bvaughn/react-virtualized), but issues around flashes of un-rendered regions while scrolling and dynamically sized / periodically changing content lead to revival of old project that essentially does the same thing: `src/components/TracePage/TraceTimelineViewer/ListView/*`.

`ListView` is more optimized to our needs (and less versatile). These optimizations include:

- Taking the approach of rendering less often and larger amounts of items per render
- Optimizing for scrolling in both directions instead of only the current scroll direction
- Having a concept of minimum and regular ["overscan"](https://github.com/bvaughn/react-virtualized/blob/master/docs/overscanUsage.md), which means if the currently rendered list of items meets a minimum buffer, don't render more, but if it doesn't, then render enough meet the minimum buffer and some extra, as well

### Performance

#### Flashes of un-rendered content

- Smaller traces (~500 spans or less)
- Not really an issue in prod or PR 68
- Larger traces (~5k spans)
- PR 68 is on par with prod, possible slightly better
- Still fairly easy to see flashes of un-rendered content
- Issue was quite aggravated with react-virtualized (hence, a custom solution is implemented)
- Massive traces (~15k spans or more)
- Flashes of un-rendered content is a significant problem for the release currently in prod
- PR 68 performance doesn't vary much between 5k and 15k+ traces


#### Performance on a 5,000 span trace

_Sample size of 1._

- /trace/8d224b61611c807f
- Duration: 5.83s
- Services: 11
- Depth: 11
- Spans: 5,013
- Performance recording enabled (degrades performance)

**Initial loading (in milliseconds)**

Task | Prod - PR 53 (ms) | PR 68 (ms) | Ratio | Reduction
-- | -- | -- | -- | --
**Total** | **6,964** | **1,899** | **0.27** | **73%**
Loading | 45 | 32 ||
**Scripting** | **3,051** | **1,198** | **0.39** | **61%**
**Rendering** | **3,126** | **430** | **0.14** | **86%**
Painting | 116 | 34 ||
Other | 626 | 205 ||

Note: Ticket #61 (Use canvas instead of SVG for trace mini-map) will likely further improve initial loading.

**Expanding details**

- Prod : 3753 ms
- PR 68: 418 ms (0.11)

**Text search ("gopro")**

- Prod : 5496 ms
- PR 68: 227 ms (0.04)

#### Performance on a 42,000 span trace

_Sample size of 1._

- /trace/c440ed36
- Duration: 3,393.93s
- Services: 25
- Depth: 11
- Total Spans: 42,499
- Performance recording enabled (degrades performance)

**Initial loading (in milliseconds)**

Task | Prod - PR 53 (ms) | PR 68 (ms) | Ratio | Reduction
-- | -- | -- | -- | --
**Total** | **86,792** | **7,105** | **0.08** | **92%**
**Scripting** | **28,273** | **5,596** | **0.20** | **80%**
**Rendering** | **57,197** | **1,424** | **0.03** | **97%**
Painting | 1,321 | 85 | 0.06 | 96%


**Expanding details**

- Prod : 39,500 ms
- PR 68: 465 ms (0.01)

**Text search**

- Prod : 43,728 ms
- PR 68: 757 ms (0.02)



## [#64](https://github.com/jaegertracing/jaeger-ui/pull/64) Reorganize span detail components (2017-08-25)

- Split sub-components of `SpanDetail` out into separate files.
- Move styles into CSS (addresses [this PR comment](https://github.com/uber/jaeger-ui/pull/53#discussion_r134318660))
- Misc style and DOM tweaks (see attached screenshot)
- Expanded table styling
- Tag summary styling
- Background on hover of expandable / collapsable elements
- Debug info

![span-detail-pr-marked](https://user-images.githubusercontent.com/2304337/29575771-870667b2-8733-11e7-8af5-1d804cf273a2.png)



## [#67](https://github.com/jaegertracing/jaeger-ui/pull/67) Change to use node >= 6 via .nvmrc (2017-08-24)

Upgrade to latest ([#53](https://github.com/jaegertracing/jaeger-ui/pull/53)) requires node >= 6.



## [#53](https://github.com/jaegertracing/jaeger-ui/pull/53) Refactor trace detail (2017-08-23)

#### SpanGraph

- Fix #49 - Span position in graph doesn't not match its position in the detail
- Ticks in span graph made to match trace detail (in number and formatting)
- Span graph refactored to trim down files and DOM elements
- Styling adjustments

#### TracePageHeader

- `trace` prop removed
- Added props for various title values instead of deriving them from `trace`

#### Trace Detail

- Several components split out into separate files
- `transformTrace` to use already created span tree to determine span depth
- Fix #59 - "Span Name" to "Service & Operation"

#### Span Bar / Detail

- Fix uber/jaeger#326: extraneous scrollbars in trace views
- Fix #55: Some tags were not being rendered due to clashing keys (observed in a log message)
- Tall content scrolls via entire table instead of single table cell
- Horizontal scrolling for wide content (e.g. long log values) (Fix #58)
- Full width of the header is clickable for tags, process, and logs headers (instead of header text, only)
- Service and endpoint are shown on mouseover anywhere in span bar row
- Label on span bars no longer off-screen
- Clip or hide span bars when zoomed in (instead of flush left)
- Add shadow to left / right boundary when span bar view is clipped
- Darkened span name column to differentiate from span bar section
- Span detail left column color coded by service
- Clicking span detail left column collapses detail
- Clicking anywhere left of parent span name toggles children visibility
- Prevent collision of logs in log entries table

#### SearchTracePage
- Scatterplot dots are sized based on number of spans
- Scatterplot dots mouseover shows trace name

#### Misc
- Several TraceTimelineViewer / utils removed
- `TreeNode` `.walk()` method can now be used to calculate the depth, avoiding use of less efficient `.getPath()`
- Removed several `console.error` warnings caused by React key issues
- `yarn upgrade --latest`
- Removed `react-sticky`
- Fix #42 - Support URL prefix via homepage in package.json
- Maintenance of tests
- Cleanup unused vars, imports
- Refine utils
- Many styles moved to CSS



## Before 2017-08-23

[Older changes are not logged here.](https://www.youtube.com/watch?v=NoAzpa1x7jU&feature=youtu.be&t=107)