Commit Graph
2808 Commits
Author SHA1 Message Date
Matthias Radestock 591e72e702 fix unit tests 2016-09-19 11:15:00 +01:00
Matthias Radestock 463681dcdd refactor: inline 2016-09-15 16:04:44 +01:00
Matthias Radestock 0e1aeec6ae key internet node connection counts differently
Instead of including the localEndpointID in the key, use the
address, so the port is excluded. That way we don't end up with multiple
rows for inbound connections from the same internet address.

We also augment the address with the DNS info here, which saves us from
having to look it up later on.

Fixes #1867
2016-09-15 15:23:12 +01:00
Matthias Radestock e009548ace refactor: shrink connection count key
- remoteAddr was never being set
- localAddr is part of the localNodeID in all the cases it was set, so
  it effectively was part of the key twice
2016-09-15 11:45:16 +01:00
Matthias Radestock 94cd73c72b tiny simplifying refactor 2016-09-14 12:19:09 +01:00
Matthias Radestock 1d8fc6620e Merge pull request #1860 from weaveworks/1842-dedup-connections-2
in details panel, count connections only once

Fixes #1842
2016-09-14 10:04:44 +01:00
Matthias Radestock 69735217ac pick a unique destination endpoint for each connection 2016-09-14 09:13:21 +01:00
Matthias Radestock 58b22f0710 in details panel, count connections only once
Fixes #1842
2016-09-14 09:12:51 +01:00
Jonathan Lange 801c419c89 Merge pull request #1858 from kinvolk/alessandro/tcd-circleci
circleci: push traffic control plugin image to docker hub
2016-09-13 15:35:36 +02:00
Tom Wilkie d1cf9f60fc Upgrade to go1.7 (#1797)
* Upgrade to go1.7

* Use the 1.7.1 tag
2016-09-13 12:40:33 +01:00
Alfonso Acosta b89dab0384 Merge pull request #1859 from weaveworks/bump-docs-scope-version
Update Scope version in documentation
2016-09-13 01:00:30 +02:00
Alfonso Acosta 216b53efd9 Update Scope version in documentation 2016-09-12 21:34:06 +00:00
Alessandro Puccetti 66390c8b0e circleci: push traffic control plugin image to docker hub
After this patch, circleci builds the traffic control plugin image and
pushes it on docker hub. Rename traffic control plugin docker image
to "weaveworks/scope-traffic-control-plugin".
2016-09-12 15:47:28 +02: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
Matthias Radestock 4edab4bfcb Merge pull request #1855 from weaveworks/extract-pluralize
refactor: extract pluralization
2016-09-09 21:42:49 +01:00
Matthias Radestock bb4007e3cb refactor: extract a couple of map "constants" 2016-09-09 17:35:37 +01:00
Matthias Radestock 26cb5d53fc refactor: extract pluralization function
This preserves the existing behaviour of showing count=0 as a plural
rather than empty. However, I rather suspect we cannot actually
encounter that case in the current code.

In the "no count found" case we now *set* the base.LabelMinor to empty
instead of leaving it alone. This is ok since it is empty to begin with.
2016-09-09 17:35:33 +01:00
Matthias Radestock 7f7766425e refactor: dedup pod group summary functions 2016-09-09 17:33:14 +01:00
Paul Bellamy d5c3e30f31 Merge pull request #1837 from kinvolk/alessandro/tcd-status
Traffic Control plugin: first iteration
2016-09-09 15:36:06 +01:00
Alessandro Puccetti f2c2ce9d33 plugins/traffic-control/docker: integrate loopIteration() into Start()
Move `loopIteration()` code in an anonymous function inside `Start()`.
2016-09-09 13:57:21 +02:00
Alessandro Puccetti 10d33fb24f plugins/traffic-control: fix output for getStatus()
If `tc qdisc show dev eth0` returns an error, then output is set to empty string.
2016-09-09 13:57:21 +02:00
Alessandro Puccetti deea4d9af1 plugins/traffic-contorl: fix error message in getNSID
Return error message that show what fails and why.
2016-09-09 13:57:21 +02:00
Alessandro Puccetti 097225332a plugins/traffic-control: switch to http.ServeMux
It is nicer to instantiate a http.ServeMux, instead of modifying
the global http handler.
2016-09-09 13:57:21 +02:00
Alessandro Puccetti 3bd6e4c88d plugins/traffic-control: fix Makefile 2016-09-09 13:14:24 +02:00
Alessandro Puccetti c722edf534 plugins/traffic-control: export trafficControlStatus
Rename trafficControlStatus to TrafficControlStatus, because lint complains.
2016-09-09 13:14:24 +02:00
Alessandro Puccetti 01b6bc5be6 plugins/traffic-contorl: split DoTrafficControl()
For clearer code `DoTrafficControl()` is splitted in multiple functions.
2016-09-09 13:14:24 +02:00
Alessandro Puccetti f6708503f0 plugins/traffic-control: add helper functions to trafficControlStatus
SetLatency and SetPacketLoss handle the empty value that is represented by "-".
2016-09-09 13:14:24 +02:00
Alessandro Puccetti 00a87922e6 plugins/traffic-control: code refactoring
Substitute `split()` with `strings.Fileds()`.
Remove unnecessary functions and commented code.
Unabbreviate variable and function names.
2016-09-09 13:14:24 +02:00
Alessandro Puccetti 9b86143deb plugins/traffic-control: README
Added simple README to give an overview of the plugin.
Also the value of the latency controls were changed.
2016-09-09 12:32:10 +02:00
Alessandro Puccetti 71f9d8874f plugins/traffic-control: Some style fixes
Comment before exported functions.
When `if` block ends with a return statement, drop the else and outdent its block.
2016-09-09 12:31:53 +02:00
Mike Lang 5a4ee00b58 app: Add graceful shutdown for http server
This will let it finish up existing connections before exiting,
which makes things like rolling restarts behave much better.
2016-09-08 15:43:54 -07:00
Alessandro Puccetti 2bbcd415d1 plugins/traffic-control: add table prefix constant
For cleaner code
2016-09-06 11:53:36 +02:00
Alessandro Puccetti c213270028 plugins/traffic-control: remove latency and packet loss from generic metadata
Latency and packet loass are displayed in the table, there is not need to
show them in the general section too.
2016-09-06 11:53:36 +02:00
Alessandro Puccetti c0fca6d2be plugins/traffic-control: spilt getControls()
This is done to make easier get specific controls when MetadataRow will
accept controls.
2016-09-06 11:53:36 +02:00
Alessandro Puccetti 83c8e7af34 plugins/traffic-control: latency and packet loss can be combined
This patch allows to set latency and packet loss parameters together
by "adding" the new paramter to the qdisc.
2016-09-06 11:53:36 +02:00
Alessandro Puccetti 79453519b2 plugins/traffic-control: separate function for clear settings
Make easier to combine latency and packet loss settings.
2016-09-06 11:53:36 +02:00
Alessandro Puccetti 176cb5f99f plugins/traffic-control: added packet drop control
Packet drop control set 10% of packet drop
2016-09-06 11:53:36 +02:00
Alessandro Puccetti 5d3e5b23ec plugins/traffic-control: added clear setting control
This control remove any previous setting
2016-09-06 11:53:35 +02:00
Alessandro Puccetti 6eefb70628 plugins/traffic-control: add packet loss to the report
This patch add packet loss to the report and the appropriet metadata template.
2016-09-06 11:53:35 +02:00
Alessandro Puccetti 8cbd2c2db6 plugins/traffic-control: create Traffic control table
The traffic control plugin will display the status in this table.
2016-09-06 11:53:35 +02:00
Alessandro Puccetti 9df70ec380 plugins/traffic-control: refactoring
Use string for delay and packet loss parameter, code refactoring,
improved error messages, fix typos, add empty status representation,
fix namesapce ID representation.
2016-09-06 11:53:35 +02:00
Alessandro Puccetti a743b59dcf plugins/traffic-control: added status caching
To avoid to run `tc` every tic to get the qdisc status, we cache it.
The cache is updated every time a value is changed via the control interface.

NOTE: This will keep track only of the changes by done the plugins interface,
if the qdisc parameters are changed by another applcation or by the user
via terminal, such changes will not be caught.
2016-09-06 11:53:35 +02:00
Alessandro Puccetti 068c366aa8 plugins/traffic-control: add status information in metadata
This patch sends the delay and packet loss values along with
the container metadata. In this way the user has a direct feedback
about the traffic control plugin status.
2016-09-06 11:53:35 +02:00
Krzesimir Nowak c5cc9814fe Add an example traffic control plugin
As it is an initial implementation, it only controls latency of the
outgoing (egress) traffic. There is also a TODO to turn this plugin
into something more serious. Also, at some point we may consider
moving this plugin outside of "example" directory.
2016-09-06 11:53:35 +02: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
Tom Wilkie 39be421141 Allow a nil RouteMatcher in instrumentation (#1852)
So the instrumentation can be used for things other than gorilla.
2016-09-05 15:49:20 +01:00
Matthias Radestock b0a630590c Merge pull request #1850 from weaveworks/1847-reverse-resolve-inbound
correctly reverse resolve source of inbound connections

Fixes #1847
2016-09-05 14:09:56 +01:00
Matthias Radestock 9d010fabc8 refactor: extract makeEndpointNode helper 2016-09-02 21:12:23 +01:00
Matthias Radestock 5bc3a9d5ac correctly reverse-resolve source of inbound connections
There were two problems:
- the renderer was looking for reverse names on the destination
- the probe was not annotating source nodes with reverse-resolved names

Fixes #1847
2016-09-02 20:31:03 +01:00
Matthias Radestock 813ea780dc Merge pull request #1843 from weaveworks/1495-internet-connection-count
fix internet connection counts

Fixes #1495.
2016-09-02 16:27:36 +01:00