Simon
4647ce1901
Merge pull request #3165 from weaveworks/default-filter
...
Use the default value for a TopologyOption if omitted
2018-05-28 14:36:25 +02:00
Roland Schilter
f012c23ca1
Sentence cased text everywhere ( #3166 )
...
* Sentence cased text everywhere
Follows Weave Cloud's direction of sentence case on most things.
* More space between sorter caret and label
* Use full topology name for table header
2018-05-17 17:30:38 -07:00
Bryan Boreham
a64db66010
Use the default value for an APITopologyOption if omitted
2018-05-09 19:21:03 +00:00
Bryan Boreham
7da7183a37
Refactor: simplify default type of option
2018-05-09 19:07:38 +00:00
Marcus Cobden
ba81924278
Add CLI flag for SQS RPC timeout
2018-05-04 10:11:25 +01:00
Bryan Boreham
593952cd6e
Move report creation outside of timing loop
2018-04-12 10:02:50 +00:00
Matthias Radestock
5b30b668ae
refactor: don't return receiver in Topology.AddNode()
...
This had little use and was obscuring the mutating nature of
AddNode().
2018-02-19 05:10:04 +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
Roberto Bruggemann
d3c53bacd6
'updateKubeFilters` returns early if there are no namespaces
...
This change makes sure an empty `APITopologyOptionGroup` struct is not created for namespaces, if there are no namespaces to report.
2018-01-08 17:37:49 +00:00
Roberto Bruggemann
1fb23dd8f9
Extract namespaces from report.Namespace
...
This avoids unnecessary loops.
2018-01-03 13:55:27 +00:00
Matthias Radestock
d1bb4aa45e
refactor: remove APITopologyDesc.filter
...
It's always set to render.FilterUnconnectedPseudo, so we can simply
use that constant in the one function (RendererForTopology) that
looked at that value.
2018-01-02 10:33:57 +00:00
Matthias Radestock
ec7c468758
make it possible for users to see unconnected processes
...
We prevented this because rendering them was expensive. It still is,
but less so and actually works well, especially in table mode.
2018-01-02 09:40:18 +00:00
Matthias Radestock
286453b9a9
refactor: move RenderContext where it belongs
...
It shouldn't be in 'report' because that is shared between the probe
and the app, and RenderContext, as the name suggests, is only needed
in the app.
2017-12-27 16:22:52 +00:00
Matthias Radestock
a9e5b99a74
add benchmarks for rendering & summarising processes-by-name
2017-12-26 11:59:50 +00:00
Matthias Radestock
f4668ca692
add benchmarks for report summarization
...
This is the last phase before result marshalling in the
/api/topology/{name} handler.
2017-12-24 09:48:41 +00:00
Matthias Radestock
06e0bed015
refactor: extract helper for rendering a topology
2017-12-24 09:44:48 +00:00
Matthias Radestock
6784d95ac8
refactor: extract getting report for benchmarking
2017-12-24 09:18:20 +00:00
Matthias Radestock
d4d7764311
cosmetic(ish)
2017-12-24 09:13:22 +00:00
Matthias Radestock
bf14b3dafd
upgrade reports we merge / render
...
This better reflects what the app is doing.
2017-12-24 08:55:45 +00:00
Matthias Radestock
615cb6af59
simplify error handling
2017-12-24 08:43:24 +00:00
Matthias Radestock
794c345aee
cosmetic: more logical function order
2017-12-24 08:33:13 +00:00
Matthias Radestock
49e4c7b0b6
make report upgrade benchmark reflect new phasing
...
Since #2979 upgrading happens prior to merging.
2017-12-24 08:29:37 +00:00
Matthias Radestock
43fadceb85
cosmetic: better function grouping
2017-12-24 08:18:12 +00:00
Matthias Radestock
ad72a2cf2f
refactor: rename topology rendering benchmarks
2017-12-24 08:16:57 +00:00
Matthias Radestock
70d84170d6
introduce a cheap /api/probes?sparse variant
...
In many cases we only need to know whether there are _any_ connected
probes, and not the probe details. Obtaining that info is cheaper
since it requires no reading or merging or reports.
2017-12-14 01:07:40 +00:00
Matthias Radestock
72b9e9c6b9
add Reporter.HasReports() for cheap report availability checking
...
This requires no report reading / merging.
We plan to expose this in the HTTP API, so the UI gets a cheap way of
checking whether the app is currently receiving data from probes.
2017-12-14 00:13:45 +00:00
Matthias Radestock
54fe1e37da
cosmetic
2017-12-13 23:52:48 +00:00
Matthias Radestock
6c4bf58fe2
refactor: extract awsCollector.getReportKeys helper
...
This makes Report() more readable. We also intend to use this function
elsewhere.
2017-12-13 23:50:05 +00:00
Matthias Radestock
3a122aeed5
refactor: rename awsCollector.getReportKeys to reportKeysInRange
...
...so we can recycle the former name.
2017-12-13 23:40:04 +00:00
Roberto Bruggemann
10f3e4c0dc
In-memory collector: merge reports after upgrade
...
Upgrading reports individually reduces the amount of upgrades, since some reports might have been upgraded in previously.
2017-12-12 14:16:48 +00:00
Roberto Bruggemann
e58f865d3f
Upgrade reports before caching
...
This change will reduces upgrades, since `report.Upgrade` only performs an upgrade if necessary.
2017-12-12 11:25:04 +00:00
Matthias Radestock
ea20de58be
Merge pull request #2964 from weaveworks/do-not-reportallocs
...
do not report allocations in benchmarks
2017-12-08 14:11:18 +00:00
Matthias Radestock
d528292cd4
make report upgrading fast when it's a no-op
...
The vast majority of the cost is memory allocation, so doing a first
pass to see whether any upgrading is necessary at all, and thus
avoiding allocation when it isn't, is a massive saving.
2017-12-07 21:01:34 +00:00
Matthias Radestock
d3e23e18fc
do not start/stop benchmark timer for no-ops
2017-12-07 20:31:11 +00:00
Matthias Radestock
f305c35bfd
do not report allocations in benchmarks
...
That's what -benchmem is for.
2017-12-07 20:27:31 +00:00
Matthias Radestock
acde0ea294
add some more topology rendering benchmarks
2017-12-02 13:04:57 +00:00
Matthias Radestock
bc0c8324be
add report merging benchmark
2017-12-02 11:51:16 +00:00
Matthias Radestock
c953313b01
move main report processing benchmarks in one place
...
so they can share code and are easier to run in combination.
We take advantage of the code sharing by generalising the report
rendering benchmarks to read & merge reports from a dir.
2017-12-02 11:29:16 +00:00
Matthias Radestock
f2fed067d5
simplify render benchmark code
...
by using report.MakeFromFile instead of NewFileConnector
2017-11-29 11:37:39 +00:00
Matthias Radestock
9dca7627b6
filter unconnected nodes after applying user-specified filters
...
...rather than before. That way, nodes which become unconnected during
filtering are removed, which is what we want. ATM we are depending on
some 'unconnected' filtering inside every filter, which is expensive
and largely redundant. We should soon be able to remove that.
downside: 'unconnected' filtering is no longer memoised.
2017-11-28 06:54:15 +00:00
Matthias Radestock
2d964b669a
refactor: separate filtering from rendering in topology description
...
This is a step towards filtering unconnected nodes after all custom
filters have been applied.
2017-11-28 06:54:15 +00:00
Matthias Radestock
7bbded9e84
refactor(ish): introduce Tranformers
...
so we can generalise the filter step in render.Render et al. That will
allow us to apply whole-topology filters in that step.
2017-11-28 06:54:15 +00:00
Matthias Radestock
8c4ae0577d
Merge pull request #2947 from weaveworks/simplify-decoration
...
Decorators, begone!
2017-11-21 20:49:45 +00:00
Matthias Radestock
a12d707d9b
refactor: rename decorateWithStats to computeStats
...
to de-decorate
2017-11-21 20:17:00 +00:00
Matthias Radestock
0c43526465
refactor: use new FilterFunc.Apply
...
instead of constructing temporary Filter renderers.
This also makes clearer what is going on.
2017-11-21 20:16:59 +00:00
Matthias Radestock
88e8b52d66
Decorators, begone!
...
Decorators were just a complicated way of constructing filters.
2017-11-21 20:16:30 +00:00
Matthias Radestock
ae153e57f5
refactor: remove Decorator from render.Renderer.Render() signature
2017-11-18 18:04:52 +00:00
Matthias Radestock
a82d245e93
simplify render decoration
...
Decoration is in fact quite a simple process that is applied on entry
to rendering: we take a base renderer, transform it with a decorator,
and then render a report with it. The new render.Decorate() function
does exactly that.
There is one exception. When rendering an individual node, e.g. for
showing its details panel in the UI, we must not lose the node during
decoration. That requires some special logic, which previously resided
in the PreciousNodeRenderer, and now lives in handleNode.
2017-11-18 18:04:52 +00:00
Matthias Radestock
4e4c3b25c4
Expand the app's k8s namespace calculation
...
to include recently added k8s types.
This is all rather inefficient. See #2945 .
2017-11-18 17:35:57 +00:00
Matthias Radestock
8f7e00f46a
Stats are easily produced as part of Rendering
...
...so there is no need for a separate Stats method.
step 1: return stats from Render
2017-11-08 07:15:28 +00:00