Documentation ¶
Index ¶
- Constants
- Variables
- func NodeDockerLabels(nmd report.Node) []report.MetadataRow
- func NodeMetadata(r report.Report, n report.Node) []report.MetadataRow
- func NodeMetrics(r report.Report, n report.Node) []report.MetricRow
- type Column
- type Connection
- type ConnectionsSummary
- type ControlInstance
- type Diff
- type Node
- type NodeSummaries
- type NodeSummary
- type NodeSummaryGroup
- type Parent
Constants ¶
const ( Circle = "circle" Square = "square" Heptagon = "heptagon" Hexagon = "hexagon" Cloud = "cloud" ImageNameNone = "<none>" // Keys we use to render container names AmazonECSContainerNameLabel = "com.amazonaws.ecs.container-name" KubernetesContainerNameLabel = "io.kubernetes.container.name" MarathonAppIDEnv = "MARATHON_APP_ID" )
Shapes that are allowed
Variables ¶
var ( NormalColumns = []Column{ {ID: portKey, Label: portLabel}, {ID: countKey, Label: countLabel, DefaultSort: true}, } InternetColumns = []Column{ {ID: "foo", Label: "Remote"}, {ID: portKey, Label: portLabel}, {ID: countKey, Label: countLabel, DefaultSort: true}, } )
Exported for testing
Functions ¶
func NodeDockerLabels ¶ added in v0.13.0
func NodeDockerLabels(nmd report.Node) []report.MetadataRow
NodeDockerLabels produces a table (to be consumed directly by the UI) based on an origin ID, which is (optimistically) a node ID in one of our topologies.
func NodeMetadata ¶
NodeMetadata produces a table (to be consumed directly by the UI) based on an a report.Node, which is (hopefully) a node in one of our topologies.
Types ¶
type Column ¶ added in v0.13.0
type Column struct { ID string `json:"id"` Label string `json:"label"` DefaultSort bool `json:"defaultSort"` }
Column provides special json serialization for column ids, so they include their label for the frontend.
type Connection ¶ added in v0.14.0
type Connection struct { ID string `json:"id"` // ID of this element in the UI. Must be unique for a given ConnectionsSummary. NodeID string `json:"nodeId"` // ID of a node in the topology. Optional, must be set if linkable is true. Label string `json:"label"` Linkable bool `json:"linkable"` Metadata []report.MetadataRow `json:"metadata,omitempty"` }
Connection is a row in the connections table.
type ConnectionsSummary ¶ added in v0.14.0
type ConnectionsSummary struct { ID string `json:"id"` TopologyID string `json:"topologyId"` Label string `json:"label"` Columns []Column `json:"columns"` Connections []Connection `json:"connections"` }
ConnectionsSummary is the table of connection to/form a node
type ControlInstance ¶
ControlInstance contains a control description, and all the info needed to execute it.
func (*ControlInstance) CodecDecodeSelf ¶ added in v0.13.0
func (c *ControlInstance) CodecDecodeSelf(decoder *codec.Decoder)
CodecDecodeSelf implements codec.Selfer
func (*ControlInstance) CodecEncodeSelf ¶ added in v0.13.0
func (c *ControlInstance) CodecEncodeSelf(encoder *codec.Encoder)
CodecEncodeSelf marshals this ControlInstance. It takes the basic Metric rendering, then adds some row-specific fields.
func (ControlInstance) MarshalJSON ¶ added in v0.13.0
func (ControlInstance) MarshalJSON() ([]byte, error)
MarshalJSON shouldn't be used, use CodecEncodeSelf instead
func (*ControlInstance) UnmarshalJSON ¶ added in v0.13.0
func (*ControlInstance) UnmarshalJSON(b []byte) error
UnmarshalJSON shouldn't be used, use CodecDecodeSelf instead
type Diff ¶ added in v0.14.0
type Diff struct { Add []NodeSummary `json:"add"` Update []NodeSummary `json:"update"` Remove []string `json:"remove"` }
Diff is returned by TopoDiff. It represents the changes between two NodeSummary maps.
func TopoDiff ¶ added in v0.14.0
func TopoDiff(a, b NodeSummaries) Diff
TopoDiff gives you the diff to get from A to B.
type Node ¶
type Node struct { NodeSummary Controls []ControlInstance `json:"controls"` Children []NodeSummaryGroup `json:"children,omitempty"` Parents []Parent `json:"parents,omitempty"` Connections []ConnectionsSummary `json:"connections,omitempty"` }
Node is the data type that's yielded to the JavaScript layer when we want deep information about an individual node.
type NodeSummaries ¶ added in v0.14.0
type NodeSummaries map[string]NodeSummary
NodeSummaries is a set of NodeSummaries indexed by ID.
func Summaries ¶ added in v0.14.0
func Summaries(r report.Report, rns report.Nodes) NodeSummaries
Summaries converts RenderableNodes into a set of NodeSummaries
func (NodeSummaries) Copy ¶ added in v0.14.0
func (n NodeSummaries) Copy() NodeSummaries
Copy returns a deep value-copy of NodeSummaries
type NodeSummary ¶
type NodeSummary struct { ID string `json:"id"` Label string `json:"label"` LabelMinor string `json:"label_minor"` Rank string `json:"rank"` Shape string `json:"shape,omitempty"` Stack bool `json:"stack,omitempty"` Linkable bool `json:"linkable,omitempty"` // Whether this node can be linked-to Pseudo bool `json:"pseudo,omitempty"` Metadata []report.MetadataRow `json:"metadata,omitempty"` DockerLabels []report.MetadataRow `json:"docker_labels,omitempty"` Metrics []report.MetricRow `json:"metrics,omitempty"` Adjacency report.IDList `json:"adjacency,omitempty"` }
NodeSummary is summary information about a child for a Node.
func MakeNodeSummary ¶
MakeNodeSummary summarizes a node, if possible.
func (NodeSummary) Copy ¶
func (n NodeSummary) Copy() NodeSummary
Copy returns a value copy of the NodeSummary
func (NodeSummary) SummarizeMetrics ¶ added in v0.14.0
func (n NodeSummary) SummarizeMetrics() NodeSummary
SummarizeMetrics returns a copy of the NodeSummary where the metrics are replaced with their summaries
type NodeSummaryGroup ¶
type NodeSummaryGroup struct { ID string `json:"id"` Label string `json:"label"` Nodes []NodeSummary `json:"nodes"` TopologyID string `json:"topologyId"` Columns []Column `json:"columns"` }
NodeSummaryGroup is a topology-typed group of children for a Node.
func (NodeSummaryGroup) Copy ¶
func (g NodeSummaryGroup) Copy() NodeSummaryGroup
Copy returns a value copy of the NodeSummaryGroup