Commit Graph

199 Commits

Author SHA1 Message Date
Kevin Lingerfelt 37434d048a
Update web component to use new stat api (#753)
* Update web component to use new stat api
* Address review feedback
* Add external link icon

Signed-off-by: Kevin Lingerfelt <kl@buoyant.io>
2018-04-12 17:35:03 -07:00
Andrew Seigner b6bcdcc059
Namespace-aware Grafana dashboards (#716)
The Grafana dashboards key off of deployment, but had no awareness of
namespaces, causing incorrect metrics aggregation and display.

This change makes the Grafana dashboards key off of namespaces, and also
modifies the Grafana links in the Conduit dashboard to link to
namespace+deployment.

Fixes #704
Part of #420

Signed-off-by: Andrew Seigner <siggy@buoyant.io>
2018-04-06 15:37:53 -07:00
Andrew Seigner 836168884e
Link to Grafana from Conduit Dashboard (#678)
* Link to Grafana from Conduit Dashboard

Previously the only way to access the Grafana dashboards was via direct
link, provided by the `conduit dashboard` command.

Add Grafana links throughout the Conduit Dashboard, next to all
Deployment objects. This change also modifies the behavior of the
ConduitLink helper, to enable linking to other deployments proxied by
the `conduit dashboard` command.

Part of #420

Signed-off-by: Andrew Seigner <siggy@buoyant.io>

* review feedback

Signed-off-by: Andrew Seigner <siggy@buoyant.io>

* review feedback, fix console, remove absolute

Signed-off-by: Andrew Seigner <siggy@buoyant.io>
2018-04-06 10:56:42 -07:00
Franziska von der Goltz eff848a8cf
fix pod status and count in control plane dashboard (#659)
* fix pod status and count display in control plane dashboard section:
- the control plane would show terminated and stale deployments in the UI, this is confusing and might indicate errors
- this filters out temrinated and failed component deploys from the UI
- it is to note that pending deploys will still be counted and represented with a greyed out status dot
- Fixes: #606

Signed-off-by: Franziska von der Goltz <franziska@vdgoltz.eu>


Signed-off-by: Franziska von der Goltz <franziska@vdgoltz.eu>
2018-04-03 10:39:35 -07:00
Franziska von der Goltz 67fac9d240
remove toggle sorting functionality from TableComponent (#630)
remove toggle sorting functionality from TableComponent:
- tables displaying metrics allowed to toggle between being sorted and unsorted when clicking the same button. This was confusing behavior for the user.
- this PR removes the toggle functionality and introduces a BaseTable Component that extends antd's component without the capability to toggle
- Fixes: #566

Signed-off-by: Franziska von der Goltz <franziska@vdgoltz.eu>
2018-03-28 18:01:34 -07:00
Kevin Lingerfelt b9b16195b8
Remove uses of upstream/downstream from web UI (#400)
Signed-off-by: Kevin Lingerfelt <kl@buoyant.io>
2018-02-20 17:05:22 -08:00
Risha Mars ae0d47d5c9
Add ability to cancel promises via a wrapper (#374)
* Add ability to cancel promises via a wrapper

* Let the ApiHelpers keep track of outstanding requests, provide ApiHelpers.cancel()
2018-02-19 17:28:40 -08:00
Risha Mars 53354cf68f
Small UI tweaks for 0.3 prep (#377)
* Display more decimal points for truncated numbers, add hover info

* Filter completed pods out of web UI

* Decrease the polling interval from 10s to 2s

* Add more detailed pod categorization based on status

* Tweak filtering of pods, tweak explanations in status table
2018-02-19 14:11:03 -08:00
Risha Mars 8bc7c5acde
UI tweaks: sidebar collapse, latency formatting, table row spacing (#361)
- reduce row spacing on tables to make them more compact
- Rename TabbedMetricsTable to MetricsTable since it's not tabbed any more
- Format latencies greater than 1000ms as seconds
- Make sidebar collapsible 
- poll the /pods endpoint from the sidebar in order to refresh the list of deployments in the autocomplete
- display the conduit namespace in the service mesh details table
- Use floats rather than Col for more responsive layout (fixes #224)
2018-02-19 11:21:54 -08:00
Kevin Lingerfelt 300fd3475b
Remove unused web routes and helper (#356)
Signed-off-by: Kevin Lingerfelt <kl@buoyant.io>
2018-02-14 11:52:39 -08:00
Risha Mars 1f6aa27922
UI updates, graph removals (#319)
UI cleanups. Remove repetitive labels in the UI, remove unused elements, 
remove graphs until we improve their utility.

- remove “Deployment” from the headers of the Deployment Detail Page
- remove Routes in sidebar
- kill leftmost 100px of sidebear
- remove word controller from service mesh page first table
- add twitter and GitHub and slack links
- kill the graphs, replace with one large header (request rate, success rate, latency top bar)
put upstream/downstream diagram before upstream downstream tables

* Clean up DeploymentList page (#321)

- remove "Most active deployments" graphs from the Deployments List page
- remove the scatterplot sections of the page as I don't think we'll be using them for a while
2018-02-12 12:44:33 -08:00
Eliza Weisman 6c2ac6125f
Remove per-path metrics from UIs (#315)
I've removed per-path metrics from the web dashboard and from the `conduit stat` command. 

Manually validated that these metrics are no longer displayed.

Closes  #263

Signed-off-by: Eliza Weisman <eliza@buoyant.io>
2018-02-09 12:35:49 -08:00
Eliza Weisman 2015d992cc
Remove pod-level metrics from web and CLI (#304)
This PR updates the web UI to remove the pod detail page, and to remove the links to that page from pod names in metrics tables. It also removes the `pods` option from `conduit stat`, and the `sourcePod` and `targetPod` fields from the controller API proto's `MetricMetadata` message.

I've updated the `conduit stat` tests to reflect these changes, and manually verified the web UI changes.

Closes #261 

Signed-off-by: Eliza Weisman <eliza@buoyant.io>
2018-02-08 19:07:10 -08:00
Risha Mars 81d4b7b924
Fix bug where table data wasn't being updated (#290) 2018-02-08 10:33:33 -08:00
Risha Mars ff15574a0d
MetricsTable: Consolidate latency, success, request metrics into one tab (#276)
* Consolidate latency, success, request metrics into one tab
on the SortableMetricsTable

- removes sparklines from the table
- makes tables sortable by default
- move pod table in DeploymentDetail to its own row

* remove request distribution column, reorder columns
2018-02-07 09:50:01 -08:00
Risha Mars 185f48b086
DeploymentsList: Replace "least healthy" with "most active" deployments (#277)
* Replace Least Healthy Deployments section with Most Active Deployments (MAD)

* Fix old arguments to ConduitLink
2018-02-06 11:35:57 -08:00
Risha Mars c2da891be7
Minor UI title renames and other tweaks (#256)
* ServiceMesh: plot public-api instead of destination, retitle destination and telemetry graphs

* ResourceHealthOverview: Hide Inbound/Outbound request rate if there are 0 deployments

* ResourceMetricOverview: retitle DeploymentDetail/PodDetail sections
2018-02-05 11:27:31 -08:00
Risha Mars 9887f10749
Add ability to change the time window for metrics fetching throughout the app (#237)
* Control metricsWindow from root of app

- Add buttons [currently hidden] on metrics pages to control window of metrics requests
- Consolidate metricsWindow usage (stop passing it around)
- Add a ConduitLink component so we can stop passing around pathPrefix
- Add tests for ApiHelpers

* Hide the time window buttons; fix bug in absolute links
* Add a note explaining why metricWindow buttons are disabled
* Convert ConduitLink in to a component that wraps another
2018-02-05 10:56:17 -08:00
Risha Mars f3925a07fb
Various small UI tweaks (#234)
* Various small UI naming tweaks

- align top two tables in the service mesh page
- "All Deployments" -> "Deployments"
- reorder latency p50, p95, p99
- "Current success" -> "Success rate"

* Add margin to incomplete mesh message, reorder latency in TabbedMetricsTable
* Right align numbers in service mesh page
2018-01-31 18:09:15 -08:00
Kevin Lingerfelt 7399df83f1
Set conduit version to match conduit docker tags (#208)
* Set conduit version to match conduit docker tags

Signed-off-by: Kevin Lingerfelt <kl@buoyant.io>

* Remove --skip-inbound-ports for emojivoto

Signed-off-by: Kevin Lingerfelt <kl@buoyant.io>

* Rename git_sha => git_sha_head

Signed-off-by: Kevin Lingerfelt <kl@buoyant.io>

* Switch to using the go linker for setting the version

Signed-off-by: Kevin Lingerfelt <kl@buoyant.io>

* Log conduit version when go servers start

Signed-off-by: Kevin Lingerfelt <kl@buoyant.io>

* Cleanup conduit script

Signed-off-by: Kevin Lingerfelt <kl@buoyant.io>

* Add --short flag to head sha command

Signed-off-by: Kevin Lingerfelt <kl@buoyant.io>

* Set CONDUIT_VERSION in docker-compose env

Signed-off-by: Kevin Lingerfelt <kl@buoyant.io>
2018-01-26 11:43:45 -08:00
Risha Mars 8f63c2b7a5
Fix link to deployments from autocomplete not including pathPrefix (#209)
Signed-off-by: Risha Mars <mars@buoyant.io>
2018-01-25 16:47:39 -08:00
Risha Mars d0119162e8
Switch to ant sider/content Layout modules (#188)
* Switch to ant sider/content Layout modules, to help style sidebar
This fixes the problem of the sidebar not extending all the way on long pages.
* Fix a bug where the autocomplete options weren't being reset when an item was selected
2018-01-24 11:38:54 -08:00
Risha Mars b9f5ad093f
Rename js components to clarify component relationships (#179)
* Rename components to clarify component relationships
* Rename Deployment to DeploymentDetail to match PodDetail
* Rename Deployments to DeploymentsList to clarify which page this is
* Rename StatPane to ResourceMetricsOverview to be a less generic name
* Rename HealthPane -> ResourceHealthOverview
* Rename StatPaneStat -> ResourceOverviewMetric

Signed-off-by: Risha Mars <mars@buoyant.io>
2018-01-23 10:05:53 -08:00
Risha Mars 8a1dc1a2b5
Improve appearance of autocomplete search bar (#180)
Signed-off-by: Risha Mars <mars@buoyant.io>
2018-01-19 10:40:52 -08:00
Risha Mars eea711a7f2
Hide scatterplot (#175)
Signed-off-by: Risha Mars <mars@buoyant.io>
2018-01-18 16:20:12 -08:00
Risha Mars 9d552bccb1
Revive searchbar: Add autocomplete search bar back into sidebar (#158)
* Add autocomplete search bar back into sidebar

Signed-off-by: Risha Mars <mars@buoyant.io>

* Use getPodsByDeployment

Signed-off-by: Risha Mars <mars@buoyant.io>
2018-01-17 11:03:42 -08:00
Risha Mars 14cba8870e
Revive scatterplot: re-add scatterplot to Deployments page (#144)
* Revive scatterplot: re-add scatterplot to Deployments page

Tried to make some UI improvements to address previous problems:

* added a hover bar and tooltip that displays all of the nodes under the bar, 
in descending order of successRate (to correspond with their order in the chart)
* the tooltip looked weird in the empty state so I also added the max/min latencies 
observed there

Also cleans up the Deployments page a little when there are not any "least healthy deployments".

* Previously, the sidebar tooltip would still render the last
highlighted nodes' information when the dots updated. Fix that
by selecting a datapoint to highlight when the dots update.

* Add overlay tooltip with names of highlighted nodes

* Align the node labels with the node, except in cases of label overlap


Signed-off-by: Risha Mars <mars@buoyant.io>
2018-01-17 10:10:59 -08:00
Franziska von der Goltz de4ab1d807
add ability to add flash to latest datapoint on line graph. (#127)
* add ability to add flash to latest datapoint on line graph based on passed down prop.
- added flash to all graphs except the sparklines

Signed-off-by: Franziska von der Goltz <franziska@vdgoltz.eu>
2018-01-12 09:58:36 -08:00
Risha Mars 1cf9da8ee7
Add /paths page that displays metrics by path, add ability to sort Table (#133)
* Add /paths page that shows rollup metrics by path
* Clean up ApiHelpers a bit

Adds ability to sort by column in the tabbed metrics table (to make a TabbedMetricsTable sortable, set sortable={true})

Adds a page, accessible via /paths that shows a table of all paths, with their request/success/latency metrics. I haven't exposed it in the sidebar as it doesn't have design treatment.
2018-01-11 17:36:48 -08:00
Risha Mars 00844913f5
Upgrade React, ant, enzyme (#109)
* Upgrade ant to 3.1.0

* Adjust styles for updated ant

- Locale is enUS by default now, so removing our config
- Adjust table styles

* Upgrade react and react-dom to 16.2.0

* Upgrade enzyme to 3.3.0, fix tests accordingly
2018-01-10 10:10:59 -08:00
Risha Mars fa49de6ff4
Make TabbedMetricsTable in charge of fetching timeseries (#89)
* Make TabbedMetricsTable in charge of fetching timeseries

All of the parent components in charge of fetching timeseries data
don't actually use them, but pass them to this table. It would simplify
a lot of the parents if this component handled the ts fetching too.

This introduces a urlsForResource helper in ApiHelpers to allow
us to consolidate url generating in the app to one place. It also
associates the appropriate groupBy for various fetches.

Signed-off-by: Risha Mars <mars@buoyant.io>
2018-01-03 16:55:56 -08:00
Andrew Seigner 449f306aeb
Implement client-side version checking (#79)
Previously Conduit would render an iframe, received from
versioncheck.conduit.io.

Modify the client to retrieve the latest released version, via CORS.

Signed-off-by: Andrew Seigner <andrew@sig.gy>
2018-01-02 16:07:50 -08:00
Risha Mars 4389a1e312
Bind this.handleApiError in PodDetail (#84) 2017-12-22 13:54:34 -08:00
Risha Mars 8cf1bdbee3
Consolidate api calling from the UI; Start surfacing API errors (#65)
* Adds an ApiHelpers module that wraps our api calls to the server

* Adds ability to display error messages from the server
2017-12-21 15:18:35 -08:00
Franziska von der Goltz 405db65a18
refactored incomplete-mesh messaging to be stored in CopyUtils.jsx (#78) 2017-12-21 10:51:54 -08:00
Risha Mars 13a62cb21b
Add message to indicate /routes is not implemented (#77)
If someone clicks on Routes in the sidebar, the page appears to fail to load, 
but this endpoint is unimplemented. Add a message to indicate that.
2017-12-20 10:25:10 -08:00
Risha Mars 46ee763e8e
Have better empty states in Deployment Detail and Pod Detail (#71)
* Have better empty states in Deployment Detail and Pod Detail

* Fix call to action on deployment detail page

Adds various checks to hide sections of pages that don't have data:

* Removes the timeseries graphs and latency overview from Deployment/Pod 
detail if there are no metrics for it

* Removes the Upstreams/Downstreams if num upstreams / downstreams is 0

* Removes the pod barcharts from the Deployment detail if there are no pods

* If there are no pod metrics, populate the list of pods from /pods
These changes strip the pod detail view down a lot if there's no pod data, but that might be fine
2017-12-19 17:02:03 -08:00
Dennis Adjei-Baah 42d942c0bf
Add links to each deployment name in the Conduit dashboard (#44)
* add links for each deployment name and add a message for unadded deployments
2017-12-19 15:40:24 -08:00
Franziska von der Goltz 3591936de3
fix inconsistent deployment count on servicemesh page (#69)
* fix inconsistent deployment count on servicemesh page.
* tests added for deploy count messaging on servicemesh page
* refactored code for Call To Action component to use 'instructions' in util
* refactored correlating css
2017-12-19 14:53:47 -08:00
Sterling White ff519fc855 Swhite/css updates (#55)
* fix sidebar highlighting when dashboard is opened via cli:
- took path prefix into account

* addressed review feedback: using pathprefix

* addressed review feedback:
- revert to using this.props.location

* updates sidebar, initial progress indicator

* Update web README
2017-12-18 15:03:49 -08:00
Risha Mars 55de336325
Add a couple more eslint rules (#50)
* Add a couple more eslint rules

* Add keyword-spacing
2017-12-15 12:24:42 -08:00
Risha Mars d11115d241
Add javascript tests (#45)
* Add JS testing infra: karma, mocha, sinon, chai, enzyme

* Grab styleNum tests from kl
2017-12-14 15:12:26 -08:00
Risha Mars 27b6a9bc1f
Readability improvements on Bar Chart (#35) 2017-12-14 14:52:03 -08:00
Risha Mars 6b00bb8283
Allow Deployments page to handle larger numbers of deployments (#32)
* Revamp metrics processing in MetricUtils

- Try to improve documentation of functions
- Remove nested data from processed metrics - they were often duplicated data
- Split out timeseries processing from rollup processing
- Remove the 'rollup' level of nesting
- Limit the number of timeseries we fetch on the deployments page
2017-12-13 15:29:00 -08:00
Kevin Lingerfelt 372038f896
Add linting to js and jsx files (#29)
* Add linting to js and jsx files

* Fix BarChart percentages

* Fix merge issue

* Add indent rule

* Quote poperty names
2017-12-08 16:39:29 -08:00
Dennis Adjei-Baah 922b41c0fa
Remove namespace property from the Conduit web app (#10)
* Remove namespace property from ServiceMesh.jsx and Deployments.jsx and related Go code
2017-12-08 15:38:04 -08:00
Risha Mars 0f1d698275
Miscellaneous small dashboard fixes (#19)
Fix various loose ends in the web app:

* Add Tooltip to status dots explaining color meaning
* Adjust formatting of RPS numbers
* Pass in current success rate to the HealthPane
* Fix page header styling caused by content being in wrong div
* Align the metric value for inbound SR in Health Pane
* Status Dot tweaks
* Improve rendering of status dots when there are a lot of them
2017-12-08 15:24:13 -08:00
Risha Mars 0410a5e4fb
Clean up css scoping (#15)
Problem:
Because the spinner css was unscoped, it was causing 
the x axis line of the bar chart to be conduit-red.

Solution:
Clean up css scoping.
2017-12-08 11:21:21 -08:00
Oliver Gould b104bd0676 Introducing Conduit, the ultralight service mesh
We’ve built Conduit from the ground up to be the fastest, lightest,
simplest, and most secure service mesh in the world. It features an
incredibly fast and safe data plane written in Rust, a simple yet
powerful control plane written in Go, and a design that’s focused on
performance, security, and usability. Most importantly, Conduit
incorporates the many lessons we’ve learned from over 18 months of
production service mesh experience with Linkerd.

This repository contains a few tightly-related components:
- `proxy` -- an HTTP/2 proxy written in Rust;
- `controller` -- a control plane written in Go with gRPC;
- `web` -- a UI written in React, served by Go.
2017-12-05 00:24:55 +00:00