Commit Graph

103 Commits

Author SHA1 Message Date
Filip Barl
8f2d47ce4e Time travel redesign (#2651)
* Initial top level control.

* Added the jump buttons.

* Tiny styling adjustments.

* Massive renaming.

* Pause info

* Added slider marks.

* Improved messaging.

* Freeze all updates when paused.

* Repositioned for Configure button.

* Improved the flow.

* Working browsing through slider.

* Small styling.

* Hide time travel button behind the feature flag.

* Fixed actions.

* Elements positioning corner cases.

* Removed nodes delta buffering code.

* Fixed the flow.

* Fixed almost all API call cases.

* Final touches

* Fixed the tests.

* Fix resource view updates when time travelling.

* Added some comments.

* Addressed some of @foot's comments.
2017-07-06 16:06:55 +02:00
Filip Barl
eb64d3f09b Make API calls with time travel timestamp (#2600)
* Node details fetching reports at proper timestamp.

* Corrected all the relevant timestamps in the UI.

* Renamed some state variables.

* Time travel works for topologies list.

* Added a whole screen overlay for time travel.

* Polished the backend.

* Make time travel work also with the Resource View.

* Fixed the jest tests.

* Fixed the empty view message for resource view.

* Some naming polishing.

* Addressed the comments.
2017-06-20 12:31:22 +02:00
Filip Barl
b6dfe25499 Time travel control (#2524)
* Hacky working prototype.

* Operate with time.Duration offset instead of fixed timestamp.

* Polished the backend code.

* Made a nicer UI component.

* Small refactorings of the websockets code.

* Fixed the backend tests.

* Better websocketing and smoother transitions

* Small styling refactoring.

* Detecting empty topologies.

* Improved error messaging.

* Addressed some of David's comments.

* Moved nodesDeltaBuffer to a global state to fix the paused status rendering bug.

* Small styling changes

* Changed the websocket global state variables a bit.

* Polishing & refactoring.

* More polishing.

* Final refactoring.

* Addressed a couple of bugs.

* Hidden the timeline control behind Cloud context and a feature flag.

* Addressed most of @davkal's comments.

* Added mixpanel tracking.
2017-06-12 11:22:17 +02:00
Filip Barl
206a88df41 Calculate viewport dimensions from the scope-app div (#2473)
* Calculate viewport dimensions from the scope-app div.

* Addressed @foot's comments.
2017-04-27 15:36:22 +02:00
Filip Barl
65b9b48b53 Added mixpanel tracking for some basic events (#2462)
* Added mixpanel tracking for bunch of events.

* Changed hitEnter action to pinSearch.

* Moved all the event tracking out of app-actions.js

* Addressed @foot's comment.

* Added more keypress events tracking.

* Disable 'r' keyboard shortcut when Resource View is disabled
2017-04-27 14:26:07 +02:00
Filip Barl
23fb14d0be Polished the metric selection logic (#2468)
* Polished the metric selection code

* Fixed hovering advantage over pinning.
2017-04-26 16:18:42 +02:00
Filip Barl
c7bf7df975 Fixed view mode switching keyboard shortcuts (#2471)
* Replaced toggleGridMode with working actions.

* Addressed @foot's comment.
2017-04-26 14:26:47 +02:00
Filip Barl
69fd397217 Initial version of the resource view (#2296)
* Added resource view selector button

* Showing resource boxes in the resource view

* Crude CPU resource view prototype

* Improved the viewMode state logic

* Extracted zooming into a separate wrapper component

* Split the layout selectors between graph-view and resource-view

* Proper zooming logic for the resource view

* Moved all node networks utils to selectors

* Improved the zoom caching logic

* Further refactoring of selectors

* Added sticky labels to the resource boxes

* Added panning translation limits in the resource view

* Renamed GridModeSelector -> ViewModeSelector

* Polished the topology resource view selection logic

* Search bar hidden in the resource view

* Added per-layer topology names to the resource view

* Made metric selectors work for the resource view

* Adjusted the viewport selectors

* Renamed viewport selector to canvas (+ maximal zoom fix)

* Showing more useful metric info in the resource box labels

* Fetching only necessary nodes for the resource view

* Refactored the resource view layer component

* Addressed first batch UI comments (from the Scope meeting)

* Switch to deep zooming transform in the resource view to avoid SVG precision errors

* Renamed and moved resource view components

* Polished all the resource view components

* Changing the available metrics selection

* Improved and polished the state transition logic for the resource view

* Separated zoom limits from the zoom active state

* Renaming and bunch of comments

* Addressed all the UI comments (@davkal + @fons)

* Made graph view selectors independent from resource view selectors
2017-03-24 14:51:53 +01:00
jpellizzari
0f86ad1bed Prevent client polling after shutdown 2017-03-20 18:35:04 -07:00
jpellizzari
d775020794 Added logic to turn off network requests when Scope dismounts 2017-03-01 14:03:27 -08:00
Filip Barl
19202a2e44 Fixed the selectors performance leaks. 2017-03-01 12:14:36 +01:00
jpellizzari
f2f474ac80 Change to load contrast theme dynamically 2017-02-21 10:29:43 -08:00
Filip Barl
b9ba83ffca Moved the node networks computation to selectors. 2017-02-20 10:58:26 +01:00
jpellizzari
c9048d8661 Revert "Merge pull request #2204 from weaveworks/contrast-as-component"
This reverts commit 68e8cbf4f6, reversing
changes made to 00408b84e8.

Reverts bug where contrast mode is showing by default
2017-02-14 10:59:34 -08:00
Jordan Pellizzari
63dc4e1b3e Added dynamic contrast-mode toggle 2017-02-13 09:49:55 -08:00
jpellizzari
a6412f12b2 Scoped CSS classes inside .scope-app class 2017-01-24 11:33:20 -08:00
jpellizzari
62448ee7cb Added debugging/troubleshooting menu; Moved troubleshooting icons 2017-01-05 13:46:51 -08:00
Filip Barl
26b3e9efc9 Reapplied all the eslint upgrade changes 2016-12-15 15:04:53 +01:00
David
99bfab89b7 Revert "Upgraded eslint & eslint-config-airbnb" 2016-12-12 16:06:13 +01:00
fbarl
0cb48f6d71 Upgraded eslint, airbnb linting rules, and made trivial fixes 2016-12-12 10:55:45 +01:00
Jordan Pellizzari
ca49cfdfe6 Changed term.js lib to xterm.js 2016-10-27 15:23:02 -07:00
Simon Howe
288dff86bc Working nicely w/ flexbox etc. 2016-10-05 10:05:39 +02:00
Simon Howe
a1b8e963dc nodes-chart only re-rendered on prop updates!!! 2016-09-15 11:55:25 +02:00
David Kaltschmidt
38083b5965 Move grid selector to top menu
* move to top right, to bookend topologies
* hierarchically similar to search, so similar positioning

Fixes #1743
2016-08-04 14:49:28 +02:00
Simon Howe
3e4ec1dc61 Review feedback + fiddling w/ the columns widths a little more. 2016-08-03 08:53:07 +02:00
Simon Howe
a2810afaf1 Fixes grid -> topo transition.
- Also don't show table borders when no nodes.
- 't' toggles table mode on/off, rather than 't'/v'
2016-08-03 08:51:07 +02:00
Simon Howe
d0b99969ea Grid-mode tuning!
- Change scrolling behaviour to lock headers in place
- Enable filtering (hitting enter in the search bar) in grid-mode
- Little more top-margin for k8s (can have 3 topos) + taller rows.
- Trying out rank-color + node.relatives in the grid-mode
- First pass at selecting rows.
  - Needs a bit more a fiddle, colors + click areas
- Store grid sort direction (asc/desc) in url state
- Simplify node selection to one method. (over-ride existing card)
  - Remove clicking on name directly (links) to overlay new cards for now.
- Playing w/ grid-mode-toggle icons and labels
- Improves rendering in ff, change of shortcut keys for grid-mode-toggle
- Playing w/ clearer selection colors for grid-mode
- Slight change to selection-ui
- Fixes showNodeInTopology button visibility on the details-panel
  - Was using an old heuristic. Table-mode allows you to open child cards
    before the parent.
- Make it clear what the default sort is in tables
  - E.g. always show a sorting caret
- Sort grid-mode columns, first meta then metrics
- dancing-nodes rememdy #1: pause updates onRowHover
- Splits relatives out into their own columns
- Take into account scrollbar width for grid-mode col header position
- Tooltips on table column headers
- grid-mode: fixes first column headers (proc/container/c-by-image)
- Disable pause-on-hover, too aggresive
- reduce label column width a bit (33pc -> 25pc) for big tables
- Filter grid-mode onSearchChange
  - Rather than previous behaviour of waiting for an <enter>
- Show label_minor on pseudo nodes, that might not have much other info
- grid-mode: further reduce width of id column.
- Fixes go tests, properly moves parents into node-summary
- Fixes sorting of string columns w/ missing fields.
  - E.g. uptime. Where -1e-10 > '3days' doesn't work.
2016-08-03 08:50:37 +02:00
Simon Howe
fa502ae6ad Removes the combined table-topo-view 2016-08-03 08:46:17 +02:00
David Kaltschmidt
50fe1f8af2 Hide logo when in frame 2016-08-01 15:19:09 +02:00
Simon Howe
b8ed8aebf8 Support all us-intl dead keys 2016-07-20 13:17:11 +02:00
Simon Howe
6b4b07d0bc Copy paste of MoC controls as initial networks-view legend
Needs a bit of de-dup / customization

oops, bad typo

More fleshing out the structure for network-view

onHover netview-legend: highlight relevant nodes.

And the bool rolls on.

Handle nodes w/ no networks better

Corrects deselect-node when used w/ new network-view behaviour

Net view details "node" can be open when with no nodes selected. Hitting
"esc" from:
 - card 0: network-a
 - card 1: node-a
was not deselecting node-a

Deselect selectedNetwork correctly onEsc

Ooops, trailing ws breaks linting.

Adds NodeNetworksOverlay stub

Expands on NodeNetworksOverlay stub and adds arcs and colors

Expand and collapse networks legend

Open arc for network circle, shift for stack

Show our base hue range in the debug bar too..

Was trying to smooth out our hue selector but turned out to be tricky..

Uniquify random data generator!
2016-06-06 16:23:44 +02:00
David Kaltschmidt
3473beec98 Blur search when opening a terminal 2016-05-12 19:35:21 +02:00
David Kaltschmidt
749571ebe9 Review feedback
* Fix node-details-test for search
* Label spacing and matched text truncation
* Delete pinned search on backspace, add hint for metrics, escape % in URL
* Fix text-bg on node highlight
* Added tests for search-utils
* Fix matching of other topologies, added comment re quick clear
* s/cx/classnames/
* Ignore MoC keys when search in focus, blur on Esc
* Fixes search term highlighting on-hover
* Fix SVG exports
* Fine-tuned search item rendering
* Fixed search highlighting in the details panel
* Dont throb node on hover
* Hotkey for search: '/'
* Keep focus on search when tabbing away from the browser
* bring hovered node to top
* background for search results on hover
* fixed height for foreign object to prevent layout glitches
* Dont blur focused nodes on search
* More robust metric matchers
* More meaningful search hints
2016-05-11 18:08:59 +02:00
David Kaltschmidt
d1609658bf Apply search as filter 2016-05-11 18:08:59 +02:00
David Kaltschmidt
8669266f25 Toggle debug toolbar via ctrl-D 2016-05-11 18:08:59 +02:00
David Kaltschmidt
5a325e46fa Search on canvas
* adds a search field next to the topologies
* highlight results on canvas as you type
* non-matching nodes are grayed out
* "prefix:" limits search to field label
2016-05-11 18:08:59 +02:00
David Kaltschmidt
96aae9bc99 Migrate from Flux to Redux
* better state visibility
* pure state changes
* state debug panel (show: crtl-h, move: ctrl-w)
2016-04-27 17:21:46 +02:00
Tom Wilkie
901f46c5fc Report if newer version are availible in /api (#1366)
* Report if newer version are availible in /api

* Render version update hint in UI, next to version

* Fix lint
2016-04-22 10:25:00 +01:00
Simon Howe
a32bd7a54b Removes the metrics-feeder to keep things in sync.
Another temp fix.
2016-04-18 15:46:37 +02:00
David Kaltschmidt
f79a49beac Moved plugins renderer to the status footer 2016-04-12 17:22:38 +01:00
Paul Bellamy
7632e0b3c5 Adding support for plugins, with basic example of iowait, and ebpf
Squash of:
* Include plugins in the report
* show plugin list in the UI
* moving metric and metadata templates into the probe reports
* update js for prime -> priority
* added retry to plugin handshake
* added iowait plugin
* review feedback
* plugin documentation
2016-04-12 17:22:14 +01:00
Simon Howe
0a9f26bb60 Adds a shortcut panel! 2016-04-07 18:33:56 +02:00
Simon Howe
c452b68200 Fixes hotkeys in firefox and all browsers + international keyboards. 2016-04-07 14:02:19 +02:00
David Kaltschmidt
d8761aada1 Fix terminals (broken since f34146d)
`controlPipe` is now an immutable map, but was not treated that way by
all components.
2016-04-06 17:17:06 +02:00
David Kaltschmidt
d520cffec7 Performance tweaks
Add debug.html to show toolbar

Perfjankie test runner

Playing w/ the pure mixin for perf. improvements

* Works well! Smoother zooming/panning when things have settled.
* Extract node movement to node-container, make nodes pure

Extracted node chart elements into own components

Keep control objects immutable while in components

Keep layout state objects alive

Made other components pure, removed mixin from stateless components

Remove font size adjustment from scaling

Fix zoomscale

Move node transform to node

* makes more sense there because the coords are rounded in the container

dynamic coords precision based on topology size

Make edge points immutable

Remove nodes maximum for layout engine

Dont send all canvas state down to next component

moving layout handling back to nodes-chart.js

Omit some props for edges/nodes, dont animate edges on low precision

Moved AppStore access out of lower components
2016-04-05 15:45:13 +02:00
Simon Howe
4ec8b97fef metrics-on-canvas review feedback updates.
- Refactor some things.
- Fixes heptagon moc rendering
- Experiment w/ duller colors.
2016-04-04 21:02:30 +02:00
Simon Howe
432ea920fe Terminology change from lock -> pin
In meetings etc the term pin is more often used.
2016-04-04 17:48:44 +02:00
Simon Howe
9d968a789b Tidying up MoC
- no rand ids, org code
- Fixes tests, no .includes in jest for now
- Small comment on moc stuff
- Patch up differences after MoC rebase
2016-04-04 17:48:44 +02:00
Simon Howe
1710db6262 Save locked metric in the url.
- introduces "metric type" so we can flick across topos and keep the
  "type" of metric selected. Cheating and using label as the type atm.
2016-04-04 17:48:44 +02:00
Simon Howe
31ee76a1d9 Key binding to clear metrics "q"
Going w/ the `top` key mappings, needs discussion.
2016-04-04 17:48:43 +02:00