Commit Graph
147 Commits
Author SHA1 Message Date
Mike Lang 2b208580ab Add new topology view for Docker Swarm services 2017-04-14 17:18:06 -07:00
Mike Lang 9f0f120bc5 Remove explicit listing of api topologies in render/detailed/node specs
Instead, we can infer them from the render topology and the primaryAPITopology map
2017-04-10 15:06:38 -07:00
Mike Lang 9c88ad85e9 render/detailed/parents: Refactor for less repeated information
We replace the existing data structure with a simpler one that
only specifies how to get the parent label, which is the only
part of the Parent struct that can't be generated from the node info alone.

Future work: Standardize this concept of a label and put it in the topology instead.
Though that already exists...so just use it?
2017-04-10 14:30:52 -07:00
Mike Lang 2a74883cce If no node summary generator exists for topology, do a sane default
The default sets the node label to the node ID.
This is likely to not look very good, but the intent is that it creates an obvious problem,
ie. that the node ID is being used as the label, rather than a silent omission or more subtle problem.

Possible future work:
* For single-component IDs, extract the component automatically and use that instead.
* Instead of functions, in simple cases just have a LUT by topology with common behaviours like
  'stack = true or false', 'label = this key in node.Latest'
The latter opens up to eventually moving this info inside the report itself ala topology templates,
or at least centralizing it in the source.
2017-04-10 14:30:52 -07:00
Mike Lang c16becc148 render/detailed: When summarising children, add fallback for unlisted topologies
Currently, if a topology does not have any specific info in nodeSummariesByID,
any children of the node that belong to that topology will be silently omitted.

This change adds a default behaviour for such topologies, with no special columns
but at least it is displayed at all.
Unlisted topologies are displayed after all listed ones, in arbitrary order.

Note that completely bogus or other special cases (eg. topology = Pseudo) still will not
be displayed as report.Topology() will fail.
2017-04-10 14:30:52 -07:00
Mike Lang 14ab5ccceb render: Maintain a list of 'primary' api topologies for each report topology
This gives us a single source of truth in a variety of situations where we want to
know what view to direct a user to in order to 'open' a particular node.

I wanted to put this in app/api_topologies where the views are defined, but that creates
a circular import.
2017-04-10 14:30:52 -07:00
Mike Lang fad3e88269 Rename ECS Service node ids to be cluster;serviceName
This is important for two reasons:
* It prevents nasty false-equality bugs when two different services from different ECS clusters
  are present in the same report
* It allows us to retrieve the cluster and service name - all the info we need to look up the service -
  using only the node ID. This matters, for example, when trying to handle a control request.
2017-02-03 13:45:18 -08:00
Mike LangandGitHub fca76d661e Merge pull request #2145 from weaveworks/mike/render/fix-ecs-detailed-parents
render.detailed: Add ECS topologies to detailed parents conversion
2017-01-23 13:23:45 -08:00
Mike LangandGitHub 19b6d5b1c4 Merge pull request #2146 from weaveworks/mike/render/fix-ecs-detailed-children
render.detailed: Teach detailed node view how to display ECS topologies as children
2017-01-23 13:23:27 -08:00
Mike Lang eb44e95922 render.detailed: Teach detailed node view how to display ECS topologies as children
Previously, they were omitted.
2017-01-20 18:07:54 -08:00
Mike Lang 39e735f99e render.detailed: Add ECS topologies to detailed parents conversion
so they will correctly show up in the details view.
Currently, since ECS topologies aren't considered, the ECS parents of nodes are silently dropped.
2017-01-20 17:12:40 -08:00
Filip Barl d3466b5454 Refactored the table component/model and wrote the tests
Backward-compatibility fix
2017-01-16 17:05:36 +01:00
Filip Barl 31be525bd2 Created generic table model on backend
Replaced MetadataRow with generic Row in Table model

