appender

package
v0.16.0 Latest Latest
Warning

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

Go to latest
Published: Dec 15, 2021 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultQuantile          = 0.95 // 95th percentile
	ResponseTimeAppenderName = "responseTime"
)
View Source
const DeadNodeAppenderName = "deadNode"
View Source
const IstioAppenderName = "istio"
View Source
const (
	SecurityPolicyAppenderName = "securityPolicy"
)
View Source
const ServiceEntryAppenderName = "serviceEntry"
View Source
const SidecarsCheckAppenderName = "sidecarsCheck"
View Source
const UnusedNodeAppenderName = "unusedNode"

Variables

This section is empty.

Functions

This section is empty.

Types

type Appender

type Appender interface {
	// AppendGraph performs the appender work on the provided traffic map. The map
	// may be initially empty. An appender is allowed to add or remove map entries.
	AppendGraph(trafficMap graph.TrafficMap, globalInfo *GlobalInfo, namespaceInfo *NamespaceInfo)

	// Name returns a unique appender name and which is the name used to identify the appender (e.g in 'appenders' query param)
	Name() string
}

Appender is implemented by any code offering to append a service graph with supplemental information. On error the appender should panic and it will be handled as an error response.

type DeadNodeAppender

type DeadNodeAppender struct{}

DeadNodeAppender is responsible for removing from the graph unwanted nodes:

  • nodes for which there is no traffic reported and a backing workload that can't be found (presumably removed from K8S). (kiali-621)
  • this includes "unknown"
  • service nodes that are not service entries (kiali-1526) and for which there is no incoming error traffic and no outgoing edges (kiali-1326).

Name: deadNode

func (DeadNodeAppender) AppendGraph

func (a DeadNodeAppender) AppendGraph(trafficMap graph.TrafficMap, globalInfo *GlobalInfo, namespaceInfo *NamespaceInfo)

AppendGraph implements Appender

func (DeadNodeAppender) Name

func (a DeadNodeAppender) Name() string

Name implements Appender

type GlobalInfo

type GlobalInfo struct {
	Business       *business.Layer
	PromClient     *prometheus.Client
	ServiceEntries map[string]string
}

GlobalInfo caches information relevant to a single graph. It allows an appender to populate the cache and then it, or another appender can re-use the information. A new instance is generated for graph and is initially empty.

func NewGlobalInfo

func NewGlobalInfo() *GlobalInfo

type IstioAppender

type IstioAppender struct{}

IstioAppender is responsible for badging nodes with special Istio significance: - CircuitBreaker: n.Metadata["hasCB"] = true - VirtualService: n.Metadata["hasVS"] = true Name: istio

func (IstioAppender) AppendGraph

func (a IstioAppender) AppendGraph(trafficMap graph.TrafficMap, globalInfo *GlobalInfo, namespaceInfo *NamespaceInfo)

AppendGraph implements Appender

func (IstioAppender) Name

func (a IstioAppender) Name() string

Name implements Appender

type NamespaceInfo

type NamespaceInfo struct {
	Namespace    string // always provided
	WorkloadList *models.WorkloadList
}

NamespaceInfo caches information relevant to a single namespace. It allows one appender to populate the cache and another to then re-use the information. A new instance is generated for each namespace of a single graph and is initially seeded with only Namespace.

func NewNamespaceInfo

func NewNamespaceInfo(namespace string) *NamespaceInfo

type PolicyRates

type PolicyRates map[string]float64

type ResponseTimeAppender

type ResponseTimeAppender struct {
	GraphType          string
	InjectServiceNodes bool
	IncludeIstio       bool
	Namespaces         map[string]graph.NamespaceInfo
	Quantile           float64
	QueryTime          int64 // unix time in seconds
}

ResponseTimeAppender is responsible for adding responseTime information to the graph. ResponseTime is represented as a percentile value. The default is 95th percentile, which means that 95% of requests executed in no more than the resulting milliseconds. Name: responseTime

func (ResponseTimeAppender) AppendGraph

func (a ResponseTimeAppender) AppendGraph(trafficMap graph.TrafficMap, globalInfo *GlobalInfo, namespaceInfo *NamespaceInfo)

AppendGraph implements Appender

func (ResponseTimeAppender) Name

func (a ResponseTimeAppender) Name() string

Name implements Appender

type SecurityPolicyAppender

type SecurityPolicyAppender struct {
	GraphType          string
	IncludeIstio       bool
	InjectServiceNodes bool
	Namespaces         map[string]graph.NamespaceInfo
	QueryTime          int64 // unix time in seconds
}

SecurityPolicyAppender is responsible for adding securityPolicy information to the graph. The appender currently reports only mutual_tls security although is written in a generic way. Name: securityPolicy

func (SecurityPolicyAppender) AppendGraph

func (a SecurityPolicyAppender) AppendGraph(trafficMap graph.TrafficMap, globalInfo *GlobalInfo, namespaceInfo *NamespaceInfo)

AppendGraph implements Appender

func (SecurityPolicyAppender) Name

func (a SecurityPolicyAppender) Name() string

Name implements Appender

type ServiceEntryAppender

type ServiceEntryAppender struct {
	AccessibleNamespaces map[string]time.Time
}

ServiceEntryAppender is responsible for identifying service nodes that are Istio Service Entries. Name: serviceEntry

func (ServiceEntryAppender) AppendGraph

func (a ServiceEntryAppender) AppendGraph(trafficMap graph.TrafficMap, globalInfo *GlobalInfo, namespaceInfo *NamespaceInfo)

AppendGraph implements Appender

func (ServiceEntryAppender) Name

func (a ServiceEntryAppender) Name() string

Name implements Appender

type SidecarsCheckAppender

type SidecarsCheckAppender struct{}

SidecarsCheckAppender flags nodes whose backing workloads are missing at least one Envoy sidecar. Note that a node with no backing workloads is not flagged. Name: sidecarsCheck

func (SidecarsCheckAppender) AppendGraph

func (a SidecarsCheckAppender) AppendGraph(trafficMap graph.TrafficMap, globalInfo *GlobalInfo, namespaceInfo *NamespaceInfo)

AppendGraph implements Appender

func (SidecarsCheckAppender) Name

func (a SidecarsCheckAppender) Name() string

Name implements Appender

type UnusedNodeAppender

type UnusedNodeAppender struct {
	GraphType   string // This appender does not operate on service graphs because it adds workload nodes.
	IsNodeGraph bool   // This appender does not operate on node detail graphs because we want to focus on the specific node.
}

UnusedNodeAppender looks for services that have never seen request traffic. It adds nodes to represent the unused definitions. The added node types depend on the graph type and/or labeling on the definition. Name: unusedNode

func (UnusedNodeAppender) AppendGraph

func (a UnusedNodeAppender) AppendGraph(trafficMap graph.TrafficMap, globalInfo *GlobalInfo, namespaceInfo *NamespaceInfo)

AppendGraph implements Appender

func (UnusedNodeAppender) Name

func (a UnusedNodeAppender) Name() string

Name implements Appender

Jump to

Keyboard shortcuts

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