Commit Graph

5505 Commits

Author SHA1 Message Date
Bryan Boreham
da030d1618 test: add TestReportUnMerge()
Testing the new delta-report internals
2019-09-18 08:01:13 +00:00
Bryan Boreham
951629af29 chore: allow Report.DNS field to be nil
Primarily to help when writing tests; may give a tiny performance benefit.
2019-09-18 08:00:28 +00:00
Bryan Boreham
b6d5594f9f perf(probe): publish delta reports to reduce data size
Similar to video compression which uses key-frames and differences
between them: every N publishes we send a full report, but inbetween
we only send what has changed.

Fairly simple approach in the probe - hold on to the last full report,
and for the deltas remove anything that would be merged in from the
full report.

On the receiving side in the app it already merges a set of reports
together to produce the final output for rendering, so provided N is
smaller than that set we don't need to do anything different.

Deltas don't need to represent nodes that have disappeared - an
earlier full node will have that node so it would be merged into the
final output anyway.
2019-09-18 08:00:28 +00:00
Bryan Boreham
eff5a1f9f7 Refactor: pull Publish() call up to publishLoop() 2019-09-18 08:00:28 +00:00
Bryan Boreham
938d59489c Merge pull request #3682 from weaveworks/websocket-tracing
Websocket tracing spans
2019-09-17 16:36:48 +01:00
Bryan Boreham
a811afdba1 Merge pull request #3678 from weaveworks/nodes-omitempty
perf(probe): add 'omitempty' tag to Topology.Nodes
2019-09-17 16:25:52 +01:00
Bryan Boreham
4e8000cbba review feedback: better tracing info 2019-09-16 11:08:42 +00:00
Bryan Boreham
b0915519df refactor: move websocket state out to a struct to neaten up the send loop 2019-09-16 11:03:02 +00:00
Akash Srivastava
c143099412 Merge pull request #3683 from weaveworks/fix-codeowners
fix(github): give all code owners equal weight
2019-09-16 16:00:55 +05:30
Bryan Boreham
73984a4a8b fix(github): give all code owners equal weight 2019-09-16 09:42:54 +00:00
Akash Srivastava
59ffac613e Merge pull request #3681 from weaveworks/update-netlink
perf(probe): update netlink library to bring in performance improvements
2019-09-16 13:18:29 +05:30
Akash Srivastava
0203757cf5 Merge pull request #3675 from weaveworks/reduce-probe-dependency
Stop render package depending on probe
2019-09-16 12:56:56 +05:30
Akash Srivastava
b636107ef7 Merge pull request #3674 from weaveworks/remove-unused-strings
Remove some unused string constants
2019-09-16 12:54:06 +05:30
Bryan Boreham
04af634065 tracing(app): set a tag for userid on awsCollector.Report 2019-09-15 19:22:08 +00:00
Bryan Boreham
852b7cd4c0 tracing(app): spans for report rendering via websocket 2019-09-15 19:08:20 +00:00
Bryan Boreham
871751873b Stop render package depending on probe
This dependency makes it harder to see the structure of the program,
and sometimes complicates compilation.

Mostly just changing the source of strings that are already exported
from the report package.  A few new strings have to be moved there,
plus the function `IsPauseImageName()`.
2019-09-15 17:03:04 +00:00
Bryan Boreham
4c52889316 Add 'omitempty' tag to Topology.Nodes
So we save space writing out empty topologies.

Need to fix up `app_client_internal_test.go` to use Scope's
`test/reflect` package that understands empty==nil, so now it doesn't
need a previous workaround.

Remove a similar workaround in `probe_internal_test.go` that isn't
necessary since it's already using that package.
2019-09-15 15:50:08 +00:00
Bryan Boreham
34eb68815e perf(probe): update netlink library to bring in performance improvements 2019-09-15 13:52:40 +00:00
Bryan Boreham
ce73474851 Merge pull request #3673 from weaveworks/3672-node-memory-overlay-shows
Fixes "45undefined" in node memory overlay
2019-09-13 16:30:37 +01:00
Simon Howe
a18827f2f0 Fixes "45undefined" in node memory overlay
- Seems like the filesize lib subtley changed their API
2019-09-13 16:38:19 +02:00
Bryan Boreham
d9cb838815 Merge pull request #3671 from weaveworks/quantise-aws-read-cache
Quantise report cache in query side of aws-collector
2019-09-13 12:44:34 +01:00
Bryan Boreham
48aad1a20d Remove unused string constants 2019-09-13 11:42:21 +00:00
Bryan Boreham
4210bc76f4 Refactor: stop depending on probe code to render image names 2019-09-13 11:41:16 +00:00
Bryan Boreham
15467d7310 Move host-related names out of probe code
Reduce the dependency on low-level libraries
2019-09-13 11:41:09 +00:00
Bryan Boreham
74b6a292d5 Use time.Duration instead of nanoseconds for constants 2019-09-13 07:31:07 +00:00
Bryan Boreham
b5376facf2 Cache merged groups of reports, to reduce the number we handle in parallel
Previously we would merge all reports in a 15-second window.
Now we use a 'quantum' of 3 seconds, similar to the single-user app.