Sending through multicolumn tables from the backend
2017-01-16 12:22:10 +01:00
Jonathan Lange 1020fc5f85 Use test.Diff from common 2016-12-07 11:22:40 +00:00
Jonathan Lange e8085b01b6 Use 'common' library 2016-12-07 11:22:38 +00:00
Alfonso AcostaandMike Lang 78775bbdb8 Initial rendering for ECS
(not working yet)
2016-11-29 07:18:05 -08:00
Filip BarlandGitHub d15e884cb1 Table-mode: sort ips numerically (#2007)
Fix #1746 - sort IPs numerically in the table mode
2016-11-22 11:05:59 +01:00
Alfonso Acosta 3af7076f30 Review feedback 2016-11-02 14:46:56 +00:00
Alfonso Acosta d0e022050e Fix and extend tests 2016-11-02 13:16:12 +00:00
Alfonso Acosta 3023f4be80 Add Weave summary generator and fix Weave renderer 2016-10-26 07:40:14 +00:00
Alfonso AcostaandGitHub 16ae11da77 Merge pull request #1922 from kinvolk/lorenzo/lint-untyped-keys
Fix linter errors on unkeyed fields
2016-10-20 11:32:59 +02:00
Simon Howe 2ca23507de label_minor -> labelMinor, closer to all camelCase api 2016-10-19 10:50:11 +02:00
Lorenzo Manacorda 7ed139b15b fix linter errors on unkeyed fields 2016-10-14 12:53:48 +02:00
Simon Howe bec4d281c3 Add label_minor to tooltips in connections table
Sometimes label is not enough to distinguish between rows.
2016-10-10 15:15:31 +02:00
Simon Howe 70681e4694 Fixes BE tests after exposing Truncate to the FE. 2016-09-28 12:18:12 +02:00
Matthias Radestock 5ce5d541d3 show forward DNS name for internet addresses
...if available.

Follow-up to #1863.
2016-09-22 21:01:44 +01:00
Simon Howe 685a895dd5 gofmt the go 2016-09-22 16:05:37 +02:00
Simon Howe fe1ba9cc4d Tidying up connectionrow.dataType
- Rename DataType -> Datatype for consisitency
- Remove Datatype from connection.metadata
- Change UI to read dataType from connection.columns rather than from
  connection.metadata (col header rather than "cell")
2016-09-22 15:36:36 +02:00
Simon Howe ac741a034e Fixes tests after numberifying columns 2016-09-21 16:38:01 +02:00
Simon Howe 7c4654d45c Fixes left alignment of numbers in the details panel tables
- By declaring more things to be numbers
- Also fixes initial sort direction of number columns from asc to desc.
2016-09-21 16:18:26 +02:00
Simon Howe 517110ba09 Keep "count" as tooltip for new mini "#" column header 2016-09-21 15:24:59 +02:00
Simon Howe 52362496b3 Rename connections."Count" => "#", flex remote column 2016-09-21 15:13:01 +02:00
Simon Howe fc3fc72205 Fix ip column width in connections table, avoid truncating long ips 2016-09-21 10:01:42 +02:00
Alfonso AcostaandGitHub c64dfa6f55 Merge pull request #1863 from weaveworks/1082-nodes-for-known-services
Add pseudo-nodes for known services
2016-09-20 23:00:52 +02:00
Alfonso Acosta 028ed32b6f Simplify service node matching 2016-09-19 14:38:59 +00:00
Alfonso Acosta 5c080ec062 Add pseudo-nodes for known services
AWS S3 and Dynamo to start with
2016-09-19 14:38:58 +00:00
Matthias Radestock c455f048e2 comment on arbitrariness of displayed dns name 2016-09-19 15:31:26 +01:00
Matthias Radestock bcf21b1966 show more details of a node's internet connections
in the details panel, instead of showing connections to/from the
internet as "TheInternet <port>", we now show "<dns-name>(<ip_addr>)
<port>" (or just "<ip_addr> <port>" if we don't have a dns name).

Fixes #1713.
2016-09-19 14:10:35 +01:00
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 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
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
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 abd59fda2d lookup localNodeID in r.Endpoint.Nodes
and refactor the connection{} construction so we can add some
explanation of what is going on here.
2016-09-02 11:38:44 +01:00