mirror of
https://github.com/weaveworks/scope.git
synced 2026-05-06 01:08:03 +00:00
37 lines
1006 B
Go
37 lines
1006 B
Go
package probe
|
|
|
|
import (
|
|
"github.com/weaveworks/scope/report"
|
|
)
|
|
|
|
type topologyTagger struct{}
|
|
|
|
// NewTopologyTagger tags each node with the topology that it comes from. It's
|
|
// kind of a proof-of-concept tagger, useful primarily for debugging.
|
|
func NewTopologyTagger() Tagger {
|
|
return &topologyTagger{}
|
|
}
|
|
|
|
func (topologyTagger) Name() string { return "Topology" }
|
|
|
|
// Tag implements Tagger
|
|
func (topologyTagger) Tag(r report.Report) (report.Report, error) {
|
|
for name, t := range map[string]*report.Topology{
|
|
report.Endpoint: &(r.Endpoint),
|
|
report.Process: &(r.Process),
|
|
report.Container: &(r.Container),
|
|
report.ContainerImage: &(r.ContainerImage),
|
|
report.Pod: &(r.Pod),
|
|
report.Service: &(r.Service),
|
|
report.ECSTask: &(r.ECSTask),
|
|
report.ECSService: &(r.ECSService),
|
|
report.Host: &(r.Host),
|
|
report.Overlay: &(r.Overlay),
|
|
} {
|
|
for _, node := range t.Nodes {
|
|
t.AddNode(node.WithTopology(name))
|
|
}
|
|
}
|
|
return r, nil
|
|
}
|