Commit Graph

423 Commits

Author SHA1 Message Date
Damien Lespiau
53f1890ad7 tracking: Fix in-flight collision of two related PRs
Unfortunately, I forgot to rebase before renaming trackMixpanelEvent() and a PR
adding a new trace point was already in-flight.

More precisely:
  - https://github.com/weaveworks/scope/pull/2861 renames trackMixpanelEvent()
    to trackAnalysticsEent()
  - https://github.com/weaveworks/scope/pull/2857 add a new
    trackMixpanelEvent() call.

Each PR is fine, but with the merge of both without rebasing any, we end up
with master having a dandling call to trackMixpanelEvent().
2017-09-26 12:59:29 +01:00
Damien Lespiau
03475cec83 Merge pull request #2861 from weaveworks/tracking-with-segment
tracking: Use segment for tracking
2017-09-25 14:36:32 +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
74c0c782ac Merge pull request #2857 from weaveworks/2017-09-21-control-tracking
tracking: Add Mixpanel event on Control clicks
2017-09-25 12:06:19 +01:00
Damien Lespiau
802559e527 tracking: Add Mixpanel event on Control clicks
We'd like to gain some insight on how controls are used.
2017-09-22 16:39:37 +01:00
Filip Barl
75e0d383fe Simplified spring usage. 2017-09-11 18:50:23 +02:00
Filip Barl
f8343c189d Added one more comment. 2017-08-24 18:14:43 +02:00
Filip Barl
16e520da5e Proper handling of namespace selection when time travelling. 2017-08-24 18:11:46 +02:00
Filip Barl
065c2b11d6 Addressed small @foot's comments. 2017-08-23 16:41:17 +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
Filip Barl
a185ae4e15 Introduced hand cursor and unified ZoomableCanvas usage. 2017-08-23 15:04:50 +02:00
Filip Barl
f11a9d3614 Working prototype with internal zooming/panning handlers. 2017-08-23 15:04:50 +02:00
Roland Schilter
7b7b643797 Fix processes/hosts table not appearing (#2824) 2017-08-17 17:35:10 +01: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
Roland Schilter
90d0e79e65 Remove whitespace from empty connection lists (#2811) 2017-08-14 18:42:36 +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
Filip Barl
0c7896222c Exit time travel mode as a part of the app shutdown(). 2017-08-10 16:36:33 +02:00
Filip Barl
f98827698f Replaced the feature flag with historic reports capability flag. 2017-08-08 14:29:54 +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
Roland Schilter
13188845a5 Fix timeline label vertical displacement on some Chromes (#2793)
Fixes #2789
2017-08-07 11:05:53 +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
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
Filip Barl
8f1fdeb477 Make Resource view nodes clickable (#2679)
* Made Resource view nodes clickable.

* Remove selection when clicking on the background.

* Use opacity instead of the blue overlay for selected nodes.
2017-07-25 17:46:17 +02:00
Roland Schilter
1f784ad5fa Fix New Version notification not showing
Fixes #2716.
2017-07-17 16:32:27 +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
Roland Schilter
cf8a95c878 Merge pull request #2683 from weaveworks/table-overflow-plus-one
Show table overflow only if limit exceeded by 2+
2017-07-06 15:50:11 +02:00
Roland Schilter
dfda3e0b0b Show table overflow only if limit exceeded by 2+
Having to toggle a +1 feels weird while that +1 takes up
the same vertical space as displaying that row.
2017-07-06 13:56:03 +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
383ace4d7e Replace 'none' id for the none option in union types with ''
In union option groups, the list of selected ids is encoded as a comma-delimited string.
For example, if 'foo' and 'bar' are selected, the value 'foo,bar' is sent, ie ["foo", "bar"] -> "foo,bar"
Under this scheme, with nothing selected, the empty string should be sent, ie. [] -> ""

Before this change, the frontend code called the "none option" by id 'none'.
There were several issues with this:
* The frontend would send 'none' when nothing was selected, not ''. The backend ignored this as it ignores
  junk values in the options, treating them as though they hadn't been given.
* The backend would attempt to set the default value of an option to "nothing selected", ie. [], by sending ''.
  The frontend would interpret this as nothing selected, *not even the 'none' option*, which caused a visual bug.
* Everything would break if one of the legitimate options had the id 'none', which could easily happen eg.
  if a user had a 'none' k8s namespace. This is perhaps an unusual name, but our code shouldn't break when
  a particular arbitary string is used as an input.

With this change, the none option is called '', which fixes all the above problems:
* The frontend encodes [''] as ''
* The frontend decodes '' as [''], and therefore shows the '' option as selected
* The string '' is not a valid k8s namespace name and is a reasonable "prohibited value" for all other use cases.
  The backend already couldn't handle a value with this id correctly prior to this change anyway.
2017-06-21 15:03:18 -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
Filip Barl
fd8f9be9cb Fix the table sorting order bug for numerical values (#2587)
* Fix the table sorting order bug for numerical values.

* Addressed @davkal's comment.
2017-06-19 12:42:33 +02:00
Filip Barl
c4e0be45de Moved pause button back to footer. (#2585) 2017-06-14 11:39:45 +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
a585514d90 Hide container images status for pseudo nodes. (#2520) 2017-05-16 15:51:57 +01:00
Filip Barl
5935a32d0a Canvas zoom control (#2513)
* Added a zoom slider control in the bottom-right corner.

* Made the control vertical and added the buttons.

* Adjusted the styles and borders.

* Trying to fix Webpack

* Hide zoom control when there is no content.

* Polished the code.
2017-05-15 11:49:12 +02:00
Filip Barl
10b276c28a Use prop-types library to silence PropTypes deprecation warning (#2498)
* Use prop-types library to fix the deprecation warning.

* Updated weaveworks-ui-components version.
2017-05-05 18:23:43 +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
jpellizzari
3ec7cc82e6 Added service images widget 2017-05-03 10:31:25 -07:00
David Kaltschmidt
941f51645b Adds a default list to topology options if previous options are missing
This can happen when a new option is introduced while using an old URL
state.

Fixes #2489
2017-05-02 15:31:54 +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
David Kaltschmidt
11d9903d8f Remove zoom on double-click
This was confusing in demos at KubeCon and DockerCon this year, as
clicking on nodes kept the UI zooming in.
Plus, when asked, users had no idea that double-click meant zoom in.

Fixes weaveworks/service-ui#453
2017-04-21 17:00:09 +02:00