This is a bugfix release. In addition, the security of the Scope probe can be hardened by disabling
controls with the new --probe.no-controls
flag, which prevents users from
opening terminals, starting/stopping containers, viewing logs, etc.
New features and enhancements:
- Allow disabling controls in probes #1627
- Make it easier to disable weave integrations #1610
- Print DNS errors #1607
- Add dry run flag to scope, so when launched we can check the args are valid. #1609
Performance improvements:
- Use a slice instead of a persistent list for temporary accumulation of lists #1660
Bug fixes:
- Should check if probe is already running when launch in standalone mode on Docker for Mac #1679
- Fixes network bars position when a node is selected. #1667
- Scope fails to launch on latest Docker for Mac (beta18) #1650 #1669
- Fixes terminal wrapping by syncing docker/term.js terminal widths. #1648
- Wrongly attributed local side in outbound internet connections #1598
- Cannot port-forward app from kubernetes with command in documentation #1526
- Force some known column widths to prevent truncation of others #1641
Documentation:
- Replace wget in instructions with curl, as it's more widely avail. on macs #1670
- Don't prepend
scope launch
with sudo #1606 - Clarify instructions for using Scope with Weave Cloud #1611
- Re-added signup page #1604
- weave cloud screen captures #1603
Internal improvements and cleanup:
- Lint shellscripts from tools #1658
- Promote fixprobe and delete rest of experimental #1646
- refactor some timing helpers into a common lib #1642
- Helper for reading & writing from binary #1600
- Updates to vendoring document #1595
Weave Cloud related changes:
- Store a histogram of report sizes #1668
- Wire up continuous delivery #1654
- Count memcache requests even if they time out #1662
- Adding a static report file mode. #1659
- Bump memcache expiration #1640
- Fixes to memcache support #1628
- Refactor caching layers in dynamo collector #1616
- Rework Scope metrics according to Prometheus conventions. #1615
- Fix nil pointer error when memcache not enabled #1612
- Add backoff to the consul client #1608
- Query memcached from dynamo db collector #1602
- Use histograms over summaries #1665
Highlights:
- New network filter to quickly ascertain what networks your containers belong to.
New features and enhancements:
- Network view #1528 #1593
- Label deployment nodes with replica count #1530
- Add flag to disable reporting of processes (and procspied endpoints) #1511
- Add pod status to summary table #1523
- Add filters for pseudo nodes. #1581
Performance improvements:
- Fast start the dns resolution ticker to improve first report latency. #1508
Bug fixes:
- Fix tall search box in Firefox #1583
- Probe reporter stuck #1576
- Container in multiple networks not showing all connections #1573
- scope probe connects to localhost & prod even when given explicit hostnames #1566
- Fix Docker for Mac check #1551
- If k8s objects only have one container, show that container's metrics on them #1473
- Don't ever store NEW conntrack flows (only ever store updates). #1541
- Pods with > 1 container making connections do not show any connections #1494
- Missing edges when using Docker's IPAM driver #1563
- Duplicate stack in "by image" view #1521
Documentation:
Internal improvements and cleanup:
- Add Identity middleware #1574
- Rewrite net/http.Request.{URL.Path,RequestURI} consistently #1555
- Add Marathon JSON for launching on minimesos cluster #1509
- Circle integration for auto docs publishing. #1517
- Tag scope images on docker hub as we do in service #1572
- Scope slow: improve error messages for debugging #1534
- circle.yml: deploy non-master branches #1535
- Add docker hub badge #1540
- Increase test replicas #1529
- Ignore IPv6 addresses in Docker reporter #1552
Weave Cloud related changes:
- Add probe version header to probe requests #1564
- Fetch non-cached reports in parallel #1554
- Various fix ups for multitenancy #1533
- Use NATS for shortcut reports in the service. #1568
- If we don't get a path name from the router, make one up from the url. #1570
- Log errors in response to http requests. #1569
- Put reports in S3; add in process caching #1545
- Use smart merger in the DynamoDB collector. #1543
- Allow user to specify table name and queue prefix. #1538
- Get route name before munging request #1590
Highlights:
This release comes with:
- Search: new smart search field that allows you to filter what you can see by container names, all kinds of metadata, e.g., IP addresses, and metric comparisons, e.g., CPU > 50%.
- Enhanced Kubernetes Visualization: namespace filters, ReplicaSet/Deployment views, extra metadata, better navigation, show Pod logs, delete Pods, bugfixes and more ...
- Scope App performance improvements: ~3X reduction in CPU consumption.
New features and enhancements:
- New search field #1429 #1499
- Kubernetes improvements:
- Deployment and Replica Set views #1436
- Add scale up/down controls on deployments, replica sets, and replication controllers #1451
- Filter by Kubernetes Namespaces #1386
- Remove App->Probe deployment ordering restriction #1433
- Show Pod IP and # container in the children table in details panel. #1435 #1409
- Add pod delete controls #1368
- Show the k8s load balancer IP if it is set #1378
- Show number of pods in service #1352
- Filter GKE system containers #1438
- Show k8s labels and container env vars in the details panel #1342 #1465
- Implement
scope help
#1357 #1419 - Add swarm-agent, swarm-agent master to system container filter #1356
- Add control for removing stopped docker containers. #1290
- Add a button to download the report as JSON #1365
- Use reverse-resolved DNS info in the connections table. #1359
- Add a 'Unmanaged' node to k8s views which included non-k8s containers. #1350
- Support docker rename events #1332
- Strip image version from parent links #1348
- Add Docker for Mac support #1448
Performance improvements:
- Scope App:
- Scope Probe:
- Precompute base of the container nodes #1456
Bug fixes:
- Correctly attribute DNAT-ed short-lived connections #1410
- Don't attribute conntracked connections to k8s pause containers. #1415
- Don't show kubernetes views if not running kubernetes #1364
- Missing pod names in kubernetes' pod view and Pause containers don't show as children of pods #1412
- Fix grouped node count for filtered children nodes #1371
- Don't show container labels on container images #1374
docker rm -f
ed containers linger #1072- Somehow internet node goes missing, yet edges are there #1304
- Node IDs with / leads to redirect loop when scope is mounted under a path with slash redirect #1335
- Ignore conntracked connections on which we never saw an update #1466
- Containers incorrectly attributed to host #1472
- k8s: Unexpected edge to the Internet node #1469
- When user supplies IP addr on command line, we don't try to connect to localhost #1477
- Wrong host labels on container nodes #1501
Documentation:
- Restructured Scope Docs #1416 #1479
- Add ECS instructions and badge to README #1392
- Document how to access the Scope UI in k8s #1426
- Update readme to express that daemon sets won't schedule on unschedulable nodes prior to kubernetes 1.2 #1434
Internal improvements and cleanup:
- Migrate from Flux to Redux #1388
- Add kubernetes checkpoint flag #1391
- Add generic path rewrite middleware #1381
- Report hostname and version in probe struct, and version in host node. #1377
- Reorganise the render/ package #1360
- Asset fingerprinting #1354
- Upgrade to go1.6.2 #1362
- Add buffer to mockPublisher channel to prevent deadlock between Publish() and Stop() #1358
- Add explicit group node summariser instead of doing it in the other summaries #1327
- Don't build codecs for render/ package anymore. #1345
- Measure report sizes #1458
Highlights:
This release comes with two main new features.
- Probe plugins: Now you can create your HTTP-based plugin to provide new metrics and display them in Scope. You can read more about it and see some examples here.
- Metrics on canvas: Metrics are now displayed on the nodes and not just on the details panel, starting with CPU and memory consumption.
Also, the performance of the UI has been considerably improved and the 100-node rendering limit has been lifted.
New features and enhancements:
- Probe plugins #1126 #1277 #1280 #1283
- Metrics on canvas #1105 #1204 #1225 #1243
- Node details panel improvements
- Graph view improvements
- Enable launching terminals in hosts #1208
- Allow pausing the UI through a button #1106
- Split the internet node for incoming vs outgoing connections. #566
- Show k8s pod status #1289
- Allow customizing Scope's hostname in Weave Net with
scope launch --weave.hostname
#1041 - Rename
--weave.router.addr
to--weave.addr
in the probe for consistency with the app #1060 - Support new
sha256:
Docker image identifiers #1161 #1184 - Handle server disconnects gracefully in the UI #1140
Performance improvements:
- Performance improvements for UI canvas #1186 #1236 #1239 #1262 #1259
- Reduce CPU consumption if UI cannot connect to backend #1229
Bug Fixes:
- Scope app doesn't correctly expire old reports #1286
- Container nodes appear without a host label #1065
- Resizing the window and zooming in/out can confuse window size #1180
- Link from container -> Pod doesn't work #1180
- Various websocket and pipe fixes. #1172 #1175
- Make
--app-only
only run the app and not probe #1067 - Exported SVG file throws "CANT" error in Adobe Illustrator #1144
- Docker labels not rendering correctly #1284
- Error when parsing kernel version in
/proc
background reader #1136 - Opening the terminal doesn't open work for some containers #1195
- Terminals: Try to figure what shell to use instead of simply running
/bin/sh
#1069 - Fix embedded logo size for Safari #1084
- Don't read from app.Version before we initialise it #1163
- Don't show multiple pseudo nodes in the host view for the same IP #1155
- Fix race conditions detected by race detector from Go 1.6 #1192 #1087
Documentation:
- Provide Docker Compose examples for launching the Scope probe with the Scope Cloud Service #1146
Experimental features:
- Update demo for tracer #1157
Service-mode related changes:
Internal improvements and cleanup:
- Make node/edge highlighter objects immutable in app store #1173
- Make cached edge processing more robust #1254
- Make app-store's topologies object immutable #1167
- Fix TestCollector test #1070
- Update docker client, to get better state strings in the UI #1235
- Upgrade to go1.6 #1077
- React/lodash/babel upgrades + updated linting (linted) #1171
- Remove address topology #1127
- Add vendoring docs #1180
- Fix make client-start #1210
- Downgrade react-motion #1183
- Make bin/release work on a mac. #887
- Add various middleware to app. #1234
- Make unconteinerized build work on OSX #1028
- Remove codecgen-generated file before building package #1135
- Build/install packages before invoking codecgen #1042
- circle.yml: add variable $DOCKER_ORGANIZATION #1083
- circle.yml: deploy on a personal hub account #1055
- circle.yml: disable GCE builds when credentials are missing #1054
- Clean out all the JS in the client build dir. #1205
- Remove temporary files in the build container to shrink it down by ~100MB #1206
- Update tools & build container to check for spelling mistakes #1199
- Fix a couple of minor issue for goreportcard and add badge for it. #1203
Bug Fixes:
- Make pipes work with scope.weave.works #1099 #1085 #994
- Don't panic when checking the version fails #1117
Note: This release come with big performance improvements, cutting the probe's CPU usage by 70% and the app's CPU usage by up to 85%. See detailed performance improvement-related changes below:
Performance improvements:
- Improve codec performance #916 #1002 #1005 #980
- Reduce amount of objects allocated by the codec #1000
- Refactor app for multitenancy #997
- Improve performance of docker stats obtention #989
- Rate-limit reading proc files #912 #905
- Compile k8s selectors once (not for each pod) #918
- Fix reading of network namespace inodes #898
New features and enhancements:
- Node shapes for different topologies, e.g. heptagons for Kubernetes pods #884 #1006 #1037
- Force-relayout button that may help with topology layouts that have lots of edge crossings #981
- Download button to save the current node graph as SVG file #1027
- Replace Show More buttons with carets w/ counts #1012 #1029
- Improve contrast of default view #979
- High contrast mode button for viewing scope on projectors #954 #984
- Gather file descriptors as process metric #961
- Show Docker Labels in their own table in details panel #904 #965
- Improve highlighting of selected topology #936 #964
- Details: only show important metadata by default, expand the rest #946
- Reorder the children tables in the details panel by importance #941
- Shorten docker container and image IDs in the details panel. #930
- Shorten some details panel labels which were truncated #940
- Add Container Count column to container images table #919
- Periodically check for newer versions of scope. #907
- Rename Applications -> Process, sort topologies by rank. #866
- Rename 'by hostname' to 'by dns name' #856
- Add container uptime and restart count to details panel. #853
- Use connection directions from conntrack for improved layout flow #967
- Support for container controls in Kubernetes #1043
- Add debug logging #935
Bug fixes:
- Use TCP for weave dns to fix autoclustering #1038
- Add ping/pong to websocket protocol to prevent websocket connections being dropped when traversing loadbalancers #995
- Handle closing of docker events channel gracefully #1014
- Don't show blank IPs metadata row for containers with no IP #960
- Remove pointer math (comparison) from render caching, as it is unreliable #962
- set TERM=xterm on execs to work around docker issue 9299 #969
- Fix weave tagger crash #976
- Use Sirupsen/logrus logger in the Weave tagger #974
- Fix JSON encoding for fixedprobe #975
- Don't render any metrics/metadata for uncontained node #956
- Update go-dockerclient to fix bug with docker 1.10 #952
- Show nice column labels when no children have metrics #950
- Fixes process-by-name layout with ./foo and /foo nodes #948
- Deal with starting / stopping weave whilst scope is running #867
- Remove host links that link to themselves in details panel #917
- Just show the untruncated label in the tooltip on children #911
- Taking a read lock twice only works most of the time. #889
- Details panel table header looks up label in all rows #895
- Fixes some fields overflowing badly in details panel in Chrome 48 #892
- Stop details cards popping up over the terminal. #882
- Fixes host node/details panel color mismatch #880
- Don't log expected websocket errors #1024
- Overwrite /etc/weave/apps, because it might already exist #959
- Log a warning when reporters or taggers take too long to generate #944
- Minor refactor of backend metadata and metric rendering #920
- Add some tests, and a zero-value for report.Sets #903
Build improvements and cleanup:
- Disable checkpointing in tests. #1031
- Turn off GC for builds. #1023
- Bump template name to get latest version of docker. #998
- Fixes building scope outside of a container. #901
- Don't need sudo when DOCKER_HOST is tcp. #888
- Disable npm progress to speed up build #894
- Refactoring deepequal to satisfy linter #890
Documentation:
- Document how to obtain profiles without
go tool pprof
#993 - Use short URL for scope download #1018
- Added note about docker and go dependency to the readme #966
- Update readme and images. #885
- Update approach to trigger signal dumps #883
New features and enhancements:
- New, interactive contextual details panel #752
- Gather per-process CPU and memory metrics #767
- k8s: Use service account token by default and improve error logging #808
- k8s: Filter out pause as a system container to declutter view #823
- k8s: Render container names from label "io.kubernetes.container.name" #810
- Probes now use TLS against scope.weave.works by default #785
- Allow dismissing a disconnected terminal w/ <esc> #819
Bug fixes:
- General k8s fixups #834
- Use argv[0] for process name, differentiate scope app and probe. #796
- Don't panic if you don't understand the message on the control WS. #793
- Highlight a single unconnected node on hover. #790
- Fixes to Terminal resizing and key support #766 #780 #817
- Correctly collapse nodes in the Container Images view when they use non-standard port. #824
- Stop scope crashing chrome when we get "long" edges. #837
- Fix node controls so they behave independently across nodes #797
Build improvements and cleanup:
- Update to latest tools.git #816
- Update to latest go-dockerclient #788
- Speed up builds #775 #789
- Speed up tests #799 #807
- Split and move xfer package. #794
- Add more tests to procspy #751 #781
- Build example app in container. #831
- Various improvements to build & test #829
Bug fix:
- Scrape /proc/PID/net/tcp6 such that we see both ends of local connections change
New features:
- Add a terminal to the UI with the ability to
attach
to, orexec
a shell in, a Docker container. #650 #735 #726 - Added
scope version
command #750 - Various CPU usage reductions for probe #742 #741 #737
- Show hostname of app you are connected to in the bottom right of the UI #707
- Add host memory and CPU usage metrics to the details panel #711
- Add json support to app POST /api/report #722
- Update the docker version we embed into the scope image to 1.6.2 in sync with weave 1.3 changes. #702
- Show a spinner while node details are loading #691
- Deterministic coloring of nodes based on rank and label #694
Bug fixes:
- Mitigate one-line-of-nodes layouts (when graph has few connections), layout in rectangle instead #679
- When filtering unconnected nodes in the processes view, also filter nodes that are only connected to themselves. #706
- Correctly hide container based on docker labels on the container image. #705
- Show details for stopped container in the default view, by not applying filters to the node details endpoints. #704 #701
- Fix render issues in Safari #686
- Take default topology option if missing in URL #678
- Don't treat missing node as UI error #677
- Unset previous details when deselecting a node #675
- Add x to close details panel again #673
Documentation:
- Add basic security warning. #703
- Add basic kubernetes how-to to the readme #669
- Document debug options for developers #723
- Add 'getting help' section and update screenshot #709
Build improvements and cleanup:
- Don't go get weave, git clone it so weave build errors don't affect Scope. #743
- Reduce image size and build time by merging scope probe and app binaries. #732
- Cleaning up some dead code around edges and edgemetadata #730
- Make
make
build the UI #728 - Omit controls field from json if empty. #725
- JS to ES2015 #712
- Upgraded react to 0.14.3 #687
- Cleaned up node-details-table #676
- Fix react key warning #672
Notes:
- Due to the Scope UI now being able to start/stop/restart Docker containers, it is not wise to have it accessible to untrusted parties.
New features:
- Add lifecycle controls (start/stop/restart) for Docker containers #598 #642
- Add sparklines to the UI for some metrics #622
- Show a message when the selected topology is empty #505
Bug fixes:
- Change node layout incrementally to reduce re-layouts #593
- Improve responsiveness of UI updates to container state changes #628 #640
- Handle DNS Resolution to a set of names #639
- Correctly show node counts for sub-topologies #621
- Allow scope to start after being upgraded #617
- Prevent a stranded pseudo-nodes from appearing in the container view #627 #674
- Parallelise and improve the testing infrastructure #614 #618 #644
New features:
- Add basic Kubernetes views for pods and services #441
- Support for Weave 1.2 #574
- Add containers-by-hostname view #545
- Build using Go 1.5, with vendored dependencies #584
- Make
scope launch
work from remote hosts, with an appropriately defined DOCKER_HOST #524 - Increase DNS poll frequency such that Scope clusters more quickly #524
- Add
scope command
for printing the Docker commands used to run Scope #553 - Include some basic documentation on how to run Scope #572
- Warn if the user tries to run Scope on Docker versions <1.5.0 #557
- Add support for loading the Scope UI from https endpoints #572
- Add support for probe sending reports to https endpoints #575
Bug fixes:
- Correctly track short-lived connections from the internet #493
- Fix a corner case where short-lived connections between containers are incorrectly attributed #577
- Ensure service credentials are sent when doing initial probe<->app handshake #564
- Sort reverse-DNS-resolved names to mitigate some UI fluttering #562
- Don't leak goroutines in the probe #531
- Rerun background conntrack processes if they fail #581
- Build and test using Go 1.5 and vendor all dependencies #584
- Fix "close on nil channel" error on shutdown #599
New features:
- Show message in the UI when topologies exceed size limits. #474
- Provide container image information in detail pane for containers. #398
- When filtering out system containers, also filter out pseudo nodes, if they were only connected to system containers. #483
- Show number of filtered nodes in status pane. #509
Bug fixes:
- Prevent detail pane from hiding nodes on click-to-focus. #495
- Stop radial view from bouncing in some circumstances. #496
- Make NAT tracking component more resilient to failure. #506
- Prevent duplicate reports from reaching the same app. #463
- Improve consistency of edge directionality in some use-cases. #373
- Ensure probe, app, and container shut down cleanly. #424 #478
New features:
- Show short-lived connections in the containers view. #356 #447
- Details pane:
- Add more information:
- Docker labels. #400
- Weave IPs/hostnames/MACs and Docker IPs. #394 #396
- Host/container context when ambiguous. #387
- Present it in a more intuitive way:
- Allow filtering out system containers (e.g. Weave and Scope containers) and unconnected containers. System containers are filtered out by default. #420 #337 #454 #457
- Improve rendering by making edges' directions flow from client to server. #355
- Highlight selected node #473
- Animate Edges during UI transtions #445
- New status bar on the bottom left of the UI #487
- Show more information for pseudo nodes where possible - such as processes for uncontained, and connected to/from the internet. #249 #401 #426
- Truncate node names and text in the details pane. #429 #430
- Amazon ECS: Stop displaying mangled container names, display the original Container Definition name instead. #456
- Annotate processes in containers with the container name, in the Applications view. #331
- Improve graph transitions between updates. #379
- Reduce CPU usage of Scope probes #470 #484
- Make report propagation more reliable #459
- Support Weave 1.1 status interface #389
Bug fixes:
- Trying to reconnect.. in UI even though its connected. #392
- The Applications view goes blank after a few seconds. #442
- Frequently getting disconnected lines in UI #460
- Panic due to closing request body #480
New features:
- Probes now push data to the app, instead of the app pulling it. #342
- Allow probe and app to be started independently, via --no-app and --no-probe flags. #345
- Close details pane when changing topology view. #297
- Add support for --probe.foo=bar style flags, in addition to --probe.foo bar, which is already supported. #347
- Added X-Scope-Probe-ID header to identify probes when sending information to the app. #351
Bug fixes:
- Update scope script to work with master version of weave, where DNS has been embedded in the router. #321
- Fixed regression where process names weren't appearing for Darwin probes. #320
- Fixed rendering bug resulting in orphaned nodes. #339
- App now only logs to stderr, to match the probe. #343
- Use relative paths for all URLs in the UI. #344
- Removed temporary containers created by the scope script. #348
Experimental features:
- Added support for pcap based packet sniffing, to provide bandwidth usage information. It can be enabled via the --capture flag. When enabled the probe will monitor packets for a portion of the time, and estimate bandwidth usage. Network throughput will be affected if capture is enabled. #317
New features:
- Aggregate all connection information into a single table in the details dialog. #298
- Renamed binaries to scope-app and scope-probe #293
- Group containers topology by name only, and not version #291
- Make intra-scope communication traverse the weave network if present. #71
Bug fixes:
- Reduced memory usage #266
New features:
- Include kernel version and uptime in host details. #274
- Include command line and number of threads in process details. #272
- Include Docker port mapping, entrypoint, memory usage and creation date in container details. #262
- Order tables in details panel from least granular to most granular. #261
- Show all container images (even ones without active connections) in the containers-by-image view. #230
- Produce process and container views by merging endpoint topology with their respective topologies, such that the origins in the details panel always aggregate correctly. #228
- In containers view, show "Uncontained" nodes for each host if they have active connections. #127
- Show connection status in the UI. #162
Bug fixes:
- Reduce CPU usage by caching walks of /proc. #284
- Trim whitespace of process names such that the details panel functions correctly in the process-by-name view. #281
- Correctly scope addresses on Docker bridge such that processes on different hosts are not incorrectly shown as communicating. #264
- Correctly show connections between nodes which traverse a Docker port mapping. #245
- Make scope script fail if docker run fails. #214
- Prevent left over nodes in the UI when the connection is dropped or Scope is restarted. #162
- Show containers, even when they aren't communicating.
- Expand topology selectors more descriptive, and remove the grouping button.
- Fix overflow rendering bugs in the detail pane.
- Render pseudonodes with less saturation.
- Initial release.