Commit Graph
477 Commits
Author SHA1 Message Date
CarltonSemple a5859ba218 Addressed final comments 2016-11-15 22:18:55 +00:00
CarltonSemple 9833a854b1 Added container filters as CLI arguments
gofmt load_container_filters.go

removed the environment variable for container label filters

Added the --app.container-label-filter command line argument, and load_container_filters.go now uses the results from that

Changed init() to InitializeTopologies()

Changed init() to InitializeTopologies() so that it can be called after the container filters are loaded from the command line argument. init() executes before main() in prog/main.go, so the flag parsing isn't finished before init() is called

Applied lint fixes

fixed lint issues

brought back the init function for api_topologies.go

Addressed many of the PR comments, except escaping colons

Renamed IsDesired to HasLabel in render/filters.go

Allows for the user to escape colons

added registry function for modifying the container filters

created a separate function that parses the container filter flags

simplified registry.addContainerFilters()

addressed review comments

switched API Topology Description IDs to constants

addressed review comments

joined constants

added test functions

addressed most of the review comments

Changed containerLabelFilters to an array of APItopologyOptions, placing the parsing in the Set() function. Removed parsing from HasLabel in render/filters.go

refactored code

added test that applies to the container filtering by labels

applied golint

made Registry items private and added a MakeRegistry() function

fixed usage of topologyRegistry.RendererForTopology

Added container label filters by exclusion

minor update to report_fixture

Modified container labels test to use existing report

I added labels to the existing containers in the fixed report for testing.

refactored code

refactored code

further code refactoring

addressed @ijsnellf's review comments

unexported Registry, and reduced duplicate code

addressed @ijsnellf's review comments

Addressed review comments

