Matthias Radestock
a306867610
fast network membership check
...
The rendering code checks whether endpoint IPs are part of
cluster-local networks. Due to the prevalence of endpoints - medium
sized reports can contain many thousands of endpoints - this is
performance critical. Alas the existing code performs the check via a
linear scan of a list of networks. That is slow when there are more
than a few, which will be the case in the context of k8s, since there
the probes register service IPs as local /32 networks.
Here we change representation of the set of networks to a prefix
tree (aka trie), which is well-suited for IP network membership checks
since networks are in fact a bitstring prefixes.
The specific representation is a crit-bit tree, but that choice was
purely based on implementation convenience - the chosen library is the
only one I could find that directly supports IP networks.
2017-06-21 03:03:49 +01:00
Matthias Radestock
9e75331e9a
Revert "fast network membership check"
...
This reverts commit 98f036359b .
2017-06-20 20:51:27 +01:00
Matthias Radestock
98f036359b
fast network membership check
...
The rendering code checks whether endpoint IPs are part of
cluster-local networks. Due to the prevalence of endpoints - medium
sized reports can contain many thousands of endpoints - this is
performance critical. Alas the existing code performs the check via a
linear scan of a list of networks. That is slow when there are more
than a few. Unfortunately in some common k8s network setups, e.g. on
AWS, a cluster can contain hundreds of networks, due to /32 networks
derived from interfaces with multiple IPs.
Here we change representation of the set of networks to a prefix
tree (aka trie), which is well-suited for IP network membership checks
since networks are in fact a bitstring prefixes.
The specific representation is a crit-bit tree, but that choice was
purely based on implementation convenience - the chosen library is the
only one I could find that directly supports IP networks.
2017-06-20 19:31:11 +01:00
Roland Schilter
2e4f4a3771
Elide url passwords in cli arguments ( #2568 )
...
Closes #2365
2017-06-07 10:18:18 +01:00
Alfonso Acosta
c70e357998
Bump github.com/weaveworks/tcptracer-bpf/ and github.com/iovisor/gobpf/
2017-05-26 04:44:06 +00:00
Alban Crequy
1fb4ce728b
vendor: update tcptracer-bpf
...
This includes https://github.com/weaveworks/tcptracer-bpf/pull/39
2017-05-19 14:14:26 +02:00
Alban Crequy
fc0e4490dd
vendoring: update gobpf and tcptracer-bpf
2017-05-10 18:37:32 +02:00
Marcus Cobden
5b6e5ca81d
Update billing-client
2017-05-09 15:33:11 +00:00
Alban Crequy
c6a299402c
vendor: update github.com/weaveworks/common
2017-05-02 14:42:11 +02:00
Alban Crequy
ac5e379da2
vendor: update gobpf and tcptracer-bpf
...
It will help to get missing kretprobe events during the ebpf tracker
initialization and missing connect & accept events, specially visible on
single-cores:
- https://github.com/weaveworks/tcptracer-bpf/pull/36
- https://github.com/iovisor/gobpf/pull/39
It makes use of a Linux patch that should be in Linux >= 4.12
(unreleased yet): https://github.com/iovisor/bcc/issues/1072#issuecomment-289777787
It falls back gracefully on current/older Linux kernels.
The new gobpf vendoring also includes other small fixes such as error
handling.
2017-04-06 11:16:25 +02:00
Paul Bellamy
619ab90502
gvt update github.com/weaveworks/billing-client
2017-04-04 10:38:43 +01:00
Iago López Galeiras
7541ad9c9c
vendor: bump tcptracer-bpf
...
We found out we were losing kretprobes sometimes because maxactive was set too
low[1]. This problem was more apparent in our GCE test environment because
the kernel was configured with `CONFIG_PREEMPT` not set and we're running
single-core VMs (see https://github.com/weaveworks/tcptracer-bpf/issues/24 for
more details).
Unfortunately, we can't set the maxactive explicitly from userspace. Alban
submitted a kernel patch to allow this[2].
This bumps tcptracer-bpf to include a workaround[3] for this issue in the
guess-offsets phase.
[1]: https://github.com/weaveworks/tcptracer-bpf/issues/24
[2]: https://lkml.org/lkml/2017/3/28/629
[3]: https://github.com/weaveworks/tcptracer-bpf/pull/33
2017-03-29 15:57:25 +02:00
Paul Bellamy
e68ffd467e
Add app/multitenant/billing_emitter to emit billing events
2017-03-22 10:41:34 +00:00
Alfonso Acosta
f3a9b61cd0
Merge pull request #2366 from kinvolk/schu/ebpf-stop-tracker
...
endpoint/ebpf: implement stop
2017-03-22 10:17:55 +01:00
Michael Schubert
b49d2e6f9d
vendor: update github.com/weaveworks/tcptracer-bpf
2017-03-22 10:07:55 +01:00
Alfonso Acosta
482a41f88e
Bump github.com/weaveworks/common
2017-03-21 11:49:02 +00:00
Bryan Boreham
07c8265c6b
Update ugorji/co/codec to latest commit 708a42d246822952f38190a8d8c4e6b16a0e600c
2017-03-14 14:54:17 +00:00
Iago López Galeiras
6ede5e5c91
vendor: add weaveworks/tcptracer-bpf
2017-03-08 22:11:12 +01:00
Iago López Galeiras
d77a297ebf
vendor: add iovisor/gobpf
2017-03-08 22:11:12 +01:00
Alfonso Acosta
96e7c6b414
Bump google.golang.org/grpc to make github.com/weaveworks/common happy
2017-02-24 13:50:18 +00:00
Alfonso Acosta
e8cb4fb4c6
Bump github.com/weaveworks/common
2017-02-24 13:43:06 +00:00
Jonathan Lange
a8ba7b2c86
Log whether it's a websocket request
2016-12-12 17:57:48 +00:00
Jonathan Lange
256e480acc
Vendor new weaveworks/common
2016-12-12 17:40:46 +00:00
Jonathan Lange
813e6468bc
Correctly instrument websocket handshakes
...
Part of weaveworks/monitoring#82
2016-12-08 17:36:45 +00:00
Jonathan Lange
496afb9a42
Vendor in weaveworks/common
2016-12-07 11:22:39 +00:00
Tom Wilkie
21ee72a384
Add OpenTracing support to TimeRequestHistogram ( #2023 )
...
* Vendor open tracing
* Extend TimeRequestHistorgram to also emit opentracing spans.
* Update some of the labels
2016-11-22 14:43:15 +00:00
Simon
7e5166e45e
Merge pull request #1966 from weaveworks/746-resize-ttys
...
Resize TTYs
2016-11-03 11:06:16 +01:00
Alfonso Acosta
260464e7f2
Vendor github.com/dustin/go-humanize
2016-11-02 13:00:16 +00:00
Alfonso Acosta
6cbf2bf26e
Vendor github.com/docker/docker/pkg/term
2016-10-31 11:08:56 +00:00
Mike Lang
8f8c0f2204
Merge pull request #1839 from weaveworks/mike/app/graceful-shutdown
...
Gracefully shutdown app, letting active http requests finish with timeout
2016-09-09 15:06:23 -07:00
Krzesimir Nowak
467ad884f6
Vendor github.com/containernetworking/cni/pkg/ns
...
We will use this code to execute the code in some process' network
namespace.
I did the vendoring a bit differently, as gvt seems to be a bit dumb
about getting dependencies for test packages (it tried to vendor
ginkgo and gomega, since cni tests are using it).
Also, instead of vendoring golang.org/x/sys as
github.com/containernetworking/cni/vendor/golang.org/x/sys I moved it
to scope's vendor directory.
2016-09-06 11:53:34 +02:00
Mike Lang
46249fd403
vendor github.com/tylerb/graceful and dependencies
2016-08-31 18:07:56 -07:00
Alfonso Acosta
47056bde16
Vendor the exact same version of mergo used by k8s
...
Merging is buggy in master: https://github.com/imdario/mergo/issues/33
2016-08-18 15:32:49 +00:00
Alfonso Acosta
e9235a56ba
Vendor github.com/imdario/mergo
...
In order to use k8s.io/kubernetes/pkg/client/unversioned/clientcmd/client_config.go
2016-08-17 15:15:34 +00:00
Alfonso Acosta
c39b16ae9f
Bump github.com/fsouza/go-dockerclient
...
To include https://github.com/fsouza/go-dockerclient/pull/562 , which
fixes https://github.com/weaveworks/scope/issues/1767
2016-08-15 09:34:18 +00:00
Alfonso Acosta
ecc8a3138f
Replace github.com/mndrix/ps by github.com/weaveworks/ps
2016-07-26 10:35:55 +00:00
Jonathan Lange
47fcb52354
Optional memcached between probes and S3
...
If given settings for memcached, services will store & fetch reports
from memcache after checking their in-process cache but before fetching
from S3.
2016-06-22 18:40:50 +01:00
Alfonso Acosta
7c5799ad59
Bump github.com/fsouza/go-dockerclient
2016-06-15 16:54:18 +00:00
Tom Wilkie
a7b34f1601
Use NATS for shortcut reports in the service. ( #1568 )
...
* Vendor nats-io/nats
* Use NATS for shortcut reports.
* Review feedback.
* Rejig shortcut subscriptions, so they work.
* Review feedback
2016-06-09 12:48:41 +01:00
Tom Wilkie
02554b1dcd
Propagate network info for containers sharing network namespaces ( #1401 )
...
- Add armon/go-radix library, use this to find containers by prefix
- Deal with host net namespace in the same way
2016-04-29 18:13:55 +01:00
Alfonso Acosta
1545b00394
Bump vendor/github.com/weaveworks/go-checkpoint
2016-04-28 11:31:55 +00:00
Paul Bellamy
f211d48cda
Merge pull request #1126 from weaveworks/plugins
...
Plugins
2016-04-12 18:03:26 +01:00
Paul Bellamy
f899f4451b
adding github.com/paypal/ionet for testing
2016-04-12 17:20:20 +01:00
Tom Wilkie
b68a2b6112
Update vendored version of go-spew; fixes #1273
2016-04-12 17:17:17 +01:00
Tom Wilkie
f4ef8020ac
Merge pull request #1235 from weaveworks/970-reinstating-restarting-ruckus
...
Update docker client, to get better state strings in the UI
2016-04-06 18:23:34 +02:00
Paul Bellamy
f3adefa454
Update docker client, to get better state strings in the UI
2016-04-06 16:39:45 +01:00
Tom Wilkie
50c8449c20
Update gorilla/mux to include a fix for path slash cleaning.
2016-04-06 14:47:14 +01:00
Alfonso Acosta
7b03f01630
Vendor github.com/kr and github.com/willdonnelly/passwd
2016-03-29 15:48:57 +00:00
Tom Wilkie
b61c5c0255
Vendor consul api
2016-03-23 15:41:37 +00:00
Tom Wilkie
90bc5e206f
Vendor aws go library
2016-03-23 15:41:37 +00:00