Commit Graph

59 Commits

Author SHA1 Message Date
Alessandro Puccetti
655e6677cc docs/plugins: sync docs with changes site changes
This patch applies the same changes from the review of
https://github.com/weaveworks/scope/pull/2008
2016-11-14 15:56:17 +01:00
Alessandro Puccetti
953548d833 docs/plugins: add volume count plugin
A new plugin was added to the weaveworks plugins organization,
this patch exposes it into the scope documentation.
2016-11-14 10:56:38 +01:00
Alessandro Puccetti
e9e3b5d5c0 docs/plugins: Refactoring
The plugins README now points to the new repositories in the weaveworks-plugins
organization (https://github.com/weaveworks-plugins).
2016-11-14 10:56:37 +01:00
Alessandro Puccetti
af901c5dac plugins: remove plugins
They now are in the weaveworks-plugins organization.
https://github.com/weaveworks-plugins

- http-request has been updated and renamed to http-statistics:
https://github.com/weaveworks-plugins/scope-http-statistics
- iowait: https://github.com/weaveworks-plugins/scope-iowait
- traffic-control: https://github.com/weaveworks-plugins/scope-traffic-control
2016-11-14 10:56:37 +01:00
Alessandro Puccetti
22ad25b312 plugins/http-requests: change plugin id
Change the ID from `http_requests` to `http-requests`.
The new plugin ID convention does not allow `_`.
2016-09-19 18:08:20 +02: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
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
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
Alfonso Acosta
c10c58459b Fix spelling mistakes 2016-08-18 17:48:45 +00:00
Krzesimir Nowak
2a0972653c Rewrite plugin readme
Give a bit more information about how to write a plugin.
2016-08-12 17:15:43 +02:00
Krzesimir Nowak
9e092f1a4a Switch to LatestMap-style node controls
This allows plugins to add controls to nodes that already have some
controls set by other plugin. Previously only the last plugin that
sets the controls in the node would have its controls visible. That
was because of NodeControls' Merge function that actually weren't
merging data from two inputs, but rather returning data that was newer
and discarding the older one.
2016-08-12 17:15:43 +02:00
Krzesimir Nowak
f17a995892 Marshal structs in the iowait example plugin
This is better than writing JSON strings by hand, which is
error-prone.
2016-08-12 17:03:42 +02:00
Krzesimir Nowak
69368af796 Make the iowait example plugin a controller too
It exposes a button that allows switching between showing an iowait
statistics and an idle statistics. When the button is pressed it
should be replaced with other button. The button is shown in the host
node.

This is a rather nasty case as it shows several problems:

- Button control races
  - The way the NodeControl currently works creates races between
    plugins adding buttons to the same node. This is because
    NodeControls are not really merged, but rather one of the two are
    chosen based on a NodeControls' timestamps, so the older one is
    thrown away entirely. In the end GUI can switch randomly between
    showing controls from one plugin or from another.

- Showing outdated statistics
  - When pressing the button to switch to show the other statistics,
    the old ones are still shown for several seconds.

- Slowness of the updates in GUI
  - Pressing the button yields no immediate reaction. Changes happen
    after several seconds. Probably related to the previous point.
2016-08-12 17:03:42 +02:00
Krzesimir Nowak
27e0550bd5 Run docker with sudo if necessary in iowait makefile
The solution is taken from the toplevel Makefile.
2016-08-12 17:03:42 +02:00
Krzesimir Nowak
c797e7ab0e Use consistent plugin ID in the http-requests plugin
The socket has the "http_requests.sock" filename, so ID should be
"http_requests", not "http-requests".
2016-08-12 17:03:42 +02:00
Viktor Sadovnikov
edb27e0935 weaveworks/scope#1507. moving minimesos installation instructions to site/installing.md file 2016-05-27 00:25:13 +02:00
Viktor Sadovnikov
b63d3374cb weaveworks/scope#1507. README.md: adding example for using latest minimesos.json 2016-05-26 10:22:23 +02:00
Viktor Sadovnikov
58f80920b3 weaveworks/scope#1507. disabling new version updates 2016-05-24 09:38:20 +02:00
Viktor Sadovnikov
cab38c8515 weaveworks/scope#1507. Adding Marathon JSON for launching on minimesos cluster 2016-05-16 18:58:19 +02:00
Alfonso Acosta
b745411ce1 ebpf plugin clarifications 2016-04-19 15:33:26 -04:00
Paul Bellamy
6591315ead Make iowait example get correct hostname when launced remotely 2016-04-19 10:39:35 +01:00
David Kaltschmidt
387a3c047e Fix plugins docs
* fix json highlighting on github
* added screenshot
* note about kernel version for bcc plugin
* sentence about seeing plugin in the UI
2016-04-19 11:22:42 +02:00
Alfonso Acosta
5f7c49197d Extend plugin documentation
* Add section to main README
* Add introduction to plugins-specific README
2016-04-15 14:23:52 +01:00
Alfonso Acosta
ef94818ab5 Add (admitedly redundant) clarification on kernel tasks 2016-04-13 11:18:37 +00:00
Alfonso Acosta
c838350668 eBPF plugin improvements
* Check that the protocol is TCP
* Support all HTTP methods
* Clear out tasks from table when they exit (required using task ids as table
  keys). A nice side effect of this is that we can tell apart tasks receiving 0
  req/second (i.e. tasks which currently aren't receiving any requests but were
  receiving requests at some point) from tasks which don't exist anymore.
  We report metrics fro the former.
* Simplify hash table key (no need to use a struct)
2016-04-13 04:22:06 +00:00
Paul Bellamy
3865e0fc77 use json template in iowait example, as it's clearer 2016-04-12 18:02:14 +01:00
Paul Bellamy
a9aaac00b7 typo in plugins readme 2016-04-12 17:44:41 +01:00
Paul Bellamy
72518e7036 iowait example plugin should remove the socket when done 2016-04-12 17:22:40 +01:00