Addressed final review comments
2016-11-15 19:13:35 +00:00
Matthias Radestock 0610936296 plug goroutine leak in control
Fixes #2002.
2016-11-10 17:45:16 +00:00
Alfonso Acosta 37ba071feb Allow passing arguments to controls 2016-10-31 11:04:40 +01:00
Alfonso Acosta 403b70dde8 Disable pipes endpoint, we are going for controls instead 2016-10-31 11:04:40 +01:00
Alfonso Acosta c2f2a90b61 Implement App endpoint /pipe/{id}/resize_tty/{height}/{width} to resize ttys 2016-10-31 11:04:39 +01:00
Alfonso Acosta b458c4c0c8 Merge pull request #1182 from weaveworks/1132-weave-topology
Add the basics for a Weave-specific topology.
2016-10-28 12:23:55 +02:00
Alfonso Acosta b6b343cbfd Review feedback 2016-10-28 08:58:45 +00:00
Alfonso Acosta 7771625a25 Change topology title to Weave Net 2016-10-26 08:28:45 +00:00
Alfonso Acosta 3023f4be80 Add Weave summary generator and fix Weave renderer 2016-10-26 07:40:14 +00:00
Alfonso Acosta 8e4dfd7987 Add Weave peers view 2016-10-24 15:33:30 +00:00
Alfonso Acosta 9881a6b631 Fix tests 2016-10-24 09:41:53 +00:00
Alfonso Acosta 8c70630a74 Merge pull request #1921 from kinvolk/lint-ctx-key
Fix linter error for string in context.WithValue
2016-10-20 11:32:44 +02:00
Alfonso Acosta 3829784967 Merge pull request #1904 from weaveworks/1864-apply-filters-to-details-panel
Apply filters from current view to details panel
2016-10-18 15:10:29 +02:00
Lorenzo Manacorda 2a682dd7b0 Fix linter error for strings in context.WithValue 2016-10-13 14:28:30 +02:00
Tom Wilkie 2a00fd2d78 Allow user to specify URLs on the command line, and use that to allow per-target tokens. (#1901)
Also:
- Parse targets on startup and catch badly formed ones before Scope can start.
- If no port is specified, use default port for scheme; if no scheme is specificed, use 4040.
- Use username as probe token
2016-10-05 10:59:56 -07:00
Alfonso Acosta 3250b7289e Do not apply filters if no filtering options are provided 2016-10-05 14:04:53 +00:00
Alfonso Acosta 5eabf5436c Make linter happy 2016-10-05 13:07:17 +00:00
Alfonso Acosta 3f27d5f6cc Do not filter out the target nodes when obtaining the details panel 2016-10-05 12:22:50 +00:00
Alfonso Acosta bbb2c10975 Apply filters to details panel 2016-10-05 08:51:26 +00:00
Matthias Radestock 902ba88479 make smartMerger.Merge merge reports in parallel
for reduced latency
2016-08-24 08:02:23 +01:00
Tom Wilkie 32edfc9112 Don't reencode reports in the collector (#1819)
* Don't reencode reports in the collector

* Review feedback

* Fix comment

* Update alpine URLs so it will build

* Fix tests
2016-08-22 17:37:41 +01:00
Matthias Radestock 6ba812e82f restore compatibility of old probes with new m/t app
This got broken in #1682
2016-08-16 23:53:07 +01:00
Paul Bellamy 6e2fe78cab Merge pull request #1682 from kinvolk/krnowak/plugin-controls
RFC: forwarding control requests to plugins
2016-08-16 13:44:42 +01:00
Matthias Radestock e6a474ead7 fix report store query chaining
We fell victim to variable shadowing here. Each store would be fed the
original list of report keys, instead of only the ones that weren't
found in the previous store. So if a single report was missing from the
in-process cache, we would then fetch all reports from memcache. And if
that in turn was missing a single report we would fetch all reports from
S3.

We chain report stores for a reason - to reduce latency and, in case of
the in-process cache, eliminate decoding costs. So this bug has a huge
impact on query service performance.

To make matters worse, we return *all* the reports - now possibly in
triplicate. Fortunately, the SmartMerger filters these out, so at least
we were not incurring extra merge costs.
2016-08-16 00:55:39 +01:00
Matthias Radestock d6e5f0a154 allow more accurate reporting of memcache hit ratio
A lot of time could pass between recording the request count and hit
count pertaining to a particular report fetching batch, which skewed
calculations cache hit ratios.

Fix that by defering the request count recording to the end, which is
when we record the hit count.
2016-08-15 16:25:12 +01:00
Matthias Radestock 9cf178f130 fix MemcacheClient.FetchReports miss & leak on corrupt report
Problem: Decoding a corrupt report grows the 'missing' list. Since we
are waiting for 'len(keys)-len(missing)' decoder go-routines, this
results in waiting for fewer go-routines than we should. The surplus
go-routines leak and we ignore their reports. And since the keys of the
ignored reports are not included in 'missing', we won't attempt to fetch
them from S3 either. Oops.

Fix: calculate the number of go-routines once, at the beginning.
2016-08-15 10:44:29 +01:00
Krzesimir Nowak 0ecb908c22 Ensure backward compatilibity in report's node controls
The new probe will convert all node's LatestControls to Controls, so
the old app can consume them. Also, the new app will convert all
node's Controls to LatestControl, so it can consume the reports from
old probes.
2016-08-12 17:15:43 +02:00
Matthias Radestock 6334836f69 Merge pull request #1768 from weaveworks/1202-silence-abnormal-close
silence abnormal websocket close

Fixes #1202.
2016-08-12 13:53:51 +01:00
Matthias Radestock c3315f9c99 reduce log level for absent pipe
since we can get this when a pipe has been closed normally
2016-08-05 23:47:35 +01:00
Matthias Radestock df467d80de log error as error 2016-08-05 23:37:33 +01:00
Matthias Radestock 6d9194cfaf treat EOF and ErrClosedPipe in websocket connections as uninteresting
both occur in various states of disconnectedness
2016-08-05 23:32:34 +01:00
Matthias Radestock 190e840484 reduce some pipe log noise
NB: the m/t version remains unchanged since it is generally a lot
noisier
2016-08-05 19:16:15 +01:00
Krzesimir Nowak dcaa7503b8 Fix a typo
The typo is here from March, 2016. It is strange that it wasn't
detected earlier.
2016-08-04 11:36:04 +02:00
Alfonso Acosta b8bf60c6f1 Use slices instead of linked lists for Metric
Also:

* Remove Gob encoder/decoder
* Stop using custom encoders/decoders for Timestamps (both ugorji and the Golang JSON codecs use nanosecond precision).
* Use idiomatic way to check for existence in metric.LastSample()
2016-08-01 10:21:57 +00:00
Paul Bellamy 274158493d Name our routes, so /metrics gives more sensible aggregations 2016-07-26 12:49:04 +01:00
Matthias Radestock 3202cc7e58 hide uncontained/unmanaged by default
They are of no interest to most users and affect the initial user
experience.

Fixes #1689.
2016-07-17 19:00:18 +01:00
Jonathan Lange a3648f0c89 Inline StoreBytes 2016-07-15 12:58:27 +01:00
Jonathan Lange bbd75ddd24 Use memcache compression level from config 2016-07-15 11:24:37 +01:00
Jonathan Lange 1fd8a5fb88 Use StoreReport in main AWS routine 2016-07-15 11:24:37 +01:00
Jonathan Lange 46dfeb627d Call it reportKey 2016-07-15 11:24:37 +01:00
Jonathan Lange 0058229687 Extract functions for calculating keys
Not so much for re-use as to help jml understand what's going on
2016-07-15 11:24:36 +01:00
Jonathan Lange 270a55060f Add StoreReport methods to stores
Not sure if we'll use them.
2016-07-15 11:24:36 +01:00
Jonathan Lange 60e14c1dc2 Plumb through an option for compression 2016-07-15 11:24:36 +01:00
Jonathan Lange 2bfd6d7eb7 Parametrize compression level 2016-07-15 11:24:36 +01:00
Jonathan Lange d83d7318d0 Remove the old metric 2016-07-12 18:16:35 +01:00
Jonathan Lange d2298aa8f3 Store a histogram of report sizes 2016-07-12 16:37:29 +01:00
Tom Wilkie 3173f6ad75 Use histograms over summaries 2016-07-12 11:15:57 +01:00
Paul Bellamy ce2fd1e477 Merge pull request #1659 from weaveworks/demo
Adding a static report file mode.
2016-07-11 14:43:04 +01:00
Paul Bellamy 7a37577f71 Review Feedback 2016-07-11 13:36:22 +01:00