Documentation ¶
Index ¶
- Variables
- func CheckMessage(checkId string) string
- func GetDashboardAnnotation(annotations map[string]string) map[string]string
- func GetHealthAnnotation(annotations map[string]string, filters []AnnotationKey) map[string]string
- func HasDRCircuitBreaker(dr *networking_v1alpha3.DestinationRule, ...) bool
- func HasVSFaultInjection(vs *networking_v1alpha3.VirtualService) bool
- func HasVSMirroring(vs *networking_v1alpha3.VirtualService) bool
- func HasVSRequestRouting(vs *networking_v1alpha3.VirtualService) bool
- func HasVSRequestTimeout(vs *networking_v1alpha3.VirtualService) bool
- func HasVSTCPTrafficShifting(vs *networking_v1alpha3.VirtualService) bool
- func HasVSTrafficShifting(vs *networking_v1alpha3.VirtualService) bool
- func IsVSValidHost(vs *networking_v1alpha3.VirtualService, namespace string, serviceName string) bool
- type AdditionalItem
- type Address
- type Addresses
- type Aggregation
- type AnnotationKey
- type App
- type AppHealth
- type AppList
- type AppListItem
- type Bootstrap
- type CertInfo
- type Chart
- type Cluster
- type Clusters
- type ContainerInfo
- type ConversionParams
- type CustomMetricsQuery
- type DashboardQuery
- type DashboardRef
- type Datapoint
- type Endpoint
- type Endpoints
- type EnvoyProxyDump
- type ExternalLink
- type GrafanaInfo
- type IstioCheck
- type IstioConfigDetails
- type IstioConfigList
- type IstioConfigPermissions
- type IstioMetricsQuery
- type IstioValidation
- type IstioValidationKey
- type IstioValidationSummary
- type IstioValidations
- func (iv IstioValidations) FilterByKey(objectType, name string) IstioValidations
- func (iv IstioValidations) FilterBySingleType(objectType, name string) IstioValidations
- func (iv IstioValidations) FilterByTypes(objectTypes []string) IstioValidations
- func (iv IstioValidations) MarshalJSON() ([]byte, error)
- func (iv IstioValidations) MergeReferences(validations IstioValidations) IstioValidations
- func (iv IstioValidations) MergeValidations(validations IstioValidations) IstioValidations
- func (iv *IstioValidations) StripIgnoredChecks()
- func (iv IstioValidations) SummarizeValidation(ns string) IstioValidationSummary
- type JaegerInfo
- type Listener
- type Listeners
- type MTLSStatus
- type Metric
- type MetricsMap
- type MetricsStats
- type MetricsStatsQueries
- type MetricsStatsQuery
- type MetricsStatsResult
- type MonitoringDashboard
- type Namespace
- type NamespaceAppHealth
- type NamespaceNames
- type NamespaceServiceHealth
- type NamespaceValidations
- type NamespaceWorkloadHealth
- type Namespaces
- type Pod
- type Pods
- type Port
- type Ports
- type ProxyStatus
- type Reference
- type RequestHealth
- type ResourcePermissions
- type ResourcesPermissions
- type Route
- type Routes
- type Runtime
- type Service
- type ServiceDefinitionList
- type ServiceDetails
- func (s *ServiceDetails) SetEndpoints(eps *core_v1.Endpoints)
- func (s *ServiceDetails) SetIstioSidecar(workloads WorkloadOverviews)
- func (s *ServiceDetails) SetPods(pods []core_v1.Pod)
- func (s *ServiceDetails) SetRegistryEndpoints(rEps []*kubernetes.RegistryEndpoint)
- func (s *ServiceDetails) SetService(svc *core_v1.Service)
- type ServiceHealth
- type ServiceList
- type ServiceOverview
- type Services
- type SeverityLevel
- type Stat
- type Target
- type TracingQuery
- type Workload
- func (w Workload) CastWorkloadStatus() *WorkloadStatus
- func (workload *Workload) HasIstioSidecar() bool
- func (workload *Workload) ParseCronJob(cnjb *batch_v1beta1.CronJob)
- func (workload *Workload) ParseDaemonSet(ds *apps_v1.DaemonSet)
- func (workload *Workload) ParseDeployment(d *apps_v1.Deployment)
- func (workload *Workload) ParseDeploymentConfig(dc *osapps_v1.DeploymentConfig)
- func (workload *Workload) ParseJob(job *batch_v1.Job)
- func (workload *Workload) ParsePod(pod *core_v1.Pod)
- func (workload *Workload) ParsePods(controllerName string, controllerType string, pods []core_v1.Pod)
- func (workload *Workload) ParseReplicaSet(r *apps_v1.ReplicaSet)
- func (workload *Workload) ParseReplicaSetParent(r *apps_v1.ReplicaSet, workloadName string, workloadType string)
- func (workload *Workload) ParseReplicationController(r *core_v1.ReplicationController)
- func (workload *Workload) ParseStatefulSet(s *apps_v1.StatefulSet)
- func (workload *Workload) SetPods(pods []core_v1.Pod)
- func (workload *Workload) SetServices(svcs *ServiceList)
- type WorkloadHealth
- type WorkloadItem
- type WorkloadList
- type WorkloadListItem
- type WorkloadOverviews
- type WorkloadStatus
- type Workloads
Constants ¶
This section is empty.
Variables ¶
var ObjectTypeSingular = map[string]string{
"gateways": "gateway",
"virtualservices": "virtualservice",
"destinationrules": "destinationrule",
"serviceentries": "serviceentry",
"rules": "rule",
"quotaspecs": "quotaspec",
"quotaspecbindings": "quotaspecbinding",
"policies": "policy",
"serviceroles": "servicerole",
"servicerolebindings": "servicerolebinding",
"clusterrbacconfigs": "clusterrbacconfig",
"authorizationpolicies": "authorizationpolicy",
"sidecars": "sidecar",
"peerauthentications": "peerauthentication",
"requestauthentications": "requestauthentication",
}
Functions ¶
func CheckMessage ¶ added in v0.14.0
func GetDashboardAnnotation ¶ added in v1.36.2
func GetHealthAnnotation ¶ added in v1.30.0
func GetHealthAnnotation(annotations map[string]string, filters []AnnotationKey) map[string]string
func HasDRCircuitBreaker ¶ added in v1.42.0
func HasDRCircuitBreaker(dr *networking_v1alpha3.DestinationRule, namespace, serviceName, version string) bool
func HasVSFaultInjection ¶ added in v1.42.0
func HasVSFaultInjection(vs *networking_v1alpha3.VirtualService) bool
HasFaultInjection determines if the spec has http fault injection set.
func HasVSMirroring ¶ added in v1.42.0
func HasVSMirroring(vs *networking_v1alpha3.VirtualService) bool
HasMirroring determines if the spec has a mirror set.
func HasVSRequestRouting ¶ added in v1.42.0
func HasVSRequestRouting(vs *networking_v1alpha3.VirtualService) bool
IsValidHost returns true if VirtualService hosts applies to the service
func HasVSRequestTimeout ¶ added in v1.42.0
func HasVSRequestTimeout(vs *networking_v1alpha3.VirtualService) bool
HasVSRequestTimeout determines if the spec has an http timeout set.
func HasVSTCPTrafficShifting ¶ added in v1.42.0
func HasVSTCPTrafficShifting(vs *networking_v1alpha3.VirtualService) bool
HasTCPTrafficShifting determines if the spec has tcp traffic shifting set. If there are routes with multiple destinations then it is assumed that the spec has traffic shifting regardless of weights.
func HasVSTrafficShifting ¶ added in v1.42.0
func HasVSTrafficShifting(vs *networking_v1alpha3.VirtualService) bool
HasTrafficShifting determines if the spec has http traffic shifting set. If there are routes with multiple destinations then it is assumed that the spec has traffic shifting regardless of weights.
func IsVSValidHost ¶ added in v1.42.0
func IsVSValidHost(vs *networking_v1alpha3.VirtualService, namespace string, serviceName string) bool
IsValidHost returns true if VirtualService hosts applies to the service
Types ¶
type AdditionalItem ¶ added in v1.10.0
type AdditionalItem struct { Title string `json:"title"` Value string `json:"value"` Icon string `json:"icon"` }
func GetAdditionalDetails ¶ added in v1.10.0
func GetAdditionalDetails(conf *config.Config, annotations map[string]string) []AdditionalItem
func GetFirstAdditionalIcon ¶ added in v1.15.0
func GetFirstAdditionalIcon(conf *config.Config, annotations map[string]string) *AdditionalItem
type Address ¶
type Address struct { Kind string `json:"kind"` Name string `json:"name"` IP string `json:"ip"` Port uint32 `json:"port"` }
func (*Address) Parse ¶
func (address *Address) Parse(a core_v1.EndpointAddress)
type Addresses ¶
type Addresses []Address
func (*Addresses) Parse ¶
func (addresses *Addresses) Parse(as []core_v1.EndpointAddress)
type Aggregation ¶ added in v0.12.0
type Aggregation = config.Aggregation
Aggregation is the model representing label's allowed aggregation, transformed from aggregation in MonitoringDashboard config resource
func ConvertAggregations ¶ added in v0.12.0
func ConvertAggregations(from dashboards.MonitoringDashboard) []Aggregation
ConvertAggregations converts a config aggregations (from MonitoringDashboard config resource) into this models aggregations Results are sorted by DisplayName
type AnnotationKey ¶ added in v1.30.0
type AnnotationKey string
Annotationkey is a mnemonic type name for string
const ( AllHealthAnnotation AnnotationKey = ".*" RateHealthAnnotation AnnotationKey = "health.kiali.io/rate" )
func GetHealthConfigAnnotation ¶ added in v1.30.0
func GetHealthConfigAnnotation() []AnnotationKey
type App ¶
type App struct { // Namespace where the app lives in // required: true // example: bookinfo Namespace Namespace `json:"namespace"` // Name of the application // required: true // example: reviews Name string `json:"name"` // Workloads for a given application // required: true Workloads []WorkloadItem `json:"workloads"` // List of service names linked with an application // required: true ServiceNames []string `json:"serviceNames"` // Runtimes and associated dashboards Runtimes []Runtime `json:"runtimes"` }
type AppHealth ¶
type AppHealth struct { WorkloadStatuses []*WorkloadStatus `json:"workloadStatuses"` Requests RequestHealth `json:"requests"` }
AppHealth contains aggregated health from various sources, for a given app
type AppList ¶
type AppList struct { // Namespace where the apps live in // required: true // example: bookinfo Namespace Namespace `json:"namespace"` // Applications for a given namespace // required: true Apps []AppListItem `json:"applications"` }
type AppListItem ¶
type AppListItem struct { // Name of the application // required: true // example: reviews Name string `json:"name"` // Define if all Pods related to the Workloads of this app has an IstioSidecar deployed // required: true // example: true IstioSidecar bool `json:"istioSidecar"` // Labels for App Labels map[string]string `json:"labels"` // Istio References IstioReferences []*IstioValidationKey `json:"istioReferences"` }
AppListItem has the necessary information to display the console app list
type Bootstrap ¶ added in v1.28.0
type Bootstrap struct {
Bootstrap map[string]interface{} `json:"bootstrap,inline"`
}
func (*Bootstrap) Parse ¶ added in v1.28.0
func (bd *Bootstrap) Parse(dump *kubernetes.ConfigDump) error
type CertInfo ¶ added in v1.40.0
type CertInfo struct { SecretName string `json:"secretName"` SecretNamespace string `json:"secretNamespace"` DNSNames []string `json:"dnsNames"` Issuer string `json:"issuer"` NotBefore time.Time `json:"notBefore"` NotAfter time.Time `json:"notAfter"` Error string `json:"error"` Accessible bool `json:"accessible"` }
CertInfo contains the information for a given certificate
type Chart ¶ added in v0.12.0
type Chart struct { Name string `json:"name"` Unit string `json:"unit"` Spans int `json:"spans"` StartCollapsed bool `json:"startCollapsed"` ChartType *string `json:"chartType,omitempty"` Min *int `json:"min,omitempty"` Max *int `json:"max,omitempty"` Metrics []Metric `json:"metrics"` XAxis *string `json:"xAxis"` Error string `json:"error"` }
Chart is the model representing a custom chart, transformed from charts in MonitoringDashboard config resource
func ConvertChart ¶ added in v0.12.0
func ConvertChart(from dashboards.MonitoringDashboardChart) Chart
ConvertChart converts a config chart (from MonitoringDashboard config resource) into this models chart
type Cluster ¶ added in v1.28.0
type Cluster struct { ServiceFQDN kubernetes.Host `json:"service_fqdn"` Port int `json:"port"` Subset string `json:"subset"` Direction string `json:"direction"` Type string `json:"type"` DestinationRule string `json:"destination_rule"` }
func (*Cluster) Parse ¶ added in v1.28.0
func (cs *Cluster) Parse(cluster kubernetes.EnvoyCluster)
type Clusters ¶ added in v1.28.0
type Clusters []*Cluster
func (*Clusters) Parse ¶ added in v1.28.0
func (css *Clusters) Parse(dump *kubernetes.ConfigDump) error
type ContainerInfo ¶
type ContainerInfo struct { Name string `json:"name"` Image string `json:"image"` IsProxy bool `json:"isProxy"` IsReady bool `json:"isReady"` }
ContainerInfo holds container name and image
type ConversionParams ¶ added in v1.27.0
type CustomMetricsQuery ¶ added in v1.27.0
type CustomMetricsQuery struct { prometheus.RangeQuery Namespace string App string Version string RawDataAggregator string }
CustomMetricsQuery holds query parameters for a custom metrics query
func (*CustomMetricsQuery) FillDefaults ¶ added in v1.27.0
func (q *CustomMetricsQuery) FillDefaults()
FillDefaults fills the struct with default parameters
type DashboardQuery ¶ added in v1.27.0
type DashboardQuery struct { prometheus.RangeQuery Namespace string LabelsFilters map[string]string AdditionalLabels []Aggregation RawDataAggregator string Workload string WorkloadType string }
DashboardQuery holds query parameters for a dashboard query
func (*DashboardQuery) FillDefaults ¶ added in v1.27.0
func (q *DashboardQuery) FillDefaults()
FillDefaults fills the struct with default parameters
type DashboardRef ¶ added in v0.12.0
DashboardRef holds template name and title for a custom dashboard
type Datapoint ¶ added in v1.27.0
func (Datapoint) MarshalJSON ¶ added in v1.27.0
MarshalJSON implements json.Marshaler.
type EnvoyProxyDump ¶ added in v1.28.0
type EnvoyProxyDump struct { ConfigDump *kubernetes.ConfigDump `json:"config_dump,omitempty"` Bootstrap *Bootstrap `json:"bootstrap,omitempty"` Clusters *Clusters `json:"clusters,omitempty"` Listeners *Listeners `json:"listeners,omitempty"` Routes *Routes `json:"routes,omitempty"` }
type ExternalLink ¶ added in v1.27.0
type ExternalLink struct { URL string `json:"url"` Name string `json:"name"` Variables dashboards.MonitoringDashboardExternalLinkVariables `json:"variables"` }
ExternalLink provides links to external dashboards (e.g. to Grafana)
type GrafanaInfo ¶
type GrafanaInfo struct {
ExternalLinks []ExternalLink `json:"externalLinks"`
}
GrafanaInfo provides information to access Grafana dashboards
type IstioCheck ¶
type IstioCheck struct { // The check code used to identify a check // required: true // example: KIA0001 Code string `json:"code"` // Description of the check // required: true // example: Weight sum should be 100 Message string `json:"message"` // Indicates the level of importance: error or warning // required: true // example: error Severity SeverityLevel `json:"severity"` // String that describes where in the yaml file is the check located // example: spec/http[0]/route Path string `json:"path"` }
IstioCheck represents an individual check. swagger:model
func Build ¶ added in v0.14.0
func Build(checkId string, path string) IstioCheck
func (IstioCheck) GetFullMessage ¶ added in v1.38.1
func (ic IstioCheck) GetFullMessage() string
type IstioConfigDetails ¶
type IstioConfigDetails struct { Namespace Namespace `json:"namespace"` ObjectType string `json:"objectType"` DestinationRule *networking_v1alpha3.DestinationRule `json:"destinationRule"` EnvoyFilter *networking_v1alpha3.EnvoyFilter `json:"envoyFilter"` Gateway *networking_v1alpha3.Gateway `json:"gateway"` ServiceEntry *networking_v1alpha3.ServiceEntry `json:"serviceEntry"` Sidecar *networking_v1alpha3.Sidecar `json:"sidecar"` VirtualService *networking_v1alpha3.VirtualService `json:"virtualService"` WorkloadEntry *networking_v1alpha3.WorkloadEntry `json:"workloadEntry"` WorkloadGroup *networking_v1alpha3.WorkloadGroup `json:"workloadGroup"` AuthorizationPolicy *security_v1beta.AuthorizationPolicy `json:"authorizationPolicy"` PeerAuthentication *security_v1beta.PeerAuthentication `json:"peerAuthentication"` RequestAuthentication *security_v1beta.RequestAuthentication `json:"requestAuthentication"` Permissions ResourcePermissions `json:"permissions"` IstioValidation *IstioValidation `json:"validation"` }
type IstioConfigList ¶
type IstioConfigList struct { // The namespace of istioConfiglist // // required: true Namespace Namespace `json:"namespace"` DestinationRules []networking_v1alpha3.DestinationRule `json:"destinationRules"` EnvoyFilters []networking_v1alpha3.EnvoyFilter `json:"envoyFilters"` Gateways []networking_v1alpha3.Gateway `json:"gateways"` ServiceEntries []networking_v1alpha3.ServiceEntry `json:"serviceEntries"` Sidecars []networking_v1alpha3.Sidecar `json:"sidecars"` VirtualServices []networking_v1alpha3.VirtualService `json:"virtualServices"` WorkloadEntries []networking_v1alpha3.WorkloadEntry `json:"workloadEntries"` WorkloadGroups []networking_v1alpha3.WorkloadGroup `json:"workloadGroups"` AuthorizationPolicies []security_v1beta.AuthorizationPolicy `json:"authorizationPolicies"` PeerAuthentications []security_v1beta.PeerAuthentication `json:"peerAuthentications"` RequestAuthentications []security_v1beta.RequestAuthentication `json:"requestAuthentications"` IstioValidations IstioValidations `json:"validations"` }
IstioConfigList istioConfigList
This type is used for returning a response of IstioConfigList ¶
swagger:model IstioConfigList
type IstioConfigPermissions ¶ added in v1.13.0
type IstioConfigPermissions map[string]*ResourcesPermissions
IstioConfigPermissions holds a map of ResourcesPermissions per namespace
type IstioMetricsQuery ¶ added in v1.27.0
type IstioMetricsQuery struct { prometheus.RangeQuery Filters []string Namespace string App string Workload string Service string Direction string // outbound | inbound RequestProtocol string // e.g. http | grpc Reporter string // source | destination, defaults to source if not provided Aggregate string AggregateValue string }
IstioMetricsQuery holds query parameters for a typical metrics query
func (*IstioMetricsQuery) FillDefaults ¶ added in v1.27.0
func (q *IstioMetricsQuery) FillDefaults()
FillDefaults fills the struct with default parameters
type IstioValidation ¶
type IstioValidation struct { // Name of the object itself // required: true // example: reviews Name string `json:"name"` // Type of the object // required: true // example: virtualservice ObjectType string `json:"objectType"` // Represents validity of the object: in case of warning, validity remains as true // required: true // example: false Valid bool `json:"valid"` // Array of checks. It might be empty. Checks []*IstioCheck `json:"checks"` // Related objects (only validation errors) References []IstioValidationKey `json:"references"` }
IstioValidation represents a list of checks associated to an Istio object. swagger:model
type IstioValidationKey ¶
type IstioValidationKey struct { ObjectType string `json:"objectType"` Name string `json:"name"` Namespace string `json:"namespace"` }
IstioValidationKey is the key value composed of an Istio ObjectType and Name.
func BuildKey ¶ added in v0.15.0
func BuildKey(objectType, name, namespace string) IstioValidationKey
type IstioValidationSummary ¶ added in v1.10.0
type IstioValidationSummary struct { // Number of validations with error severity // required: true // example: 2 Errors int `json:"errors"` // Number of Istio Objects analyzed // required: true // example: 6 ObjectCount int `json:"objectCount"` // Number of validations with warning severity // required: true // example: 4 Warnings int `json:"warnings"` }
IstioValidationSummary represents the number of errors/warnings of a set of Istio Validations.
type IstioValidations ¶
type IstioValidations map[IstioValidationKey]*IstioValidation
IstioValidations represents a set of IstioValidation grouped by IstioValidationKey.
func (IstioValidations) FilterByKey ¶
func (iv IstioValidations) FilterByKey(objectType, name string) IstioValidations
func (IstioValidations) FilterBySingleType ¶ added in v0.20.0
func (iv IstioValidations) FilterBySingleType(objectType, name string) IstioValidations
func (IstioValidations) FilterByTypes ¶ added in v0.14.0
func (iv IstioValidations) FilterByTypes(objectTypes []string) IstioValidations
FilterByTypes takes an input as ObjectTypes, transforms to singular types and filters the validations
func (IstioValidations) MarshalJSON ¶
func (iv IstioValidations) MarshalJSON() ([]byte, error)
MarshalJSON implements the json.Marshaler interface.
func (IstioValidations) MergeReferences ¶ added in v1.7.0
func (iv IstioValidations) MergeReferences(validations IstioValidations) IstioValidations
func (IstioValidations) MergeValidations ¶
func (iv IstioValidations) MergeValidations(validations IstioValidations) IstioValidations
func (*IstioValidations) StripIgnoredChecks ¶ added in v1.38.1
func (iv *IstioValidations) StripIgnoredChecks()
func (IstioValidations) SummarizeValidation ¶ added in v1.10.0
func (iv IstioValidations) SummarizeValidation(ns string) IstioValidationSummary
type JaegerInfo ¶
type Listeners ¶ added in v1.28.0
type Listeners []*Listener
func (*Listeners) Parse ¶ added in v1.28.0
func (ls *Listeners) Parse(dump *kubernetes.ConfigDump) error
type MTLSStatus ¶ added in v0.16.0
type MTLSStatus struct { // mTLS status: MTLS_ENABLED, MTLS_PARTIALLY_ENABLED, MTLS_NOT_ENABLED // required: true // example: MTLS_ENABLED Status string `json:"status"` }
MTLSStatus describes the current mTLS status of a mesh entity
type Metric ¶ added in v1.27.0
type Metric struct { Labels map[string]string `json:"labels"` Datapoints []Datapoint `json:"datapoints"` Stat string `json:"stat,omitempty"` Name string `json:"name"` }
func ConvertHistogram ¶ added in v1.1.0
func ConvertHistogram(name string, from prometheus.Histogram, conversionParams ConversionParams) ([]Metric, error)
func ConvertMetric ¶ added in v1.27.0
func ConvertMetric(name string, from prometheus.Metric, conversionParams ConversionParams) ([]Metric, error)
type MetricsMap ¶ added in v1.27.0
MetricsMap contains all simple metrics and histograms data for standard timeseries queries
type MetricsStats ¶ added in v1.27.0
type MetricsStats struct {
ResponseTimes []Stat `json:"responseTimes"`
}
MetricsStats contains opinionated statistics on metrics on a single target. Currently limited to response times (avg/percentiles over interval)
type MetricsStatsQueries ¶ added in v1.27.0
type MetricsStatsQueries struct {
Queries []MetricsStatsQuery
}
type MetricsStatsQuery ¶ added in v1.27.0
type MetricsStatsQuery struct { Target Target PeerTarget *Target RawQueryTime int64 `json:"queryTime"` QueryTime time.Time `json:"-"` RawInterval string `json:"interval"` Interval string `json:"-"` Direction string // outbound | inbound Avg bool Quantiles []string }
func (*MetricsStatsQuery) GenKey ¶ added in v1.27.0
func (q *MetricsStatsQuery) GenKey() string
GenKey !! HAS to mirror frontend's genStatsKey in SpanTable.tsx
func (*MetricsStatsQuery) Validate ¶ added in v1.27.0
func (q *MetricsStatsQuery) Validate() *util.Errors
type MetricsStatsResult ¶ added in v1.27.0
type MetricsStatsResult struct { Stats map[string]MetricsStats `json:"stats"` // Key is built from query params, see "GenKey" above. The same key needs to be generated client-side for matching. Warnings []string `json:"warnings"` }
MetricsStatsResult holds the MetricsStats per target, plus errors
type MonitoringDashboard ¶ added in v0.12.0
type MonitoringDashboard struct { Name string `json:"name"` Title string `json:"title"` Charts []Chart `json:"charts"` Aggregations []Aggregation `json:"aggregations"` ExternalLinks []ExternalLink `json:"externalLinks"` Rows int `json:"rows"` }
MonitoringDashboard is the model representing custom monitoring dashboard, transformed from MonitoringDashboard config resource
func PrepareIstioDashboard ¶ added in v0.12.0
func PrepareIstioDashboard(direction string) MonitoringDashboard
PrepareIstioDashboard prepares the Istio dashboard title and aggregations dynamically for input values
type Namespace ¶
type Namespace struct { // The id of the namespace. // // example: istio-system // required: true Name string `json:"name"` // Creation date of the namespace. // There is no need to export this through the API. So, this is // set to be ignored by JSON package. // // required: true CreationTimestamp time.Time `json:"-"` // Labels for Namespace Labels map[string]string `json:"labels"` // Specific annotations used in Kiali Annotations map[string]string `json:"annotations"` }
A Namespace provide a scope for names This type is used to describe a set of objects.
swagger:model namespace
func CastNamespace ¶
func CastNamespaceCollection ¶
func CastProject ¶
func CastProject(p osproject_v1.Project) Namespace
func CastProjectCollection ¶
func CastProjectCollection(ps []osproject_v1.Project) []Namespace
type NamespaceAppHealth ¶
NamespaceAppHealth is an alias of map of app name x health
type NamespaceNames ¶ added in v1.14.0
type NamespaceNames []string
func (NamespaceNames) Includes ¶ added in v1.14.0
func (nsn NamespaceNames) Includes(namespace string) bool
func (NamespaceNames) IsSubsetOf ¶ added in v1.14.0
func (a NamespaceNames) IsSubsetOf(b NamespaceNames) bool
type NamespaceServiceHealth ¶
type NamespaceServiceHealth map[string]*ServiceHealth
NamespaceServiceHealth is an alias of map of service name x health
type NamespaceValidations ¶
type NamespaceValidations map[string]IstioValidations
NamespaceValidations represents a set of IstioValidations grouped by namespace
type NamespaceWorkloadHealth ¶
type NamespaceWorkloadHealth map[string]*WorkloadHealth
NamespaceWorkloadHealth is an alias of map of workload name x health
type Namespaces ¶ added in v1.12.0
type Namespaces []Namespace
func (Namespaces) GetNames ¶ added in v1.12.0
func (nss Namespaces) GetNames() []string
func (Namespaces) Includes ¶ added in v1.12.0
func (nss Namespaces) Includes(namespace string) bool
type Pod ¶
type Pod struct { Name string `json:"name"` Labels map[string]string `json:"labels"` CreatedAt string `json:"createdAt"` CreatedBy []Reference `json:"createdBy"` Containers []*ContainerInfo `json:"containers"` IstioContainers []*ContainerInfo `json:"istioContainers"` IstioInitContainers []*ContainerInfo `json:"istioInitContainers"` Status string `json:"status"` StatusMessage string `json:"statusMessage"` StatusReason string `json:"statusReason"` AppLabel bool `json:"appLabel"` VersionLabel bool `json:"versionLabel"` Annotations map[string]string `json:"annotations"` ProxyStatus *ProxyStatus `json:"proxyStatus"` ServiceAccountName string `json:"serviceAccountName"` }
Pod holds a subset of v1.Pod data that is meaningful in Kiali
func (Pod) HasIstioSidecar ¶ added in v0.20.0
HasIstioSidecar returns true if the pod has an Istio proxy sidecar
type Pods ¶
type Pods []*Pod
Pods alias for list of Pod structs
func (Pods) HasAnyIstioSidecar ¶ added in v1.36.0
HasAnyIstioSidecar returns true if there are pods and any of pods have a sidecar
func (Pods) HasIstioSidecar ¶ added in v0.20.0
HasIstioSidecar returns true if there are no pods or all pods have a sidecar
func (Pods) ServiceAccounts ¶ added in v1.43.0
ServiceAccounts returns the names of each service account of the pod list
func (Pods) SyncedPodProxiesCount ¶ added in v1.25.0
SyncedPodsCount returns the number of Pods with its proxy synced If none of the pods have Istio Sidecar, then return -1
type Port ¶
type Port struct { Name string `json:"name"` Protocol string `json:"protocol"` AppProtocol *string `json:"appProtocol,omitempty"` IstioProtocol string `json:"istioProtocol"` Port int32 `json:"port"` // TLSMode endpoint is injected with istio sidecar and ready to configure Istio mTLS // DisabledTLSModeLabel implies that this endpoint should receive traffic as is (mostly plaintext) // DisabledTLSModeLabel = "disabled" // IstioMutualTLSModeLabel implies that the endpoint is ready to receive Istio mTLS connections. // IstioMutualTLSModeLabel = "istio" TLSMode string `json:"tlsMode"` }
func (*Port) Parse ¶
func (port *Port) Parse(p core_v1.ServicePort)
func (*Port) ParseEndpointPort ¶
func (port *Port) ParseEndpointPort(p core_v1.EndpointPort)
type Ports ¶
type Ports []Port
func (*Ports) Parse ¶
func (ports *Ports) Parse(ps []core_v1.ServicePort)
func (*Ports) ParseEndpointPorts ¶
func (ports *Ports) ParseEndpointPorts(ps []core_v1.EndpointPort)
func (*Ports) ParseServiceRegistryPorts ¶ added in v1.44.0
func (ports *Ports) ParseServiceRegistryPorts(rs *kubernetes.RegistryService)
type ProxyStatus ¶ added in v1.25.0
type ProxyStatus struct { CDS string `json:"CDS"` EDS string `json:"EDS"` LDS string `json:"LDS"` RDS string `json:"RDS"` }
ProxyStatus gives the sync status of the sidecar proxy. In healthy scenarios all variables should be true. If at least one variable is false, then the proxy isn't fully sync'ed with pilot.
func (ProxyStatus) IsSynced ¶ added in v1.25.0
func (ps ProxyStatus) IsSynced() bool
IsSynced returns true when all the components are with SYNCED status
type RequestHealth ¶
type RequestHealth struct { Inbound map[string]map[string]float64 `json:"inbound"` Outbound map[string]map[string]float64 `json:"outbound"` HealthAnnotations map[string]string `json:"healthAnnotations"` // contains filtered or unexported fields }
RequestHealth holds several stats about recent request errors
- Inbound//Outbound are the rates of requests by protocol and status_code. Example: Inbound: { "http": {"200": 1.5, "400": 2.3}, "grpc": {"1": 1.2} }
func NewEmptyRequestHealth ¶ added in v0.11.0
func NewEmptyRequestHealth() RequestHealth
func (*RequestHealth) AggregateInbound ¶ added in v0.11.0
func (in *RequestHealth) AggregateInbound(sample *model.Sample)
AggregateInbound adds the provided metric sample to internal inbound counters and updates error ratios
func (*RequestHealth) AggregateOutbound ¶ added in v0.11.0
func (in *RequestHealth) AggregateOutbound(sample *model.Sample)
AggregateOutbound adds the provided metric sample to internal outbound counters and updates error ratios
func (*RequestHealth) CombineReporters ¶ added in v1.29.1
func (in *RequestHealth) CombineReporters()
RequestHealth internally stores Inbound rate separated by reporter There were duplicated values that should exist in both reports but there may exist values that only are present in one or another reporter, those should be consolidated into a single result
type ResourcePermissions ¶ added in v0.9.1
type ResourcePermissions struct { Create bool `json:"create"` Update bool `json:"update"` Delete bool `json:"delete"` }
ResourcePermissions holds permission flags for an object type True means allowed.
type ResourcesPermissions ¶ added in v1.13.0
type ResourcesPermissions map[string]*ResourcePermissions
ResourcesPermissions holds a map of permission flags per resource
type Route ¶ added in v1.28.0
type Route struct { Name string `json:"name"` Domains kubernetes.Host `json:"domains"` Match string `json:"match"` VirtualService string `json:"virtual_service"` }
type Routes ¶ added in v1.28.0
type Routes []*Route
func (*Routes) Parse ¶ added in v1.28.0
func (rs *Routes) Parse(dump *kubernetes.ConfigDump, namespaces []string) error
type Runtime ¶ added in v0.14.0
type Runtime struct { Name string `json:"name"` DashboardRefs []DashboardRef `json:"dashboardRefs"` }
Runtime holds the runtime title and associated dashboard template(s)
type Service ¶
type Service struct { Name string `json:"name"` CreatedAt string `json:"createdAt"` ResourceVersion string `json:"resourceVersion"` Namespace Namespace `json:"namespace"` Labels map[string]string `json:"labels"` Selectors map[string]string `json:"selectors"` Type string `json:"type"` Ip string `json:"ip"` Ports Ports `json:"ports"` ExternalName string `json:"externalName"` HealthAnnotations map[string]string `json:"healthAnnotations"` AdditionalDetails []AdditionalItem `json:"additionalDetails"` }
func (*Service) ParseRegistryService ¶ added in v1.44.0
func (s *Service) ParseRegistryService(service *kubernetes.RegistryService)
type ServiceDefinitionList ¶ added in v1.5.0
type ServiceDefinitionList struct { Namespace Namespace `json:"namespace"` ServiceDefinitions []ServiceDetails `json:"serviceDefinitions"` }
type ServiceDetails ¶
type ServiceDetails struct { Service Service `json:"service"` IstioSidecar bool `json:"istioSidecar"` Endpoints Endpoints `json:"endpoints"` VirtualServices []networking_v1alpha3.VirtualService `json:"virtualServices"` DestinationRules []networking_v1alpha3.DestinationRule `json:"destinationRules"` ServiceEntries []networking_v1alpha3.ServiceEntry `json:"serviceEntries"` IstioPermissions ResourcePermissions `json:"istioPermissions"` Workloads WorkloadOverviews `json:"workloads"` Health ServiceHealth `json:"health"` Validations IstioValidations `json:"validations"` NamespaceMTLS MTLSStatus `json:"namespaceMTLS"` }
func (*ServiceDetails) SetEndpoints ¶
func (s *ServiceDetails) SetEndpoints(eps *core_v1.Endpoints)
func (*ServiceDetails) SetIstioSidecar ¶ added in v1.36.0
func (s *ServiceDetails) SetIstioSidecar(workloads WorkloadOverviews)
func (*ServiceDetails) SetPods ¶
func (s *ServiceDetails) SetPods(pods []core_v1.Pod)
func (*ServiceDetails) SetRegistryEndpoints ¶ added in v1.44.0
func (s *ServiceDetails) SetRegistryEndpoints(rEps []*kubernetes.RegistryEndpoint)
func (*ServiceDetails) SetService ¶
func (s *ServiceDetails) SetService(svc *core_v1.Service)
type ServiceHealth ¶
type ServiceHealth struct {
Requests RequestHealth `json:"requests"`
}
ServiceHealth contains aggregated health from various sources, for a given service
func EmptyServiceHealth ¶ added in v0.11.0
func EmptyServiceHealth() ServiceHealth
EmptyServiceHealth create an empty ServiceHealth
type ServiceList ¶
type ServiceList struct { Namespace Namespace `json:"namespace"` Services []ServiceOverview `json:"services"` Validations IstioValidations `json:"validations"` }
func (*ServiceList) FilterServicesForSelector ¶ added in v1.43.0
func (s *ServiceList) FilterServicesForSelector(selector labels.Selector) []ServiceOverview
func (*ServiceList) GetServiceNames ¶ added in v1.43.0
func (s *ServiceList) GetServiceNames() []string
func (*ServiceList) HasMatchingServices ¶ added in v1.43.0
func (s *ServiceList) HasMatchingServices(service string) bool
type ServiceOverview ¶
type ServiceOverview struct { // Name of the Service // required: true // example: reviews-v1 Name string `json:"name"` // Namespace of the Service Namespace string `json:"namespace"` // Define if Pods related to this Service has an IstioSidecar deployed // required: true // example: true IstioSidecar bool `json:"istioSidecar"` // Has label app // required: true // example: true AppLabel bool `json:"appLabel"` // Additional detail sample, such as type of api being served (graphql, grpc, rest) // example: rest // required: false AdditionalDetailSample *AdditionalItem `json:"additionalDetailSample"` // Annotations of the service HealthAnnotations map[string]string `json:"healthAnnotations"` // Labels for Service Labels map[string]string `json:"labels"` // Selector for Service Selector map[string]string `json:"selector"` // Istio References IstioReferences []*IstioValidationKey `json:"istioReferences"` // Kiali Wizard scenario, if any KialiWizard string `json:"kialiWizard"` // ServiceRegistry values: // Kubernetes: is a service registry backed by k8s API server // External: is a service registry for externally provided ServiceEntries // Federation: special case when registry is provided from a federated environment ServiceRegistry string `json:"serviceRegistry"` }
type SeverityLevel ¶ added in v0.14.0
type SeverityLevel string
const ( ErrorSeverity SeverityLevel = "error" WarningSeverity SeverityLevel = "warning" Unknown SeverityLevel = "unknown" )
type TracingQuery ¶ added in v1.19.0
type Workload ¶
type Workload struct { WorkloadListItem // Number of desired replicas defined by the user in the controller Spec // required: true // example: 2 DesiredReplicas int32 `json:"desiredReplicas"` // Number of current replicas pods that matches controller selector labels // required: true // example: 2 CurrentReplicas int32 `json:"currentReplicas"` // Number of available replicas // required: true // example: 1 AvailableReplicas int32 `json:"availableReplicas"` // Pods bound to the workload Pods Pods `json:"pods"` // Services that match workload selector Services []ServiceOverview `json:"services"` // Runtimes and associated dashboards Runtimes []Runtime `json:"runtimes"` // Additional details to display, such as configured annotations AdditionalDetails []AdditionalItem `json:"additionalDetails"` }
Workload has the details of a workload
func (Workload) CastWorkloadStatus ¶ added in v1.25.0
func (w Workload) CastWorkloadStatus() *WorkloadStatus
CastWorkloadStatus returns a WorkloadStatus out of a given Workload
func (*Workload) HasIstioSidecar ¶ added in v0.20.0
HasIstioSidecar return true if there is at least one pod and all pods have sidecars
func (*Workload) ParseCronJob ¶
func (workload *Workload) ParseCronJob(cnjb *batch_v1beta1.CronJob)
func (*Workload) ParseDaemonSet ¶ added in v1.33.0
func (*Workload) ParseDeployment ¶
func (workload *Workload) ParseDeployment(d *apps_v1.Deployment)
func (*Workload) ParseDeploymentConfig ¶
func (workload *Workload) ParseDeploymentConfig(dc *osapps_v1.DeploymentConfig)
func (*Workload) ParseReplicaSet ¶
func (workload *Workload) ParseReplicaSet(r *apps_v1.ReplicaSet)
func (*Workload) ParseReplicaSetParent ¶ added in v1.29.0
func (workload *Workload) ParseReplicaSetParent(r *apps_v1.ReplicaSet, workloadName string, workloadType string)
func (*Workload) ParseReplicationController ¶
func (workload *Workload) ParseReplicationController(r *core_v1.ReplicationController)
func (*Workload) ParseStatefulSet ¶
func (workload *Workload) ParseStatefulSet(s *apps_v1.StatefulSet)
func (*Workload) SetServices ¶
func (workload *Workload) SetServices(svcs *ServiceList)
type WorkloadHealth ¶
type WorkloadHealth struct { WorkloadStatus *WorkloadStatus `json:"workloadStatus"` Requests RequestHealth `json:"requests"` }
WorkloadHealth contains aggregated health from various sources, for a given workload
func EmptyWorkloadHealth ¶ added in v1.24.0
func EmptyWorkloadHealth() *WorkloadHealth
EmptyWorkloadHealth create an empty WorkloadHealth
type WorkloadItem ¶
type WorkloadItem struct { // Name of a workload member of an application // required: true // example: reviews-v1 WorkloadName string `json:"workloadName"` // Define if all Pods related to the Workload has an IstioSidecar deployed // required: true // example: true IstioSidecar bool `json:"istioSidecar"` // List of service accounts involved in this application // required: true ServiceAccountNames []string `json:"serviceAccountNames"` }
type WorkloadList ¶
type WorkloadList struct { // Namespace where the workloads live in // required: true // example: bookinfo Namespace Namespace `json:"namespace"` // Workloads for a given namespace // required: true Workloads []WorkloadListItem `json:"workloads"` }
func (WorkloadList) GetLabels ¶ added in v1.16.0
func (wl WorkloadList) GetLabels() []labels.Set
type WorkloadListItem ¶
type WorkloadListItem struct { // Name of the workload // required: true // example: reviews-v1 Name string `json:"name"` // Type of the workload // required: true // example: deployment Type string `json:"type"` // Creation timestamp (in RFC3339 format) // required: true // example: 2018-07-31T12:24:17Z CreatedAt string `json:"createdAt"` // Kubernetes ResourceVersion // required: true // example: 192892127 ResourceVersion string `json:"resourceVersion"` // Define if Workload has an explicit Istio policy annotation // Istio supports this as a label as well - this will be defined if the label is set, too. // If both annotation and label are set, if any is false, injection is disabled. // It's mapped as a pointer to show three values nil, true, false IstioInjectionAnnotation *bool `json:"istioInjectionAnnotation,omitempty"` // Define if Pods related to this Workload has an IstioSidecar deployed // required: true // example: true IstioSidecar bool `json:"istioSidecar"` // Additional item sample, such as type of api being served (graphql, grpc, rest) // example: rest // required: false AdditionalDetailSample *AdditionalItem `json:"additionalDetailSample"` // Workload labels Labels map[string]string `json:"labels"` // Define if Pods related to this Workload has the label App // required: true // example: true AppLabel bool `json:"appLabel"` // Define if Pods related to this Workload has the label Version // required: true // example: true VersionLabel bool `json:"versionLabel"` // Number of current workload pods // required: true // example: 1 PodCount int `json:"podCount"` // HealthAnnotations // required: false HealthAnnotations map[string]string `json:"healthAnnotations"` // Istio References IstioReferences []*IstioValidationKey `json:"istioReferences"` // Dashboard annotations // required: false DashboardAnnotations map[string]string `json:"dashboardAnnotations"` // Names of the workload service accounts ServiceAccountNames []string `json:"serviceAccountNames"` }
WorkloadListItem has the necessary information to display the console workload list
func (*WorkloadListItem) ParseWorkload ¶
func (workload *WorkloadListItem) ParseWorkload(w *Workload)
type WorkloadOverviews ¶
type WorkloadOverviews []*WorkloadListItem
func (WorkloadOverviews) HasIstioSidecar ¶ added in v1.36.0
func (workloads WorkloadOverviews) HasIstioSidecar() bool
HasIstioSidecar returns true if there is at least one workload which has a sidecar
type WorkloadStatus ¶
type WorkloadStatus struct { Name string `json:"name"` DesiredReplicas int32 `json:"desiredReplicas"` CurrentReplicas int32 `json:"currentReplicas"` AvailableReplicas int32 `json:"availableReplicas"` SyncedProxies int32 `json:"syncedProxies"` }
WorkloadStatus gives - number of desired replicas defined in the Spec of a controller - number of current replicas that matches selector of a controller - number of available replicas for a given workload In healthy scenarios all variables should point same value. When something wrong happens the different values can indicate an unhealthy situation. i.e.
desired = 1, current = 10, available = 0 would means that a user scaled down a workload from 10 to 1 but in the operaton 10 pods showed problems, so no pod is available/ready but user will see 10 pods under a workload
type Workloads ¶
type Workloads []*Workload
func (Workloads) CastWorkloadStatuses ¶ added in v1.25.0
func (ws Workloads) CastWorkloadStatuses() []*WorkloadStatus
CastWorkloadStatuses returns a WorkloadStatus array out of a given set of Workloads
Source Files ¶
- additional_item.go
- address.go
- app.go
- cert_info.go
- config_dump.go
- dashboards.go
- destination_rule.go
- endpoint.go
- grafana_info.go
- health.go
- health_config.go
- istio_config.go
- istio_validation.go
- metrics.go
- mtls_status.go
- namespace.go
- pod.go
- port.go
- service.go
- tracing.go
- util.go
- virtual_service.go
- workload.go