mirror of
https://github.com/weaveworks/scope.git
synced 2026-03-04 02:30:45 +00:00
b3868c58d7eb3d80cb99b0fbf18d84fd7af64cf2
During rendering, RenderableNodes are created by Map funcs, which take only NodeMetadata. Previously, it was simply assumed that the relevant keys for a given Map func would be present in the metadata. If that implicit invariant failed, the returned RenderableNode would be invalid, with e.g. an ID of "hostid::". That, in turn, would trigger undefined behavior later on in the rendering workflow. This bug was detected by creating a partial node metadata for a non-local endpoint node. That node was detected during the first phase of rendering, and given an invalid renderable node ID of "myhostname::", which prevented it from attaching to TheInternet pseudonode. It eventually got removed from the set of valid nodes, which meant nodes that were adjacent to it suddenly became orphans, and got filtered out by the FilterUnconnected step of the rendering pipeline. With this change, every map func checks for the presence of mandatory fields, i.e. the fields that compose the resulting renderable node's ID. Also, - Add unit tests for LeafMapFuncs - Topology Validate checks NodeMetadatas must not have nil Metadata
Scope
Overview
Weave Scope automatically generates a map of your containers, enabling you to intuitively understand, monitor, and control your applications.
Please note that the code, and especially the building and running story, is in a prerelease state. Please take a look, but don't be surprised if you hit bugs or missing pieces.
Getting started
sudo wget -O /usr/local/bin/scope \
https://github.com/weaveworks/scope/releases/download/latest_release/scope
sudo chmod a+x /usr/local/bin/scope
sudo scope launch
This script will download and run a recent Scope image from the Docker Hub.
Now, open your web browser to http://localhost:4040. (If you're using
boot2docker, replace localhost with the output of boot2docker ip.)
Build
make deps
make
This will produce a Docker image called weaveworks/scope.
Note that the repository contains a copy of the compiled UI. To build a fresh UI from the source in the client subdirectory, and re-build the Docker container,
make scope_ui_build.tar
make static
make
Run
./scope launch
Languages
Go
60.9%
JavaScript
28.3%
Shell
6.7%
Python
1.6%
HCL
1%
Other
1.5%
