Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct { Timestamp int64 `json:"timestamp"` Duration int64 `json:"duration"` GraphType string `json:"graphType"` Elements Elements `json:"elements"` }
func NewConfig ¶
func NewConfig(trafficMap graph.TrafficMap, o graph.ConfigOptions) (result Config)
NewConfig is required by the graph/ConfigVendor interface
type EdgeData ¶
type EdgeData struct { // Cytoscape Fields ID string `json:"id"` // unique internal edge ID (e0, e1...) Source string `json:"source"` // parent node ID Target string `json:"target"` // child node ID // App Fields (not required by Cytoscape) DestPrincipal string `json:"destPrincipal,omitempty"` // principal used for the edge destination IsMTLS string `json:"isMTLS,omitempty"` // set to the percentage of traffic using a mutual TLS connection ResponseTime string `json:"responseTime,omitempty"` // in millis SourcePrincipal string `json:"sourcePrincipal,omitempty"` // principal used for the edge source Throughput string `json:"throughput,omitempty"` // in bytes/sec (request or response, depends on client request) Traffic ProtocolTraffic `json:"traffic,omitempty"` // traffic rates for the edge protocol }
type EdgeWrapper ¶
type EdgeWrapper struct {
Data *EdgeData `json:"data"`
}
type Elements ¶
type Elements struct { Nodes []*NodeWrapper `json:"nodes"` Edges []*EdgeWrapper `json:"edges"` }
type GWInfo ¶ added in v1.38.1
type GWInfo struct { // IngressInfo contains the resolved gateway configuration if the node represents an Istio ingress gateway IngressInfo GWInfoIngress `json:"ingressInfo,omitempty"` // EgressInfo contains the resolved gateway configuration if the node represents an Istio egress gateway EgressInfo GWInfoIngress `json:"egressInfo,omitempty"` // GatewayAPIInfo contains the resolved gateway configuration if the node represents a Gateway API gateway GatewayAPIInfo GWInfoIngress `json:"gatewayAPIInfo,omitempty"` }
GWInfo contains the resolved gateway configuration if the node represents an Istio gateway
type GWInfoIngress ¶ added in v1.38.1
type GWInfoIngress struct { // Hostnames is the list of hosts being served by the associated Istio gateways. Hostnames []string `json:"hostnames,omitempty"` }
GWInfoIngress contains the resolved gateway configuration if the node represents an Istio ingress gateway
type HealthConfig ¶ added in v1.30.0
HealthConfig maps annotations information for health
type NodeData ¶
type NodeData struct { // Cytoscape Fields ID string `json:"id"` // unique internal node ID (n0, n1...) Parent string `json:"parent,omitempty"` // Compound Node parent ID // App Fields (not required by Cytoscape) NodeType string `json:"nodeType"` Cluster string `json:"cluster"` Namespace string `json:"namespace"` Workload string `json:"workload,omitempty"` App string `json:"app,omitempty"` Version string `json:"version,omitempty"` Service string `json:"service,omitempty"` // requested service for NodeTypeService Aggregate string `json:"aggregate,omitempty"` // set like "<aggregate>=<aggregateVal>" DestServices []graph.ServiceName `json:"destServices,omitempty"` // requested services for [dest] node Labels map[string]string `json:"labels,omitempty"` // k8s labels associated with the node Traffic []ProtocolTraffic `json:"traffic,omitempty"` // traffic rates for all detected protocols HealthData interface{} `json:"healthData"` // data to calculate health status from configurations HealthDataApp interface{} `json:"-"` // for local use to generate appBox health HasCB bool `json:"hasCB,omitempty"` // true (has circuit breaker) | false HasFaultInjection bool `json:"hasFaultInjection,omitempty"` // true (vs has fault injection) | false HasHealthConfig HealthConfig `json:"hasHealthConfig,omitempty"` // set to the health config override HasMirroring bool `json:"hasMirroring,omitempty"` // true (has mirroring) | false HasMissingSC bool `json:"hasMissingSC,omitempty"` // true (has missing sidecar) | false HasRequestRouting bool `json:"hasRequestRouting,omitempty"` // true (vs has request routing) | false HasRequestTimeout bool `json:"hasRequestTimeout,omitempty"` // true (vs has request timeout) | false HasTCPTrafficShifting bool `json:"hasTCPTrafficShifting,omitempty"` // true (vs has tcp traffic shifting) | false HasTrafficShifting bool `json:"hasTrafficShifting,omitempty"` // true (vs has traffic shifting) | false HasVS *VSInfo `json:"hasVS,omitempty"` // it can be empty if there is a VS without hostnames HasWorkloadEntry []graph.WEInfo `json:"hasWorkloadEntry,omitempty"` // static workload entry information | empty if there are no workload entries IsBox string `json:"isBox,omitempty"` // set for NodeTypeBox, current values: [ 'app', 'cluster', 'namespace' ] IsDead bool `json:"isDead,omitempty"` // true (has no pods) | false IsGateway *GWInfo `json:"isGateway,omitempty"` // Istio ingress/egress gateway information IsIdle bool `json:"isIdle,omitempty"` // true | false IsInaccessible bool `json:"isInaccessible,omitempty"` // true if the node exists in an inaccessible namespace IsOutside bool `json:"isOutside,omitempty"` // true | false IsRoot bool `json:"isRoot,omitempty"` // true | false IsServiceEntry *graph.SEInfo `json:"isServiceEntry,omitempty"` // set static service entry information }
type NodeWrapper ¶
type NodeWrapper struct {
Data *NodeData `json:"data"`
}
type ProtocolTraffic ¶
type ProtocolTraffic struct { Protocol string `json:"protocol,omitempty"` // protocol Rates map[string]string `json:"rates,omitempty"` // map[rate]value Responses Responses `json:"responses,omitempty"` // see comment above }
ProtocolTraffic supplies all of the traffic information for a single protocol
type ResponseDetail ¶ added in v1.6.0
type ResponseDetail struct { Flags ResponseFlags `json:"flags,omitempty"` Hosts ResponseHosts `json:"hosts,omitempty"` }
ResponseDetail holds information broken down by response code.
type ResponseFlags ¶
type ResponseHosts ¶ added in v1.6.0
ResponseHosts is a map of maps. Each response host is broken down by responseFlags:percentageOfTraffic, e.g.:
"200" : { "www.google.com" : "80.0", "www.yahoo.com" : "20.0" }, ...
type Responses ¶
type Responses map[string]*ResponseDetail
Responses maps responseCodes to detailed information for that code
Click to show internal directories.
Click to hide internal directories.