weaveworks / scope Goto Github PK
View Code? Open in Web Editor NEWMonitoring, visualisation & management for Docker & Kubernetes
Home Page: https://www.weave.works/oss/scope/
License: Apache License 2.0
Monitoring, visualisation & management for Docker & Kubernetes
Home Page: https://www.weave.works/oss/scope/
License: Apache License 2.0
Somehow I seemed to have arrived at an inconsistent topology: theinternet
was in the removal list, but another node that was not to be removed still had it in its adjacency list.
Safari was still connected to it:
Usually, Safari would have been in the list of modified nodes. But that didnt happen here.
Is there any chance we could blame the websocket connection? Then, I need to make the topology code in JS more robust and add some sanity check if all nodes are still there.
We should just stick this in the container and serve it from there.
I'm not sure phantom is the right term, but these are connections for which we don't have information about one end:
Right now, we should all the connections. Its only three above, but I've seen it be as many as 10, and its tends to dominate the view then.
We could:
I'm leaning towards (1), but could be persuaded by (2) or (3). What do you guys think?
—
And have it built in the standard weave make all commands (and by travis, circle etc)
I think it might look nicer with some sort of border; perhaps the browser window will be enough?
Also, centre align it pls.
Trying to build and can't get past this:
probe/main.go:17:2: cannot find package "github.com/weaveworks/procspy" in any of:
/usr/local/go/src/github.com/weaveworks/procspy (from $GOROOT)
/src/src/github.com/weaveworks/procspy (from $GOPATH)
make: *** [build] Error 1
There's no repo there as far as I can tell. Am I doing something wrong?
With #13, the possibility of an app connecting to a probe multiple times has been introduced. This will allow an app to receive the same report more than once, and potentially double count. We need to disallow this.
Options:
I like (1), as it has nice properties for the future; but it is also the hardest.
—
This is pretty serious...
Using webpack maybe?
vagrant@ubuntu-14:~/src/github.com/weaveworks/scope$ ./scope launch
Unable to find image 'weaveworks/scope:latest' locally
Pulling repository weaveworks/scope
8987330a95fa: Pulling image (latest) from weaveworks/scope
8987330a95fa: Pulling image (latest) from weaveworks/scope, endpoint: https://registry-1.docker.io/v1/
8987330a95fa: Pulling dependent layers
511136ea3c5a: Download complete
a8be93256def: Download complete
2db66c93c72e: Pulling metadata
2db66c93c72e: Pulling fs layer
2db66c93c72e: Download complete
98b0c7b63452: Pulling metadata
98b0c7b63452: Pulling fs layer
98b0c7b63452: Download complete
22618500139b: Pulling metadata
22618500139b: Pulling fs layer
22618500139b: Download complete
bd7d0b16def3: Pulling metadata
bd7d0b16def3: Pulling fs layer
bd7d0b16def3: Download complete
6ff49fd79084: Pulling metadata
6ff49fd79084: Pulling fs layer
6ff49fd79084: Download complete
4371bc9dee57: Pulling metadata
4371bc9dee57: Pulling fs layer
4371bc9dee57: Download complete
9819431aea96: Pulling metadata
9819431aea96: Pulling fs layer
9819431aea96: Download complete
02289b89fa78: Pulling metadata
02289b89fa78: Pulling fs layer
02289b89fa78: Download complete
281e7cdd2aae: Pulling metadata
281e7cdd2aae: Pulling fs layer
281e7cdd2aae: Download complete
8987330a95fa: Pulling metadata
8987330a95fa: Pulling fs layer
8987330a95fa: Download complete
8987330a95fa: Download complete
Status: Downloaded newer image for weaveworks/scope:latest
bc267a103940127e67b2dda613f77a80400c104c5ecb08c2c5bf185215ff50bf
It doesn't mix with --net=host
In the probe, extract metadata from the Docker runtime, and attach it to nodes as appropriate.
Source https://github.com/weaveworks/website/blob/master/scope, target http://weave.works/scope.
If there are multiple tables in the details pane, it exhibits overflow: visible;
behavior. I guess we want overflow: scroll;
.
An option would be to make the weave router track this for (src, dst mac addr pairs) and provide an api to support it.
I'm trying to think about how to get the word Container in there, still...
vagrant@ubuntu-14:~/src/github.com/weaveworks/scope$ time ./scope stop
real 0m10.197s
user 0m0.061s
sys 0m0.076s
Its doesn't handle signals properly:
https://blog.phusion.nl/2015/01/20/docker-and-the-pid-1-zombie-reaping-problem/
Group together processes in the same container.
Its appears to be the reason the container is so big. There must be a more lightweight version.
Would be a nice value-add. No huge priority.
For instance, is I symlink app and probe from something called 'run', and run them both, I see a connection from run to run...
/home/weave # ps auxf
PID USER TIME COMMAND
1 root 0:00 /sbin/runsvdir /etc/service
7 root 0:00 runsv probe
8 root 0:00 runsv app
9 root 0:00 ./run
11 root 0:05 ./run
28 root 0:00 /bin/sh
36 root 0:00 ps auxf
/home/weave # ls -al /proc/9/
total 0
dr-xr-xr-x 9 root root 0 May 19 13:22 .
dr-xr-xr-x 118 root root 0 May 19 13:22 ..
dr-xr-xr-x 2 root root 0 May 19 13:25 attr
-rw-r--r-- 1 root root 0 May 19 13:25 autogroup
-r-------- 1 root root 0 May 19 13:25 auxv
-r--r--r-- 1 root root 0 May 19 13:25 cgroup
--w------- 1 root root 0 May 19 13:25 clear_refs
-r--r--r-- 1 root root 0 May 19 13:25 cmdline
-rw-r--r-- 1 root root 0 May 19 13:22 comm
-rw-r--r-- 1 root root 0 May 19 13:25 coredump_filter
-r--r--r-- 1 root root 0 May 19 13:25 cpuset
lrwxrwxrwx 1 root root 0 May 19 13:25 cwd -> /etc/service/app
-r-------- 1 root root 0 May 19 13:25 environ
lrwxrwxrwx 1 root root 0 May 19 13:25 exe -> /etc/service/app/app
dr-x------ 2 root root 0 May 19 13:22 fd
dr-x------ 2 root root 0 May 19 13:25 fdinfo
-rw-r--r-- 1 root root 0 May 19 13:25 gid_map
-r-------- 1 root root 0 May 19 13:25 io
-r--r--r-- 1 root root 0 May 19 13:25 latency
-r--r--r-- 1 root root 0 May 19 13:25 limits
-rw-r--r-- 1 root root 0 May 19 13:25 loginuid
dr-x------ 2 root root 0 May 19 13:25 map_files
-r--r--r-- 1 root root 0 May 19 13:25 maps
-rw------- 1 root root 0 May 19 13:25 mem
-r--r--r-- 1 root root 0 May 19 13:25 mountinfo
-r--r--r-- 1 root root 0 May 19 13:25 mounts
-r-------- 1 root root 0 May 19 13:25 mountstats
dr-xr-xr-x 6 root root 0 May 19 13:25 net
dr-x--x--x 2 root root 0 May 19 13:25 ns
-r--r--r-- 1 root root 0 May 19 13:25 numa_maps
-rw-r--r-- 1 root root 0 May 19 13:25 oom_adj
-r--r--r-- 1 root root 0 May 19 13:25 oom_score
-rw-r--r-- 1 root root 0 May 19 13:25 oom_score_adj
-r--r--r-- 1 root root 0 May 19 13:25 pagemap
-r--r--r-- 1 root root 0 May 19 13:25 personality
-rw-r--r-- 1 root root 0 May 19 13:25 projid_map
lrwxrwxrwx 1 root root 0 May 19 13:25 root -> /
-rw-r--r-- 1 root root 0 May 19 13:25 sched
-r--r--r-- 1 root root 0 May 19 13:25 schedstat
-r--r--r-- 1 root root 0 May 19 13:25 sessionid
-r--r--r-- 1 root root 0 May 19 13:25 smaps
-r--r--r-- 1 root root 0 May 19 13:25 stack
-r--r--r-- 1 root root 0 May 19 13:25 stat
-r--r--r-- 1 root root 0 May 19 13:25 statm
-r--r--r-- 1 root root 0 May 19 13:25 status
-r--r--r-- 1 root root 0 May 19 13:25 syscall
dr-xr-xr-x 9 root root 0 May 19 13:25 task
-r--r--r-- 1 root root 0 May 19 13:25 timers
-rw-r--r-- 1 root root 0 May 19 13:25 uid_map
-r--r--r-- 1 root root 0 May 19 13:25 wchan
For better browsability in history.
Not sure if you wan't bug reports or not yet... but when running make build I had an issue. Drilling down a bit the error occurs when building in /app
scope/app# go build -v
github.com/gorilla/context
github.com/gorilla/mux
github.com/gorilla/websocket
github.com/weaveworks/scope/report
github.com/weaveworks/scope/xfer
_/root/scope/app
go build _/root/scope/app: /usr/local/go/pkg/tool/linux_amd64/6g: signal: killed
I'm running on ubuntu 14.04 using go version go1.4.2 linux/amd64
we could use the bash "micro" framework weave uses, and all the gce scripts to bring up vms.
Removing intermediate container 0786e37577cb
Successfully built bfaf16cdf9ad
docker save weaveworks/scope:latest | -t weaveworks/scope | tee scope.tar | docker load
/bin/sh: 1: -t: not found
FATA[0000] Error response from daemon: EOF
Makefile should check that all dependencies exist, and produce actionable error messages if something needs to be installed.
This work is mostly porting @tomwilkie's prerelease commits. End result is a working Docker container for Scope, plus coherent reproducible build instructions in the README.
In alpha state, just do this for every green build.
So we can display the topology of weave router connections.
top - 17:10:03 up 6 days, 21:50, 3 users, load average: 0.23, 0.58, 0.74
Tasks: 111 total, 2 running, 109 sleeping, 0 stopped, 0 zombie
%Cpu(s): 9.9 us, 17.9 sy, 0.0 ni, 71.8 id, 0.0 wa, 0.3 hi, 0.0 si, 0.0 st
KiB Mem: 1017796 total, 895976 used, 121820 free, 17096 buffers
KiB Swap: 3063804 total, 50512 used, 3013292 free. 124512 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
27243 root 20 0 14936 8480 2424 S 44.3 0.8 18:49.89 probe
9 root 20 0 0 0 0 S 1.3 0.0 15:53.28 rcuos/1
673 root 20 0 1438672 26436 6108 S 1.3 2.6 36:50.98 docker
7 root 20 0 0 0 0 R 1.0 0.0 16:58.19 rcu_sched
I'll stick in in the experimental directory for now.
ugh ~/src/github.com/weaveworks/scope (enhanced-details) make static
mkdir -p client/dist
docker run -ti -v /Users/peter/src/github.com/weaveworks/scope/client/app:/home/weave/app \
-v /Users/peter/src/github.com/weaveworks/scope/client/dist:/home/weave/dist \
weave/scope-ui-build
Unable to find image 'weave/scope-ui-build:latest' locally
Pulling repository weave/scope-ui-build
FATA[0004] Error: image weave/scope-ui-build:latest not found
make: *** [client/dist/scripts/bundle.js] Error 1
—
If the backend isn't reachable.
./run: exec: line 3: /home/weave/probe: not found
./run: exec: line 3: /home/weave/app: not found
./run: exec: line 3: /home/weave/probe: not found
./run: exec: line 3: /home/weave/app: not found
. . .
BOOM! Emtpy screen.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.