Documentation ¶
Index ¶
- Constants
- func IncludeIstio(o graph.TelemetryOptions) bool
- func ParseAppenders(o graph.TelemetryOptions) []graph.Appender
- type DeadNodeAppender
- type IstioAppender
- type PolicyRates
- type ResponseTimeAppender
- type SecurityPolicyAppender
- type ServiceEntryAppender
- type SidecarsCheckAppender
- type UnusedNodeAppender
Constants ¶
const DeadNodeAppenderName = "deadNode"
const IstioAppenderName = "istio"
const (
// ResponseTimeAppenderName uniquely identifies the appender
ResponseTimeAppenderName = "responseTime"
)
const (
SecurityPolicyAppenderName = "securityPolicy"
)
const ServiceEntryAppenderName = "serviceEntry"
const SidecarsCheckAppenderName = "sidecarsCheck"
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
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
type PolicyRates ¶
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 ¶
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