detailed

package
v0.14.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 19, 2016 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
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

View Source
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

func NodeMetadata(r report.Report, n report.Node) []report.MetadataRow

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.

func NodeMetrics

func NodeMetrics(r report.Report, n report.Node) []report.MetricRow

NodeMetrics 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

type ControlInstance struct {
	ProbeID string
	NodeID  string
	Control report.Control
}

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.

func MakeNode

func MakeNode(topologyID string, r report.Report, ns report.Nodes, n report.Node) Node

MakeNode transforms a renderable node to a detailed node. It uses aggregate metadata, plus the set of origin node IDs, to produce tables.

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

func MakeNodeSummary(r report.Report, n report.Node) (NodeSummary, bool)

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

Copy returns a value copy of the NodeSummaryGroup

type Parent

type Parent struct {
	ID         string `json:"id"`
	Label      string `json:"label"`
	TopologyID string `json:"topologyId"`
}

Parent is the information needed to build a link to the parent of a Node.

func Parents added in v0.13.0

func Parents(r report.Report, n report.Node) (result []Parent)

Parents renders the parents of this report.Node, which have been aggregated from the probe reports.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL