Commit Graph

255 Commits

Author SHA1 Message Date
Filip Barl
2fcbdb7e16 Applied autofix for object-curly-newline rule. 2017-10-17 19:07:14 +02:00
Filip Barl
d9a8afe81d No restricted globals. 2017-10-17 19:07:14 +02:00
Filip Barl
58922730f5 Fixed function-paren-newline. 2017-10-17 19:04:41 +02:00
Filip Barl
659c9b1304 Fixed spaced-comment. 2017-10-17 19:03:44 +02:00
Filip Barl
dfe4944ec7 Fixed indentation. 2017-10-17 19:03:44 +02:00
Damien Lespiau
cbfe63dc78 tracking: Fix now out of date comment 2017-09-25 14:03:09 +01:00
Damien Lespiau
a205f6ecb7 tracking: Rename trackMixpanelEvent() to trackAnalyticsEvent()
Might as well not mention Mixpanel now that we're sending all events to
Segment.

Commit done with:

  git grep trackMixpanelEvent | cut -d : -f 1 | sort -u | \
	xargs sed -e s/trackMixpanelEvent/trackAnalyticsEvent/g
2017-09-25 13:57:00 +01:00
Damien Lespiau
3f6faa5371 tracking: Use segment for tracking
Align scope to the rest of the platform.
2017-09-22 16:51:37 +01:00
Filip Barl
75e0d383fe Simplified spring usage. 2017-09-11 18:50:23 +02:00
Filip Barl
c159315245 Split between topology API polling & one time calls. 2017-08-24 18:11:46 +02:00
Filip Barl
a51d34f1e5 Introduced translation limits to the graph view. 2017-08-23 15:04:50 +02:00
Filip Barl
297e21d42c Removed d3-zoom reference in package.json. 2017-08-23 15:04:50 +02:00
Roland Schilter
0d381a34d6 Link scope-ui graphs clickable to prometheus queries (#2664)
scope-app:
* Adds `-app.metrics-graph` cli flag for configuring the base url to
use for graph links; supports :orgID and :query placeholders
* Assigns query URLs to existing metrics and appends empty metrics if missing

scope-ui:
* Extends <CloudFeature /> with option alwaysShow
* Adds <CloudLink /> to simplify routing when in cloud vs not in cloud
* Links metric graphs in the ui's node details view for all k8s
toplogies and containers so far
* Tracks metric graph click in mixpanel `scope.node.metric.click`
* Uses percentages and MB for CPU/Memory urls
* Passes timetravel timestamp to cortex in deeplink
2017-08-15 18:56:23 +01:00
Filip Barl
a2de44514c Smarter node details transition and polishing the edge cases. 2017-08-11 16:26:07 +02:00
Filip Barl
596885ed81 Improved the node details time transitioning logic 2017-08-11 13:26:42 +02:00
Filip Barl
1b028e1e04 Add fade out transition to node details panel and activate it when switching the top panel. 2017-08-11 12:41:59 +02:00
Roland Schilter
656fbac4e6 Fix rendering of exported SVG (#2794)
Replace invalid characters in attribute value; fixes the error

        Unescaped '<' not allowed in attributes values

Fixes #2534
2017-08-08 10:04:22 +01:00
Filip Barl
d8ffea4781 Balance timeline zooming sensitivity between Firefox and Chrome (#2788)
* Balanced timeline zooming sensitivity between Firefox and Chrome.

* Organize the wheel delta zooming logic better.
2017-08-07 11:27:12 +02:00
Filip Barl
9ea66266f3 Adjust timeline zoom sensitivity on Firefox (#2777)
* Adjust Firefox zoom sensitivity.

* Animate zooming to make it appear smoother (especially on Firefox).

* Debounced zoom tracking.

* Addressed the comments.
2017-08-01 17:36:46 +02:00
Filip Barl
f9e9a8ae4d Shrink timeline height and make years fade out (#2778)
* Shrink timeline height to 55px and make years fade out as hours fade in.

* Address the comments.
2017-08-01 14:17:03 +02:00
Filip Barl
bc7ad7a78a Always take timestamp into account in Node Details when time travelling (#2775) 2017-08-01 12:40:08 +02:00
Roland Schilter
c3c23d7dd1 Add test for pods number not updating (#2741)
* Fix distance test for single node

* Add test for pods number not updating labels
2017-07-28 17:13:41 +02:00
Filip Barl
2183a93916 Time Travel 3.0 (#2703)
* Experimental.

* Getting somewhere.

* Good zooming behaviour.

* Working timeline zooming & panning.

* Clickable timestamps.

* Dragging cursor

* Timeline panning buttons.

* Capping at current time.

* Scale limits.

* Better ticks.

* Time tags fading in smoothly.

* Removed seconds.

* Better tick spacing.

* Vertical panning as zooming.

* Organizing the code..

* Replaced d3-zoom with native events.

* Got rid of scaleX

* More code beautified.

* Almost done polishing the code.

* Some cleanup.

* Better request triggers.

* More cleaning up.

* Styled the timestamp input.

* Final cleanup.

* Update yarn.lock

* Zoom tracking.

* Animate timeline translations.

* Fixed the PAUSE button glitch and updating the time control info.

* Opacity fix and timeline arrows removed.

* Fixed the red vertical bar.

* Use preventDefault() on timeline scrolling.
2017-07-27 14:40:20 +02:00
Roland Schilter
e9945e78cb Keep topo nav visible if subnav selected
Follow-up to 21a0093c but also displays parent topology if
an empty sub_topology is selected.
2017-07-12 18:53:33 +02:00
Roland Schilter
21a0093c08 Keep topology nav visible if selected
If the scope-app API unexpectedly restarts, it has no report
at hand (until it gets one from the probe) and sends node
count 0 to the frontend for all topologies. Once the report
arrives, it will send the proper count.

What happened was the frontend did hide Processes for a short
time till the node count recovered. This moved the topology
selection to the always visible Containers (hide_if_empty == false)
while keeping the graph as is.

Once the node count recovers, Processes comes back but the
selection is still at Containers.

We now keep the selected topology visible at all time even if
the API returns a node count of 0. This recovers nicely when
the correct node counts come in. Once the user selects a different
topology while and a backend response arrives, it disappears.

Fixes #2646
2017-07-12 17:12:43 +02:00
Filip Barl
8f22d58cab Last line of defense against overlapping nodes in graph layout (#2688)
* Refresh the layout once more at the end if previous heuristics cause an overlap.

* Added mixpanel tracking.
2017-07-07 19:22:04 +02:00
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
Simon Howe
ee55d17b0e Review feedback on supporting multiple relatives in node-grid columns 2017-07-04 10:41:41 +02:00
Simon Howe
ffd531e44a Show multiple relatives in the nodes-grid view 2017-07-04 10:41:41 +02:00
Mike Lang
ec2a7fc753 Prefer controllers view for default view 2017-06-27 10:19:04 -07:00
jpellizzari
4f341cb1d2 Add new node shapes for k8s combined view
While we're there, adopt a consistent ordering for all places that shapes are listed
Order is least sides to most sides, with circle before polygons, and complex shapes (currently just Cloud) after.

On shape choices for topologies:
* Since the k8s logo is a heptagon, we want pods to be heptagons.
* Since triangle is 'a bit weird', we put it on the least-important type, replica sets.
* Pentagons look a little weirder than octogons (it's the lack of symmetry) so we put octogons on the most common (deployments)
2017-06-27 10:19:04 -07: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
Alfonso Acosta
e42347addc Merge pull request #2590 from weaveworks/release-1.5
Release 1.5.0
2017-06-19 12:13:26 +02:00
Filip Barl
0869d26ec4 Moved highlighted nodes/edges info to selectors (#2584)
* Use selector for highlighted nodes.

* Use selector for highlighted edges.
2017-06-14 11:11:59 +02:00
Filip Barl
83f557b638 Don't display the empty message when nodes are displayed. (#2597) 2017-06-14 11:03:54 +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
7669c325d7 Update node libraries (#2292)
* Upgraded Webpack 1.13 -> 2.2

* Made webpack.prodution.config.js work and updated yarn.lock

* Updated a lot of small dependencies.

* Upgraded React

* Bunch of small devDependencies updated.

* Fully updated devDependencies

* Updated optionalDependencies

* Updated everything except D3 zoom.

* Fixed linting error.

* Another update.

* Reverted materialize-css upgrade and applied new eslint rules

* Final fixes to webpack configs.

* Updated yarn.lock again.
2017-05-04 13:12:00 +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
82e373777a Increase cloud node thickness in graph view (#2418)
* Unified node shapes rendering templates.

* Addressed @foot's comments (fix shadow thickness across all shapes).

* Made getClipPathDefinition slightly more readable.
2017-04-06 14:44:52 +02:00
Simon Howe
2c61635347 Fixes loading of viewState from localStorage into URL
Needed another serialization to avoid "[Object object]" in the url.
2017-03-28 14:53:35 +02:00
jpellizzari
24e56dfe78 Add check for old options 2017-03-27 18:57:33 -07:00
jpellizzari
4612738580 Added comma-separated URL params 2017-03-27 10:06:56 -07:00
Filip Barl
ddb65347c9 Make a doRequest instead of fetch. 2017-03-24 21:31:44 +01:00
Filip Barl
f633c6edb1 Fetch the resource view topologies on first topologies load 2017-03-24 18:45:58 +01: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
Jordan Pellizzari
118280a2a8 Merge pull request #2361 from weaveworks/change-instance-fix
Clear client polling and nodes state on dismount
2017-03-22 08:37:01 -07:00
jpellizzari
9dfcd213c3 Replaced timely dependency 2017-03-21 12:26:52 -07:00
jpellizzari
0f86ad1bed Prevent client polling after shutdown 2017-03-20 18:35:04 -07:00
Jordan Pellizzari
c7f6a07838 Changed client tests to use EDGE_ID_SEPARATOR constant 2017-03-19 17:30:26 -07:00