E.g. a 30-node cluster will have 150 individual reports over 15
seconds, but the new code will merge 5 pre-merged reports plus 20-ish
very recent individual ones.

This limits the max heap size used for deserialising, since we only do
3 seconds at once per instance.

Individual reports are still put into the cache, but should get
displaced by the pre-merged ones under LRU.
2019-09-09 10:00:26 +00:00
Bryan Boreham
70550ca34a Refactor: pull userid fetch up out of getReportKeys() 2019-09-09 08:19:55 +00:00
Bryan Boreham
589c4c4d0b Refactor: pull time interval computation up out of getReportKeys() 2019-09-08 12:27:57 +00:00
Simon
85bcc5fd6f Merge pull request #3670 from weaveworks/upgrades-ui-components-sc-4
Upgrades ui-components to version w/ styled-components 4
2019-09-06 14:58:59 +02:00
Simon Howe
51e2f80560 Upgrades ui-components to version w/ styled-components 4 2019-09-06 11:19:55 +02:00
Daniel Holbach
445b4065f2 Merge pull request #3664 from weaveworks/update-js-libs
update some javascript dependencies
2019-08-30 15:01:31 +02:00
Daniel Holbach
e080f7823a revert d3-selection to 1.3.2 - thanks Akash 2019-08-21 16:25:08 +02:00
Daniel Holbach
40a03bda7d update some more dependencies 2019-08-21 16:19:46 +02:00
Daniel Holbach
1cf1eead6b update flask version too 2019-08-21 16:19:46 +02:00
Daniel Holbach
2d3ff4f6fb update some javascript dependencies 2019-08-21 16:19:46 +02:00
Bryan Boreham
5b256ba473 Release 1.11.5 v1.11.5 2019-08-20 14:27:03 +00:00
Bryan Boreham
5cba126c12 Merge pull request #3600 from weaveworks/expose-probe-metrics
Expose probe metrics to Prometheus
2019-08-20 14:35:06 +01:00
Akash Srivastava
55846dbe01 Merge pull request #3661 from weaveworks/endpoint-tweaks
Reduce leaks in probe endpoint reporter
2019-08-16 12:40:00 +05:30
Bryan Boreham
eba9f31f3f fix(probe): restart conntrack handler periodically to clear out data
We observe a slow increase in connections reported, and are unable to
find the root cause, so clear down the data every six hours and start
from a clean sheet.
2019-08-13 16:30:56 +00:00
Bryan Boreham
6e715d2697 fix(probe): Loosen ebpf parameters to reduce restarts
Delay kernel events by up to 0.2ms, to reduce the chance the ebpf
reporter sends them out-of-order, and allow out-of-order events to
happen up to once a minute without giving up on the ebpf reporter.
2019-08-13 16:17:23 +00:00
Filip Barl
c8c8dacbc9 Merge pull request #3643 from weaveworks/security-updates
Update to newer eslint
2019-08-12 12:15:03 +02:00
Filip Barl
478e325755 Resolved dependency cycle between actions and web utils 2019-08-02 20:02:30 +02:00
Filip Barl
c2fa42f514 Resolved router utils dependency cycle 2019-08-02 15:31:19 +02:00
Bryan Boreham
c99a5e6d3b Merge branch 'release-1.11' 2019-08-01 16:02:19 +00:00
Filip Barl
183bf0f8bd Moved doControlRequest function into actions 2019-08-01 16:11:32 +02:00
Daniel Holbach
2ab7ada568 some more eslint updates 2019-08-01 08:39:42 +02:00
Filip Barl
7c417bd5d6 Addressed react/no-access-state-in-setstate 2019-08-01 08:39:42 +02:00
Filip Barl
f27d1337c8 Resolved a buncher of simple(r) eslint errors 2019-08-01 08:39:42 +02:00
Filip Barl
97a2e00fe3 Bumped node to v8.10.0 2019-08-01 08:39:42 +02:00
Daniel Holbach
630611af90 update eslint-config-airbnb 2019-08-01 08:39:42 +02:00