Commit Graph
93 Commits
Author SHA1 Message Date
Bryan Boreham 2186c89e00 Update vendor files for new gzip handler 2018-07-12 19:19:41 +00:00
Bryan Boreham a883e93080 Vendor: add vishvananda/netns and netlink
We will use them to fetch IP addresses from container namespaces

Required an update to golang.org/x/sys/unix
2018-06-02 21:45:17 +00:00
Bryan Boreham 9eb8078944 Put critbitgo library back to master branch
Undo the local override introduced in 04ceb0cc87
because https://github.com/k-sone/critbitgo/pull/7 has been merged.
2018-04-28 09:54:03 +00:00
Bryan Boreham 04ceb0cc87 Faster path to check an IP address against known networks
We modify the critbitgo library to skip creating a route object we don't use.

The weaveworks-local modification can be removed if
https://github.com/k-sone/critbitgo/pull/7 is merged.
2018-04-14 20:44:09 +00:00
Roberto Bruggemann 710d665c41 Upgrade k8s.io/client-go to kubernetes-1.9.1
Upgraded from 99c19923, branch release-3.0.

This required fetching or upgrading the following:
* k8s.io/api to kubernetes-1.9.1
* k8s.io/apimachinery to kubernetes-1.9.1
* github.com/juju/ratelimit to 1.0.1
* github.com/spf13/pflag to 4c012f6d

Also, update Scope's imports/function calls to be compatible with the new client.
2018-01-30 10:14:42 +00:00
Iago López Galeiras 9f3e7d3ddc vendor: bump tcptracer-bpf
This includes:

* an eBPF object built with a newer kernel (4.14)
* an increased threshold for guessing offsets, which is necessary for
the eBPF tracer to work on Google's Container-Optimized OS (used by
GKE)
2018-01-26 14:04:58 +01:00
Matthias Radestock be8801ab92 optimisation: faster knownServiceCache
We use an LRU cache implementation that is keyed on strings, which
avoids conversion to/from interface and the memory allocation that
entails.
2017-11-25 19:33:49 +00:00
Tobias Klauser ac6a629aa2 Update golang.org/x/sys/unix to latest master 2017-11-01 09:54:48 +01:00
Damien Lespiau 6bb6d4dd5a vendoring: Update gopacket to latest master
We'd like to benefit from the memory reduction from:

  https://github.com/google/gopacket/pull/377

I just ran:

  $ gvt update github.com/google/gopacket

Fixes: https://github.com/weaveworks/scope/issues/2905
2017-10-27 12:32:05 +01:00
Bryan Boreham 5defa75721 Update to latest weaveworks/common 2017-09-15 10:29:55 +00:00
Alban Crequy 93ca8b83ed vendor: update tcptracer-bpf and gobpf
This includes:

- https://github.com/iovisor/gobpf/pull/70
  perf: close go channels idiomatically

- https://github.com/iovisor/gobpf/pull/70
  close channels on the sender side & fix closing race

- https://github.com/weaveworks/tcptracer-bpf/pull/50
  vendor: update gobpf
2017-08-17 17:55:09 +02:00
Matthias Radestock b087e95711 bump tcptracer-bpf version 2017-07-12 07:27:35 +01:00
Matthias Radestock 8cf79b2e4a bump tcptracer-bpf version and use it to fix race
We defer starting the ebpf tracer until we've set the global var which
is referenced by the callback functions. Previously the var could be
unset when the callbacks are invoked, resulting in a segfault.

Fixes #2687.
2017-07-07 06:56:28 +01:00
Alfonso Acosta 93b0bc82d3 Remove more unused dependencies 2017-07-03 20:20:34 +00:00
Alfonso Acosta 6ff872c4a4 Delete old client vendored dependencies 2017-07-03 20:20:32 +00:00
Alfonso Acosta 4e2b512480 Vendor k8s.io/client-go (release-3.0) and k8s.io/apimachinery (release-1.6) 2017-07-03 20:20:27 +00:00
Roland SchilterandGitHub 247c365e16 Merge pull request #2570 from weaveworks/update-weaveworks-common
Update github.com/weaveworks/common & dependencies (needs go1.8)
2017-06-29 13:48:21 +02:00
Roland Schilter c817eccb9b Update github.com/weaveworks/common & deps
Bumped all packages that make the build fail:

    gvt update github.com/golang/protobuf/proto
    gvt fetch github.com/golang/protobuf/ptypes
    gvt fetch google.golang.org/genproto/googleapis/rpc/status
    gvt update google.golang.org/grpc/status
    gvt update google.golang.org/grpc/transport
    gvt update golang.org/x/net/http2
2017-06-21 12:19:17 +02:00
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 SchilterandGitHub 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 AcostaandGitHub 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
Iago López GaleirasandAlban Crequy 6ede5e5c91 vendor: add weaveworks/tcptracer-bpf 2017-03-08 22:11:12 +01:00
Iago López GaleirasandAlban Crequy 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 WilkieandGitHub 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
SimonandGitHub 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 LangandGitHub 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 NowakandAlessandro Puccetti 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