appender

package
v0.21.0 Latest Latest
Warning

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

Go to latest
Published: Jun 14, 2019 License: Apache-2.0 Imports: 15 Imported by: 3

Documentation

Index

Constants

View Source
const DeadNodeAppenderName = "deadNode"
View Source
const IstioAppenderName = "istio"
View Source
const (
	// ResponseTimeAppenderName uniquely identifies the appender
	ResponseTimeAppenderName = "responseTime"
)
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

func IncludeIstio

func IncludeIstio(o graph.TelemetryOptions) bool

func ParseAppenders

func ParseAppenders(o graph.TelemetryOptions) []graph.Appender

Types

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 *graph.AppenderGlobalInfo, namespaceInfo *graph.AppenderNamespaceInfo)

AppendGraph implements Appender

func (DeadNodeAppender) Name

func (a DeadNodeAppender) Name() string

Name implements Appender

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 *graph.AppenderGlobalInfo, namespaceInfo *graph.AppenderNamespaceInfo)

AppendGraph implements Appender

func (IstioAppender) Name

func (a IstioAppender) Name() string

Name implements Appender

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 *graph.AppenderGlobalInfo, namespaceInfo *graph.AppenderNamespaceInfo)

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 *graph.AppenderGlobalInfo, namespaceInfo *graph.AppenderNamespaceInfo)

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 Doc Links - https://istio.io/docs/reference/config/networking/v1alpha3/service-entry/#ServiceEntry - https://istio.io/docs/examples/advanced-gateways/wildcard-egress-hosts/

A note about wildcard hosts. External service entries allow for prefix wildcarding such that many different service requests may be handled by the same service entry definition. For example, host = *.wikipedia.com would match requests for en.wikipedia.com and de.wikipedia.com. The Istio telemetry will produce separate service nodes for each distinct address. Nothing in the graph code, including this appender, will aggregate the service nodes into one service entry node, although each will be flagged as a serviceEntry due to the wildcard matching. On the plus side, users can track request traffic to each distinct url. On the negative side, many distinct urls will generate many distinct serviceEntry nodes in the graph. Unless we get negative community feedback on the current behavior we will stick with the current, simpler, approach.

func (ServiceEntryAppender) AppendGraph

func (a ServiceEntryAppender) AppendGraph(trafficMap graph.TrafficMap, globalInfo *graph.AppenderGlobalInfo, namespaceInfo *graph.AppenderNamespaceInfo)

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 *graph.AppenderGlobalInfo, namespaceInfo *graph.AppenderNamespaceInfo)

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 *graph.AppenderGlobalInfo, namespaceInfo *graph.AppenderNamespaceInfo)

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