map[istio:[{Name:istio/templates/htpasswd-secret.yaml Content:apiVersion: v1 data: auth: "" rawPassword: "" kind: Secret metadata: name: htpasswd namespace: istio-system labels: app: istio chart: istio heritage: Tiller maistra-version: 1.0.0 release: istio type: Opaque } {Name:istio/templates/configmap.yaml Content: apiVersion: v1 kind: ConfigMap metadata: name: istio namespace: istio-system labels: app: istio chart: istio heritage: Tiller maistra-version: 1.0.0 release: istio data: mesh: |- # Set the following variable to true to disable policy checks by the Mixer. # Note that metrics will still be reported to the Mixer. disablePolicyChecks: true # Set enableTracing to false to disable request tracing. enableTracing: true # Set accessLogFile to empty string to disable access log. accessLogFile: "" # If accessLogEncoding is TEXT, value will be used directly as the log format # example: "[%START_TIME%] %REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%\n" # If AccessLogEncoding is JSON, value will be parsed as map[string]string # example: '{"start_time": "%START_TIME%", "req_method": "%REQ(:METHOD)%"}' # Leave empty to use default log format accessLogFormat: "" # Set accessLogEncoding to JSON or TEXT to configure sidecar access log accessLogEncoding: 'TEXT' mixerCheckServer: istio-policy.istio-system.svc.cluster.local:9091 mixerReportServer: istio-telemetry.istio-system.svc.cluster.local:9091 # policyCheckFailOpen allows traffic in cases when the mixer policy service cannot be reached. # Default is false which means the traffic is denied when the client is unable to connect to Mixer. policyCheckFailOpen: false # Let Pilot give ingresses the public IP of the Istio ingressgateway ingressService: istio-ingressgateway # Default connect timeout for dynamic clusters generated by Pilot and returned via XDS connectTimeout: 10s # DNS refresh rate for Envoy clusters of type STRICT_DNS dnsRefreshRate: 300s # Unix Domain Socket through which envoy communicates with NodeAgent SDS to get # key/cert for mTLS. Use secret-mount files instead of SDS if set to empty. sdsUdsPath: # This flag is used by secret discovery service(SDS). # If set to true(prerequisite: https://kubernetes.io/docs/concepts/storage/volumes/#projected), Istio will inject volumes mount # for k8s service account JWT, so that K8s API server mounts k8s service account JWT to envoy container, which # will be used to generate key/cert eventually. This isn't supported for non-k8s case. enableSdsTokenMount: false # This flag is used by secret discovery service(SDS). # If set to true, envoy will fetch normal k8s service account JWT from '/var/run/secrets/kubernetes.io/serviceaccount/token' # (https://kubernetes.io/docs/tasks/access-application-cluster/access-cluster/#accessing-the-api-from-a-pod) # and pass to sds server, which will be used to request key/cert eventually. # this flag is ignored if enableSdsTokenMount is set. # This isn't supported for non-k8s case. sdsUseK8sSaJwt: false # The trust domain corresponds to the trust root of a system. # Refer to https://github.com/spiffe/spiffe/blob/master/standards/SPIFFE-ID.md#21-trust-domain trustDomain: # Set the default behavior of the sidecar for handling outbound traffic from the application: # ALLOW_ANY - outbound traffic to unknown destinations will be allowed, in case there are no # services or ServiceEntries for the destination port # REGISTRY_ONLY - restrict outbound traffic to services defined in the service registry as well # as those defined through ServiceEntries outboundTrafficPolicy: mode: ALLOW_ANY localityLbSetting: {} # The namespace to treat as the administrative root namespace for istio # configuration. rootNamespace: istio-system configSources: - address: istio-galley.istio-system.svc:9901 defaultConfig: # # TCP connection timeout between Envoy & the application, and between Envoys. Used for static clusters # defined in Envoy's configuration file connectTimeout: 10s # ### ADVANCED SETTINGS ############# # Where should envoy's configuration be stored in the istio-proxy container configPath: "/etc/istio/proxy" binaryPath: "/usr/local/bin/envoy" # The pseudo service name used for Envoy. serviceCluster: istio-proxy # These settings that determine how long an old Envoy # process should be kept alive after an occasional reload. drainDuration: 45s parentShutdownDuration: 1m0s # # The mode used to redirect inbound connections to Envoy. This setting # has no effect on outbound traffic: iptables REDIRECT is always used for # outbound connections. # If "REDIRECT", use iptables REDIRECT to NAT and redirect to Envoy. # The "REDIRECT" mode loses source addresses during redirection. # If "TPROXY", use iptables TPROXY to redirect to Envoy. # The "TPROXY" mode preserves both the source and destination IP # addresses and ports, so that they can be used for advanced filtering # and manipulation. # The "TPROXY" mode also configures the sidecar to run with the # CAP_NET_ADMIN capability, which is required to use TPROXY. #interceptionMode: REDIRECT # # Port where Envoy listens (on local host) for admin commands # You can exec into the istio-proxy container in a pod and # curl the admin port (curl http://localhost:15000/) to obtain # diagnostic information from Envoy. See # https://lyft.github.io/envoy/docs/operations/admin.html # for more details proxyAdminPort: 15000 # # Set concurrency to a specific number to control the number of Proxy worker threads. # If set to 0 (default), then start worker thread for each CPU thread/core. concurrency: 2 # tracing: zipkin: # Address of the Zipkin collector address: zipkin.istio-system:9411 # # Mutual TLS authentication between sidecars and istio control plane. controlPlaneAuthPolicy: NONE # # Address where istio Pilot service is running discoveryAddress: istio-pilot.istio-system:15010 # Configuration file for the mesh networks to be used by the Split Horizon EDS. meshNetworks: |- networks: {} } {Name:istio/templates/sidecar-injector-configmap.yaml Content: apiVersion: v1 kind: ConfigMap metadata: name: istio-sidecar-injector namespace: istio-system labels: app: istio chart: istio heritage: Tiller maistra-version: 1.0.0 release: istio istio: sidecar-injector data: config: |- policy: disabled template: |- annotations: k8s.v1.cni.cncf.io/networks: istio-cni rewriteAppHTTPProbe: false containers: - name: istio-proxy image: [[ annotation .ObjectMeta `sidecar.istio.io/proxyImage` "quay.io/maistra/proxyv2-rhel8:latest-qe" ]] ports: - containerPort: 15090 protocol: TCP name: http-envoy-prom args: - proxy - sidecar - --domain - $(POD_NAMESPACE).svc.cluster.local - --configPath - [[ .ProxyConfig.ConfigPath ]] - --binaryPath - [[ .ProxyConfig.BinaryPath ]] - --serviceCluster [[ if ne "" (index .ObjectMeta.Labels "app") -]] - [[ index .ObjectMeta.Labels "app" ]].$(POD_NAMESPACE) [[ else -]] - [[ valueOrDefault .DeploymentMeta.Name "istio-proxy" ]].[[ valueOrDefault .DeploymentMeta.Namespace "default" ]] [[ end -]] - --drainDuration - [[ formatDuration .ProxyConfig.DrainDuration ]] - --parentShutdownDuration - [[ formatDuration .ProxyConfig.ParentShutdownDuration ]] - --discoveryAddress - [[ annotation .ObjectMeta `sidecar.istio.io/discoveryAddress` .ProxyConfig.DiscoveryAddress ]] - --zipkinAddress - [[ .ProxyConfig.GetTracing.GetZipkin.GetAddress ]] - --connectTimeout - [[ formatDuration .ProxyConfig.ConnectTimeout ]] - --proxyAdminPort - [[ .ProxyConfig.ProxyAdminPort ]] [[ if gt .ProxyConfig.Concurrency 0 -]] - --concurrency - [[ .ProxyConfig.Concurrency ]] [[ end -]] - --controlPlaneAuthPolicy - [[ annotation .ObjectMeta `sidecar.istio.io/controlPlaneAuthPolicy` .ProxyConfig.ControlPlaneAuthPolicy ]] [[- if (ne (annotation .ObjectMeta `status.sidecar.istio.io/port` 15020 ) "0") ]] - --statusPort - [[ annotation .ObjectMeta `status.sidecar.istio.io/port` 15020 ]] - --applicationPorts - "[[ annotation .ObjectMeta `readiness.status.sidecar.istio.io/applicationPorts` (applicationPorts .Spec.Containers) ]]" [[- end ]] env: - name: POD_NAME valueFrom: fieldRef: fieldPath: metadata.name - name: POD_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - name: INSTANCE_IP valueFrom: fieldRef: fieldPath: status.podIP - name: ISTIO_META_POD_NAME valueFrom: fieldRef: fieldPath: metadata.name - name: ISTIO_META_CONFIG_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - name: ISTIO_META_INTERCEPTION_MODE value: [[ or (index .ObjectMeta.Annotations "sidecar.istio.io/interceptionMode") .ProxyConfig.InterceptionMode.String ]] [[ if .ObjectMeta.Annotations ]] - name: ISTIO_METAJSON_ANNOTATIONS value: | [[ toJSON .ObjectMeta.Annotations ]] [[ end ]] [[ if .ObjectMeta.Labels ]] - name: ISTIO_METAJSON_LABELS value: | [[ toJSON .ObjectMeta.Labels ]] [[ end ]] [[- if (isset .ObjectMeta.Annotations `sidecar.istio.io/bootstrapOverride`) ]] - name: ISTIO_BOOTSTRAP_OVERRIDE value: "/etc/istio/custom-bootstrap/custom_bootstrap.json" [[- end ]] imagePullPolicy: IfNotPresent [[ if (ne (annotation .ObjectMeta `status.sidecar.istio.io/port` 15020 ) "0") ]] readinessProbe: httpGet: path: /healthz/ready port: [[ annotation .ObjectMeta `status.sidecar.istio.io/port` 15020 ]] initialDelaySeconds: [[ annotation .ObjectMeta `readiness.status.sidecar.istio.io/initialDelaySeconds` 1 ]] periodSeconds: [[ annotation .ObjectMeta `readiness.status.sidecar.istio.io/periodSeconds` 2 ]] failureThreshold: [[ annotation .ObjectMeta `readiness.status.sidecar.istio.io/failureThreshold` 30 ]] [[ end -]]securityContext: readOnlyRootFilesystem: true [[ if eq (annotation .ObjectMeta `sidecar.istio.io/interceptionMode` .ProxyConfig.InterceptionMode) "TPROXY" -]] capabilities: add: - NET_ADMIN runAsGroup: 1337 [[ else -]] capabilities: drop: - KILL - SETUID - SETGID - MKNOD [[- end ]] resources: [[ if or (isset .ObjectMeta.Annotations `sidecar.istio.io/proxyCPU`) (isset .ObjectMeta.Annotations `sidecar.istio.io/proxyMemory`) -]] requests: [[ if (isset .ObjectMeta.Annotations `sidecar.istio.io/proxyCPU`) -]] cpu: "[[ index .ObjectMeta.Annotations `sidecar.istio.io/proxyCPU` ]]" [[ end ]] [[ if (isset .ObjectMeta.Annotations `sidecar.istio.io/proxyMemory`) -]] memory: "[[ index .ObjectMeta.Annotations `sidecar.istio.io/proxyMemory` ]]" [[ end ]] [[ else -]] limits: cpu: 501m memory: 128Mi requests: cpu: 100m memory: 128Mi [[ end -]] volumeMounts: [[- if (isset .ObjectMeta.Annotations `sidecar.istio.io/bootstrapOverride`) ]] - mountPath: /etc/istio/custom-bootstrap name: custom-bootstrap-volume [[- end ]] - mountPath: /etc/istio/proxy name: istio-envoy - mountPath: /etc/certs/ name: istio-certs readOnly: true [[- if isset .ObjectMeta.Annotations `sidecar.istio.io/userVolumeMount` ]] [[ range $index, $value := fromJSON (index .ObjectMeta.Annotations `sidecar.istio.io/userVolumeMount`) ]] - name: "[[ $index ]]" [[ toYaml $value | indent 4 ]] [[ end ]] [[- end ]] volumes: [[- if (isset .ObjectMeta.Annotations `sidecar.istio.io/bootstrapOverride`) ]] - name: custom-bootstrap-volume configMap: name: [[ annotation .ObjectMeta `sidecar.istio.io/bootstrapOverride` `` ]] [[- end ]] - emptyDir: medium: Memory name: istio-envoy - name: istio-certs secret: optional: true [[ if eq .Spec.ServiceAccountName "" -]] secretName: istio.default [[ else -]] secretName: [[ printf "istio.%s" .Spec.ServiceAccountName ]] [[ end -]] [[- if isset .ObjectMeta.Annotations `sidecar.istio.io/userVolume` ]] [[ range $index, $value := fromJSON (index .ObjectMeta.Annotations `sidecar.istio.io/userVolume`) ]] - name: "[[ $index ]]" [[ toYaml $value | indent 2 ]] [[ end ]] [[ end ]] } {Name:istio/templates/networkpolicy.yaml Content:apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: istio-mesh namespace: istio-system labels: app: istio chart: istio heritage: Tiller maistra-version: 1.0.0 release: istio spec: ingress: - from: - namespaceSelector: matchLabels: "maistra.io/member-of": "istio-system" egress: - to: - namespaceSelector: matchLabels: "maistra.io/member-of": "istio-system" --- # this will work for all routes into the mesh namespace, but not on ocp 3.11 apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: istio-ingress-router namespace: istio-system labels: app: istio chart: istio heritage: Tiller maistra-version: 1.0.0 release: istio annotations: "maistra.io/internal": "true" spec: ingress: - from: - namespaceSelector: matchLabels: network.openshift.io/policy-group: ingress } {Name:istio/templates/NOTES.txt Content:Thank you for installing istio. Your release is named istio. To get started running application with Istio, execute the following steps: 1. Label namespace that application object will be deployed to by the following command (take default namespace as an example) $ kubectl label namespace default istio-injection=enabled $ kubectl get namespace -L istio-injection 2. Deploy your applications $ kubectl apply -f .yaml For more information on running Istio, visit: https://istio.io/ } {Name:istio/templates/endpoints.yaml Content: } {Name:istio/templates/install-custom-resources.sh.tpl Content: } {Name:istio/templates/service.yaml Content: }] istio/charts/galley:[{Name:istio/charts/galley/templates/configmap.yaml Content:apiVersion: v1 kind: ConfigMap metadata: name: istio-galley-configuration namespace: istio-system labels: app: galley chart: galley heritage: Tiller maistra-version: 1.0.0 release: istio istio: galley data: validatingwebhookconfiguration.yaml: |- apiVersion: admissionregistration.k8s.io/v1beta1 kind: ValidatingWebhookConfiguration metadata: name: istio-galley labels: app: galley chart: galley heritage: Tiller maistra-version: 1.0.0 release: istio istio: galley webhooks: - name: pilot.validation.istio.io clientConfig: service: name: istio-galley namespace: istio-system path: "/admitpilot" caBundle: "" rules: - operations: - CREATE - UPDATE apiGroups: - config.istio.io apiVersions: - v1alpha2 resources: - httpapispecs - httpapispecbindings - quotaspecs - quotaspecbindings - operations: - CREATE - UPDATE apiGroups: - rbac.istio.io apiVersions: - "*" resources: - "*" - operations: - CREATE - UPDATE apiGroups: - authentication.istio.io apiVersions: - "*" resources: - "*" - operations: - CREATE - UPDATE apiGroups: - networking.istio.io apiVersions: - "*" resources: - destinationrules - envoyfilters - gateways - serviceentries - sidecars - virtualservices - operations: - CREATE - UPDATE apiGroups: - authentication.maistra.io apiVersions: - "*" resources: - "*" - operations: - CREATE - UPDATE apiGroups: - rbac.maistra.io apiVersions: - "*" resources: - "*" failurePolicy: Fail - name: mixer.validation.istio.io clientConfig: service: name: istio-galley namespace: istio-system path: "/admitmixer" caBundle: "" rules: - operations: - CREATE - UPDATE apiGroups: - config.istio.io apiVersions: - v1alpha2 resources: - rules - attributemanifests - circonuses - deniers - fluentds - kubernetesenvs - listcheckers - memquotas - noops - opas - prometheuses - rbacs - solarwindses - stackdrivers - cloudwatches - dogstatsds - statsds - stdios - apikeys - authorizations - checknothings # - kuberneteses - listentries - logentries - metrics - quotas - reportnothings - tracespans failurePolicy: Fail } {Name:istio/charts/galley/templates/serviceaccount.yaml Content:apiVersion: v1 kind: ServiceAccount metadata: name: istio-galley-service-account namespace: istio-system labels: app: galley chart: galley heritage: Tiller maistra-version: 1.0.0 release: istio } {Name:istio/charts/galley/templates/clusterrole.yaml Content:apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: istio-galley-istio-system labels: app: galley chart: galley heritage: Tiller maistra-version: 1.0.0 release: istio rules: - apiGroups: ["maistra.io"] resources: ["servicemeshmemberrolls"] verbs: ["get", "list", "watch"] - apiGroups: ["config.istio.io"] # istio mixer CRD watcher resources: ["*"] verbs: ["get", "list", "watch"] - apiGroups: ["networking.istio.io"] resources: ["*"] verbs: ["get", "list", "watch"] - apiGroups: ["authentication.istio.io"] resources: ["*"] verbs: ["get", "list", "watch"] - apiGroups: ["rbac.istio.io"] resources: ["*"] verbs: ["get", "list", "watch"] - apiGroups: ["extensions","apps"] resources: ["deployments"] resourceNames: ["istio-galley"] verbs: ["get"] - apiGroups: [""] resources: ["pods", "services", "endpoints"] verbs: ["get", "list", "watch"] - apiGroups: ["extensions"] resources: ["ingresses"] verbs: ["get", "list", "watch"] - apiGroups: ["extensions"] resources: ["deployments/finalizers"] resourceNames: ["istio-galley"] verbs: ["update"] - apiGroups: ["authentication.maistra.io"] resources: ["*"] verbs: ["get", "list", "watch"] - apiGroups: ["rbac.maistra.io"] resources: ["*"] verbs: ["get", "list", "watch"] } {Name:istio/charts/galley/templates/meshclusterrole.yaml Content:apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: istio-galley-mesh-istio-system labels: app: galley chart: galley heritage: Tiller maistra-version: 1.0.0 release: istio rules: - apiGroups: [""] resources: ["nodes"] verbs: ["get", "list", "watch"] } {Name:istio/charts/galley/templates/meshclusterrolebinding.yaml Content:apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: istio-galley-mesh-istio-system labels: app: galley chart: galley heritage: Tiller maistra-version: 1.0.0 release: istio roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: istio-galley-mesh-istio-system subjects: - kind: ServiceAccount name: istio-galley-service-account namespace: istio-system } {Name:istio/charts/galley/templates/clusterrolebinding.yaml Content:apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: istio-galley-admin-role-binding-istio-system namespace: istio-system labels: app: galley chart: galley heritage: Tiller maistra-version: 1.0.0 release: istio roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: istio-galley-istio-system subjects: - kind: ServiceAccount name: istio-galley-service-account namespace: istio-system } {Name:istio/charts/galley/templates/service.yaml Content:apiVersion: v1 kind: Service metadata: name: istio-galley namespace: istio-system labels: app: galley chart: galley heritage: Tiller maistra-version: 1.0.0 release: istio istio: galley spec: ports: - port: 443 targetPort: webhook name: https-validation - port: 15014 name: http-monitoring - port: 9901 name: grpc-mcp selector: istio: galley } {Name:istio/charts/galley/templates/deployment.yaml Content:apiVersion: extensions/v1beta1 kind: Deployment metadata: name: istio-galley namespace: istio-system labels: app: galley chart: galley heritage: Tiller maistra-version: 1.0.0 release: istio istio: galley spec: replicas: 1 strategy: rollingUpdate: maxSurge: 1 maxUnavailable: 0 template: metadata: labels: app: galley chart: galley heritage: Tiller maistra-version: 1.0.0 maistra-control-plane: istio-system release: istio istio: galley annotations: sidecar.istio.io/inject: "false" spec: serviceAccountName: istio-galley-service-account containers: - name: galley image: "quay.io/maistra/galley-rhel8:latest-qe" imagePullPolicy: IfNotPresent ports: - name: webhook containerPort: 8443 - containerPort: 15014 - containerPort: 9901 command: - /usr/local/bin/galley - server - --meshConfigFile=/etc/mesh-config/mesh - --livenessProbeInterval=1s - --livenessProbePath=/tmp/healthliveness - --readinessProbePath=/tmp/healthready - --readinessProbeInterval=1s - --deployment-namespace=istio-system - --insecure=true - --deployment-namespace - istio-system - --webhook-name - istio-galley-istio-system - --memberRollName=default - --manageWebhookConfig=false - --validation-webhook-config-file - /etc/config/validatingwebhookconfiguration.yaml - --monitoringPort=15014 - --validation-port=8443 - --log_output_level=default:info volumeMounts: - name: certs mountPath: /etc/certs readOnly: true - name: config mountPath: /etc/config readOnly: true - name: mesh-config mountPath: /etc/mesh-config readOnly: true livenessProbe: exec: command: - /usr/local/bin/galley - probe - --probe-path=/tmp/healthliveness - --interval=10s initialDelaySeconds: 5 periodSeconds: 5 readinessProbe: exec: command: - /usr/local/bin/galley - probe - --probe-path=/tmp/healthready - --interval=10s initialDelaySeconds: 5 periodSeconds: 5 resources: requests: cpu: 10m volumes: - name: certs secret: secretName: istio.istio-galley-service-account - name: config configMap: name: istio-galley-configuration - name: mesh-config configMap: name: istio affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - amd64 - ppc64le - s390x preferredDuringSchedulingIgnoredDuringExecution: - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - amd64 - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - ppc64le - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - s390x } {Name:istio/charts/galley/templates/networkpolicy.yaml Content:apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: istio-galley namespace: istio-system labels: app: galley chart: galley heritage: Tiller maistra-version: 1.0.0 release: istio annotations: "maistra.io/internal": "true" spec: podSelector: matchLabels: istio: galley ingress: - ports: port: webhook } {Name:istio/charts/galley/templates/poddisruptionbudget.yaml Content: apiVersion: policy/v1beta1 kind: PodDisruptionBudget metadata: name: istio-galley namespace: istio-system labels: app: galley chart: galley heritage: Tiller maistra-version: 1.0.0 release: istio istio: galley spec: minAvailable: 1 selector: matchLabels: app: galley maistra-version: 1.0.0 release: istio istio: galley } {Name:istio/charts/galley/templates/validatingwebhookconfiguration.yaml.tpl Content: } {Name:istio/charts/galley/templates/validatingwebhookconfiguration.yaml Content:apiVersion: admissionregistration.k8s.io/v1beta1 kind: ValidatingWebhookConfiguration metadata: name: istio-galley-istio-system namespace: istio-system labels: app: galley chart: galley heritage: Tiller maistra-version: 1.0.0 release: istio istio: galley annotations: "helm.sh/resource-policy": keep webhooks: - name: pilot.validation.istio.io clientConfig: service: name: istio-galley namespace: istio-system path: "/admitpilot" caBundle: "" namespaceSelector: matchExpressions: - key: maistra.io/member-of operator: In values: - istio-system rules: - operations: - CREATE - UPDATE apiGroups: - config.istio.io apiVersions: - v1alpha2 resources: - httpapispecs - httpapispecbindings - quotaspecs - quotaspecbindings - operations: - CREATE - UPDATE apiGroups: - rbac.istio.io apiVersions: - "*" resources: - "*" - operations: - CREATE - UPDATE apiGroups: - authentication.istio.io apiVersions: - "*" resources: - "*" - operations: - CREATE - UPDATE apiGroups: - authentication.maistra.io apiVersions: - "*" resources: - "*" - operations: - CREATE - UPDATE apiGroups: - rbac.maistra.io apiVersions: - "*" resources: - "*" - operations: - CREATE - UPDATE apiGroups: - networking.istio.io apiVersions: - "*" resources: - destinationrules - envoyfilters - gateways - serviceentries - sidecars - virtualservices failurePolicy: Fail - name: mixer.validation.istio.io clientConfig: service: name: istio-galley namespace: istio-system path: "/admitmixer" caBundle: "" namespaceSelector: matchExpressions: - key: maistra.io/member-of operator: In values: - istio-system rules: - operations: - CREATE - UPDATE apiGroups: - config.istio.io apiVersions: - v1alpha2 resources: - rules - attributemanifests - circonuses - deniers - fluentds - kubernetesenvs - listcheckers - memquotas - noops - opas - prometheuses - rbacs - solarwindses - stackdrivers - cloudwatches - dogstatsds - statsds - stdios - apikeys - authorizations - checknothings # - kuberneteses - listentries - logentries - metrics - quotas - reportnothings - tracespans failurePolicy: Fail }] istio/charts/gateways:[{Name:istio/charts/gateways/templates/serviceaccount.yaml Content: apiVersion: v1 kind: ServiceAccount metadata: name: istio-egressgateway-service-account namespace: istio-system labels: app: istio-egressgateway chart: gateways heritage: Tiller maistra-version: 1.0.0 release: istio --- apiVersion: v1 kind: ServiceAccount metadata: name: istio-ingressgateway-service-account namespace: istio-system labels: app: istio-ingressgateway chart: gateways heritage: Tiller maistra-version: 1.0.0 release: istio --- } {Name:istio/charts/gateways/templates/clusterrole.yaml Content: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: istio-egressgateway-istio-system labels: app: egressgateway chart: gateways heritage: Tiller maistra-version: 1.0.0 release: istio rules: - apiGroups: ["networking.istio.io"] resources: ["virtualservices", "destinationrules", "gateways"] verbs: ["get", "watch", "list", "update"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: istio-ingressgateway-istio-system labels: app: ingressgateway chart: gateways heritage: Tiller maistra-version: 1.0.0 release: istio rules: - apiGroups: ["networking.istio.io"] resources: ["virtualservices", "destinationrules", "gateways"] verbs: ["get", "watch", "list", "update"] --- } {Name:istio/charts/gateways/templates/role.yaml Content: apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: istio-ingressgateway-sds namespace: istio-system rules: - apiGroups: [""] resources: ["secrets"] verbs: ["get", "watch", "list"] --- } {Name:istio/charts/gateways/templates/clusterrolebindings.yaml Content: apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: istio-egressgateway-istio-system namespace: istio-system labels: app: egressgateway chart: gateways heritage: Tiller maistra-version: 1.0.0 release: istio roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: istio-egressgateway-istio-system subjects: - kind: ServiceAccount name: istio-egressgateway-service-account namespace: istio-system --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: istio-ingressgateway-istio-system namespace: istio-system labels: app: ingressgateway chart: gateways heritage: Tiller maistra-version: 1.0.0 release: istio roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: istio-ingressgateway-istio-system subjects: - kind: ServiceAccount name: istio-ingressgateway-service-account namespace: istio-system --- } {Name:istio/charts/gateways/templates/rolebindings.yaml Content: apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: istio-ingressgateway-sds namespace: istio-system roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: istio-ingressgateway-sds subjects: - kind: ServiceAccount name: istio-ingressgateway-service-account --- } {Name:istio/charts/gateways/templates/istio-ingressgateway-route.yaml Content: apiVersion: route.openshift.io/v1 kind: Route metadata: name: istio-ingressgateway namespace: istio-system labels: chart: gateways heritage: Tiller maistra-version: 1.0.0 release: istio app: istio-ingressgateway istio: ingressgateway spec: to: kind: Service name: istio-ingressgateway port: targetPort: 8080 } {Name:istio/charts/gateways/templates/service.yaml Content: apiVersion: v1 kind: Service metadata: name: istio-egressgateway namespace: istio-system annotations: labels: chart: gateways heritage: Tiller maistra-version: 1.0.0 release: istio app: istio-egressgateway istio: egressgateway spec: type: ClusterIP selector: maistra-version: 1.0.0 release: istio app: istio-egressgateway istio: egressgateway ports: - name: http2 port: 80 targetPort: 8080 - name: https port: 443 targetPort: 8443 - name: tls port: 15443 targetPort: 15443 --- apiVersion: v1 kind: Service metadata: name: istio-ingressgateway namespace: istio-system annotations: labels: chart: gateways heritage: Tiller maistra-version: 1.0.0 release: istio app: istio-ingressgateway istio: ingressgateway spec: type: ClusterIP selector: maistra-version: 1.0.0 release: istio app: istio-ingressgateway istio: ingressgateway ports: - name: status-port port: 15020 targetPort: 15020 - name: http2 port: 80 targetPort: 80 - name: https port: 443 - name: tls port: 15443 targetPort: 15443 --- } {Name:istio/charts/gateways/templates/deployment.yaml Content: apiVersion: extensions/v1beta1 kind: Deployment metadata: name: istio-egressgateway namespace: istio-system labels: chart: gateways heritage: Tiller maistra-version: 1.0.0 release: istio app: istio-egressgateway istio: egressgateway spec: replicas: 1 template: metadata: labels: chart: gateways heritage: Tiller maistra-version: 1.0.0 maistra-control-plane: istio-system release: istio app: istio-egressgateway istio: egressgateway annotations: sidecar.istio.io/inject: "false" spec: serviceAccountName: istio-egressgateway-service-account containers: - name: istio-proxy image: "quay.io/maistra/proxyv2-rhel8:latest-qe" imagePullPolicy: IfNotPresent ports: - name: http2 containerPort: 8080 - name: https containerPort: 8443 - name: tls containerPort: 15443 - containerPort: 15090 protocol: TCP name: http-envoy-prom args: - proxy - router - --domain - $(POD_NAMESPACE).svc.cluster.local - --log_output_level=default:info - --drainDuration - '45s' #drainDuration - --parentShutdownDuration - '1m0s' #parentShutdownDuration - --connectTimeout - '10s' #connectTimeout - --serviceCluster - istio-egressgateway - --zipkinAddress - zipkin:9411 - --proxyAdminPort - "15000" - --statusPort - "15020" - --controlPlaneAuthPolicy - NONE - --discoveryAddress - istio-pilot:15010 readinessProbe: failureThreshold: 30 httpGet: path: /healthz/ready port: 15020 scheme: HTTP initialDelaySeconds: 1 periodSeconds: 2 successThreshold: 1 timeoutSeconds: 1 resources: limits: cpu: 2000m memory: 256Mi requests: cpu: 100m memory: 128Mi env: - name: POD_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.name - name: POD_NAMESPACE valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.namespace - name: INSTANCE_IP valueFrom: fieldRef: apiVersion: v1 fieldPath: status.podIP - name: HOST_IP valueFrom: fieldRef: apiVersion: v1 fieldPath: status.hostIP - name: ISTIO_META_POD_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.name - name: ISTIO_META_CONFIG_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - name: ISTIO_META_ROUTER_MODE value: sni-dnat volumeMounts: - name: istio-certs mountPath: /etc/certs readOnly: true - name: egressgateway-certs mountPath: "/etc/istio/egressgateway-certs" readOnly: true - name: egressgateway-ca-certs mountPath: "/etc/istio/egressgateway-ca-certs" readOnly: true volumes: - name: istio-certs secret: secretName: istio.istio-egressgateway-service-account optional: true - name: egressgateway-certs secret: secretName: "istio-egressgateway-certs" optional: true - name: egressgateway-ca-certs secret: secretName: "istio-egressgateway-ca-certs" optional: true affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - amd64 - ppc64le - s390x preferredDuringSchedulingIgnoredDuringExecution: - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - amd64 - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - ppc64le - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - s390x --- apiVersion: extensions/v1beta1 kind: Deployment metadata: name: istio-ingressgateway namespace: istio-system labels: chart: gateways heritage: Tiller maistra-version: 1.0.0 release: istio app: istio-ingressgateway istio: ingressgateway spec: replicas: 1 template: metadata: labels: chart: gateways heritage: Tiller maistra-version: 1.0.0 maistra-control-plane: istio-system release: istio app: istio-ingressgateway istio: ingressgateway annotations: sidecar.istio.io/inject: "false" spec: serviceAccountName: istio-ingressgateway-service-account containers: - name: istio-proxy image: "quay.io/maistra/proxyv2-rhel8:latest-qe" imagePullPolicy: IfNotPresent ports: - name: status-port containerPort: 15020 - name: http2 containerPort: 80 - name: https containerPort: 443 - name: tls containerPort: 15443 - containerPort: 15090 protocol: TCP name: http-envoy-prom args: - proxy - router - --domain - $(POD_NAMESPACE).svc.cluster.local - --log_output_level=default:info - --drainDuration - '45s' #drainDuration - --parentShutdownDuration - '1m0s' #parentShutdownDuration - --connectTimeout - '10s' #connectTimeout - --serviceCluster - istio-ingressgateway - --zipkinAddress - zipkin:9411 - --proxyAdminPort - "15000" - --statusPort - "15020" - --controlPlaneAuthPolicy - NONE - --discoveryAddress - istio-pilot:15010 readinessProbe: failureThreshold: 30 httpGet: path: /healthz/ready port: 15020 scheme: HTTP initialDelaySeconds: 1 periodSeconds: 2 successThreshold: 1 timeoutSeconds: 1 resources: limits: cpu: 2000m memory: 1024Mi requests: cpu: 100m memory: 128Mi env: - name: POD_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.name - name: POD_NAMESPACE valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.namespace - name: INSTANCE_IP valueFrom: fieldRef: apiVersion: v1 fieldPath: status.podIP - name: HOST_IP valueFrom: fieldRef: apiVersion: v1 fieldPath: status.hostIP - name: ISTIO_META_POD_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.name - name: ISTIO_META_CONFIG_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - name: ISTIO_META_ROUTER_MODE value: sni-dnat volumeMounts: - name: istio-certs mountPath: /etc/certs readOnly: true - name: ingressgateway-certs mountPath: "/etc/istio/ingressgateway-certs" readOnly: true - name: ingressgateway-ca-certs mountPath: "/etc/istio/ingressgateway-ca-certs" readOnly: true volumes: - name: istio-certs secret: secretName: istio.istio-ingressgateway-service-account optional: true - name: ingressgateway-certs secret: secretName: "istio-ingressgateway-certs" optional: true - name: ingressgateway-ca-certs secret: secretName: "istio-ingressgateway-ca-certs" optional: true affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - amd64 - ppc64le - s390x preferredDuringSchedulingIgnoredDuringExecution: - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - amd64 - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - ppc64le - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - s390x --- } {Name:istio/charts/gateways/templates/networkpolicy.yaml Content: apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: istio-ingressgateway namespace: istio-system labels: app: ingressgateway chart: gateways heritage: Tiller maistra-version: 1.0.0 release: istio annotations: "maistra.io/internal": "true" spec: podSelector: matchLabels: istio: ingressgateway ingress: - from: - namespaceSelector: {} } {Name:istio/charts/gateways/templates/poddisruptionbudget.yaml Content: apiVersion: policy/v1beta1 kind: PodDisruptionBudget metadata: name: istio-egressgateway namespace: istio-system labels: chart: gateways heritage: Tiller maistra-version: 1.0.0 release: istio app: istio-egressgateway istio: egressgateway spec: minAvailable: 1 selector: matchLabels: maistra-version: 1.0.0 release: istio app: istio-egressgateway istio: egressgateway --- apiVersion: policy/v1beta1 kind: PodDisruptionBudget metadata: name: istio-ingressgateway namespace: istio-system labels: chart: gateways heritage: Tiller maistra-version: 1.0.0 release: istio app: istio-ingressgateway istio: ingressgateway spec: minAvailable: 1 selector: matchLabels: maistra-version: 1.0.0 release: istio app: istio-ingressgateway istio: ingressgateway --- } {Name:istio/charts/gateways/templates/autoscale.yaml Content: } {Name:istio/charts/gateways/templates/ior-deployment.yaml Content: } {Name:istio/charts/gateways/templates/ior-role.yaml Content: } {Name:istio/charts/gateways/templates/ior-rolebinding.yaml Content: } {Name:istio/charts/gateways/templates/ior-serviceaccount.yaml Content: } {Name:istio/charts/gateways/templates/preconfigured.yaml Content: }] istio/charts/grafana:[{Name:istio/charts/grafana/templates/configmap-dashboards.yaml Content: apiVersion: v1 kind: ConfigMap metadata: name: istio-grafana-configuration-dashboards-galley-dashboard namespace: istio-system labels: app: grafana chart: grafana heritage: Tiller maistra-version: 1.0.0 release: istio istio: grafana data: galley-dashboard.json: '{ "__inputs": [ { "name": "DS_PROMETHEUS", "label": "Prometheus", "description": "", "type": "datasource", "pluginId": "prometheus", "pluginName": "Prometheus" } ], "annotations": { "list": [ { "builtIn": 1, "datasource": "-- Grafana --", "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", "name": "Annotations & Alerts", "type": "dashboard" } ] }, "editable": false, "gnetId": null, "graphTooltip": 0, "links": [], "panels": [ { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 5, "w": 24, "x": 0, "y": 0 }, "id": 46, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(istio_build{component=\"galley\"}) by (tag)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ tag }}", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Galley Versions", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 5 }, "id": 40, "panels": [], "title": "Resource Usage", "type": "row" }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 8, "w": 6, "x": 0, "y": 6 }, "id": 36, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "process_virtual_memory_bytes{job=\"galley\"}", "format": "time_series", "intervalFactor": 2, "legendFormat": "Virtual Memory", "refId": "A" }, { "expr": "process_resident_memory_bytes{job=\"galley\"}", "format": "time_series", "intervalFactor": 2, "legendFormat": "Resident Memory", "refId": "B" }, { "expr": "go_memstats_heap_sys_bytes{job=\"galley\"}", "format": "time_series", "intervalFactor": 2, "legendFormat": "heap sys", "refId": "C" }, { "expr": "go_memstats_heap_alloc_bytes{job=\"galley\"}", "format": "time_series", "intervalFactor": 2, "legendFormat": "heap alloc", "refId": "D" }, { "expr": "go_memstats_alloc_bytes{job=\"galley\"}", "format": "time_series", "intervalFactor": 2, "legendFormat": "Alloc", "refId": "F" }, { "expr": "go_memstats_heap_inuse_bytes{job=\"galley\"}", "format": "time_series", "intervalFactor": 2, "legendFormat": "Heap in-use", "refId": "G" }, { "expr": "go_memstats_stack_inuse_bytes{job=\"galley\"}", "format": "time_series", "intervalFactor": 2, "legendFormat": "Stack in-use", "refId": "H" }, { "expr": "sum(container_memory_usage_bytes{container_name=~\"galley\", pod_name=~\"istio-galley-.*\"})", "format": "time_series", "intervalFactor": 1, "legendFormat": "Total (kis)", "refId": "E" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Memory", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 8, "w": 6, "x": 6, "y": 6 }, "id": 38, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(rate(container_cpu_usage_seconds_total{container_name=~\"galley\", pod_name=~\"istio-galley-.*\"}[1m]))", "format": "time_series", "intervalFactor": 2, "legendFormat": "Total (k8s)", "refId": "A" }, { "expr": "sum(rate(container_cpu_usage_seconds_total{container_name=~\"galley\", pod_name=~\"istio-galley-.*\"}[1m])) by (container_name)", "format": "time_series", "intervalFactor": 2, "legendFormat": "{{ container_name }} (k8s)", "refId": "B" }, { "expr": "irate(process_cpu_seconds_total{job=\"galley\"}[1m])", "format": "time_series", "intervalFactor": 2, "legendFormat": "galley (self-reported)", "refId": "C" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "CPU", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 8, "w": 6, "x": 12, "y": 6 }, "id": 42, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "process_open_fds{job=\"galley\"}", "format": "time_series", "intervalFactor": 2, "legendFormat": "Open FDs (galley)", "refId": "A" }, { "expr": "container_fs_usage_bytes{container_name=~\"galley\", pod_name=~\"istio-galley-.*\"}", "format": "time_series", "intervalFactor": 2, "legendFormat": "{{ container_name }} ", "refId": "B" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Disk", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 8, "w": 6, "x": 18, "y": 6 }, "id": 44, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "go_goroutines{job=\"galley\"}", "format": "time_series", "intervalFactor": 2, "legendFormat": "goroutines_total", "refId": "A" }, { "expr": "galley_mcp_source_clients_total", "format": "time_series", "intervalFactor": 1, "legendFormat": "clients_total", "refId": "B" }, { "expr": "go_goroutines{job=\"galley\"}/galley_mcp_source_clients_total", "format": "time_series", "intervalFactor": 1, "legendFormat": "avg_goroutines_per_client", "refId": "C" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Goroutines", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 14 }, "id": 10, "panels": [], "title": "Runtime", "type": "row" }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 0, "y": 15 }, "id": 2, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(rate(galley_runtime_strategy_on_change_total[1m])) * 60", "format": "time_series", "intervalFactor": 1, "legendFormat": "Strategy Change Events", "refId": "A" }, { "expr": "sum(rate(galley_runtime_processor_events_processed_total[1m])) * 60", "format": "time_series", "intervalFactor": 1, "legendFormat": "Processed Events", "refId": "B" }, { "expr": "sum(rate(galley_runtime_processor_snapshots_published_total[1m])) * 60", "format": "time_series", "intervalFactor": 1, "legendFormat": "Snapshot Published", "refId": "C" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Event Rates", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": "Events/min", "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": "", "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 8, "y": 15 }, "id": 4, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(rate(galley_runtime_strategy_timer_max_time_reached_total[1m])) * 60", "format": "time_series", "intervalFactor": 1, "legendFormat": "Max Time Reached", "refId": "A" }, { "expr": "sum(rate(galley_runtime_strategy_timer_quiesce_reached_total[1m])) * 60", "format": "time_series", "intervalFactor": 1, "legendFormat": "Quiesce Reached", "refId": "B" }, { "expr": "sum(rate(galley_runtime_strategy_timer_resets_total[1m])) * 60", "format": "time_series", "intervalFactor": 1, "legendFormat": "Timer Resets", "refId": "C" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Timer Rates", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": "Events/min", "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 16, "y": 15 }, "id": 8, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 3, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": true, "steppedLine": false, "targets": [ { "expr": "histogram_quantile(0.50, sum by (le) (galley_runtime_processor_snapshot_events_total_bucket))", "format": "time_series", "intervalFactor": 1, "legendFormat": "P50", "refId": "A" }, { "expr": "histogram_quantile(0.90, sum by (le) (galley_runtime_processor_snapshot_events_total_bucket))", "format": "time_series", "intervalFactor": 1, "legendFormat": "P90", "refId": "B" }, { "expr": "histogram_quantile(0.95, sum by (le) (galley_runtime_processor_snapshot_events_total_bucket))", "format": "time_series", "intervalFactor": 1, "legendFormat": "P95", "refId": "C" }, { "expr": "histogram_quantile(0.99, sum by (le) (galley_runtime_processor_snapshot_events_total_bucket))", "format": "time_series", "intervalFactor": 1, "legendFormat": "P99", "refId": "D" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Events Per Snapshot", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 8, "y": 21 }, "id": 6, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum by (typeURL) (galley_runtime_state_type_instances_total)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ typeURL }}", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "State Type Instances", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": "Count", "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 27 }, "id": 34, "panels": [], "title": "Validation", "type": "row" }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 0, "y": 28 }, "id": 28, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "galley_validation_cert_key_updates{job=\"galley\"}", "format": "time_series", "intervalFactor": 1, "legendFormat": "Key Updates", "refId": "A" }, { "expr": "galley_validation_cert_key_update_errors{job=\"galley\"}", "format": "time_series", "intervalFactor": 1, "legendFormat": "Key Update Errors: {{ error }}", "refId": "B" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Validation Webhook Certificate", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 8, "y": 28 }, "id": 30, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(galley_validation_passed{job=\"galley\"}) by (group, version, resource)", "format": "time_series", "intervalFactor": 1, "legendFormat": "Passed: {{ group }}/{{ version }}/{{resource}}", "refId": "A" }, { "expr": "sum(galley_validation_failed{job=\"galley\"}) by (group, version, resource, reason)", "format": "time_series", "intervalFactor": 1, "legendFormat": "Failed: {{ group }}/{{ version }}/{{resource}} ({{ reason}})", "refId": "B" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Resource Validation", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 16, "y": 28 }, "id": 32, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(galley_validation_http_error{job=\"galley\"}) by (status)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ status }}", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Validation HTTP Errors", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 34 }, "id": 12, "panels": [], "title": "Kubernetes Source", "type": "row" }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 0, "y": 35 }, "id": 14, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "rate(galley_source_kube_event_success_total[1m]) * 60", "format": "time_series", "intervalFactor": 1, "legendFormat": "Success", "refId": "A" }, { "expr": "rate(galley_source_kube_event_error_total[1m]) * 60", "format": "time_series", "intervalFactor": 1, "legendFormat": "Error", "refId": "B" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Source Event Rate", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": "Events/min", "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 8, "y": 35 }, "id": 16, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "rate(galley_source_kube_dynamic_converter_success_total[1m]) * 60", "format": "time_series", "intervalFactor": 1, "legendFormat": "{apiVersion=\"{{apiVersion}}\",group=\"{{group}}\",kind=\"{{kind}}\"}", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Kubernetes Object Conversion Successes", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": "Conversions/min", "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 16, "y": 35 }, "id": 24, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "rate(galley_source_kube_dynamic_converter_failure_total[1m]) * 60", "format": "time_series", "intervalFactor": 1, "legendFormat": "Error", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Kubernetes Object Conversion Failures", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": "Failures/min", "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 41 }, "id": 18, "panels": [], "title": "Mesh Configuration Protocol", "type": "row" }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 0, "y": 42 }, "id": 20, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(galley_mcp_source_clients_total)", "format": "time_series", "intervalFactor": 1, "legendFormat": "Clients", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Connected Clients", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 8, "y": 42 }, "id": 22, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum by(collection)(irate(galley_mcp_source_request_acks_total[1m]) * 60)", "format": "time_series", "intervalFactor": 1, "legendFormat": "", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Request ACKs", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": "ACKs/min", "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 16, "y": 42 }, "id": 26, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "rate(galley_mcp_source_request_nacks_total[1m]) * 60", "format": "time_series", "intervalFactor": 1, "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Request NACKs", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": "NACKs/min", "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } } ], "refresh": "5s", "schemaVersion": 16, "style": "dark", "tags": [], "templating": { "list": [] }, "time": { "from": "now-5m", "to": "now" }, "timepicker": { "refresh_intervals": [ "5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d" ], "time_options": [ "5m", "15m", "1h", "6h", "12h", "24h", "2d", "7d", "30d" ] }, "timezone": "", "title": "Istio Galley Dashboard", "uid": "TSEY6jLmk", "version": 1 } ' --- apiVersion: v1 kind: ConfigMap metadata: name: istio-grafana-configuration-dashboards-istio-mesh-dashboard namespace: istio-system labels: app: grafana chart: grafana heritage: Tiller maistra-version: 1.0.0 release: istio istio: grafana data: istio-mesh-dashboard.json: '{ "__inputs": [ { "name": "DS_PROMETHEUS", "label": "Prometheus", "description": "", "type": "datasource", "pluginId": "prometheus", "pluginName": "Prometheus" } ], "__requires": [ { "type": "grafana", "id": "grafana", "name": "Grafana", "version": "5.2.3" }, { "type": "panel", "id": "graph", "name": "Graph", "version": "5.0.0" }, { "type": "datasource", "id": "prometheus", "name": "Prometheus", "version": "5.0.0" }, { "type": "panel", "id": "singlestat", "name": "Singlestat", "version": "5.0.0" }, { "type": "panel", "id": "table", "name": "Table", "version": "5.0.0" }, { "type": "panel", "id": "text", "name": "Text", "version": "5.0.0" } ], "annotations": { "list": [ { "builtIn": 1, "datasource": "-- Grafana --", "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", "name": "Annotations & Alerts", "type": "dashboard" } ] }, "editable": false, "gnetId": null, "graphTooltip": 0, "id": null, "links": [], "panels": [ { "content": "
\n
\n Istio\n
\n
\n Istio is an open platform that provides a uniform way to connect,\n manage, and \n secure microservices.\n
\n Need help? Join the Istio community.\n
\n
", "gridPos": { "h": 3, "w": 24, "x": 0, "y": 0 }, "height": "50px", "id": 13, "links": [], "mode": "html", "style": { "font-size": "18pt" }, "title": "", "transparent": true, "type": "text" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "datasource": "Prometheus", "format": "ops", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 3, "w": 6, "x": 0, "y": 3 }, "id": 20, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": true, "lineColor": "rgb(31, 120, 193)", "show": true }, "tableColumn": "", "targets": [ { "expr": "round(sum(irate(istio_requests_total{reporter=\"destination\"}[1m])), 0.001)", "intervalFactor": 1, "refId": "A", "step": 4 } ], "thresholds": "", "title": "Global Request Volume", "transparent": false, "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "N/A", "value": "null" } ], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "datasource": "Prometheus", "format": "percentunit", "gauge": { "maxValue": 100, "minValue": 80, "show": false, "thresholdLabels": false, "thresholdMarkers": false }, "gridPos": { "h": 3, "w": 6, "x": 6, "y": 3 }, "id": 21, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": true, "lineColor": "rgb(31, 120, 193)", "show": true }, "tableColumn": "", "targets": [ { "expr": "sum(rate(istio_requests_total{reporter=\"destination\", response_code!~\"5.*\"}[1m])) / sum(rate(istio_requests_total{reporter=\"destination\"}[1m]))", "format": "time_series", "intervalFactor": 1, "refId": "A", "step": 4 } ], "thresholds": "95, 99, 99.5", "title": "Global Success Rate (non-5xx responses)", "transparent": false, "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "N/A", "value": "null" } ], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "datasource": "Prometheus", "format": "ops", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 3, "w": 6, "x": 12, "y": 3 }, "id": 22, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": true, "lineColor": "rgb(31, 120, 193)", "show": true }, "tableColumn": "", "targets": [ { "expr": "sum(irate(istio_requests_total{reporter=\"destination\", response_code=~\"4.*\"}[1m])) ", "format": "time_series", "intervalFactor": 1, "refId": "A", "step": 4 } ], "thresholds": "", "title": "4xxs", "transparent": false, "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "N/A", "value": "null" } ], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "datasource": "Prometheus", "format": "ops", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 3, "w": 6, "x": 18, "y": 3 }, "id": 23, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": true, "lineColor": "rgb(31, 120, 193)", "show": true }, "tableColumn": "", "targets": [ { "expr": "sum(irate(istio_requests_total{reporter=\"destination\", response_code=~\"5.*\"}[1m])) ", "format": "time_series", "intervalFactor": 1, "refId": "A", "step": 4 } ], "thresholds": "", "title": "5xxs", "transparent": false, "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "N/A", "value": "null" } ], "valueName": "avg" }, { "columns": [], "datasource": "Prometheus", "fontSize": "100%", "gridPos": { "h": 21, "w": 24, "x": 0, "y": 6 }, "hideTimeOverride": false, "id": 73, "links": [], "pageSize": null, "repeat": null, "repeatDirection": "v", "scroll": true, "showHeader": true, "sort": { "col": 4, "desc": true }, "styles": [ { "alias": "Workload", "colorMode": null, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat": "YYYY-MM-DD HH:mm:ss", "decimals": 2, "link": false, "linkTargetBlank": false, "linkTooltip": "Workload dashboard", "linkUrl": "/dashboard/db/istio-workload-dashboard?var-namespace=$__cell_2&var-workload=$__cell_", "pattern": "destination_workload", "preserveFormat": false, "sanitize": false, "thresholds": [], "type": "hidden", "unit": "short" }, { "alias": "", "colorMode": null, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat": "YYYY-MM-DD HH:mm:ss", "decimals": 2, "pattern": "Time", "thresholds": [], "type": "hidden", "unit": "short" }, { "alias": "Requests", "colorMode": null, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat": "YYYY-MM-DD HH:mm:ss", "decimals": 2, "pattern": "Value #A", "thresholds": [], "type": "number", "unit": "ops" }, { "alias": "P50 Latency", "colorMode": null, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat": "YYYY-MM-DD HH:mm:ss", "decimals": 2, "pattern": "Value #B", "thresholds": [], "type": "number", "unit": "s" }, { "alias": "P90 Latency", "colorMode": null, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat": "YYYY-MM-DD HH:mm:ss", "decimals": 2, "pattern": "Value #D", "thresholds": [], "type": "number", "unit": "s" }, { "alias": "P99 Latency", "colorMode": null, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat": "YYYY-MM-DD HH:mm:ss", "decimals": 2, "pattern": "Value #E", "thresholds": [], "type": "number", "unit": "s" }, { "alias": "Success Rate", "colorMode": "cell", "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat": "YYYY-MM-DD HH:mm:ss", "decimals": 2, "pattern": "Value #F", "thresholds": [ ".95", " 1.00" ], "type": "number", "unit": "percentunit" }, { "alias": "Workload", "colorMode": null, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat": "YYYY-MM-DD HH:mm:ss", "decimals": 2, "link": true, "linkTooltip": "$__cell dashboard", "linkUrl": "/dashboard/db/istio-workload-dashboard?var-workload=$__cell_2&var-namespace=$__cell_3", "pattern": "destination_workload_var", "thresholds": [], "type": "number", "unit": "short" }, { "alias": "Service", "colorMode": null, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat": "YYYY-MM-DD HH:mm:ss", "decimals": 2, "link": true, "linkTooltip": "$__cell dashboard", "linkUrl": "/dashboard/db/istio-service-dashboard?var-service=$__cell", "pattern": "destination_service", "thresholds": [], "type": "string", "unit": "short" }, { "alias": "", "colorMode": null, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat": "YYYY-MM-DD HH:mm:ss", "decimals": 2, "pattern": "destination_workload_namespace", "thresholds": [], "type": "hidden", "unit": "short" } ], "targets": [ { "expr": "label_join(sum(rate(istio_requests_total{reporter=\"destination\", response_code=\"200\"}[1m])) by (destination_workload, destination_workload_namespace, destination_service), \"destination_workload_var\", \".\", \"destination_workload\", \"destination_workload_namespace\")", "format": "table", "hide": false, "instant": true, "intervalFactor": 1, "legendFormat": "{{ destination_workload}}.{{ destination_workload_namespace }}", "refId": "A" }, { "expr": "label_join(histogram_quantile(0.50, sum(rate(istio_request_duration_seconds_bucket{reporter=\"destination\"}[1m])) by (le, destination_workload, destination_workload_namespace)), \"destination_workload_var\", \".\", \"destination_workload\", \"destination_workload_namespace\")", "format": "table", "hide": false, "instant": true, "intervalFactor": 1, "legendFormat": "{{ destination_workload}}.{{ destination_workload_namespace }}", "refId": "B" }, { "expr": "label_join(histogram_quantile(0.90, sum(rate(istio_request_duration_seconds_bucket{reporter=\"destination\"}[1m])) by (le, destination_workload, destination_workload_namespace)), \"destination_workload_var\", \".\", \"destination_workload\", \"destination_workload_namespace\")", "format": "table", "hide": false, "instant": true, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }}", "refId": "D" }, { "expr": "label_join(histogram_quantile(0.99, sum(rate(istio_request_duration_seconds_bucket{reporter=\"destination\"}[1m])) by (le, destination_workload, destination_workload_namespace)), \"destination_workload_var\", \".\", \"destination_workload\", \"destination_workload_namespace\")", "format": "table", "hide": false, "instant": true, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }}", "refId": "E" }, { "expr": "label_join((sum(rate(istio_requests_total{reporter=\"destination\", response_code!~\"5.*\"}[1m])) by (destination_workload, destination_workload_namespace) / sum(rate(istio_requests_total{reporter=\"destination\"}[1m])) by (destination_workload, destination_workload_namespace)), \"destination_workload_var\", \".\", \"destination_workload\", \"destination_workload_namespace\")", "format": "table", "hide": false, "instant": true, "interval": "", "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }}", "refId": "F" } ], "timeFrom": null, "title": "HTTP/GRPC Workloads", "transform": "table", "transparent": false, "type": "table" }, { "columns": [], "datasource": "Prometheus", "fontSize": "100%", "gridPos": { "h": 18, "w": 24, "x": 0, "y": 27 }, "hideTimeOverride": false, "id": 109, "links": [], "pageSize": null, "repeatDirection": "v", "scroll": true, "showHeader": true, "sort": { "col": 2, "desc": true }, "styles": [ { "alias": "Workload", "colorMode": null, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat": "YYYY-MM-DD HH:mm:ss", "decimals": 2, "link": false, "linkTargetBlank": false, "linkTooltip": "$__cell dashboard", "linkUrl": "/dashboard/db/istio-tcp-workload-dashboard?var-namespace=$__cell_2&&var-workload=$__cell", "pattern": "destination_workload", "preserveFormat": false, "sanitize": false, "thresholds": [], "type": "hidden", "unit": "short" }, { "alias": "Bytes Sent", "colorMode": null, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat": "YYYY-MM-DD HH:mm:ss", "decimals": 2, "pattern": "Value #A", "thresholds": [ "" ], "type": "number", "unit": "Bps" }, { "alias": "Bytes Received", "colorMode": null, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat": "YYYY-MM-DD HH:mm:ss", "decimals": 2, "pattern": "Value #C", "thresholds": [], "type": "number", "unit": "Bps" }, { "alias": "", "colorMode": null, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat": "YYYY-MM-DD HH:mm:ss", "decimals": 2, "pattern": "Time", "thresholds": [], "type": "hidden", "unit": "short" }, { "alias": "Workload", "colorMode": null, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat": "YYYY-MM-DD HH:mm:ss", "decimals": 2, "link": true, "linkTooltip": "$__cell dashboard", "linkUrl": "/dashboard/db/istio-workload-dashboard?var-namespace=$__cell_3&var-workload=$__cell_2", "pattern": "destination_workload_var", "thresholds": [], "type": "string", "unit": "short" }, { "alias": "", "colorMode": null, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat": "YYYY-MM-DD HH:mm:ss", "decimals": 2, "pattern": "destination_workload_namespace", "thresholds": [], "type": "hidden", "unit": "short" }, { "alias": "Service", "colorMode": null, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat": "YYYY-MM-DD HH:mm:ss", "decimals": 2, "link": true, "linkTooltip": "$__cell dashboard", "linkUrl": "/dashboard/db/istio-service-dashboard?var-service=$__cell", "pattern": "destination_service", "thresholds": [], "type": "number", "unit": "short" } ], "targets": [ { "expr": "label_join(sum(rate(istio_tcp_received_bytes_total{reporter=\"source\"}[1m])) by (destination_workload, destination_workload_namespace, destination_service), \"destination_workload_var\", \".\", \"destination_workload\", \"destination_workload_namespace\")", "format": "table", "hide": false, "instant": true, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}", "refId": "C" }, { "expr": "label_join(sum(rate(istio_tcp_sent_bytes_total{reporter=\"source\"}[1m])) by (destination_workload, destination_workload_namespace, destination_service), \"destination_workload_var\", \".\", \"destination_workload\", \"destination_workload_namespace\")", "format": "table", "hide": false, "instant": true, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}", "refId": "A" } ], "timeFrom": null, "title": "TCP Workloads", "transform": "table", "transparent": false, "type": "table" }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 9, "w": 24, "x": 0, "y": 45 }, "id": 111, "legend": { "alignAsTable": false, "avg": false, "current": false, "max": false, "min": false, "rightSide": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(istio_build) by (component, tag)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ component }}: {{ tag }}", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Istio Components by Version", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "transparent": false, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } } ], "refresh": "5s", "schemaVersion": 16, "style": "dark", "tags": [], "templating": { "list": [] }, "time": { "from": "now-5m", "to": "now" }, "timepicker": { "refresh_intervals": [ "5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d" ], "time_options": [ "5m", "15m", "1h", "6h", "12h", "24h", "2d", "7d", "30d" ] }, "timezone": "browser", "title": "Istio Mesh Dashboard", "version": 4 } ' --- apiVersion: v1 kind: ConfigMap metadata: name: istio-grafana-configuration-dashboards-istio-performance-dashboard namespace: istio-system labels: app: grafana chart: grafana heritage: Tiller maistra-version: 1.0.0 release: istio istio: grafana data: istio-performance-dashboard.json: '{ "__inputs": [ { "name": "DS_PROMETHEUS", "label": "Prometheus", "description": "", "type": "datasource", "pluginId": "prometheus", "pluginName": "Prometheus" } ], "__requires": [ { "type": "grafana", "id": "grafana", "name": "Grafana", "version": "5.2.3" }, { "type": "panel", "id": "graph", "name": "Graph", "version": "5.0.0" }, { "type": "datasource", "id": "prometheus", "name": "Prometheus", "version": "5.0.0" }, { "type": "panel", "id": "text", "name": "Text", "version": "5.0.0" } ], "annotations": { "list": [ { "builtIn": 1, "datasource": "-- Grafana --", "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", "name": "Annotations & Alerts", "type": "dashboard" } ] }, "editable": false, "gnetId": null, "graphTooltip": 0, "id": null, "links": [], "panels": [ { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 9, "w": 12, "x": 0, "y": 0 }, "id": 2, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "(sum(rate(container_cpu_usage_seconds_total{pod_name=~\"istio-telemetry-.*\",container_name=~\"mixer|istio-proxy\"}[1m]))/ (round(sum(irate(istio_requests_total[1m])), 0.001)/1000))/ (sum(irate(istio_requests_total{source_workload=\"istio-ingressgateway\"}[1m])) >bool 10)", "format": "time_series", "intervalFactor": 1, "legendFormat": "istio-telemetry", "refId": "A" }, { "expr": "sum(rate(container_cpu_usage_seconds_total{pod_name=~\"istio-ingressgateway-.*\",container_name=\"istio-proxy\"}[1m])) / (round(sum(irate(istio_requests_total{source_workload=\"istio-ingressgateway\", reporter=\"source\"}[1m])), 0.001)/1000)", "format": "time_series", "intervalFactor": 1, "legendFormat": "istio-ingressgateway", "refId": "B" }, { "expr": "(sum(rate(container_cpu_usage_seconds_total{namespace!=\"istio-system\",container_name=\"istio-proxy\"}[1m]))/ (round(sum(irate(istio_requests_total[1m])), 0.001)/1000))/ (sum(irate(istio_requests_total{source_workload=\"istio-ingressgateway\"}[1m])) >bool 10)", "format": "time_series", "intervalFactor": 1, "legendFormat": "istio-proxy", "refId": "C" }, { "expr": "(sum(rate(container_cpu_usage_seconds_total{pod_name=~\"istio-policy-.*\",container_name=~\"mixer|istio-proxy\"}[1m]))/ (round(sum(irate(istio_requests_total[1m])), 0.001)/1000)) / (sum(irate(istio_requests_total{source_workload=\"istio-ingressgateway\"}[1m])) >bool 10)", "format": "time_series", "intervalFactor": 1, "legendFormat": "istio-policy", "refId": "D" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "vCPU / 1k rps", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 9, "w": 12, "x": 12, "y": 0 }, "id": 6, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(rate(container_cpu_usage_seconds_total{pod_name=~\"istio-telemetry-.*\",container_name=~\"mixer|istio-proxy\"}[1m]))", "format": "time_series", "intervalFactor": 1, "legendFormat": "istio-telemetry", "refId": "A" }, { "expr": "sum(rate(container_cpu_usage_seconds_total{pod_name=~\"istio-ingressgateway-.*\",container_name=\"istio-proxy\"}[1m]))", "format": "time_series", "intervalFactor": 1, "legendFormat": "istio-ingressgateway", "refId": "B" }, { "expr": "sum(rate(container_cpu_usage_seconds_total{namespace!=\"istio-system\",container_name=\"istio-proxy\"}[1m]))", "format": "time_series", "intervalFactor": 1, "legendFormat": "istio-proxy", "refId": "C" }, { "expr": "sum(rate(container_cpu_usage_seconds_total{pod_name=~\"istio-policy-.*\",container_name=~\"mixer|istio-proxy\"}[1m]))", "format": "time_series", "intervalFactor": 1, "legendFormat": "istio-policy", "refId": "D" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "vCPU", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 9, "w": 12, "x": 0, "y": 9 }, "id": 4, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "(sum(container_memory_usage_bytes{pod_name=~\"istio-telemetry-.*\"}) / (sum(irate(istio_requests_total[1m])) / 1000)) / (sum(irate(istio_requests_total{source_workload=\"istio-ingressgateway\"}[1m])) >bool 10)", "format": "time_series", "intervalFactor": 1, "legendFormat": "istio-telemetry / 1k rps", "refId": "A" }, { "expr": "sum(container_memory_usage_bytes{pod_name=~\"istio-ingressgateway-.*\"}) / count(container_memory_usage_bytes{pod_name=~\"istio-ingressgateway-.*\",container_name!=\"POD\"})", "format": "time_series", "intervalFactor": 1, "legendFormat": "per istio-ingressgateway", "refId": "C" }, { "expr": "sum(container_memory_usage_bytes{namespace!=\"istio-system\",container_name=\"istio-proxy\"}) / count(container_memory_usage_bytes{namespace!=\"istio-system\",container_name=\"istio-proxy\"})", "format": "time_series", "intervalFactor": 1, "legendFormat": "per istio-proxy", "refId": "B" }, { "expr": "(sum(container_memory_usage_bytes{pod_name=~\"istio-policy-.*\"}) / (sum(irate(istio_requests_total[1m])) / 1000))/ (sum(irate(istio_requests_total{source_workload=\"istio-ingressgateway\"}[1m])) >bool 10)", "format": "time_series", "intervalFactor": 1, "legendFormat": "istio-policy / 1k rps", "refId": "D" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Memory", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "decbytes", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 9, "w": 12, "x": 12, "y": 9 }, "id": 5, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(irate(istio_response_bytes_sum{destination_workload=\"istio-telemetry\"}[1m])) + sum(irate(istio_request_bytes_sum{destination_workload=\"istio-telemetry\"}[1m]))", "format": "time_series", "intervalFactor": 1, "legendFormat": "istio-telemetry", "refId": "A" }, { "expr": "sum(irate(istio_response_bytes_sum{source_workload=\"istio-ingressgateway\", reporter=\"source\"}[1m]))", "format": "time_series", "intervalFactor": 1, "legendFormat": "istio-ingressgateway", "refId": "C" }, { "expr": "sum(irate(istio_response_bytes_sum{source_workload_namespace!=\"istio-system\", reporter=\"source\"}[1m])) + sum(irate(istio_response_bytes_sum{destination_workload_namespace!=\"istio-system\", reporter=\"destination\"}[1m])) + sum(irate(istio_request_bytes_sum{source_workload_namespace!=\"istio-system\", reporter=\"source\"}[1m])) + sum(irate(istio_request_bytes_sum{destination_workload_namespace!=\"istio-system\", reporter=\"destination\"}[1m]))", "format": "time_series", "intervalFactor": 1, "legendFormat": "istio-proxy", "refId": "D" }, { "expr": "sum(irate(istio_response_bytes_sum{destination_workload=\"istio-policy\"}[1m])) + sum(irate(istio_request_bytes_sum{destination_workload=\"istio-policy\"}[1m]))", "format": "time_series", "intervalFactor": 1, "legendFormat": "istio-policy", "refId": "E" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Bytes transferred / sec", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "bytes", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 9, "w": 24, "x": 0, "y": 18 }, "id": 8, "legend": { "alignAsTable": false, "avg": false, "current": false, "max": false, "min": false, "rightSide": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(istio_build) by (component, tag)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ component }}: {{ tag }}", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Istio Components by Version", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "transparent": false, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "content": "The charts on this dashboard are intended to show Istio main components cost in terms resources utilization under steady load.\n\n- **vCPU/1k rps:** shows vCPU utilization by the main Istio components normalized by 1000 requests/second. When idle or low traffic, this chart will be blank. The curve for istio-proxy refers to the services sidecars only. \n- **vCPU:** vCPU utilization by Istio components, not normalized.\n- **Memory:** memory footprint for the components. Telemetry and policy are normalized by 1k rps, and no data is shown when there is no traffic. For ingress and istio-proxy, the data is per instance. \n- **Bytes transferred/ sec:** shows the number of bytes flowing through each Istio component.", "gridPos": { "h": 4, "w": 24, "x": 0, "y": 18 }, "id": 11, "links": [], "mode": "markdown", "title": "Istio Performance Dashboard Readme", "type": "text" } ], "schemaVersion": 16, "style": "dark", "tags": [], "templating": { "list": [] }, "time": { "from": "now-5m", "to": "now" }, "timepicker": { "refresh_intervals": [ "5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d" ], "time_options": [ "5m", "15m", "1h", "6h", "12h", "24h", "2d", "7d", "30d" ] }, "timezone": "", "title": "Istio Performance Dashboard", "version": 4 } ' --- apiVersion: v1 kind: ConfigMap metadata: name: istio-grafana-configuration-dashboards-istio-service-dashboard namespace: istio-system labels: app: grafana chart: grafana heritage: Tiller maistra-version: 1.0.0 release: istio istio: grafana data: istio-service-dashboard.json: '{ "annotations": { "list": [ { "builtIn": 1, "datasource": "-- Grafana --", "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", "name": "Annotations & Alerts", "type": "dashboard" } ] }, "editable": false, "gnetId": null, "graphTooltip": 0, "iteration": 1536442501501, "links": [], "panels": [ { "content": "
\nSERVICE: $service\n
", "gridPos": { "h": 3, "w": 24, "x": 0, "y": 0 }, "id": 89, "links": [], "mode": "html", "title": "", "transparent": true, "type": "text" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "datasource": "Prometheus", "format": "ops", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 4, "w": 6, "x": 0, "y": 3 }, "id": 12, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": true, "lineColor": "rgb(31, 120, 193)", "show": true }, "tableColumn": "", "targets": [ { "expr": "round(sum(irate(istio_requests_total{reporter=\"source\",destination_service=~\"$service\"}[5m])), 0.001)", "format": "time_series", "intervalFactor": 1, "refId": "A", "step": 4 } ], "thresholds": "", "title": "Client Request Volume", "transparent": false, "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "N/A", "value": "null" } ], "valueName": "current" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "rgba(50, 172, 45, 0.97)", "rgba(237, 129, 40, 0.89)", "rgba(245, 54, 54, 0.9)" ], "datasource": "Prometheus", "decimals": null, "format": "percentunit", "gauge": { "maxValue": 100, "minValue": 80, "show": false, "thresholdLabels": false, "thresholdMarkers": false }, "gridPos": { "h": 4, "w": 6, "x": 6, "y": 3 }, "id": 14, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": true, "lineColor": "rgb(31, 120, 193)", "show": true }, "tableColumn": "", "targets": [ { "expr": "sum(irate(istio_requests_total{reporter=\"source\",destination_service=~\"$service\",response_code!~\"5.*\"}[5m])) / sum(irate(istio_requests_total{reporter=\"source\",destination_service=~\"$service\"}[5m]))", "format": "time_series", "intervalFactor": 1, "refId": "B" } ], "thresholds": "95, 99, 99.5", "title": "Client Success Rate (non-5xx responses)", "transparent": false, "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "N/A", "value": "null" } ], "valueName": "avg" }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 4, "w": 6, "x": 12, "y": 3 }, "id": 87, "legend": { "alignAsTable": false, "avg": false, "current": false, "hideEmpty": false, "hideZero": false, "max": false, "min": false, "rightSide": true, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "histogram_quantile(0.50, sum(irate(istio_request_duration_seconds_bucket{reporter=\"source\",destination_service=~\"$service\"}[1m])) by (le))", "format": "time_series", "interval": "", "intervalFactor": 1, "legendFormat": "P50", "refId": "A" }, { "expr": "histogram_quantile(0.90, sum(irate(istio_request_duration_seconds_bucket{reporter=\"source\",destination_service=~\"$service\"}[1m])) by (le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "P90", "refId": "B" }, { "expr": "histogram_quantile(0.99, sum(irate(istio_request_duration_seconds_bucket{reporter=\"source\",destination_service=~\"$service\"}[1m])) by (le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "P99", "refId": "C" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Client Request Duration", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "s", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a" ], "datasource": "Prometheus", "format": "Bps", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 4, "w": 6, "x": 18, "y": 3 }, "id": 84, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": true, "lineColor": "rgb(31, 120, 193)", "show": true }, "tableColumn": "", "targets": [ { "expr": "sum(irate(istio_tcp_received_bytes_total{reporter=\"source\", destination_service=~\"$service\"}[1m]))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "", "refId": "A" } ], "thresholds": "", "title": "TCP Received Bytes", "transparent": false, "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "N/A", "value": "null" } ], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "datasource": "Prometheus", "format": "ops", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 4, "w": 6, "x": 0, "y": 7 }, "id": 97, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": true, "lineColor": "rgb(31, 120, 193)", "show": true }, "tableColumn": "", "targets": [ { "expr": "round(sum(irate(istio_requests_total{reporter=\"destination\",destination_service=~\"$service\"}[5m])), 0.001)", "format": "time_series", "intervalFactor": 1, "refId": "A", "step": 4 } ], "thresholds": "", "title": "Server Request Volume", "transparent": false, "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "N/A", "value": "null" } ], "valueName": "current" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "rgba(50, 172, 45, 0.97)", "rgba(237, 129, 40, 0.89)", "rgba(245, 54, 54, 0.9)" ], "datasource": "Prometheus", "decimals": null, "format": "percentunit", "gauge": { "maxValue": 100, "minValue": 80, "show": false, "thresholdLabels": false, "thresholdMarkers": false }, "gridPos": { "h": 4, "w": 6, "x": 6, "y": 7 }, "id": 98, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": true, "lineColor": "rgb(31, 120, 193)", "show": true }, "tableColumn": "", "targets": [ { "expr": "sum(irate(istio_requests_total{reporter=\"destination\",destination_service=~\"$service\",response_code!~\"5.*\"}[5m])) / sum(irate(istio_requests_total{reporter=\"destination\",destination_service=~\"$service\"}[5m]))", "format": "time_series", "intervalFactor": 1, "refId": "B" } ], "thresholds": "95, 99, 99.5", "title": "Server Success Rate (non-5xx responses)", "transparent": false, "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "N/A", "value": "null" } ], "valueName": "avg" }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 4, "w": 6, "x": 12, "y": 7 }, "id": 99, "legend": { "alignAsTable": false, "avg": false, "current": false, "hideEmpty": false, "hideZero": false, "max": false, "min": false, "rightSide": true, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "histogram_quantile(0.50, sum(irate(istio_request_duration_seconds_bucket{reporter=\"destination\",destination_service=~\"$service\"}[1m])) by (le))", "format": "time_series", "interval": "", "intervalFactor": 1, "legendFormat": "P50", "refId": "A" }, { "expr": "histogram_quantile(0.90, sum(irate(istio_request_duration_seconds_bucket{reporter=\"destination\",destination_service=~\"$service\"}[1m])) by (le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "P90", "refId": "B" }, { "expr": "histogram_quantile(0.99, sum(irate(istio_request_duration_seconds_bucket{reporter=\"destination\",destination_service=~\"$service\"}[1m])) by (le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "P99", "refId": "C" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Server Request Duration", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "s", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a" ], "datasource": "Prometheus", "format": "Bps", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 4, "w": 6, "x": 18, "y": 7 }, "id": 100, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": true, "lineColor": "rgb(31, 120, 193)", "show": true }, "tableColumn": "", "targets": [ { "expr": "sum(irate(istio_tcp_sent_bytes_total{reporter=\"source\", destination_service=~\"$service\"}[1m])) ", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "", "refId": "A" } ], "thresholds": "", "title": "TCP Sent Bytes", "transparent": false, "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "N/A", "value": "null" } ], "valueName": "avg" }, { "content": "
\nCLIENT WORKLOADS\n
", "gridPos": { "h": 3, "w": 24, "x": 0, "y": 11 }, "id": 45, "links": [], "mode": "html", "title": "", "transparent": true, "type": "text" }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 0, "gridPos": { "h": 6, "w": 12, "x": 0, "y": 14 }, "id": 25, "legend": { "avg": false, "current": false, "hideEmpty": true, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null as zero", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "round(sum(irate(istio_requests_total{connection_security_policy=\"mutual_tls\",destination_service=~\"$service\",reporter=\"source\",source_workload=~\"$srcwl\",source_workload_namespace=~\"$srcns\"}[5m])) by (source_workload, source_workload_namespace, response_code), 0.001)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ source_workload }}.{{ source_workload_namespace }} : {{ response_code }} (🔐mTLS)", "refId": "B", "step": 2 }, { "expr": "round(sum(irate(istio_requests_total{connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", reporter=\"source\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[5m])) by (source_workload, source_workload_namespace, response_code), 0.001)", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ source_workload }}.{{ source_workload_namespace }} : {{ response_code }}", "refId": "A", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Incoming Requests by Source And Response Code", "tooltip": { "shared": false, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [ "total" ] }, "yaxes": [ { "format": "ops", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 12, "x": 12, "y": 14 }, "id": 26, "legend": { "avg": false, "current": false, "hideEmpty": true, "hideZero": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(irate(istio_requests_total{reporter=\"source\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\",response_code!~\"5.*\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[5m])) by (source_workload, source_workload_namespace) / sum(irate(istio_requests_total{reporter=\"source\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[5m])) by (source_workload, source_workload_namespace)", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ source_workload }}.{{ source_workload_namespace }} (🔐mTLS)", "refId": "A", "step": 2 }, { "expr": "sum(irate(istio_requests_total{reporter=\"source\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\",response_code!~\"5.*\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[5m])) by (source_workload, source_workload_namespace) / sum(irate(istio_requests_total{reporter=\"source\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[5m])) by (source_workload, source_workload_namespace)", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ source_workload }}.{{ source_workload_namespace }}", "refId": "B", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Incoming Success Rate (non-5xx responses) By Source", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "percentunit", "label": null, "logBase": 1, "max": "1.01", "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "description": "", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 0, "y": 20 }, "id": 27, "legend": { "alignAsTable": false, "avg": false, "current": false, "hideEmpty": true, "hideZero": false, "max": false, "min": false, "rightSide": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "histogram_quantile(0.50, sum(irate(istio_request_duration_seconds_bucket{reporter=\"source\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P50 (🔐mTLS)", "refId": "D", "step": 2 }, { "expr": "histogram_quantile(0.90, sum(irate(istio_request_duration_seconds_bucket{reporter=\"source\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P90 (🔐mTLS)", "refId": "A", "step": 2 }, { "expr": "histogram_quantile(0.95, sum(irate(istio_request_duration_seconds_bucket{reporter=\"source\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P95 (🔐mTLS)", "refId": "B", "step": 2 }, { "expr": "histogram_quantile(0.99, sum(irate(istio_request_duration_seconds_bucket{reporter=\"source\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P99 (🔐mTLS)", "refId": "C", "step": 2 }, { "expr": "histogram_quantile(0.50, sum(irate(istio_request_duration_seconds_bucket{reporter=\"source\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P50", "refId": "E", "step": 2 }, { "expr": "histogram_quantile(0.90, sum(irate(istio_request_duration_seconds_bucket{reporter=\"source\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P90", "refId": "F", "step": 2 }, { "expr": "histogram_quantile(0.95, sum(irate(istio_request_duration_seconds_bucket{reporter=\"source\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P95", "refId": "G", "step": 2 }, { "expr": "histogram_quantile(0.99, sum(irate(istio_request_duration_seconds_bucket{reporter=\"source\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P99", "refId": "H", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Incoming Request Duration by Source", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "s", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 8, "y": 20 }, "id": 28, "legend": { "alignAsTable": false, "avg": false, "current": false, "hideEmpty": true, "max": false, "min": false, "rightSide": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "histogram_quantile(0.50, sum(irate(istio_request_bytes_bucket{reporter=\"source\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P50 (🔐mTLS)", "refId": "D", "step": 2 }, { "expr": "histogram_quantile(0.90, sum(irate(istio_request_bytes_bucket{reporter=\"source\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P90 (🔐mTLS)", "refId": "A", "step": 2 }, { "expr": "histogram_quantile(0.95, sum(irate(istio_request_bytes_bucket{reporter=\"source\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P95 (🔐mTLS)", "refId": "B", "step": 2 }, { "expr": "histogram_quantile(0.99, sum(irate(istio_request_bytes_bucket{reporter=\"source\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P99 (🔐mTLS)", "refId": "C", "step": 2 }, { "expr": "histogram_quantile(0.50, sum(irate(istio_request_bytes_bucket{reporter=\"source\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P50", "refId": "E", "step": 2 }, { "expr": "histogram_quantile(0.90, sum(irate(istio_request_bytes_bucket{reporter=\"source\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P90", "refId": "F", "step": 2 }, { "expr": "histogram_quantile(0.95, sum(irate(istio_request_bytes_bucket{reporter=\"source\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P95", "refId": "G", "step": 2 }, { "expr": "histogram_quantile(0.99, sum(irate(istio_request_bytes_bucket{reporter=\"source\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P99", "refId": "H", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Incoming Request Size By Source", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "decbytes", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 16, "y": 20 }, "id": 68, "legend": { "alignAsTable": false, "avg": false, "current": false, "hideEmpty": true, "max": false, "min": false, "rightSide": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "histogram_quantile(0.50, sum(irate(istio_response_bytes_bucket{reporter=\"source\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P50 (🔐mTLS)", "refId": "D", "step": 2 }, { "expr": "histogram_quantile(0.90, sum(irate(istio_response_bytes_bucket{reporter=\"source\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P90 (🔐mTLS)", "refId": "A", "step": 2 }, { "expr": "histogram_quantile(0.95, sum(irate(istio_response_bytes_bucket{reporter=\"source\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P95 (🔐mTLS)", "refId": "B", "step": 2 }, { "expr": "histogram_quantile(0.99, sum(irate(istio_response_bytes_bucket{reporter=\"source\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P99 (🔐mTLS)", "refId": "C", "step": 2 }, { "expr": "histogram_quantile(0.50, sum(irate(istio_response_bytes_bucket{reporter=\"source\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P50", "refId": "E", "step": 2 }, { "expr": "histogram_quantile(0.90, sum(irate(istio_response_bytes_bucket{reporter=\"source\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P90", "refId": "F", "step": 2 }, { "expr": "histogram_quantile(0.95, sum(irate(istio_response_bytes_bucket{reporter=\"source\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P95", "refId": "G", "step": 2 }, { "expr": "histogram_quantile(0.99, sum(irate(istio_response_bytes_bucket{reporter=\"source\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P99", "refId": "H", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Response Size By Source", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "decbytes", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 12, "x": 0, "y": 26 }, "id": 80, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "round(sum(irate(istio_tcp_received_bytes_total{reporter=\"source\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace), 0.001)", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ source_workload }}.{{ source_workload_namespace}} (🔐mTLS)", "refId": "A", "step": 2 }, { "expr": "round(sum(irate(istio_tcp_received_bytes_total{reporter=\"source\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace), 0.001)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ source_workload }}.{{ source_workload_namespace}}", "refId": "B", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Bytes Received from Incoming TCP Connection", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "Bps", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 12, "x": 12, "y": 26 }, "id": 82, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "round(sum(irate(istio_tcp_sent_bytes_total{connection_security_policy=\"mutual_tls\", reporter=\"source\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace), 0.001)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ source_workload }}.{{ source_workload_namespace}} (🔐mTLS)", "refId": "A", "step": 2 }, { "expr": "round(sum(irate(istio_tcp_sent_bytes_total{connection_security_policy!=\"mutual_tls\", reporter=\"source\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace), 0.001)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ source_workload }}.{{ source_workload_namespace}}", "refId": "B", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Bytes Sent to Incoming TCP Connection", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "Bps", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "content": "
\nSERVICE WORKLOADS\n
", "gridPos": { "h": 3, "w": 24, "x": 0, "y": 32 }, "id": 69, "links": [], "mode": "html", "title": "", "transparent": true, "type": "text" }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 0, "gridPos": { "h": 6, "w": 12, "x": 0, "y": 35 }, "id": 90, "legend": { "avg": false, "current": false, "hideEmpty": true, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null as zero", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "round(sum(irate(istio_requests_total{connection_security_policy=\"mutual_tls\",destination_service=~\"$service\",reporter=\"destination\",destination_workload=~\"$dstwl\",destination_workload_namespace=~\"$dstns\"}[5m])) by (destination_workload, destination_workload_namespace, response_code), 0.001)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} : {{ response_code }} (🔐mTLS)", "refId": "B", "step": 2 }, { "expr": "round(sum(irate(istio_requests_total{connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", reporter=\"destination\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[5m])) by (destination_workload, destination_workload_namespace, response_code), 0.001)", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} : {{ response_code }}", "refId": "A", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Incoming Requests by Destination And Response Code", "tooltip": { "shared": false, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [ "total" ] }, "yaxes": [ { "format": "ops", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 12, "x": 12, "y": 35 }, "id": 91, "legend": { "avg": false, "current": false, "hideEmpty": true, "hideZero": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(irate(istio_requests_total{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\",response_code!~\"5.*\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[5m])) by (destination_workload, destination_workload_namespace) / sum(rate(istio_requests_total{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[5m])) by (destination_workload, destination_workload_namespace)", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} (🔐mTLS)", "refId": "A", "step": 2 }, { "expr": "sum(irate(istio_requests_total{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\",response_code!~\"5.*\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[5m])) by (destination_workload, destination_workload_namespace) / sum(rate(istio_requests_total{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[5m])) by (destination_workload, destination_workload_namespace)", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }}", "refId": "B", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Incoming Success Rate (non-5xx responses) By Source", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "percentunit", "label": null, "logBase": 1, "max": "1.01", "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "description": "", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 0, "y": 41 }, "id": 94, "legend": { "alignAsTable": false, "avg": false, "current": false, "hideEmpty": true, "hideZero": false, "max": false, "min": false, "rightSide": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "histogram_quantile(0.50, sum(irate(istio_request_duration_seconds_bucket{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} P50 (🔐mTLS)", "refId": "D", "step": 2 }, { "expr": "histogram_quantile(0.90, sum(irate(istio_request_duration_seconds_bucket{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} P90 (🔐mTLS)", "refId": "A", "step": 2 }, { "expr": "histogram_quantile(0.95, sum(irate(istio_request_duration_seconds_bucket{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} P95 (🔐mTLS)", "refId": "B", "step": 2 }, { "expr": "histogram_quantile(0.99, sum(irate(istio_request_duration_seconds_bucket{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} P99 (🔐mTLS)", "refId": "C", "step": 2 }, { "expr": "histogram_quantile(0.50, sum(irate(istio_request_duration_seconds_bucket{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} P50", "refId": "E", "step": 2 }, { "expr": "histogram_quantile(0.90, sum(irate(istio_request_duration_seconds_bucket{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} P90", "refId": "F", "step": 2 }, { "expr": "histogram_quantile(0.95, sum(irate(istio_request_duration_seconds_bucket{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} P95", "refId": "G", "step": 2 }, { "expr": "histogram_quantile(0.99, sum(irate(istio_request_duration_seconds_bucket{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} P99", "refId": "H", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Incoming Request Duration by Source", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "s", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 8, "y": 41 }, "id": 95, "legend": { "alignAsTable": false, "avg": false, "current": false, "hideEmpty": true, "max": false, "min": false, "rightSide": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "histogram_quantile(0.50, sum(irate(istio_request_bytes_bucket{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} P50 (🔐mTLS)", "refId": "D", "step": 2 }, { "expr": "histogram_quantile(0.90, sum(irate(istio_request_bytes_bucket{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} P90 (🔐mTLS)", "refId": "A", "step": 2 }, { "expr": "histogram_quantile(0.95, sum(irate(istio_request_bytes_bucket{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} P95 (🔐mTLS)", "refId": "B", "step": 2 }, { "expr": "histogram_quantile(0.99, sum(irate(istio_request_bytes_bucket{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} P99 (🔐mTLS)", "refId": "C", "step": 2 }, { "expr": "histogram_quantile(0.50, sum(irate(istio_request_bytes_bucket{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} P50", "refId": "E", "step": 2 }, { "expr": "histogram_quantile(0.90, sum(irate(istio_request_bytes_bucket{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} P90", "refId": "F", "step": 2 }, { "expr": "histogram_quantile(0.95, sum(irate(istio_request_bytes_bucket{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} P95", "refId": "G", "step": 2 }, { "expr": "histogram_quantile(0.99, sum(irate(istio_request_bytes_bucket{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} P99", "refId": "H", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Incoming Request Size By Source", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "decbytes", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 16, "y": 41 }, "id": 96, "legend": { "alignAsTable": false, "avg": false, "current": false, "hideEmpty": true, "max": false, "min": false, "rightSide": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "histogram_quantile(0.50, sum(irate(istio_response_bytes_bucket{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} P50 (🔐mTLS)", "refId": "D", "step": 2 }, { "expr": "histogram_quantile(0.90, sum(irate(istio_response_bytes_bucket{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} P90 (🔐mTLS)", "refId": "A", "step": 2 }, { "expr": "histogram_quantile(0.95, sum(irate(istio_response_bytes_bucket{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} P95 (🔐mTLS)", "refId": "B", "step": 2 }, { "expr": "histogram_quantile(0.99, sum(irate(istio_response_bytes_bucket{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} P99 (🔐mTLS)", "refId": "C", "step": 2 }, { "expr": "histogram_quantile(0.50, sum(irate(istio_response_bytes_bucket{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} P50", "refId": "E", "step": 2 }, { "expr": "histogram_quantile(0.90, sum(irate(istio_response_bytes_bucket{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} P90", "refId": "F", "step": 2 }, { "expr": "histogram_quantile(0.95, sum(irate(istio_response_bytes_bucket{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} P95", "refId": "G", "step": 2 }, { "expr": "histogram_quantile(0.99, sum(irate(istio_response_bytes_bucket{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} P99", "refId": "H", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Response Size By Source", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "decbytes", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 12, "x": 0, "y": 47 }, "id": 92, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "round(sum(irate(istio_tcp_received_bytes_total{reporter=\"source\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace), 0.001)", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace}} (🔐mTLS)", "refId": "A", "step": 2 }, { "expr": "round(sum(irate(istio_tcp_received_bytes_total{reporter=\"source\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace), 0.001)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace}}", "refId": "B", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Bytes Received from Incoming TCP Connection", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "Bps", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 12, "x": 12, "y": 47 }, "id": 93, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "round(sum(irate(istio_tcp_sent_bytes_total{connection_security_policy=\"mutual_tls\", reporter=\"source\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace), 0.001)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{destination_workload_namespace }} (🔐mTLS)", "refId": "A", "step": 2 }, { "expr": "round(sum(irate(istio_tcp_sent_bytes_total{connection_security_policy!=\"mutual_tls\", reporter=\"source\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace), 0.001)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{destination_workload_namespace }}", "refId": "B", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Bytes Sent to Incoming TCP Connection", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "Bps", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } } ], "refresh": "10s", "schemaVersion": 16, "style": "dark", "tags": [], "templating": { "list": [ { "allValue": null, "datasource": "Prometheus", "hide": 0, "includeAll": false, "label": "Service", "multi": false, "name": "service", "options": [], "query": "label_values(destination_service)", "refresh": 1, "regex": "", "sort": 0, "tagValuesQuery": "", "tags": [], "tagsQuery": "", "type": "query", "useTags": false }, { "allValue": null, "current": { "text": "All", "value": "$__all" }, "datasource": "Prometheus", "hide": 0, "includeAll": true, "label": "Client Workload Namespace", "multi": true, "name": "srcns", "options": [], "query": "query_result( sum(istio_requests_total{reporter=\"destination\", destination_service=\"$service\"}) by (source_workload_namespace) or sum(istio_tcp_sent_bytes_total{reporter=\"destination\", destination_service=~\"$service\"}) by (source_workload_namespace))", "refresh": 1, "regex": "/.*namespace=\"([^\"]*).*/", "sort": 2, "tagValuesQuery": "", "tags": [], "tagsQuery": "", "type": "query", "useTags": false }, { "allValue": null, "current": { "text": "All", "value": "$__all" }, "datasource": "Prometheus", "hide": 0, "includeAll": true, "label": "Client Workload", "multi": true, "name": "srcwl", "options": [], "query": "query_result( sum(istio_requests_total{reporter=\"destination\", destination_service=~\"$service\", source_workload_namespace=~\"$srcns\"}) by (source_workload) or sum(istio_tcp_sent_bytes_total{reporter=\"destination\", destination_service=~\"$service\", source_workload_namespace=~\"$srcns\"}) by (source_workload))", "refresh": 1, "regex": "/.*workload=\"([^\"]*).*/", "sort": 3, "tagValuesQuery": "", "tags": [], "tagsQuery": "", "type": "query", "useTags": false }, { "allValue": null, "current": { "text": "All", "value": "$__all" }, "datasource": "Prometheus", "hide": 0, "includeAll": true, "label": "Service Workload Namespace", "multi": true, "name": "dstns", "options": [], "query": "query_result( sum(istio_requests_total{reporter=\"destination\", destination_service=\"$service\"}) by (destination_workload_namespace) or sum(istio_tcp_sent_bytes_total{reporter=\"destination\", destination_service=~\"$service\"}) by (destination_workload_namespace))", "refresh": 1, "regex": "/.*namespace=\"([^\"]*).*/", "sort": 2, "tagValuesQuery": "", "tags": [], "tagsQuery": "", "type": "query", "useTags": false }, { "allValue": null, "current": { "text": "All", "value": "$__all" }, "datasource": "Prometheus", "hide": 0, "includeAll": true, "label": "Service Workload", "multi": true, "name": "dstwl", "options": [], "query": "query_result( sum(istio_requests_total{reporter=\"destination\", destination_service=~\"$service\", destination_workload_namespace=~\"$dstns\"}) by (destination_workload) or sum(istio_tcp_sent_bytes_total{reporter=\"destination\", destination_service=~\"$service\", destination_workload_namespace=~\"$dstns\"}) by (destination_workload))", "refresh": 1, "regex": "/.*workload=\"([^\"]*).*/", "sort": 3, "tagValuesQuery": "", "tags": [], "tagsQuery": "", "type": "query", "useTags": false } ] }, "time": { "from": "now-5m", "to": "now" }, "timepicker": { "refresh_intervals": [ "5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d" ], "time_options": [ "5m", "15m", "1h", "6h", "12h", "24h", "2d", "7d", "30d" ] }, "timezone": "", "title": "Istio Service Dashboard", "uid": "LJ_uJAvmk", "version": 1 } ' --- apiVersion: v1 kind: ConfigMap metadata: name: istio-grafana-configuration-dashboards-istio-workload-dashboard namespace: istio-system labels: app: grafana chart: grafana heritage: Tiller maistra-version: 1.0.0 release: istio istio: grafana data: istio-workload-dashboard.json: '{ "__inputs": [ { "name": "DS_PROMETHEUS", "label": "Prometheus", "description": "", "type": "datasource", "pluginId": "prometheus", "pluginName": "Prometheus" } ], "__requires": [ { "type": "grafana", "id": "grafana", "name": "Grafana", "version": "5.0.4" }, { "type": "panel", "id": "graph", "name": "Graph", "version": "5.0.0" }, { "type": "datasource", "id": "prometheus", "name": "Prometheus", "version": "5.0.0" }, { "type": "panel", "id": "singlestat", "name": "Singlestat", "version": "5.0.0" }, { "type": "panel", "id": "text", "name": "Text", "version": "5.0.0" } ], "annotations": { "list": [ { "builtIn": 1, "datasource": "-- Grafana --", "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", "name": "Annotations & Alerts", "type": "dashboard" } ] }, "editable": false, "gnetId": null, "graphTooltip": 0, "id": null, "iteration": 1531345461465, "links": [], "panels": [ { "content": "
\nWORKLOAD: $workload.$namespace\n
", "gridPos": { "h": 3, "w": 24, "x": 0, "y": 0 }, "id": 89, "links": [], "mode": "html", "title": "", "transparent": true, "type": "text" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "datasource": "Prometheus", "format": "ops", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 4, "w": 8, "x": 0, "y": 3 }, "id": 12, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": true, "lineColor": "rgb(31, 120, 193)", "show": true }, "tableColumn": "", "targets": [ { "expr": "round(sum(irate(istio_requests_total{reporter=\"destination\",destination_workload_namespace=~\"$namespace\",destination_workload=~\"$workload\"}[5m])), 0.001)", "format": "time_series", "intervalFactor": 1, "refId": "A", "step": 4 } ], "thresholds": "", "title": "Incoming Request Volume", "transparent": false, "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "N/A", "value": "null" } ], "valueName": "current" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "rgba(50, 172, 45, 0.97)", "rgba(237, 129, 40, 0.89)", "rgba(245, 54, 54, 0.9)" ], "datasource": "Prometheus", "decimals": null, "format": "percentunit", "gauge": { "maxValue": 100, "minValue": 80, "show": false, "thresholdLabels": false, "thresholdMarkers": false }, "gridPos": { "h": 4, "w": 8, "x": 8, "y": 3 }, "id": 14, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": true, "lineColor": "rgb(31, 120, 193)", "show": true }, "tableColumn": "", "targets": [ { "expr": "sum(irate(istio_requests_total{reporter=\"destination\",destination_workload_namespace=~\"$namespace\",destination_workload=~\"$workload\",response_code!~\"5.*\"}[5m])) / sum(irate(istio_requests_total{reporter=\"destination\",destination_workload_namespace=~\"$namespace\",destination_workload=~\"$workload\"}[5m]))", "format": "time_series", "intervalFactor": 1, "refId": "B" } ], "thresholds": "95, 99, 99.5", "title": "Incoming Success Rate (non-5xx responses)", "transparent": false, "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "N/A", "value": "null" } ], "valueName": "avg" }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 4, "w": 8, "x": 16, "y": 3 }, "id": 87, "legend": { "alignAsTable": false, "avg": false, "current": false, "hideEmpty": false, "hideZero": false, "max": false, "min": false, "rightSide": true, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "histogram_quantile(0.50, sum(irate(istio_request_duration_seconds_bucket{reporter=\"destination\",destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\"}[1m])) by (le))", "format": "time_series", "interval": "", "intervalFactor": 1, "legendFormat": "P50", "refId": "A" }, { "expr": "histogram_quantile(0.90, sum(irate(istio_request_duration_seconds_bucket{reporter=\"destination\",destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\"}[1m])) by (le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "P90", "refId": "B" }, { "expr": "histogram_quantile(0.99, sum(irate(istio_request_duration_seconds_bucket{reporter=\"destination\",destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\"}[1m])) by (le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "P99", "refId": "C" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Request Duration", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "s", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ] }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a" ], "datasource": "Prometheus", "format": "Bps", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 4, "w": 12, "x": 0, "y": 7 }, "id": 84, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": true, "lineColor": "rgb(31, 120, 193)", "show": true }, "tableColumn": "", "targets": [ { "expr": "sum(irate(istio_tcp_sent_bytes_total{reporter=\"destination\", destination_workload_namespace=~\"$namespace\", destination_workload=~\"$workload\"}[1m])) + sum(irate(istio_tcp_received_bytes_total{reporter=\"destination\", destination_workload_namespace=~\"$namespace\", destination_workload=~\"$workload\"}[1m]))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "", "refId": "A" } ], "thresholds": "", "title": "TCP Server Traffic", "transparent": false, "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "N/A", "value": "null" } ], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a" ], "datasource": "Prometheus", "format": "Bps", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 4, "w": 12, "x": 12, "y": 7 }, "id": 85, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": true, "lineColor": "rgb(31, 120, 193)", "show": true }, "tableColumn": "", "targets": [ { "expr": "sum(irate(istio_tcp_sent_bytes_total{reporter=\"source\", source_workload_namespace=~\"$namespace\", source_workload=~\"$workload\"}[1m])) + sum(irate(istio_tcp_received_bytes_total{reporter=\"source\", source_workload_namespace=~\"$namespace\", source_workload=~\"$workload\"}[1m]))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "", "refId": "A" } ], "thresholds": "", "title": "TCP Client Traffic", "transparent": false, "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "N/A", "value": "null" } ], "valueName": "avg" }, { "content": "
\nINBOUND WORKLOADS\n
", "gridPos": { "h": 3, "w": 24, "x": 0, "y": 11 }, "id": 45, "links": [], "mode": "html", "title": "", "transparent": true, "type": "text" }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 0, "gridPos": { "h": 6, "w": 12, "x": 0, "y": 14 }, "id": 25, "legend": { "avg": false, "current": false, "hideEmpty": true, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null as zero", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "round(sum(irate(istio_requests_total{connection_security_policy=\"mutual_tls\", destination_workload_namespace=~\"$namespace\", destination_workload=~\"$workload\", reporter=\"destination\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[5m])) by (source_workload, source_workload_namespace, response_code), 0.001)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ source_workload }}.{{ source_workload_namespace }} : {{ response_code }} (🔐mTLS)", "refId": "B", "step": 2 }, { "expr": "round(sum(irate(istio_requests_total{connection_security_policy!=\"mutual_tls\", destination_workload_namespace=~\"$namespace\", destination_workload=~\"$workload\", reporter=\"destination\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[5m])) by (source_workload, source_workload_namespace, response_code), 0.001)", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ source_workload }}.{{ source_workload_namespace }} : {{ response_code }}", "refId": "A", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Incoming Requests by Source And Response Code", "tooltip": { "shared": false, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [ "total" ] }, "yaxes": [ { "format": "ops", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ] }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 12, "x": 12, "y": 14 }, "id": 26, "legend": { "avg": false, "current": false, "hideEmpty": true, "hideZero": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(irate(istio_requests_total{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_workload_namespace=~\"$namespace\", destination_workload=~\"$workload\",response_code!~\"5.*\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[5m])) by (source_workload, source_workload_namespace) / sum(rate(istio_requests_total{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_workload_namespace=~\"$namespace\", destination_workload=~\"$workload\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[5m])) by (source_workload, source_workload_namespace)", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ source_workload }}.{{ source_workload_namespace }} (🔐mTLS)", "refId": "A", "step": 2 }, { "expr": "sum(irate(istio_requests_total{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_workload_namespace=~\"$namespace\", destination_workload=~\"$workload\",response_code!~\"5.*\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[5m])) by (source_workload, source_workload_namespace) / sum(rate(istio_requests_total{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_workload_namespace=~\"$namespace\", destination_workload=~\"$workload\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[5m])) by (source_workload, source_workload_namespace)", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ source_workload }}.{{ source_workload_namespace }}", "refId": "B", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Incoming Success Rate (non-5xx responses) By Source", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "percentunit", "label": null, "logBase": 1, "max": "1.01", "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ] }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "description": "", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 0, "y": 20 }, "id": 27, "legend": { "alignAsTable": false, "avg": false, "current": false, "hideEmpty": true, "hideZero": false, "max": false, "min": false, "rightSide": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "histogram_quantile(0.50, sum(irate(istio_request_duration_seconds_bucket{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P50 (🔐mTLS)", "refId": "D", "step": 2 }, { "expr": "histogram_quantile(0.90, sum(irate(istio_request_duration_seconds_bucket{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P90 (🔐mTLS)", "refId": "A", "step": 2 }, { "expr": "histogram_quantile(0.95, sum(irate(istio_request_duration_seconds_bucket{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P95 (🔐mTLS)", "refId": "B", "step": 2 }, { "expr": "histogram_quantile(0.99, sum(irate(istio_request_duration_seconds_bucket{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P99 (🔐mTLS)", "refId": "C", "step": 2 }, { "expr": "histogram_quantile(0.50, sum(irate(istio_request_duration_seconds_bucket{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P50", "refId": "E", "step": 2 }, { "expr": "histogram_quantile(0.90, sum(irate(istio_request_duration_seconds_bucket{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P90", "refId": "F", "step": 2 }, { "expr": "histogram_quantile(0.95, sum(irate(istio_request_duration_seconds_bucket{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P95", "refId": "G", "step": 2 }, { "expr": "histogram_quantile(0.99, sum(irate(istio_request_duration_seconds_bucket{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P99", "refId": "H", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Incoming Request Duration by Source", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "s", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ] }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 8, "y": 20 }, "id": 28, "legend": { "alignAsTable": false, "avg": false, "current": false, "hideEmpty": true, "max": false, "min": false, "rightSide": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "histogram_quantile(0.50, sum(irate(istio_request_bytes_bucket{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P50 (🔐mTLS)", "refId": "D", "step": 2 }, { "expr": "histogram_quantile(0.90, sum(irate(istio_request_bytes_bucket{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P90 (🔐mTLS)", "refId": "A", "step": 2 }, { "expr": "histogram_quantile(0.95, sum(irate(istio_request_bytes_bucket{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P95 (🔐mTLS)", "refId": "B", "step": 2 }, { "expr": "histogram_quantile(0.99, sum(irate(istio_request_bytes_bucket{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P99 (🔐mTLS)", "refId": "C", "step": 2 }, { "expr": "histogram_quantile(0.50, sum(irate(istio_request_bytes_bucket{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P50", "refId": "E", "step": 2 }, { "expr": "histogram_quantile(0.90, sum(irate(istio_request_bytes_bucket{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P90", "refId": "F", "step": 2 }, { "expr": "histogram_quantile(0.95, sum(irate(istio_request_bytes_bucket{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P95", "refId": "G", "step": 2 }, { "expr": "histogram_quantile(0.99, sum(irate(istio_request_bytes_bucket{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P99", "refId": "H", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Incoming Request Size By Source", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "decbytes", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ] }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 16, "y": 20 }, "id": 68, "legend": { "alignAsTable": false, "avg": false, "current": false, "hideEmpty": true, "max": false, "min": false, "rightSide": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "histogram_quantile(0.50, sum(irate(istio_response_bytes_bucket{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P50 (🔐mTLS)", "refId": "D", "step": 2 }, { "expr": "histogram_quantile(0.90, sum(irate(istio_response_bytes_bucket{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P90 (🔐mTLS)", "refId": "A", "step": 2 }, { "expr": "histogram_quantile(0.95, sum(irate(istio_response_bytes_bucket{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P95 (🔐mTLS)", "refId": "B", "step": 2 }, { "expr": "histogram_quantile(0.99, sum(irate(istio_response_bytes_bucket{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P99 (🔐mTLS)", "refId": "C", "step": 2 }, { "expr": "histogram_quantile(0.50, sum(irate(istio_response_bytes_bucket{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P50", "refId": "E", "step": 2 }, { "expr": "histogram_quantile(0.90, sum(irate(istio_response_bytes_bucket{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P90", "refId": "F", "step": 2 }, { "expr": "histogram_quantile(0.95, sum(irate(istio_response_bytes_bucket{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P95", "refId": "G", "step": 2 }, { "expr": "histogram_quantile(0.99, sum(irate(istio_response_bytes_bucket{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P99", "refId": "H", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Response Size By Source", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "decbytes", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ] }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 12, "x": 0, "y": 26 }, "id": 80, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "round(sum(irate(istio_tcp_received_bytes_total{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_workload_namespace=~\"$namespace\", destination_workload=~\"$workload\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace), 0.001)", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ source_workload }}.{{ source_workload_namespace}} (🔐mTLS)", "refId": "A", "step": 2 }, { "expr": "round(sum(irate(istio_tcp_received_bytes_total{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_workload_namespace=~\"$namespace\", destination_workload=~\"$workload\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace), 0.001)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ source_workload }}.{{ source_workload_namespace}}", "refId": "B", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Bytes Received from Incoming TCP Connection", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "Bps", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ] }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 12, "x": 12, "y": 26 }, "id": 82, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "round(sum(irate(istio_tcp_sent_bytes_total{connection_security_policy=\"mutual_tls\", reporter=\"destination\", destination_workload_namespace=~\"$namespace\", destination_workload=~\"$workload\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace), 0.001)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ source_workload }}.{{ source_workload_namespace}} (🔐mTLS)", "refId": "A", "step": 2 }, { "expr": "round(sum(irate(istio_tcp_sent_bytes_total{connection_security_policy!=\"mutual_tls\", reporter=\"destination\", destination_workload_namespace=~\"$namespace\", destination_workload=~\"$workload\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace), 0.001)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ source_workload }}.{{ source_workload_namespace}}", "refId": "B", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Bytes Sent to Incoming TCP Connection", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "Bps", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ] }, { "content": "
\nOUTBOUND SERVICES\n
", "gridPos": { "h": 3, "w": 24, "x": 0, "y": 32 }, "id": 69, "links": [], "mode": "html", "title": "", "transparent": true, "type": "text" }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 0, "gridPos": { "h": 6, "w": 12, "x": 0, "y": 35 }, "id": 70, "legend": { "avg": false, "current": false, "hideEmpty": true, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null as zero", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "round(sum(irate(istio_requests_total{connection_security_policy=\"mutual_tls\", source_workload_namespace=~\"$namespace\", source_workload=~\"$workload\", reporter=\"source\", destination_service=~\"$dstsvc\"}[5m])) by (destination_service, response_code), 0.001)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ destination_service }} : {{ response_code }} (🔐mTLS)", "refId": "B", "step": 2 }, { "expr": "round(sum(irate(istio_requests_total{connection_security_policy!=\"mutual_tls\", source_workload_namespace=~\"$namespace\", source_workload=~\"$workload\", reporter=\"source\", destination_service=~\"$dstsvc\"}[5m])) by (destination_service, response_code), 0.001)", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} : {{ response_code }}", "refId": "A", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Outgoing Requests by Destination And Response Code", "tooltip": { "shared": false, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [ "total" ] }, "yaxes": [ { "format": "ops", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ] }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 12, "x": 12, "y": 35 }, "id": 71, "legend": { "avg": false, "current": false, "hideEmpty": true, "hideZero": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(irate(istio_requests_total{reporter=\"source\", connection_security_policy=\"mutual_tls\", source_workload_namespace=~\"$namespace\", source_workload=~\"$workload\",response_code!~\"5.*\", destination_service=~\"$dstsvc\"}[5m])) by (destination_service) / sum(irate(istio_requests_total{reporter=\"source\", connection_security_policy=\"mutual_tls\", source_workload_namespace=~\"$namespace\", source_workload=~\"$workload\", destination_service=~\"$dstsvc\"}[5m])) by (destination_service)", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} (🔐mTLS)", "refId": "A", "step": 2 }, { "expr": "sum(irate(istio_requests_total{reporter=\"source\", connection_security_policy!=\"mutual_tls\", source_workload_namespace=~\"$namespace\", source_workload=~\"$workload\",response_code!~\"5.*\", destination_service=~\"$dstsvc\"}[5m])) by (destination_service) / sum(irate(istio_requests_total{reporter=\"source\", connection_security_policy!=\"mutual_tls\", source_workload_namespace=~\"$namespace\", source_workload=~\"$workload\", destination_service=~\"$dstsvc\"}[5m])) by (destination_service)", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{destination_service }}", "refId": "B", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Outgoing Success Rate (non-5xx responses) By Destination", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "percentunit", "label": null, "logBase": 1, "max": "1.01", "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ] }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "description": "", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 0, "y": 41 }, "id": 72, "legend": { "alignAsTable": false, "avg": false, "current": false, "hideEmpty": true, "hideZero": false, "max": false, "min": false, "rightSide": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "histogram_quantile(0.50, sum(irate(istio_request_duration_seconds_bucket{reporter=\"source\", connection_security_policy=\"mutual_tls\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} P50 (🔐mTLS)", "refId": "D", "step": 2 }, { "expr": "histogram_quantile(0.90, sum(irate(istio_request_duration_seconds_bucket{reporter=\"source\", connection_security_policy=\"mutual_tls\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} P90 (🔐mTLS)", "refId": "A", "step": 2 }, { "expr": "histogram_quantile(0.95, sum(irate(istio_request_duration_seconds_bucket{reporter=\"source\", connection_security_policy=\"mutual_tls\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} P95 (🔐mTLS)", "refId": "B", "step": 2 }, { "expr": "histogram_quantile(0.99, sum(irate(istio_request_duration_seconds_bucket{reporter=\"source\", connection_security_policy=\"mutual_tls\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} P99 (🔐mTLS)", "refId": "C", "step": 2 }, { "expr": "histogram_quantile(0.50, sum(irate(istio_request_duration_seconds_bucket{reporter=\"source\", connection_security_policy!=\"mutual_tls\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} P50", "refId": "E", "step": 2 }, { "expr": "histogram_quantile(0.90, sum(irate(istio_request_duration_seconds_bucket{reporter=\"source\", connection_security_policy!=\"mutual_tls\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} P90", "refId": "F", "step": 2 }, { "expr": "histogram_quantile(0.95, sum(irate(istio_request_duration_seconds_bucket{reporter=\"source\", connection_security_policy!=\"mutual_tls\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} P95", "refId": "G", "step": 2 }, { "expr": "histogram_quantile(0.99, sum(irate(istio_request_duration_seconds_bucket{reporter=\"source\", connection_security_policy!=\"mutual_tls\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} P99", "refId": "H", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Outgoing Request Duration by Destination", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "s", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ] }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 8, "y": 41 }, "id": 73, "legend": { "alignAsTable": false, "avg": false, "current": false, "hideEmpty": true, "max": false, "min": false, "rightSide": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "histogram_quantile(0.50, sum(irate(istio_request_bytes_bucket{reporter=\"source\", connection_security_policy=\"mutual_tls\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} P50 (🔐mTLS)", "refId": "D", "step": 2 }, { "expr": "histogram_quantile(0.90, sum(irate(istio_request_bytes_bucket{reporter=\"source\", connection_security_policy=\"mutual_tls\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} P90 (🔐mTLS)", "refId": "A", "step": 2 }, { "expr": "histogram_quantile(0.95, sum(irate(istio_request_bytes_bucket{reporter=\"source\", connection_security_policy=\"mutual_tls\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} P95 (🔐mTLS)", "refId": "B", "step": 2 }, { "expr": "histogram_quantile(0.99, sum(irate(istio_request_bytes_bucket{reporter=\"source\", connection_security_policy=\"mutual_tls\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} P99 (🔐mTLS)", "refId": "C", "step": 2 }, { "expr": "histogram_quantile(0.50, sum(irate(istio_request_bytes_bucket{reporter=\"source\", connection_security_policy!=\"mutual_tls\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} P50", "refId": "E", "step": 2 }, { "expr": "histogram_quantile(0.90, sum(irate(istio_request_bytes_bucket{reporter=\"source\", connection_security_policy!=\"mutual_tls\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} P90", "refId": "F", "step": 2 }, { "expr": "histogram_quantile(0.95, sum(irate(istio_request_bytes_bucket{reporter=\"source\", connection_security_policy!=\"mutual_tls\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} P95", "refId": "G", "step": 2 }, { "expr": "histogram_quantile(0.99, sum(irate(istio_request_bytes_bucket{reporter=\"source\", connection_security_policy!=\"mutual_tls\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} P99", "refId": "H", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Outgoing Request Size By Destination", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "decbytes", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ] }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 16, "y": 41 }, "id": 74, "legend": { "alignAsTable": false, "avg": false, "current": false, "hideEmpty": true, "max": false, "min": false, "rightSide": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "histogram_quantile(0.50, sum(irate(istio_response_bytes_bucket{reporter=\"source\", connection_security_policy=\"mutual_tls\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} P50 (🔐mTLS)", "refId": "D", "step": 2 }, { "expr": "histogram_quantile(0.90, sum(irate(istio_response_bytes_bucket{reporter=\"source\", connection_security_policy=\"mutual_tls\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} P90 (🔐mTLS)", "refId": "A", "step": 2 }, { "expr": "histogram_quantile(0.95, sum(irate(istio_response_bytes_bucket{reporter=\"source\", connection_security_policy=\"mutual_tls\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} P95 (🔐mTLS)", "refId": "B", "step": 2 }, { "expr": "histogram_quantile(0.99, sum(irate(istio_response_bytes_bucket{reporter=\"source\", connection_security_policy=\"mutual_tls\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} P99 (🔐mTLS)", "refId": "C", "step": 2 }, { "expr": "histogram_quantile(0.50, sum(irate(istio_response_bytes_bucket{reporter=\"source\", connection_security_policy!=\"mutual_tls\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} P50", "refId": "E", "step": 2 }, { "expr": "histogram_quantile(0.90, sum(irate(istio_response_bytes_bucket{reporter=\"source\", connection_security_policy!=\"mutual_tls\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} P90", "refId": "F", "step": 2 }, { "expr": "histogram_quantile(0.95, sum(irate(istio_response_bytes_bucket{reporter=\"source\", connection_security_policy!=\"mutual_tls\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} P95", "refId": "G", "step": 2 }, { "expr": "histogram_quantile(0.99, sum(irate(istio_response_bytes_bucket{reporter=\"source\", connection_security_policy!=\"mutual_tls\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} P99", "refId": "H", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Response Size By Destination", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "decbytes", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ] }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 12, "x": 0, "y": 47 }, "id": 76, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "round(sum(irate(istio_tcp_sent_bytes_total{connection_security_policy=\"mutual_tls\", reporter=\"source\", source_workload_namespace=~\"$namespace\", source_workload=~\"$workload\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service), 0.001)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ destination_service }} (🔐mTLS)", "refId": "A", "step": 2 }, { "expr": "round(sum(irate(istio_tcp_sent_bytes_total{connection_security_policy!=\"mutual_tls\", reporter=\"source\", source_workload_namespace=~\"$namespace\", source_workload=~\"$workload\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service), 0.001)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ destination_service }}", "refId": "B", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Bytes Sent on Outgoing TCP Connection", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "Bps", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ] }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 12, "x": 12, "y": 47 }, "id": 78, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "round(sum(irate(istio_tcp_received_bytes_total{reporter=\"source\", connection_security_policy=\"mutual_tls\", source_workload_namespace=~\"$namespace\", source_workload=~\"$workload\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service), 0.001)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ destination_service }} (🔐mTLS)", "refId": "A", "step": 2 }, { "expr": "round(sum(irate(istio_tcp_received_bytes_total{reporter=\"source\", connection_security_policy!=\"mutual_tls\", source_workload_namespace=~\"$namespace\", source_workload=~\"$workload\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service), 0.001)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ destination_service }}", "refId": "B", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Bytes Received from Outgoing TCP Connection", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "Bps", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ] } ], "refresh": "10s", "schemaVersion": 16, "style": "dark", "tags": [], "templating": { "list": [ { "allValue": null, "current": {}, "datasource": "Prometheus", "hide": 0, "includeAll": false, "label": "Namespace", "multi": false, "name": "namespace", "options": [], "query": "query_result(sum(istio_requests_total) by (destination_workload_namespace) or sum(istio_tcp_sent_bytes_total) by (destination_workload_namespace))", "refresh": 1, "regex": "/.*_namespace=\"([^\"]*).*/", "sort": 0, "tagValuesQuery": "", "tags": [], "tagsQuery": "", "type": "query", "useTags": false }, { "allValue": null, "current": {}, "datasource": "Prometheus", "hide": 0, "includeAll": false, "label": "Workload", "multi": false, "name": "workload", "options": [], "query": "query_result((sum(istio_requests_total{destination_workload_namespace=~\"$namespace\"}) by (destination_workload) or sum(istio_requests_total{source_workload_namespace=~\"$namespace\"}) by (source_workload)) or (sum(istio_tcp_sent_bytes_total{destination_workload_namespace=~\"$namespace\"}) by (destination_workload) or sum(istio_tcp_sent_bytes_total{source_workload_namespace=~\"$namespace\"}) by (source_workload)))", "refresh": 1, "regex": "/.*workload=\"([^\"]*).*/", "sort": 1, "tagValuesQuery": "", "tags": [], "tagsQuery": "", "type": "query", "useTags": false }, { "allValue": null, "current": {}, "datasource": "Prometheus", "hide": 0, "includeAll": true, "label": "Inbound Workload Namespace", "multi": true, "name": "srcns", "options": [], "query": "query_result( sum(istio_requests_total{reporter=\"destination\", destination_workload=\"$workload\", destination_workload_namespace=~\"$namespace\"}) by (source_workload_namespace) or sum(istio_tcp_sent_bytes_total{reporter=\"destination\", destination_workload=\"$workload\", destination_workload_namespace=~\"$namespace\"}) by (source_workload_namespace))", "refresh": 1, "regex": "/.*namespace=\"([^\"]*).*/", "sort": 2, "tagValuesQuery": "", "tags": [], "tagsQuery": "", "type": "query", "useTags": false }, { "allValue": null, "current": {}, "datasource": "Prometheus", "hide": 0, "includeAll": true, "label": "Inbound Workload", "multi": true, "name": "srcwl", "options": [], "query": "query_result( sum(istio_requests_total{reporter=\"destination\", destination_workload=\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload_namespace=~\"$srcns\"}) by (source_workload) or sum(istio_tcp_sent_bytes_total{reporter=\"destination\", destination_workload=\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload_namespace=~\"$srcns\"}) by (source_workload))", "refresh": 1, "regex": "/.*workload=\"([^\"]*).*/", "sort": 3, "tagValuesQuery": "", "tags": [], "tagsQuery": "", "type": "query", "useTags": false }, { "allValue": null, "current": {}, "datasource": "Prometheus", "hide": 0, "includeAll": true, "label": "Destination Service", "multi": true, "name": "dstsvc", "options": [], "query": "query_result( sum(istio_requests_total{reporter=\"source\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\"}) by (destination_service) or sum(istio_tcp_sent_bytes_total{reporter=\"source\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\"}) by (destination_service))", "refresh": 1, "regex": "/.*destination_service=\"([^\"]*).*/", "sort": 4, "tagValuesQuery": "", "tags": [], "tagsQuery": "", "type": "query", "useTags": false } ] }, "time": { "from": "now-5m", "to": "now" }, "timepicker": { "refresh_intervals": [ "5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d" ], "time_options": [ "5m", "15m", "1h", "6h", "12h", "24h", "2d", "7d", "30d" ] }, "timezone": "", "title": "Istio Workload Dashboard", "uid": "UbsSZTDik", "version": 1 } ' --- apiVersion: v1 kind: ConfigMap metadata: name: istio-grafana-configuration-dashboards-mixer-dashboard namespace: istio-system labels: app: grafana chart: grafana heritage: Tiller maistra-version: 1.0.0 release: istio istio: grafana data: mixer-dashboard.json: '{ "__inputs": [ { "name": "DS_PROMETHEUS", "label": "Prometheus", "description": "", "type": "datasource", "pluginId": "prometheus", "pluginName": "Prometheus" } ], "__requires": [ { "type": "grafana", "id": "grafana", "name": "Grafana", "version": "5.2.3" }, { "type": "panel", "id": "graph", "name": "Graph", "version": "5.0.0" }, { "type": "datasource", "id": "prometheus", "name": "Prometheus", "version": "5.0.0" }, { "type": "panel", "id": "text", "name": "Text", "version": "5.0.0" } ], "annotations": { "list": [ { "builtIn": 1, "datasource": "-- Grafana --", "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", "limit": 100, "name": "Annotations & Alerts", "showIn": 0, "type": "dashboard" } ] }, "editable": false, "gnetId": null, "graphTooltip": 1, "id": null, "iteration": 1543881232533, "links": [], "panels": [ { "content": "

Deployed Versions

", "gridPos": { "h": 3, "w": 24, "x": 0, "y": 0 }, "height": "40", "id": 62, "links": [], "mode": "html", "title": "", "transparent": true, "type": "text" }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 5, "w": 24, "x": 0, "y": 3 }, "id": 64, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(istio_build{component=\"mixer\"}) by (tag)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ tag }}", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Mixer Versions", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "content": "

Resource Usage

", "gridPos": { "h": 3, "w": 24, "x": 0, "y": 8 }, "height": "40", "id": 29, "links": [], "mode": "html", "title": "", "transparent": true, "type": "text" }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 7, "w": 6, "x": 0, "y": 11 }, "id": 5, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(process_virtual_memory_bytes{job=~\"istio-telemetry|istio-policy\"}) by (job)", "format": "time_series", "instant": false, "intervalFactor": 2, "legendFormat": "Virtual Memory ({{ job }})", "refId": "I" }, { "expr": "sum(process_resident_memory_bytes{job=~\"istio-telemetry|istio-policy\"}) by (job)", "format": "time_series", "intervalFactor": 2, "legendFormat": "Resident Memory ({{ job }})", "refId": "H" }, { "expr": "sum(go_memstats_heap_sys_bytes{job=~\"istio-telemetry|istio-policy\"}) by (job)", "format": "time_series", "hide": true, "intervalFactor": 2, "legendFormat": "heap sys ({{ job }})", "refId": "A" }, { "expr": "sum(go_memstats_heap_alloc_bytes{job=~\"istio-telemetry|istio-policy\"}) by (job)", "format": "time_series", "hide": true, "intervalFactor": 2, "legendFormat": "heap alloc ({{ job }})", "refId": "D" }, { "expr": "sum(go_memstats_alloc_bytes{job=~\"istio-telemetry|istio-policy\"}) by (job)", "format": "time_series", "intervalFactor": 2, "legendFormat": "Alloc ({{ job }})", "refId": "F" }, { "expr": "sum(go_memstats_heap_inuse_bytes{job=~\"istio-telemetry|istio-policy\"}) by (job)", "format": "time_series", "hide": false, "intervalFactor": 2, "legendFormat": "Heap in-use ({{ job }})", "refId": "E" }, { "expr": "sum(go_memstats_stack_inuse_bytes{job=~\"istio-telemetry|istio-policy\"}) by (job)", "format": "time_series", "intervalFactor": 2, "legendFormat": "Stack in-use ({{ job }})", "refId": "G" }, { "expr": "sum(label_replace(container_memory_usage_bytes{container_name=~\"mixer|istio-proxy\", pod_name=~\"istio-telemetry-.*|istio-policy-.*\"}, \"service\", \"$1\" , \"pod_name\", \"(istio-telemetry|istio-policy)-.*\")) by (service)", "format": "time_series", "hide": false, "intervalFactor": 2, "legendFormat": "{{ service }} total (k8s)", "refId": "C" }, { "expr": "sum(label_replace(container_memory_usage_bytes{container_name=~\"mixer|istio-proxy\", pod_name=~\"istio-telemetry-.*|istio-policy-.*\"}, \"service\", \"$1\" , \"pod_name\", \"(istio-telemetry|istio-policy)-.*\")) by (container_name, service)", "format": "time_series", "hide": false, "intervalFactor": 2, "legendFormat": "{{ service }} - {{ container_name }} (k8s)", "refId": "B" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Memory", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "bytes", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 7, "w": 6, "x": 6, "y": 11 }, "id": 6, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "label_replace(sum(rate(container_cpu_usage_seconds_total{container_name=~\"mixer|istio-proxy\", pod_name=~\"istio-telemetry-.*|istio-policy-.*\"}[1m])) by (pod_name), \"service\", \"$1\" , \"pod_name\", \"(istio-telemetry|istio-policy)-.*\")", "format": "time_series", "hide": false, "intervalFactor": 2, "legendFormat": "{{ service }} total (k8s)", "refId": "A" }, { "expr": "label_replace(sum(rate(container_cpu_usage_seconds_total{container_name=~\"mixer|istio-proxy\", pod_name=~\"istio-telemetry-.*|istio-policy-.*\"}[1m])) by (container_name, pod_name), \"service\", \"$1\" , \"pod_name\", \"(istio-telemetry|istio-policy)-.*\")", "format": "time_series", "hide": false, "intervalFactor": 2, "legendFormat": "{{ service }} - {{ container_name }} (k8s)", "refId": "B" }, { "expr": "sum(irate(process_cpu_seconds_total{job=~\"istio-telemetry|istio-policy\"}[1m])) by (job)", "format": "time_series", "hide": false, "intervalFactor": 2, "legendFormat": "{{ job }} (self-reported)", "refId": "C" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "CPU", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 7, "w": 6, "x": 12, "y": 11 }, "id": 7, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(process_open_fds{job=~\"istio-telemetry|istio-policy\"}) by (job)", "format": "time_series", "hide": true, "instant": false, "interval": "", "intervalFactor": 2, "legendFormat": "Open FDs ({{ job }})", "refId": "A" }, { "expr": "sum(label_replace(container_fs_usage_bytes{container_name=~\"mixer|istio-proxy\", pod_name=~\"istio-telemetry-.*|istio-policy-.*\"}, \"service\", \"$1\" , \"pod_name\", \"(istio-telemetry|istio-policy)-.*\")) by (container_name, service)", "format": "time_series", "intervalFactor": 2, "legendFormat": "{{ service }} - {{ container_name }}", "refId": "B" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Disk", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "bytes", "label": "", "logBase": 1, "max": null, "min": null, "show": true }, { "decimals": null, "format": "none", "label": "", "logBase": 1024, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 7, "w": 6, "x": 18, "y": 11 }, "id": 4, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": false, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(go_goroutines{job=~\"istio-telemetry|istio-policy\"}) by (job)", "format": "time_series", "intervalFactor": 2, "legendFormat": "Number of Goroutines ({{ job }})", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Goroutines", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": "", "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "content": "

Mixer Overview

", "gridPos": { "h": 3, "w": 24, "x": 0, "y": 18 }, "height": "40px", "id": 30, "links": [], "mode": "html", "title": "", "transparent": true, "type": "text" }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 6, "x": 0, "y": 21 }, "id": 9, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(rate(grpc_io_server_completed_rpcs[1m]))", "format": "time_series", "hide": false, "intervalFactor": 2, "legendFormat": "mixer (Total)", "refId": "B" }, { "expr": "sum(rate(grpc_io_server_completed_rpcs[1m])) by (grpc_server_method)", "format": "time_series", "intervalFactor": 2, "legendFormat": "mixer ({{ grpc_server_method }})", "refId": "C" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Incoming Requests", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "ops", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 6, "x": 6, "y": 21 }, "id": 8, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [ { "alias": "{}", "yaxis": 1 } ], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "histogram_quantile(0.5, sum(rate(grpc_io_server_server_latency_bucket{}[1m])) by (grpc_server_method, le))", "format": "time_series", "intervalFactor": 2, "legendFormat": "{{ grpc_server_method }} 0.5", "refId": "B" }, { "expr": "histogram_quantile(0.9, sum(rate(grpc_io_server_server_latency_bucket{}[1m])) by (grpc_server_method, le))", "format": "time_series", "intervalFactor": 2, "legendFormat": "{{ grpc_server_method }} 0.9", "refId": "C" }, { "expr": "histogram_quantile(0.99, sum(rate(grpc_io_server_server_latency_bucket{}[1m])) by (grpc_server_method, le))", "format": "time_series", "intervalFactor": 2, "legendFormat": "{{ grpc_server_method }} 0.99", "refId": "D" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Response Durations", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "ms", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 6, "x": 12, "y": 21 }, "id": 11, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(rate(grpc_server_handled_total{grpc_code=~\"Unknown|Unimplemented|Internal|DataLoss\"}[1m])) by (grpc_method)", "format": "time_series", "intervalFactor": 2, "legendFormat": "Mixer {{ grpc_method }}", "refId": "B" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Server Error Rate (5xx responses)", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 6, "x": 18, "y": 21 }, "id": 12, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(irate(grpc_server_handled_total{grpc_code!=\"OK\",grpc_service=~\".*Mixer\"}[1m])) by (grpc_method)", "format": "time_series", "intervalFactor": 2, "legendFormat": "Mixer {{ grpc_method }}", "refId": "B" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Non-successes (4xxs)", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "content": "

Adapters and Config

", "gridPos": { "h": 3, "w": 24, "x": 0, "y": 27 }, "id": 28, "links": [], "mode": "html", "title": "", "transparent": true, "type": "text" }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 7, "w": 12, "x": 0, "y": 30 }, "id": 13, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(irate(mixer_runtime_dispatches_total{adapter=~\"$adapter\"}[1m])) by (adapter)", "format": "time_series", "intervalFactor": 2, "legendFormat": "{{ adapter }}", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Adapter Dispatch Count", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 7, "w": 12, "x": 12, "y": 30 }, "id": 14, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "histogram_quantile(0.5, sum(irate(mixer_runtime_dispatch_duration_seconds_bucket{adapter=~\"$adapter\"}[1m])) by (adapter, le))", "format": "time_series", "intervalFactor": 2, "legendFormat": "{{ adapter }} - p50", "refId": "A" }, { "expr": "histogram_quantile(0.9, sum(irate(mixer_runtime_dispatch_duration_seconds_bucket{adapter=~\"$adapter\"}[1m])) by (adapter, le))", "format": "time_series", "intervalFactor": 2, "legendFormat": "{{ adapter }} - p90 ", "refId": "B" }, { "expr": "histogram_quantile(0.99, sum(irate(mixer_runtime_dispatch_duration_seconds_bucket{adapter=~\"$adapter\"}[1m])) by (adapter, le))", "format": "time_series", "intervalFactor": 2, "legendFormat": "{{ adapter }} - p99", "refId": "C" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Adapter Dispatch Duration", "tooltip": { "shared": true, "sort": 1, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "s", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 7, "w": 6, "x": 0, "y": 37 }, "id": 60, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "scalar(topk(1, max(mixer_config_rule_config_count) by (configID)))", "format": "time_series", "intervalFactor": 1, "legendFormat": "Rules", "refId": "A" }, { "expr": "scalar(topk(1, max(mixer_config_rule_config_error_count) by (configID)))", "format": "time_series", "intervalFactor": 1, "legendFormat": "Config Errors", "refId": "B" }, { "expr": "scalar(topk(1, max(mixer_config_rule_config_match_error_count) by (configID)))", "format": "time_series", "intervalFactor": 1, "legendFormat": "Match Errors", "refId": "C" }, { "expr": "scalar(topk(1, max(mixer_config_unsatisfied_action_handler_count) by (configID)))", "format": "time_series", "intervalFactor": 1, "legendFormat": "Unsatisfied Actions", "refId": "D" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Rules", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 7, "w": 6, "x": 6, "y": 37 }, "id": 56, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "scalar(topk(1, max(mixer_config_instance_config_count) by (configID)))", "format": "time_series", "intervalFactor": 1, "legendFormat": "Instances", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Instances in Latest Config", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 7, "w": 6, "x": 12, "y": 37 }, "id": 54, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "scalar(topk(1, max(mixer_config_handler_config_count) by (configID)))", "format": "time_series", "intervalFactor": 1, "legendFormat": "Handlers", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Handlers in Latest Config", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 7, "w": 6, "x": 18, "y": 37 }, "id": 58, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "scalar(topk(1, max(mixer_config_attribute_count) by (configID)))", "format": "time_series", "instant": false, "intervalFactor": 1, "legendFormat": "Attributes", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Attributes in Latest Config", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "content": "

Individual Adapters

", "gridPos": { "h": 3, "w": 24, "x": 0, "y": 44 }, "id": 23, "links": [], "mode": "html", "title": "", "transparent": true, "type": "text" }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 47 }, "id": 46, "panels": [], "repeat": "adapter", "title": "$adapter Adapter", "type": "row" }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 7, "w": 12, "x": 0, "y": 48 }, "id": 17, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "label_replace(irate(mixer_runtime_dispatches_total{adapter=\"$adapter\"}[1m]),\"handler\", \"$1 ($3)\", \"handler\", \"(.*)\\\\.(.*)\\\\.(.*)\")", "format": "time_series", "intervalFactor": 2, "legendFormat": "{{ handler }} (error: {{ error }})", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Dispatch Count By Handler", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 7, "w": 12, "x": 12, "y": 48 }, "id": 18, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "label_replace(histogram_quantile(0.5, sum(rate(mixer_runtime_dispatch_duration_seconds_bucket{adapter=\"$adapter\"}[1m])) by (handler, error, le)), \"handler_short\", \"$1 ($3)\", \"handler\", \"(.*)\\\\.(.*)\\\\.(.*)\")", "format": "time_series", "intervalFactor": 2, "legendFormat": "p50 - {{ handler_short }} (error: {{ error }})", "refId": "A" }, { "expr": "label_replace(histogram_quantile(0.9, sum(irate(mixer_runtime_dispatch_duration_seconds_bucket{adapter=\"$adapter\"}[1m])) by (handler, error, le)), \"handler_short\", \"$1 ($3)\", \"handler\", \"(.*)\\\\.(.*)\\\\.(.*)\")", "format": "time_series", "intervalFactor": 2, "legendFormat": "p90 - {{ handler_short }} (error: {{ error }})", "refId": "D" }, { "expr": "label_replace(histogram_quantile(0.99, sum(irate(mixer_runtime_dispatch_duration_seconds_bucket{adapter=\"$adapter\"}[1m])) by (handler, error, le)), \"handler_short\", \"$1 ($3)\", \"handler\", \"(.*)\\\\.(.*)\\\\.(.*)\")", "format": "time_series", "intervalFactor": 2, "legendFormat": "p99 - {{ handler_short }} (error: {{ error }})", "refId": "E" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Dispatch Duration By Handler", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "s", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } } ], "refresh": "5s", "schemaVersion": 16, "style": "dark", "tags": [], "templating": { "list": [ { "allValue": null, "current": {}, "datasource": "Prometheus", "hide": 0, "includeAll": true, "label": "Adapter", "multi": true, "name": "adapter", "options": [], "query": "label_values(adapter)", "refresh": 2, "regex": "", "sort": 1, "tagValuesQuery": "", "tags": [], "tagsQuery": "", "type": "query", "useTags": false } ] }, "time": { "from": "now-5m", "to": "now" }, "timepicker": { "refresh_intervals": [ "5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d" ], "time_options": [ "5m", "15m", "1h", "6h", "12h", "24h", "2d", "7d", "30d" ] }, "timezone": "", "title": "Istio Mixer Dashboard", "version": 4 } ' --- apiVersion: v1 kind: ConfigMap metadata: name: istio-grafana-configuration-dashboards-pilot-dashboard namespace: istio-system labels: app: grafana chart: grafana heritage: Tiller maistra-version: 1.0.0 release: istio istio: grafana data: pilot-dashboard.json: '{ "__inputs": [ { "name": "DS_PROMETHEUS", "label": "Prometheus", "description": "", "type": "datasource", "pluginId": "prometheus", "pluginName": "Prometheus" } ], "__requires": [ { "type": "grafana", "id": "grafana", "name": "Grafana", "version": "5.2.3" }, { "type": "panel", "id": "graph", "name": "Graph", "version": "5.0.0" }, { "type": "datasource", "id": "prometheus", "name": "Prometheus", "version": "5.0.0" }, { "type": "panel", "id": "text", "name": "Text", "version": "5.0.0" } ], "annotations": { "list": [ { "builtIn": 1, "datasource": "-- Grafana --", "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", "name": "Annotations & Alerts", "type": "dashboard" } ] }, "editable": false, "gnetId": null, "graphTooltip": 1, "id": null, "links": [], "panels": [ { "content": "

Deployed Versions

", "gridPos": { "h": 3, "w": 24, "x": 0, "y": 0 }, "height": "40", "id": 58, "links": [], "mode": "html", "title": "", "transparent": true, "type": "text" }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 5, "w": 24, "x": 0, "y": 3 }, "id": 56, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(istio_build{component=\"pilot\"}) by (tag)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ tag }}", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Pilot Versions", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "content": "

Resource Usage

", "gridPos": { "h": 3, "w": 24, "x": 0, "y": 8 }, "height": "40", "id": 29, "links": [], "mode": "html", "title": "", "transparent": true, "type": "text" }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 7, "w": 6, "x": 0, "y": 11 }, "id": 5, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "process_virtual_memory_bytes{job=\"pilot\"}", "format": "time_series", "instant": false, "intervalFactor": 2, "legendFormat": "Virtual Memory", "refId": "I", "step": 2 }, { "expr": "process_resident_memory_bytes{job=\"pilot\"}", "format": "time_series", "intervalFactor": 2, "legendFormat": "Resident Memory", "refId": "H", "step": 2 }, { "expr": "go_memstats_heap_sys_bytes{job=\"pilot\"}", "format": "time_series", "hide": true, "intervalFactor": 2, "legendFormat": "heap sys", "refId": "A" }, { "expr": "go_memstats_heap_alloc_bytes{job=\"pilot\"}", "format": "time_series", "hide": true, "intervalFactor": 2, "legendFormat": "heap alloc", "refId": "D" }, { "expr": "go_memstats_alloc_bytes{job=\"pilot\"}", "format": "time_series", "intervalFactor": 2, "legendFormat": "Alloc", "refId": "F", "step": 2 }, { "expr": "go_memstats_heap_inuse_bytes{job=\"pilot\"}", "format": "time_series", "hide": false, "intervalFactor": 2, "legendFormat": "Heap in-use", "refId": "E", "step": 2 }, { "expr": "go_memstats_stack_inuse_bytes{job=\"pilot\"}", "format": "time_series", "intervalFactor": 2, "legendFormat": "Stack in-use", "refId": "G", "step": 2 }, { "expr": "sum(container_memory_usage_bytes{container_name=~\"discovery|istio-proxy\", pod_name=~\"istio-pilot-.*\"})", "format": "time_series", "hide": false, "intervalFactor": 2, "legendFormat": "Total (k8s)", "refId": "C", "step": 2 }, { "expr": "container_memory_usage_bytes{container_name=~\"discovery|istio-proxy\", pod_name=~\"istio-pilot-.*\"}", "format": "time_series", "hide": false, "intervalFactor": 2, "legendFormat": "{{ container_name }} (k8s)", "refId": "B", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Memory", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "bytes", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 7, "w": 6, "x": 6, "y": 11 }, "id": 6, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(rate(container_cpu_usage_seconds_total{container_name=~\"discovery|istio-proxy\", pod_name=~\"istio-pilot-.*\"}[1m]))", "format": "time_series", "hide": false, "intervalFactor": 2, "legendFormat": "Total (k8s)", "refId": "A", "step": 2 }, { "expr": "sum(rate(container_cpu_usage_seconds_total{container_name=~\"discovery|istio-proxy\", pod_name=~\"istio-pilot-.*\"}[1m])) by (container_name)", "format": "time_series", "hide": false, "intervalFactor": 2, "legendFormat": "{{ container_name }} (k8s)", "refId": "B", "step": 2 }, { "expr": "irate(process_cpu_seconds_total{job=\"pilot\"}[1m])", "format": "time_series", "hide": false, "intervalFactor": 2, "legendFormat": "pilot (self-reported)", "refId": "C", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "CPU", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 7, "w": 6, "x": 12, "y": 11 }, "id": 7, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "process_open_fds{job=\"pilot\"}", "format": "time_series", "hide": true, "instant": false, "interval": "", "intervalFactor": 2, "legendFormat": "Open FDs (pilot)", "refId": "A" }, { "expr": "container_fs_usage_bytes{container_name=~\"discovery|istio-proxy\", pod_name=~\"istio-pilot-.*\"}", "format": "time_series", "intervalFactor": 2, "legendFormat": "{{ container_name }}", "refId": "B", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Disk", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "bytes", "label": "", "logBase": 1, "max": null, "min": null, "show": true }, { "decimals": null, "format": "none", "label": "", "logBase": 1024, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 7, "w": 6, "x": 18, "y": 11 }, "id": 4, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": false, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "go_goroutines{job=\"pilot\"}", "format": "time_series", "intervalFactor": 2, "legendFormat": "Number of Goroutines", "refId": "A", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Goroutines", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": "", "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "content": "

xDS

", "gridPos": { "h": 3, "w": 24, "x": 0, "y": 18 }, "id": 28, "links": [], "mode": "html", "title": "", "transparent": true, "type": "text" }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 0, "y": 21 }, "id": 40, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(irate(envoy_cluster_update_success{cluster_name=\"xds-grpc\"}[1m]))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "XDS GRPC Successes", "refId": "C" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Updates", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "ops", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "ops", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 8, "y": 21 }, "id": 42, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "round(sum(rate(envoy_cluster_update_attempt{cluster_name=\"xds-grpc\"}[1m])) - sum(rate(envoy_cluster_update_success{cluster_name=\"xds-grpc\"}[1m])))", "format": "time_series", "intervalFactor": 2, "legendFormat": "XDS GRPC ", "refId": "A", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Failures", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "ops", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 16, "y": 21 }, "id": 41, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(envoy_cluster_upstream_cx_active{cluster_name=\"xds-grpc\"})", "format": "time_series", "intervalFactor": 2, "legendFormat": "Pilot (XDS GRPC)", "refId": "C", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Active Connections", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 8, "w": 8, "x": 0, "y": 27 }, "id": 45, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "pilot_conflict_inbound_listener{job=\"pilot\"}", "format": "time_series", "intervalFactor": 1, "legendFormat": "Inbound Listeners", "refId": "B" }, { "expr": "pilot_conflict_outbound_listener_http_over_current_tcp{job=\"pilot\"}", "format": "time_series", "intervalFactor": 1, "legendFormat": "Outbound Listeners (http over current tcp)", "refId": "A" }, { "expr": "pilot_conflict_outbound_listener_tcp_over_current_tcp{job=\"pilot\"}", "format": "time_series", "intervalFactor": 1, "legendFormat": "Outbound Listeners (tcp over current tcp)", "refId": "C" }, { "expr": "pilot_conflict_outbound_listener_tcp_over_current_http{job=\"pilot\"}", "format": "time_series", "intervalFactor": 1, "legendFormat": "Outbound Listeners (tcp over current http)", "refId": "D" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Conflicts", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 8, "w": 8, "x": 8, "y": 27 }, "id": 47, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "pilot_virt_services{job=\"pilot\"}", "format": "time_series", "intervalFactor": 1, "legendFormat": "Virtual Services", "refId": "A" }, { "expr": "pilot_services{job=\"pilot\"}", "format": "time_series", "intervalFactor": 1, "legendFormat": "Services", "refId": "B" }, { "expr": "label_replace(sum(pilot_xds_cds_reject{job=\"pilot\"}) by (node, err), \"node\", \"$1\", \"node\", \".*~.*~(.*)~.*\")", "format": "time_series", "hide": true, "intervalFactor": 1, "legendFormat": "Rejected CDS Configs - {{ node }}: {{ err }}", "refId": "C" }, { "expr": "pilot_xds_eds_reject{job=\"pilot\"}", "format": "time_series", "hide": true, "intervalFactor": 1, "legendFormat": "Rejected EDS Configs", "refId": "D" }, { "expr": "pilot_xds{job=\"pilot\"}", "format": "time_series", "intervalFactor": 1, "legendFormat": "Connected Endpoints", "refId": "E" }, { "expr": "rate(pilot_xds_write_timeout{job=\"pilot\"}[1m])", "format": "time_series", "intervalFactor": 1, "legendFormat": "Write Timeouts", "refId": "F" }, { "expr": "rate(pilot_xds_push_timeout{job=\"pilot\"}[1m])", "format": "time_series", "intervalFactor": 1, "legendFormat": "Push Timeouts", "refId": "G" }, { "expr": "rate(pilot_xds_pushes{job=\"pilot\"}[1m])", "format": "time_series", "intervalFactor": 1, "legendFormat": "Pushes ({{ type }})", "refId": "H" }, { "expr": "rate(pilot_xds_push_errors{job=\"pilot\"}[1m])", "format": "time_series", "intervalFactor": 1, "legendFormat": "Push Errors ({{ type }})", "refId": "I" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "ADS Monitoring", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 8, "w": 8, "x": 16, "y": 27 }, "id": 49, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "label_replace(sum(pilot_xds_cds_reject{job=\"pilot\"}) by (node, err), \"node\", \"$1\", \"node\", \".*~.*~(.*)~.*\")", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ node }} ({{ err }})", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Rejected CDS Configs", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 7, "w": 8, "x": 0, "y": 35 }, "id": 52, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "label_replace(sum(pilot_xds_eds_reject{job=\"pilot\"}) by (node, err), \"node\", \"$1\", \"node\", \".*~.*~(.*)~.*\")", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ node }} ({{err}})", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Rejected EDS Configs", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 7, "w": 8, "x": 8, "y": 35 }, "id": 54, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "label_replace(sum(pilot_xds_lds_reject{job=\"pilot\"}) by (node, err), \"node\", \"$1\", \"node\", \".*~.*~(.*)~.*\")", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ node }} ({{err}})", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Rejected LDS Configs", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 7, "w": 8, "x": 16, "y": 35 }, "id": 53, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "label_replace(sum(pilot_xds_rds_reject{job=\"pilot\"}) by (node, err), \"node\", \"$1\", \"node\", \".*~.*~(.*)~.*\")", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ node }} ({{err}})", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Rejected RDS Configs", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": { "outbound|80||default-http-backend.kube-system.svc.cluster.local": "rgba(255, 255, 255, 0.97)" }, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 7, "w": 8, "x": 0, "y": 42 }, "id": 51, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [ { "alias": "outbound|80||default-http-backend.kube-system.svc.cluster.local", "yaxis": 1 } ], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(pilot_xds_eds_instances{job=\"pilot\"}) by (cluster)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ cluster }}", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "EDS Instances", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } } ], "refresh": "5s", "schemaVersion": 16, "style": "dark", "tags": [], "templating": { "list": [] }, "time": { "from": "now-5m", "to": "now" }, "timepicker": { "refresh_intervals": [ "5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d" ], "time_options": [ "5m", "15m", "1h", "6h", "12h", "24h", "2d", "7d", "30d" ] }, "timezone": "browser", "title": "Istio Pilot Dashboard", "version": 4 } ' --- } {Name:istio/charts/grafana/templates/configmap.yaml Content:apiVersion: v1 kind: ConfigMap metadata: name: istio-grafana namespace: istio-system labels: app: grafana chart: grafana heritage: Tiller maistra-version: 1.0.0 release: istio istio: grafana data: datasources.yaml: | apiVersion: 1 datasources: - access: proxy editable: true isDefault: true jsonData: timeInterval: 5s name: Prometheus orgId: 1 type: prometheus url: http://prometheus:9090 dashboardproviders.yaml: | apiVersion: 1 providers: - disableDeletion: false folder: istio name: istio options: path: /var/lib/grafana/dashboards/istio orgId: 1 type: file } {Name:istio/charts/grafana/templates/serviceaccount.yaml Content:apiVersion: v1 kind: ServiceAccount metadata: name: grafana namespace: istio-system annotations: serviceaccounts.openshift.io/oauth-redirectreference.primary: '{"kind":"OAuthRedirectReference","apiVersion":"v1","reference":{"kind":"Route","name":"grafana"}}' labels: app: grafana chart: grafana heritage: Tiller maistra-version: 1.0.0 release: istio } {Name:istio/charts/grafana/templates/ingress.yaml Content:apiVersion: route.openshift.io/v1 kind: Route metadata: name: grafana namespace: istio-system labels: app: grafana chart: grafana heritage: Tiller maistra-version: 1.0.0 release: istio annotations: spec: to: kind: Service name: grafana tls: termination: reencrypt } {Name:istio/charts/grafana/templates/service.yaml Content:apiVersion: v1 kind: Service metadata: name: grafana namespace: istio-system annotations: service.alpha.openshift.io/serving-cert-secret-name: "grafana-tls" labels: app: grafana chart: grafana heritage: Tiller maistra-version: 1.0.0 release: istio spec: type: ClusterIP ports: - port: 3000 targetPort: 3001 protocol: TCP name: http selector: app: grafana } {Name:istio/charts/grafana/templates/deployment.yaml Content:apiVersion: extensions/v1beta1 kind: Deployment metadata: name: grafana namespace: istio-system labels: app: grafana chart: grafana heritage: Tiller maistra-version: 1.0.0 release: istio spec: replicas: 1 template: metadata: labels: app: grafana chart: grafana heritage: Tiller maistra-version: 1.0.0 maistra-control-plane: istio-system release: istio annotations: sidecar.istio.io/inject: "false" spec: serviceAccountName: grafana containers: # OAuth proxy - name: grafana-proxy image: registry.redhat.io/openshift4/ose-oauth-proxy:4.1 imagePullPolicy: IfNotPresent ports: - containerPort: 3001 name: https protocol: TCP readinessProbe: failureThreshold: 3 periodSeconds: 10 successThreshold: 1 tcpSocket: port: https timeoutSeconds: 1 resources: {} terminationMessagePath: /dev/termination-log terminationMessagePolicy: File volumeMounts: - mountPath: /etc/tls/private name: secret-grafana-tls - mountPath: /etc/proxy/htpasswd name: secret-htpasswd args: - -provider=openshift - -https-address=:3001 - -http-address= - -email-domain=* - -upstream=http://localhost:3000 - -htpasswd-file=/etc/proxy/htpasswd/auth - -display-htpasswd-form=false - '-openshift-sar={"namespace": "istio-system", "resource": "pods", "verb": "get"}' - -client-secret-file=/var/run/secrets/kubernetes.io/serviceaccount/token - -openshift-service-account=grafana - -cookie-secret=SECRET - -tls-cert=/etc/tls/private/tls.crt - -tls-key=/etc/tls/private/tls.key - -openshift-ca=/etc/pki/tls/cert.pem - -openshift-ca=/var/run/secrets/kubernetes.io/serviceaccount/ca.crt - name: grafana image: "quay.io/maistra/grafana-rhel8:latest-qe" imagePullPolicy: IfNotPresent ports: - containerPort: 3000 readinessProbe: httpGet: path: /login port: 3000 env: - name: GRAFANA_PORT value: "3000" - name: GF_AUTH_BASIC_ENABLED value: "false" - name: GF_AUTH_PROXY_ENABLED value: "true" - name: GF_AUTH_PROXY_AUTO_SIGN_UP value: "true" - name: GF_AUTH_PROXY_WHITELIST value: 127.0.0.0/24,::1 - name: GF_AUTH_PROXY_HEADERS value: Email:X-Forwarded-Email - name: GF_AUTH_PROXY_HEADER_NAME value: X-Forwarded-User - name: GF_USERS_AUTO_ASSIGN_ORG_ROLE value: Admin - name: GF_PATHS_DATA value: /data/grafana resources: requests: cpu: 10m volumeMounts: - name: data mountPath: /data/grafana - name: dashboards-istio-galley-dashboard mountPath: "/var/lib/grafana/dashboards/istio/galley-dashboard.json" subPath: galley-dashboard.json readOnly: true - name: dashboards-istio-istio-mesh-dashboard mountPath: "/var/lib/grafana/dashboards/istio/istio-mesh-dashboard.json" subPath: istio-mesh-dashboard.json readOnly: true - name: dashboards-istio-istio-performance-dashboard mountPath: "/var/lib/grafana/dashboards/istio/istio-performance-dashboard.json" subPath: istio-performance-dashboard.json readOnly: true - name: dashboards-istio-istio-service-dashboard mountPath: "/var/lib/grafana/dashboards/istio/istio-service-dashboard.json" subPath: istio-service-dashboard.json readOnly: true - name: dashboards-istio-istio-workload-dashboard mountPath: "/var/lib/grafana/dashboards/istio/istio-workload-dashboard.json" subPath: istio-workload-dashboard.json readOnly: true - name: dashboards-istio-mixer-dashboard mountPath: "/var/lib/grafana/dashboards/istio/mixer-dashboard.json" subPath: mixer-dashboard.json readOnly: true - name: dashboards-istio-pilot-dashboard mountPath: "/var/lib/grafana/dashboards/istio/pilot-dashboard.json" subPath: pilot-dashboard.json readOnly: true - name: config mountPath: "/etc/grafana/provisioning/datasources/datasources.yaml" subPath: datasources.yaml - name: config mountPath: "/etc/grafana/provisioning/dashboards/dashboardproviders.yaml" subPath: dashboardproviders.yaml affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - amd64 - ppc64le - s390x preferredDuringSchedulingIgnoredDuringExecution: - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - amd64 - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - ppc64le - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - s390x volumes: # OAuth proxy - name: secret-grafana-tls secret: defaultMode: 420 secretName: grafana-tls - name: secret-htpasswd secret: defaultMode: 420 secretName: htpasswd - name: config configMap: name: istio-grafana - name: data emptyDir: {} - name: dashboards-istio-galley-dashboard configMap: name: istio-grafana-configuration-dashboards-galley-dashboard - name: dashboards-istio-istio-mesh-dashboard configMap: name: istio-grafana-configuration-dashboards-istio-mesh-dashboard - name: dashboards-istio-istio-performance-dashboard configMap: name: istio-grafana-configuration-dashboards-istio-performance-dashboard - name: dashboards-istio-istio-service-dashboard configMap: name: istio-grafana-configuration-dashboards-istio-service-dashboard - name: dashboards-istio-istio-workload-dashboard configMap: name: istio-grafana-configuration-dashboards-istio-workload-dashboard - name: dashboards-istio-mixer-dashboard configMap: name: istio-grafana-configuration-dashboards-mixer-dashboard - name: dashboards-istio-pilot-dashboard configMap: name: istio-grafana-configuration-dashboards-pilot-dashboard } {Name:istio/charts/grafana/templates/networkpolicy.yaml Content:# This is to support routes on ocp 3.11 installs apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: istio-grafana-ingress namespace: istio-system labels: app: grafana chart: grafana heritage: Tiller maistra-version: 1.0.0 release: istio annotations: "maistra.io/internal": "true" spec: podSelector: matchLabels: app: grafana ingress: - ports: port: 3001 } {Name:istio/charts/grafana/templates/grafana-ports-mtls.yaml Content:apiVersion: authentication.istio.io/v1alpha1 kind: Policy metadata: name: grafana-ports-mtls-disabled namespace: istio-system labels: app: grafana chart: grafana heritage: Tiller maistra-version: 1.0.0 release: istio spec: targets: - name: grafana ports: - number: 3000 } {Name:istio/charts/grafana/templates/pvc.yaml Content: } {Name:istio/charts/grafana/templates/tests/test-grafana-connection.yaml Content: }] istio/charts/kiali:[{Name:istio/charts/kiali/templates/secret.yaml Content: # this is like the old demo secret enabled by .Values.createDemoSecret apiVersion: v1 kind: Secret metadata: name: kiali namespace: istio-system labels: app: kiali chart: kiali heritage: Tiller maistra-version: 1.0.0 release: istio data: username: YWRtaW4= passphrase: YWRtaW4= } {Name:istio/charts/kiali/templates/kiali-cr.yaml Content:apiVersion: kiali.io/v1alpha1 kind: Kiali metadata: name: kiali namespace: istio-system spec: installation_tag: "Kiali [istio-system]" istio_namespace: "istio-system" auth: strategy: "login" deployment: accessible_namespaces: - "istio-system" image_name: "quay.io/maistra/kiali" image_pull_policy: "IfNotPresent" image_version: "1.0.0" ingress_enabled: true namespace: "istio-system" secret_name: "kiali" version_label: "1.0.0" view_only_mode: false external_services: grafana: auth: ca_file: "/var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt" type: "basic" use_kiali_token: false username: "internal" password: "" enabled: true in_cluster_url: "https://grafana.istio-system.svc:3000" url: "" prometheus: auth: ca_file: "/var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt" type: "basic" use_kiali_token: false username: "internal" password: "" url: "https://prometheus.istio-system.svc:9090" tracing: auth: ca_file: "/var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt" type: "basic" use_kiali_token: false username: "internal" password: "" enabled: true namespace: "istio-system" service : "" url: "" server: web_root: "/kiali" } {Name:istio/charts/kiali/templates/networkpolicy.yaml Content:# This is to support routes on ocp 3.11 installs apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: istio-kiali-ingress namespace: istio-system labels: app: kiali chart: kiali heritage: Tiller maistra-version: 1.0.0 release: istio annotations: "maistra.io/internal": "true" spec: podSelector: matchLabels: app: kiali ingress: - ports: port: 20001 } {Name:istio/charts/kiali/templates/tests/test-kiali-connection.yaml Content: }] istio/charts/mixer:[{Name:istio/charts/mixer/templates/serviceaccount.yaml Content: apiVersion: v1 kind: ServiceAccount metadata: name: istio-mixer-service-account namespace: istio-system labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio } {Name:istio/charts/mixer/templates/clusterrole.yaml Content: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: istio-mixer-istio-system labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio rules: - apiGroups: ["config.istio.io"] # istio CRD watcher resources: ["*"] verbs: ["create", "get", "list", "watch", "patch"] - apiGroups: ["maistra.io"] resources: ["servicemeshmemberrolls"] verbs: ["get", "list", "watch"] - apiGroups: [""] resources: ["configmaps", "endpoints", "pods", "services", "namespaces", "secrets", "replicationcontrollers"] verbs: ["get", "list", "watch"] - apiGroups: ["extensions", "apps"] resources: ["replicasets"] verbs: ["get", "list", "watch"] } {Name:istio/charts/mixer/templates/clusterrolebinding.yaml Content: apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: istio-mixer-admin-role-binding-istio-system namespace: istio-system labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: istio-mixer-istio-system subjects: - kind: ServiceAccount name: istio-mixer-service-account namespace: istio-system } {Name:istio/charts/mixer/templates/service.yaml Content: apiVersion: v1 kind: Service metadata: name: istio-policy namespace: istio-system annotations: networking.istio.io/exportTo: "*" labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio istio: mixer spec: ports: - name: grpc-mixer port: 9091 - name: grpc-mixer-mtls port: 15004 - name: http-monitoring port: 15014 selector: istio: mixer istio-mixer-type: policy --- apiVersion: v1 kind: Service metadata: name: istio-telemetry namespace: istio-system annotations: networking.istio.io/exportTo: "*" labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio istio: mixer spec: ports: - name: grpc-mixer port: 9091 - name: grpc-mixer-mtls port: 15004 - name: http-monitoring port: 15014 - name: prometheus port: 42422 selector: istio: mixer istio-mixer-type: telemetry --- } {Name:istio/charts/mixer/templates/deployment.yaml Content: apiVersion: extensions/v1beta1 kind: Deployment metadata: name: istio-policy namespace: istio-system labels: app: istio-mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio istio: mixer spec: replicas: 1 strategy: rollingUpdate: maxSurge: 1 maxUnavailable: 0 selector: matchLabels: istio: mixer istio-mixer-type: policy template: metadata: labels: app: policy chart: mixer heritage: Tiller maistra-version: 1.0.0 maistra-control-plane: istio-system release: istio istio: mixer istio-mixer-type: policy annotations: sidecar.istio.io/inject: "false" spec: serviceAccountName: istio-mixer-service-account volumes: - name: istio-certs secret: secretName: istio.istio-mixer-service-account optional: true - name: uds-socket emptyDir: {} - name: policy-adapter-secret secret: secretName: policy-adapter-secret optional: true affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - amd64 - ppc64le - s390x preferredDuringSchedulingIgnoredDuringExecution: - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - amd64 - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - ppc64le - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - s390x containers: - name: mixer image: "quay.io/maistra/mixer-rhel8:latest-qe" imagePullPolicy: IfNotPresent ports: - containerPort: 15014 - containerPort: 42422 args: - --memberRollName=default - --memberRollNamespace=istio-system - --monitoringPort=15014 - --address - unix:///sock/mixer.socket - --log_output_level=default:info - --configStoreURL=mcp://istio-galley.istio-system.svc:9901 - --configDefaultNamespace=istio-system - --useAdapterCRDs=true - --trace_zipkin_url=http://zipkin:9411/api/v1/spans env: - name: GODEBUG value: "" - name: GOMAXPROCS value: "6" resources: requests: cpu: 10m volumeMounts: - name: istio-certs mountPath: /etc/certs readOnly: true - name: uds-socket mountPath: /sock livenessProbe: httpGet: path: /version port: 15014 initialDelaySeconds: 5 periodSeconds: 5 - name: istio-proxy image: "quay.io/maistra/proxyv2-rhel8:latest-qe" imagePullPolicy: IfNotPresent ports: - containerPort: 9091 - containerPort: 15004 - containerPort: 15090 protocol: TCP name: http-envoy-prom args: - proxy - --domain - $(POD_NAMESPACE).svc.cluster.local - --serviceCluster - istio-policy - --templateFile - /etc/istio/proxy/envoy_policy.yaml.tmpl - --controlPlaneAuthPolicy - NONE env: - name: POD_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.name - name: POD_NAMESPACE valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.namespace - name: INSTANCE_IP valueFrom: fieldRef: apiVersion: v1 fieldPath: status.podIP resources: limits: cpu: 501m memory: 128Mi requests: cpu: 100m memory: 128Mi volumeMounts: - name: istio-certs mountPath: /etc/certs readOnly: true - name: uds-socket mountPath: /sock - name: policy-adapter-secret mountPath: /var/run/secrets/istio.io/policy/adapter readOnly: true --- apiVersion: extensions/v1beta1 kind: Deployment metadata: name: istio-telemetry namespace: istio-system labels: app: istio-mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio istio: mixer spec: replicas: 1 strategy: rollingUpdate: maxSurge: 1 maxUnavailable: 0 selector: matchLabels: istio: mixer istio-mixer-type: telemetry template: metadata: labels: app: telemetry chart: mixer heritage: Tiller maistra-version: 1.0.0 maistra-control-plane: istio-system release: istio istio: mixer istio-mixer-type: telemetry annotations: sidecar.istio.io/inject: "false" spec: serviceAccountName: istio-mixer-service-account volumes: - name: istio-certs secret: secretName: istio.istio-mixer-service-account optional: true - name: uds-socket emptyDir: {} - name: telemetry-adapter-secret secret: secretName: telemetry-adapter-secret optional: true affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - amd64 - ppc64le - s390x preferredDuringSchedulingIgnoredDuringExecution: - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - amd64 - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - ppc64le - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - s390x containers: - name: mixer image: "quay.io/maistra/mixer-rhel8:latest-qe" imagePullPolicy: IfNotPresent ports: - containerPort: 15014 - containerPort: 42422 args: - --memberRollName=default - --memberRollNamespace=istio-system - --monitoringPort=15014 - --address - unix:///sock/mixer.socket - --log_output_level=default:info - --configStoreURL=mcp://istio-galley.istio-system.svc:9901 - --configDefaultNamespace=istio-system - --useAdapterCRDs=true - --trace_zipkin_url=http://zipkin:9411/api/v1/spans - --averageLatencyThreshold - 100ms - --loadsheddingMode - enforce env: - name: POD_NAMESPACE valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.namespace - name: GODEBUG value: "" - name: GOMAXPROCS value: "6" resources: limits: cpu: 500m memory: 4G requests: cpu: 100m memory: 1G volumeMounts: - name: istio-certs mountPath: /etc/certs readOnly: true - name: telemetry-adapter-secret mountPath: /var/run/secrets/istio.io/telemetry/adapter readOnly: true - name: uds-socket mountPath: /sock livenessProbe: httpGet: path: /version port: 15014 initialDelaySeconds: 5 periodSeconds: 5 - name: istio-proxy image: "quay.io/maistra/proxyv2-rhel8:latest-qe" imagePullPolicy: IfNotPresent ports: - containerPort: 9091 - containerPort: 15004 - containerPort: 15090 protocol: TCP name: http-envoy-prom args: - proxy - --domain - $(POD_NAMESPACE).svc.cluster.local - --serviceCluster - istio-telemetry - --templateFile - /etc/istio/proxy/envoy_telemetry.yaml.tmpl - --controlPlaneAuthPolicy - NONE env: - name: POD_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.name - name: POD_NAMESPACE valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.namespace - name: INSTANCE_IP valueFrom: fieldRef: apiVersion: v1 fieldPath: status.podIP resources: limits: cpu: 501m memory: 128Mi requests: cpu: 100m memory: 128Mi volumeMounts: - name: istio-certs mountPath: /etc/certs readOnly: true - name: uds-socket mountPath: /sock --- } {Name:istio/charts/mixer/templates/poddisruptionbudget.yaml Content: apiVersion: policy/v1beta1 kind: PodDisruptionBudget metadata: name: istio-policy namespace: istio-system labels: app: policy chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio version: 1.1.0 istio: mixer istio-mixer-type: policy spec: minAvailable: 1 selector: matchLabels: app: policy maistra-version: 1.0.0 release: istio istio: mixer istio-mixer-type: policy --- apiVersion: policy/v1beta1 kind: PodDisruptionBudget metadata: name: istio-telemetry namespace: istio-system labels: app: telemetry chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio version: 1.1.0 istio: mixer istio-mixer-type: telemetry spec: minAvailable: 1 selector: matchLabels: app: telemetry maistra-version: 1.0.0 release: istio istio: mixer istio-mixer-type: telemetry --- } {Name:istio/charts/mixer/templates/autoscale.yaml Content: } {Name:istio/charts/mixer/templates/config.yaml Content: apiVersion: "config.istio.io/v1alpha2" kind: attributemanifest metadata: name: istioproxy namespace: istio-system labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio spec: attributes: origin.ip: valueType: IP_ADDRESS origin.uid: valueType: STRING origin.user: valueType: STRING request.headers: valueType: STRING_MAP request.id: valueType: STRING request.host: valueType: STRING request.method: valueType: STRING request.path: valueType: STRING request.url_path: valueType: STRING request.query_params: valueType: STRING_MAP request.reason: valueType: STRING request.referer: valueType: STRING request.scheme: valueType: STRING request.total_size: valueType: INT64 request.size: valueType: INT64 request.time: valueType: TIMESTAMP request.useragent: valueType: STRING response.code: valueType: INT64 response.duration: valueType: DURATION response.headers: valueType: STRING_MAP response.total_size: valueType: INT64 response.size: valueType: INT64 response.time: valueType: TIMESTAMP response.grpc_status: valueType: STRING response.grpc_message: valueType: STRING source.uid: valueType: STRING source.user: # DEPRECATED valueType: STRING source.principal: valueType: STRING destination.uid: valueType: STRING destination.principal: valueType: STRING destination.port: valueType: INT64 connection.event: valueType: STRING connection.id: valueType: STRING connection.received.bytes: valueType: INT64 connection.received.bytes_total: valueType: INT64 connection.sent.bytes: valueType: INT64 connection.sent.bytes_total: valueType: INT64 connection.duration: valueType: DURATION connection.mtls: valueType: BOOL connection.requested_server_name: valueType: STRING context.protocol: valueType: STRING context.proxy_error_code: valueType: STRING context.timestamp: valueType: TIMESTAMP context.time: valueType: TIMESTAMP # Deprecated, kept for compatibility context.reporter.local: valueType: BOOL context.reporter.kind: valueType: STRING context.reporter.uid: valueType: STRING api.service: valueType: STRING api.version: valueType: STRING api.operation: valueType: STRING api.protocol: valueType: STRING request.auth.principal: valueType: STRING request.auth.audiences: valueType: STRING request.auth.presenter: valueType: STRING request.auth.claims: valueType: STRING_MAP request.auth.raw_claims: valueType: STRING request.api_key: valueType: STRING rbac.permissive.response_code: valueType: STRING rbac.permissive.effective_policy_id: valueType: STRING check.error_code: valueType: INT64 check.error_message: valueType: STRING check.cache_hit: valueType: BOOL quota.cache_hit: valueType: BOOL --- apiVersion: "config.istio.io/v1alpha2" kind: attributemanifest metadata: name: kubernetes namespace: istio-system labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio spec: attributes: source.ip: valueType: IP_ADDRESS source.labels: valueType: STRING_MAP source.metadata: valueType: STRING_MAP source.name: valueType: STRING source.namespace: valueType: STRING source.owner: valueType: STRING source.serviceAccount: valueType: STRING source.services: valueType: STRING source.workload.uid: valueType: STRING source.workload.name: valueType: STRING source.workload.namespace: valueType: STRING destination.ip: valueType: IP_ADDRESS destination.labels: valueType: STRING_MAP destination.metadata: valueType: STRING_MAP destination.owner: valueType: STRING destination.name: valueType: STRING destination.container.name: valueType: STRING destination.namespace: valueType: STRING destination.service.uid: valueType: STRING destination.service.name: valueType: STRING destination.service.namespace: valueType: STRING destination.service.host: valueType: STRING destination.serviceAccount: valueType: STRING destination.workload.uid: valueType: STRING destination.workload.name: valueType: STRING destination.workload.namespace: valueType: STRING --- --- apiVersion: "config.istio.io/v1alpha2" kind: metric metadata: name: requestcount namespace: istio-system labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio spec: value: "1" dimensions: reporter: conditional((context.reporter.kind | "inbound") == "outbound", "source", "destination") source_workload: source.workload.name | "unknown" source_workload_namespace: source.workload.namespace | "unknown" source_principal: source.principal | "unknown" source_app: source.labels["app"] | "unknown" source_version: source.labels["version"] | "unknown" destination_workload: destination.workload.name | "unknown" destination_workload_namespace: destination.workload.namespace | "unknown" destination_principal: destination.principal | "unknown" destination_app: destination.labels["app"] | "unknown" destination_version: destination.labels["version"] | "unknown" destination_service: destination.service.host | "unknown" destination_service_name: destination.service.name | "unknown" destination_service_namespace: destination.service.namespace | "unknown" request_protocol: api.protocol | context.protocol | "unknown" response_code: response.code | 200 response_flags: context.proxy_error_code | "-" permissive_response_code: rbac.permissive.response_code | "none" permissive_response_policyid: rbac.permissive.effective_policy_id | "none" connection_security_policy: conditional((context.reporter.kind | "inbound") == "outbound", "unknown", conditional(connection.mtls | false, "mutual_tls", "none")) monitored_resource_type: '"UNSPECIFIED"' --- apiVersion: "config.istio.io/v1alpha2" kind: metric metadata: name: requestduration namespace: istio-system labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio spec: value: response.duration | "0ms" dimensions: reporter: conditional((context.reporter.kind | "inbound") == "outbound", "source", "destination") source_workload: source.workload.name | "unknown" source_workload_namespace: source.workload.namespace | "unknown" source_principal: source.principal | "unknown" source_app: source.labels["app"] | "unknown" source_version: source.labels["version"] | "unknown" destination_workload: destination.workload.name | "unknown" destination_workload_namespace: destination.workload.namespace | "unknown" destination_principal: destination.principal | "unknown" destination_app: destination.labels["app"] | "unknown" destination_version: destination.labels["version"] | "unknown" destination_service: destination.service.host | "unknown" destination_service_name: destination.service.name | "unknown" destination_service_namespace: destination.service.namespace | "unknown" request_protocol: api.protocol | context.protocol | "unknown" response_code: response.code | 200 response_flags: context.proxy_error_code | "-" permissive_response_code: rbac.permissive.response_code | "none" permissive_response_policyid: rbac.permissive.effective_policy_id | "none" connection_security_policy: conditional((context.reporter.kind | "inbound") == "outbound", "unknown", conditional(connection.mtls | false, "mutual_tls", "none")) monitored_resource_type: '"UNSPECIFIED"' --- apiVersion: "config.istio.io/v1alpha2" kind: metric metadata: name: requestsize namespace: istio-system labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio spec: value: request.size | 0 dimensions: reporter: conditional((context.reporter.kind | "inbound") == "outbound", "source", "destination") source_workload: source.workload.name | "unknown" source_workload_namespace: source.workload.namespace | "unknown" source_principal: source.principal | "unknown" source_app: source.labels["app"] | "unknown" source_version: source.labels["version"] | "unknown" destination_workload: destination.workload.name | "unknown" destination_workload_namespace: destination.workload.namespace | "unknown" destination_principal: destination.principal | "unknown" destination_app: destination.labels["app"] | "unknown" destination_version: destination.labels["version"] | "unknown" destination_service: destination.service.host | "unknown" destination_service_name: destination.service.name | "unknown" destination_service_namespace: destination.service.namespace | "unknown" request_protocol: api.protocol | context.protocol | "unknown" response_code: response.code | 200 response_flags: context.proxy_error_code | "-" permissive_response_code: rbac.permissive.response_code | "none" permissive_response_policyid: rbac.permissive.effective_policy_id | "none" connection_security_policy: conditional((context.reporter.kind | "inbound") == "outbound", "unknown", conditional(connection.mtls | false, "mutual_tls", "none")) monitored_resource_type: '"UNSPECIFIED"' --- apiVersion: "config.istio.io/v1alpha2" kind: metric metadata: name: responsesize namespace: istio-system labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio spec: value: response.size | 0 dimensions: reporter: conditional((context.reporter.kind | "inbound") == "outbound", "source", "destination") source_workload: source.workload.name | "unknown" source_workload_namespace: source.workload.namespace | "unknown" source_principal: source.principal | "unknown" source_app: source.labels["app"] | "unknown" source_version: source.labels["version"] | "unknown" destination_workload: destination.workload.name | "unknown" destination_workload_namespace: destination.workload.namespace | "unknown" destination_principal: destination.principal | "unknown" destination_app: destination.labels["app"] | "unknown" destination_version: destination.labels["version"] | "unknown" destination_service: destination.service.host | "unknown" destination_service_name: destination.service.name | "unknown" destination_service_namespace: destination.service.namespace | "unknown" request_protocol: api.protocol | context.protocol | "unknown" response_code: response.code | 200 response_flags: context.proxy_error_code | "-" permissive_response_code: rbac.permissive.response_code | "none" permissive_response_policyid: rbac.permissive.effective_policy_id | "none" connection_security_policy: conditional((context.reporter.kind | "inbound") == "outbound", "unknown", conditional(connection.mtls | false, "mutual_tls", "none")) monitored_resource_type: '"UNSPECIFIED"' --- apiVersion: "config.istio.io/v1alpha2" kind: metric metadata: name: tcpbytesent namespace: istio-system labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio spec: value: connection.sent.bytes | 0 dimensions: reporter: conditional((context.reporter.kind | "inbound") == "outbound", "source", "destination") source_workload: source.workload.name | "unknown" source_workload_namespace: source.workload.namespace | "unknown" source_principal: source.principal | "unknown" source_app: source.labels["app"] | "unknown" source_version: source.labels["version"] | "unknown" destination_workload: destination.workload.name | "unknown" destination_workload_namespace: destination.workload.namespace | "unknown" destination_principal: destination.principal | "unknown" destination_app: destination.labels["app"] | "unknown" destination_version: destination.labels["version"] | "unknown" destination_service: destination.service.host | "unknown" destination_service_name: destination.service.name | "unknown" destination_service_namespace: destination.service.namespace | "unknown" connection_security_policy: conditional((context.reporter.kind | "inbound") == "outbound", "unknown", conditional(connection.mtls | false, "mutual_tls", "none")) response_flags: context.proxy_error_code | "-" monitored_resource_type: '"UNSPECIFIED"' --- apiVersion: "config.istio.io/v1alpha2" kind: metric metadata: name: tcpbytereceived namespace: istio-system labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio spec: value: connection.received.bytes | 0 dimensions: reporter: conditional((context.reporter.kind | "inbound") == "outbound", "source", "destination") source_workload: source.workload.name | "unknown" source_workload_namespace: source.workload.namespace | "unknown" source_principal: source.principal | "unknown" source_app: source.labels["app"] | "unknown" source_version: source.labels["version"] | "unknown" destination_workload: destination.workload.name | "unknown" destination_workload_namespace: destination.workload.namespace | "unknown" destination_principal: destination.principal | "unknown" destination_app: destination.labels["app"] | "unknown" destination_version: destination.labels["version"] | "unknown" destination_service: destination.service.host | "unknown" destination_service_name: destination.service.name | "unknown" destination_service_namespace: destination.service.namespace | "unknown" connection_security_policy: conditional((context.reporter.kind | "inbound") == "outbound", "unknown", conditional(connection.mtls | false, "mutual_tls", "none")) response_flags: context.proxy_error_code | "-" monitored_resource_type: '"UNSPECIFIED"' --- apiVersion: "config.istio.io/v1alpha2" kind: metric metadata: name: tcpconnectionsopened namespace: istio-system labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio spec: value: "1" dimensions: reporter: conditional((context.reporter.kind | "inbound") == "outbound", "source", "destination") source_workload: source.workload.name | "unknown" source_workload_namespace: source.workload.namespace | "unknown" source_principal: source.principal | "unknown" source_app: source.labels["app"] | "unknown" source_version: source.labels["version"] | "unknown" destination_workload: destination.workload.name | "unknown" destination_workload_namespace: destination.workload.namespace | "unknown" destination_principal: destination.principal | "unknown" destination_app: destination.labels["app"] | "unknown" destination_version: destination.labels["version"] | "unknown" destination_service: destination.service.name | "unknown" destination_service_name: destination.service.name | "unknown" destination_service_namespace: destination.service.namespace | "unknown" connection_security_policy: conditional((context.reporter.kind | "inbound") == "outbound", "unknown", conditional(connection.mtls | false, "mutual_tls", "none")) response_flags: context.proxy_error_code | "-" monitored_resource_type: '"UNSPECIFIED"' --- apiVersion: "config.istio.io/v1alpha2" kind: metric metadata: name: tcpconnectionsclosed namespace: istio-system labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio spec: value: "1" dimensions: reporter: conditional((context.reporter.kind | "inbound") == "outbound", "source", "destination") source_workload: source.workload.name | "unknown" source_workload_namespace: source.workload.namespace | "unknown" source_principal: source.principal | "unknown" source_app: source.labels["app"] | "unknown" source_version: source.labels["version"] | "unknown" destination_workload: destination.workload.name | "unknown" destination_workload_namespace: destination.workload.namespace | "unknown" destination_principal: destination.principal | "unknown" destination_app: destination.labels["app"] | "unknown" destination_version: destination.labels["version"] | "unknown" destination_service: destination.service.name | "unknown" destination_service_name: destination.service.name | "unknown" destination_service_namespace: destination.service.namespace | "unknown" connection_security_policy: conditional((context.reporter.kind | "inbound") == "outbound", "unknown", conditional(connection.mtls | false, "mutual_tls", "none")) response_flags: context.proxy_error_code | "-" monitored_resource_type: '"UNSPECIFIED"' --- apiVersion: "config.istio.io/v1alpha2" kind: handler metadata: name: prometheus namespace: istio-system labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio spec: compiledAdapter: prometheus params: metricsExpirationPolicy: metricsExpiryDuration: "10m" metrics: - name: requests_total instance_name: requestcount.metric.istio-system kind: COUNTER label_names: - reporter - source_app - source_principal - source_workload - source_workload_namespace - source_version - destination_app - destination_principal - destination_workload - destination_workload_namespace - destination_version - destination_service - destination_service_name - destination_service_namespace - request_protocol - response_code - response_flags - permissive_response_code - permissive_response_policyid - connection_security_policy - name: request_duration_seconds instance_name: requestduration.metric.istio-system kind: DISTRIBUTION label_names: - reporter - source_app - source_principal - source_workload - source_workload_namespace - source_version - destination_app - destination_principal - destination_workload - destination_workload_namespace - destination_version - destination_service - destination_service_name - destination_service_namespace - request_protocol - response_code - response_flags - permissive_response_code - permissive_response_policyid - connection_security_policy buckets: explicit_buckets: bounds: [0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 10] - name: request_bytes instance_name: requestsize.metric.istio-system kind: DISTRIBUTION label_names: - reporter - source_app - source_principal - source_workload - source_workload_namespace - source_version - destination_app - destination_principal - destination_workload - destination_workload_namespace - destination_version - destination_service - destination_service_name - destination_service_namespace - request_protocol - response_code - response_flags - permissive_response_code - permissive_response_policyid - connection_security_policy buckets: exponentialBuckets: numFiniteBuckets: 8 scale: 1 growthFactor: 10 - name: response_bytes instance_name: responsesize.metric.istio-system kind: DISTRIBUTION label_names: - reporter - source_app - source_principal - source_workload - source_workload_namespace - source_version - destination_app - destination_principal - destination_workload - destination_workload_namespace - destination_version - destination_service - destination_service_name - destination_service_namespace - request_protocol - response_code - response_flags - permissive_response_code - permissive_response_policyid - connection_security_policy buckets: exponentialBuckets: numFiniteBuckets: 8 scale: 1 growthFactor: 10 - name: tcp_sent_bytes_total instance_name: tcpbytesent.metric.istio-system kind: COUNTER label_names: - reporter - source_app - source_principal - source_workload - source_workload_namespace - source_version - destination_app - destination_principal - destination_workload - destination_workload_namespace - destination_version - destination_service - destination_service_name - destination_service_namespace - connection_security_policy - response_flags - name: tcp_received_bytes_total instance_name: tcpbytereceived.metric.istio-system kind: COUNTER label_names: - reporter - source_app - source_principal - source_workload - source_workload_namespace - source_version - destination_app - destination_principal - destination_workload - destination_workload_namespace - destination_version - destination_service - destination_service_name - destination_service_namespace - connection_security_policy - response_flags - name: tcp_connections_opened_total instance_name: tcpconnectionsopened.metric.istio-system kind: COUNTER label_names: - reporter - source_app - source_principal - source_workload - source_workload_namespace - source_version - destination_app - destination_principal - destination_workload - destination_workload_namespace - destination_version - destination_service - destination_service_name - destination_service_namespace - connection_security_policy - response_flags - name: tcp_connections_closed_total instance_name: tcpconnectionsclosed.metric.istio-system kind: COUNTER label_names: - reporter - source_app - source_principal - source_workload - source_workload_namespace - source_version - destination_app - destination_principal - destination_workload - destination_workload_namespace - destination_version - destination_service - destination_service_name - destination_service_namespace - connection_security_policy - response_flags --- apiVersion: "config.istio.io/v1alpha2" kind: rule metadata: name: promhttp namespace: istio-system labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio spec: match: (context.protocol == "http" || context.protocol == "grpc") && (match((request.useragent | "-"), "kube-probe*") == false) && (match((request.useragent | "-"), "Prometheus*") == false) actions: - handler: prometheus instances: - requestcount.metric - requestduration.metric - requestsize.metric - responsesize.metric --- apiVersion: "config.istio.io/v1alpha2" kind: rule metadata: name: promtcp namespace: istio-system labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio spec: match: context.protocol == "tcp" actions: - handler: prometheus instances: - tcpbytesent.metric - tcpbytereceived.metric --- apiVersion: "config.istio.io/v1alpha2" kind: rule metadata: name: promtcpconnectionopen namespace: istio-system labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio spec: match: context.protocol == "tcp" && ((connection.event | "na") == "open") actions: - handler: prometheus instances: - tcpconnectionsopened.metric --- apiVersion: "config.istio.io/v1alpha2" kind: rule metadata: name: promtcpconnectionclosed namespace: istio-system labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio spec: match: context.protocol == "tcp" && ((connection.event | "na") == "close") actions: - handler: prometheus instances: - tcpconnectionsclosed.metric --- apiVersion: "config.istio.io/v1alpha2" kind: handler metadata: name: kubernetesenv namespace: istio-system labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio spec: compiledAdapter: kubernetesenv params: # when running from mixer root, use the following config after adding a # symbolic link to a kubernetes config file via: # # $ ln -s ~/.kube/config mixer/adapter/kubernetes/kubeconfig # # kubeconfig_path: "mixer/adapter/kubernetes/kubeconfig" --- apiVersion: "config.istio.io/v1alpha2" kind: rule metadata: name: kubeattrgenrulerule namespace: istio-system labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio spec: actions: - handler: kubernetesenv instances: - attributes.kubernetes --- apiVersion: "config.istio.io/v1alpha2" kind: rule metadata: name: tcpkubeattrgenrulerule namespace: istio-system labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio spec: match: context.protocol == "tcp" actions: - handler: kubernetesenv instances: - attributes.kubernetes --- apiVersion: "config.istio.io/v1alpha2" kind: kubernetes metadata: name: attributes namespace: istio-system labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio spec: # Pass the required attribute data to the adapter source_uid: source.uid | "" source_ip: source.ip | ip("0.0.0.0") # default to unspecified ip addr destination_uid: destination.uid | "" destination_port: destination.port | 0 attribute_bindings: # Fill the new attributes from the adapter produced output. # $out refers to an instance of OutputTemplate message source.ip: $out.source_pod_ip | ip("0.0.0.0") source.uid: $out.source_pod_uid | "unknown" source.labels: $out.source_labels | emptyStringMap() source.name: $out.source_pod_name | "unknown" source.namespace: $out.source_namespace | "default" source.owner: $out.source_owner | "unknown" source.serviceAccount: $out.source_service_account_name | "unknown" source.workload.uid: $out.source_workload_uid | "unknown" source.workload.name: $out.source_workload_name | "unknown" source.workload.namespace: $out.source_workload_namespace | "unknown" destination.ip: $out.destination_pod_ip | ip("0.0.0.0") destination.uid: $out.destination_pod_uid | "unknown" destination.labels: $out.destination_labels | emptyStringMap() destination.name: $out.destination_pod_name | "unknown" destination.container.name: $out.destination_container_name | "unknown" destination.namespace: $out.destination_namespace | "default" destination.owner: $out.destination_owner | "unknown" destination.serviceAccount: $out.destination_service_account_name | "unknown" destination.workload.uid: $out.destination_workload_uid | "unknown" destination.workload.name: $out.destination_workload_name | "unknown" destination.workload.namespace: $out.destination_workload_namespace | "unknown" --- # Configuration needed by Mixer. # Mixer cluster is delivered via CDS # Specify mixer cluster settings apiVersion: networking.istio.io/v1alpha3 kind: DestinationRule metadata: name: istio-policy namespace: istio-system labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio spec: host: istio-policy.istio-system.svc.cluster.local trafficPolicy: connectionPool: http: http2MaxRequests: 10000 maxRequestsPerConnection: 10000 --- apiVersion: networking.istio.io/v1alpha3 kind: DestinationRule metadata: name: istio-telemetry namespace: istio-system labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio spec: host: istio-telemetry.istio-system.svc.cluster.local trafficPolicy: connectionPool: http: http2MaxRequests: 10000 maxRequestsPerConnection: 10000 --- }] istio/charts/pilot:[{Name:istio/charts/pilot/templates/serviceaccount.yaml Content:apiVersion: v1 kind: ServiceAccount metadata: name: istio-pilot-service-account namespace: istio-system labels: app: pilot chart: pilot heritage: Tiller maistra-version: 1.0.0 release: istio } {Name:istio/charts/pilot/templates/clusterrole.yaml Content:apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: istio-pilot-istio-system labels: app: pilot chart: pilot heritage: Tiller maistra-version: 1.0.0 release: istio rules: - apiGroups: ["config.istio.io"] resources: ["*"] verbs: ["*"] - apiGroups: ["rbac.istio.io"] resources: ["*"] verbs: ["get", "watch", "list"] - apiGroups: ["networking.istio.io"] resources: ["*"] verbs: ["*"] - apiGroups: ["authentication.istio.io"] resources: ["*"] verbs: ["*"] - apiGroups: ["maistra.io"] resources: ["servicemeshmemberrolls"] verbs: ["get", "list", "watch"] - apiGroups: ["extensions"] resources: ["ingresses", "ingresses/status"] verbs: ["*"] - apiGroups: [""] resources: ["configmaps"] verbs: ["create", "get", "list", "watch", "update"] - apiGroups: [""] resources: ["endpoints", "pods", "services", "namespaces", "secrets"] verbs: ["get", "list", "watch"] - apiGroups: ["authentication.maistra.io"] resources: ["*"] verbs: ["*"] - apiGroups: ["rbac.maistra.io"] resources: ["*"] verbs: ["get", "watch", "list"] } {Name:istio/charts/pilot/templates/clusterrolebinding.yaml Content:apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: istio-pilot-istio-system namespace: istio-system labels: app: pilot chart: pilot heritage: Tiller maistra-version: 1.0.0 release: istio roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: istio-pilot-istio-system subjects: - kind: ServiceAccount name: istio-pilot-service-account namespace: istio-system } {Name:istio/charts/pilot/templates/service.yaml Content:apiVersion: v1 kind: Service metadata: name: istio-pilot namespace: istio-system labels: app: pilot chart: pilot heritage: Tiller maistra-version: 1.0.0 release: istio istio: pilot spec: ports: - port: 15010 name: grpc-xds # direct - port: 15011 name: https-xds # mTLS - port: 8080 name: http-legacy-discovery # direct - port: 15014 name: http-monitoring selector: istio: pilot } {Name:istio/charts/pilot/templates/deployment.yaml Content:apiVersion: extensions/v1beta1 kind: Deployment metadata: name: istio-pilot namespace: istio-system # TODO: default template doesn't have this, which one is right ? labels: app: pilot chart: pilot heritage: Tiller maistra-version: 1.0.0 release: istio istio: pilot annotations: checksum/config-volume: f8da08b6b8c170dde721efd680270b2901e750d4aa186ebb6c22bef5b78a43f9 spec: replicas: 1 strategy: rollingUpdate: maxSurge: 1 maxUnavailable: 0 selector: matchLabels: istio: pilot template: metadata: labels: app: pilot chart: pilot heritage: Tiller maistra-version: 1.0.0 maistra-control-plane: istio-system release: istio istio: pilot annotations: sidecar.istio.io/inject: "false" spec: serviceAccountName: istio-pilot-service-account containers: - name: discovery image: "quay.io/maistra/pilot-rhel8:latest-qe" imagePullPolicy: IfNotPresent args: - "discovery" - --memberRollName=default - --podLocalitySource=pod - --monitoringAddr=:15014 - --log_output_level=default:info - --domain - cluster.local - --secureGrpcAddr - "" - --keepaliveMaxServerConnectionAge - "30m" ports: - containerPort: 8080 - containerPort: 15010 readinessProbe: httpGet: path: /ready port: 8080 initialDelaySeconds: 5 periodSeconds: 30 timeoutSeconds: 5 env: - name: POD_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.name - name: POD_NAMESPACE valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.namespace - name: GODEBUG value: "" - name: PILOT_PUSH_THROTTLE value: "100" - name: PILOT_TRACE_SAMPLING value: "100" - name: PILOT_DISABLE_XDS_MARSHALING_TO_ANY value: "1" resources: requests: cpu: 500m memory: 2048Mi volumeMounts: - name: config-volume mountPath: /etc/istio/config - name: istio-certs mountPath: /etc/certs readOnly: true - name: istio-proxy image: "quay.io/maistra/proxyv2-rhel8:latest-qe" imagePullPolicy: IfNotPresent ports: - containerPort: 15003 - containerPort: 15005 - containerPort: 15007 - containerPort: 15011 args: - proxy - --domain - $(POD_NAMESPACE).svc.cluster.local - --serviceCluster - istio-pilot - --templateFile - /etc/istio/proxy/envoy_pilot.yaml.tmpl - --controlPlaneAuthPolicy - NONE env: - name: POD_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.name - name: POD_NAMESPACE valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.namespace - name: INSTANCE_IP valueFrom: fieldRef: apiVersion: v1 fieldPath: status.podIP resources: limits: cpu: 501m memory: 128Mi requests: cpu: 100m memory: 128Mi volumeMounts: - name: istio-certs mountPath: /etc/certs readOnly: true volumes: - name: config-volume configMap: name: istio - name: istio-certs secret: secretName: istio.istio-pilot-service-account optional: true affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - amd64 - ppc64le - s390x preferredDuringSchedulingIgnoredDuringExecution: - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - amd64 - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - ppc64le - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - s390x } {Name:istio/charts/pilot/templates/poddisruptionbudget.yaml Content: apiVersion: policy/v1beta1 kind: PodDisruptionBudget metadata: name: istio-pilot namespace: istio-system labels: app: pilot chart: pilot heritage: Tiller maistra-version: 1.0.0 release: istio istio: pilot spec: minAvailable: 1 selector: matchLabels: app: pilot maistra-version: 1.0.0 release: istio istio: pilot } {Name:istio/charts/pilot/templates/autoscale.yaml Content: } {Name:istio/charts/pilot/templates/meshexpansion.yaml Content: }] istio/charts/prometheus:[{Name:istio/charts/prometheus/templates/configmap.yaml Content:apiVersion: v1 kind: ConfigMap metadata: name: prometheus namespace: istio-system labels: app: prometheus chart: prometheus heritage: Tiller maistra-version: 1.0.0 release: istio data: prometheus.yml: |- global: scrape_interval: 15s scrape_configs: - job_name: 'istio-mesh' kubernetes_sd_configs: - role: endpoints namespaces: names: - istio-system relabel_configs: - source_labels: [__meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name] action: keep regex: istio-telemetry;prometheus # Scrape config for envoy stats - job_name: 'envoy-stats' metrics_path: /stats/prometheus kubernetes_sd_configs: - role: pod relabel_configs: - source_labels: [__meta_kubernetes_pod_container_port_name] action: keep regex: '.*-envoy-prom' - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port] action: replace regex: ([^:]+)(?::\d+)?;(\d+) replacement: $1:15090 target_label: __address__ - action: labelmap regex: __meta_kubernetes_pod_label_(.+) - source_labels: [__meta_kubernetes_namespace] action: replace target_label: namespace - source_labels: [__meta_kubernetes_pod_name] action: replace target_label: pod_name metric_relabel_configs: # Exclude some of the envoy metrics that have massive cardinality # This list may need to be pruned further moving forward, as informed # by performance and scalability testing. - source_labels: [ cluster_name ] regex: '(outbound|inbound|prometheus_stats).*' action: drop - source_labels: [ tcp_prefix ] regex: '(outbound|inbound|prometheus_stats).*' action: drop - source_labels: [ listener_address ] regex: '(.+)' action: drop - source_labels: [ http_conn_manager_listener_prefix ] regex: '(.+)' action: drop - source_labels: [ http_conn_manager_prefix ] regex: '(.+)' action: drop - source_labels: [ __name__ ] regex: 'envoy_tls.*' action: drop - source_labels: [ __name__ ] regex: 'envoy_tcp_downstream.*' action: drop - source_labels: [ __name__ ] regex: 'envoy_http_(stats|admin).*' action: drop - source_labels: [ __name__ ] regex: 'envoy_cluster_(lb|retry|bind|internal|max|original).*' action: drop - job_name: 'istio-policy' kubernetes_sd_configs: - role: endpoints namespaces: names: - istio-system relabel_configs: - source_labels: [__meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name] action: keep regex: istio-policy;http-monitoring - job_name: 'istio-telemetry' kubernetes_sd_configs: - role: endpoints namespaces: names: - istio-system relabel_configs: - source_labels: [__meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name] action: keep regex: istio-telemetry;http-monitoring - job_name: 'pilot' kubernetes_sd_configs: - role: endpoints namespaces: names: - istio-system relabel_configs: - source_labels: [__meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name] action: keep regex: istio-pilot;http-monitoring - job_name: 'galley' kubernetes_sd_configs: - role: endpoints namespaces: names: - istio-system relabel_configs: - source_labels: [__meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name] action: keep regex: istio-galley;http-monitoring - job_name: 'citadel' kubernetes_sd_configs: - role: endpoints namespaces: names: - istio-system relabel_configs: - source_labels: [__meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name] action: keep regex: istio-citadel;http-monitoring # scrape config for API servers # config removed # scrape config for nodes (kubelet) # config removed # Scrape config for Kubelet cAdvisor. # # This is required for Kubernetes 1.7.3 and later, where cAdvisor metrics # (those whose names begin with 'container_') have been removed from the # Kubelet metrics endpoint. This job scrapes the cAdvisor endpoint to # retrieve those metrics. # # In Kubernetes 1.7.0-1.7.2, these metrics are only exposed on the cAdvisor # HTTP endpoint; use "replacement: /api/v1/nodes/${1}:4194/proxy/metrics" # in that case (and ensure cAdvisor's HTTP server hasn't been disabled with # the --cadvisor-port=0 Kubelet flag). # # This job is not necessary and should be removed in Kubernetes 1.6 and # earlier versions, or it will cause the metrics to be scraped twice. # config removed # scrape config for service endpoints. - job_name: 'kubernetes-service-endpoints' kubernetes_sd_configs: - role: endpoints relabel_configs: - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scrape] action: keep regex: true - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scheme] action: replace target_label: __scheme__ regex: (https?) - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_path] action: replace target_label: __metrics_path__ regex: (.+) - source_labels: [__address__, __meta_kubernetes_service_annotation_prometheus_io_port] action: replace target_label: __address__ regex: ([^:]+)(?::\d+)?;(\d+) replacement: $1:$2 - action: labelmap regex: __meta_kubernetes_service_label_(.+) - source_labels: [__meta_kubernetes_namespace] action: replace target_label: kubernetes_namespace - source_labels: [__meta_kubernetes_service_name] action: replace target_label: kubernetes_name - job_name: 'kubernetes-pods' kubernetes_sd_configs: - role: pod relabel_configs: # If first two labels are present, pod should be scraped by the istio-secure job. - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape] action: keep regex: true # Keep target if there's no sidecar or if prometheus.io/scheme is explicitly set to "http" - source_labels: [__meta_kubernetes_pod_annotation_sidecar_istio_io_status, __meta_kubernetes_pod_annotation_prometheus_io_scheme] action: keep regex: ((;.*)|(.*;http)) - source_labels: [__meta_kubernetes_pod_annotation_istio_mtls] action: drop regex: (true) - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path] action: replace target_label: __metrics_path__ regex: (.+) - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port] action: replace regex: ([^:]+)(?::\d+)?;(\d+) replacement: $1:$2 target_label: __address__ - action: labelmap regex: __meta_kubernetes_pod_label_(.+) - source_labels: [__meta_kubernetes_namespace] action: replace target_label: namespace - source_labels: [__meta_kubernetes_pod_name] action: replace target_label: pod_name - job_name: 'kubernetes-pods-istio-secure' scheme: https tls_config: ca_file: /etc/istio-certs/root-cert.pem cert_file: /etc/istio-certs/cert-chain.pem key_file: /etc/istio-certs/key.pem insecure_skip_verify: true # prometheus does not support secure naming. kubernetes_sd_configs: - role: pod relabel_configs: - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape] action: keep regex: true # sidecar status annotation is added by sidecar injector and # istio_workload_mtls_ability can be specifically placed on a pod to indicate its ability to receive mtls traffic. - source_labels: [__meta_kubernetes_pod_annotation_sidecar_istio_io_status, __meta_kubernetes_pod_annotation_istio_mtls] action: keep regex: (([^;]+);([^;]*))|(([^;]*);(true)) - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scheme] action: drop regex: (http) - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path] action: replace target_label: __metrics_path__ regex: (.+) - source_labels: [__address__] # Only keep address that is host:port action: keep # otherwise an extra target with ':443' is added for https scheme regex: ([^:]+):(\d+) - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port] action: replace regex: ([^:]+)(?::\d+)?;(\d+) replacement: $1:$2 target_label: __address__ - action: labelmap regex: __meta_kubernetes_pod_label_(.+) - source_labels: [__meta_kubernetes_namespace] action: replace target_label: namespace - source_labels: [__meta_kubernetes_pod_name] action: replace target_label: pod_name } {Name:istio/charts/prometheus/templates/serviceaccount.yaml Content:apiVersion: v1 kind: ServiceAccount metadata: name: prometheus annotations: serviceaccounts.openshift.io/oauth-redirectreference.primary: '{"kind":"OAuthRedirectReference","apiVersion":"v1","reference":{"kind":"Route","name":"prometheus"}}' namespace: istio-system labels: app: prometheus chart: prometheus heritage: Tiller maistra-version: 1.0.0 release: istio } {Name:istio/charts/prometheus/templates/clusterrole.yaml Content:apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: prometheus-istio-system labels: app: prometheus chart: prometheus heritage: Tiller maistra-version: 1.0.0 release: istio rules: - apiGroups: [""] resources: - services - endpoints - pods verbs: ["get", "list", "watch"] - apiGroups: [""] resources: - configmaps verbs: ["get"] - nonResourceURLs: ["/metrics"] verbs: ["get"] } {Name:istio/charts/prometheus/templates/clusterrolebindings.yaml Content:apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: prometheus-istio-system namespace: istio-system labels: app: prometheus chart: prometheus heritage: Tiller maistra-version: 1.0.0 release: istio roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: prometheus-istio-system subjects: - kind: ServiceAccount name: prometheus namespace: istio-system } {Name:istio/charts/prometheus/templates/ingress.yaml Content:apiVersion: route.openshift.io/v1 kind: Route metadata: name: prometheus namespace: istio-system labels: app: prometheus chart: prometheus heritage: Tiller maistra-version: 1.0.0 release: istio annotations: spec: to: kind: Service name: prometheus tls: termination: reencrypt } {Name:istio/charts/prometheus/templates/service.yaml Content:apiVersion: v1 kind: Service metadata: name: prometheus namespace: istio-system annotations: prometheus.io/scrape: 'true' service.alpha.openshift.io/serving-cert-secret-name: "prometheus-tls" labels: app: prometheus chart: prometheus heritage: Tiller maistra-version: 1.0.0 release: istio spec: selector: app: prometheus ports: - name: http-prometheus protocol: TCP port: 9090 targetPort: 3001 } {Name:istio/charts/prometheus/templates/deployment.yaml Content:# TODO: the original template has service account, roles, etc apiVersion: extensions/v1beta1 kind: Deployment metadata: name: prometheus namespace: istio-system labels: app: prometheus chart: prometheus heritage: Tiller maistra-version: 1.0.0 release: istio spec: replicas: 1 selector: matchLabels: app: prometheus template: metadata: labels: app: prometheus chart: prometheus heritage: Tiller maistra-version: 1.0.0 maistra-control-plane: istio-system release: istio annotations: sidecar.istio.io/inject: "false" spec: serviceAccountName: prometheus serviceAccountName: prometheus containers: # OAuth proxy - name: prometheus-proxy image: registry.redhat.io/openshift4/ose-oauth-proxy:4.1 imagePullPolicy: IfNotPresent ports: - containerPort: 3001 name: https protocol: TCP readinessProbe: failureThreshold: 3 periodSeconds: 10 successThreshold: 1 tcpSocket: port: https timeoutSeconds: 1 resources: {} terminationMessagePath: /dev/termination-log terminationMessagePolicy: File volumeMounts: - mountPath: /etc/tls/private name: secret-prometheus-tls - mountPath: /etc/proxy/htpasswd name: secret-htpasswd args: - -provider=openshift - -https-address=:3001 - -http-address= - -email-domain=* - -upstream=http://localhost:9090 - -htpasswd-file=/etc/proxy/htpasswd/auth - -display-htpasswd-form=false - '-openshift-sar={"namespace": "istio-system", "resource": "pods", "verb": "get"}' - -client-secret-file=/var/run/secrets/kubernetes.io/serviceaccount/token - -openshift-service-account=prometheus - -cookie-secret=SECRET - -tls-cert=/etc/tls/private/tls.crt - -tls-key=/etc/tls/private/tls.key - -openshift-ca=/etc/pki/tls/cert.pem - -openshift-ca=/var/run/secrets/kubernetes.io/serviceaccount/ca.crt - name: prometheus image: "quay.io/maistra/prometheus-rhel8:latest-qe" imagePullPolicy: IfNotPresent args: - '--storage.tsdb.retention=6h' - '--storage.tsdb.path=/prometheus' - '--config.file=/etc/prometheus/prometheus.yml' ports: - containerPort: 9090 name: http livenessProbe: httpGet: path: /-/healthy port: 9090 readinessProbe: httpGet: path: /-/ready port: 9090 resources: requests: cpu: 10m volumeMounts: - name: config-volume mountPath: /etc/prometheus - mountPath: /etc/istio-certs name: istio-certs volumes: # OAuth proxy - name: secret-prometheus-tls secret: defaultMode: 420 secretName: prometheus-tls - name: secret-htpasswd secret: defaultMode: 420 secretName: htpasswd - name: config-volume configMap: name: prometheus - name: istio-certs secret: defaultMode: 420 secretName: istio.default affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - amd64 - ppc64le - s390x preferredDuringSchedulingIgnoredDuringExecution: - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - amd64 - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - ppc64le - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - s390x } {Name:istio/charts/prometheus/templates/networkpolicy.yaml Content:# This is to support routes on ocp 3.11 installs apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: istio-prometheus-ingress namespace: istio-system labels: app: prometheus chart: prometheus heritage: Tiller maistra-version: 1.0.0 release: istio annotations: "maistra.io/internal": "true" spec: podSelector: matchLabels: app: prometheus ingress: - ports: port: 3001 } {Name:istio/charts/prometheus/templates/tests/test-prometheus-connection.yaml Content: }] istio/charts/security:[{Name:istio/charts/security/templates/serviceaccount.yaml Content:apiVersion: v1 kind: ServiceAccount metadata: name: istio-citadel-service-account namespace: istio-system labels: app: security chart: security heritage: Tiller maistra-version: 1.0.0 release: istio } {Name:istio/charts/security/templates/clusterrole.yaml Content:apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: istio-citadel-istio-system labels: app: security chart: security heritage: Tiller maistra-version: 1.0.0 release: istio rules: - apiGroups: [""] resources: ["configmaps"] verbs: ["create", "get", "update"] - apiGroups: [""] resources: ["secrets"] verbs: ["create", "get", "watch", "list", "update", "delete"] - apiGroups: [""] resources: ["serviceaccounts", "services"] verbs: ["get", "watch", "list"] - apiGroups: ["maistra.io"] resources: ["servicemeshmemberrolls"] verbs: ["get", "list", "watch"] } {Name:istio/charts/security/templates/meshclusterrole.yaml Content:apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: istio-citadel-mesh-istio-system labels: app: security chart: security heritage: Tiller maistra-version: 1.0.0 release: istio rules: - apiGroups: ["authentication.k8s.io"] resources: ["tokenreviews"] verbs: ["create"] } {Name:istio/charts/security/templates/meshclusterrolebinding.yaml Content:apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: istio-citadel-mesh-istio-system labels: app: security chart: security heritage: Tiller maistra-version: 1.0.0 release: istio roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: istio-citadel-mesh-istio-system subjects: - kind: ServiceAccount name: istio-citadel-service-account namespace: istio-system } {Name:istio/charts/security/templates/clusterrolebinding.yaml Content:apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: istio-citadel-istio-system namespace: istio-system labels: app: security chart: security heritage: Tiller maistra-version: 1.0.0 release: istio roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: istio-citadel-istio-system subjects: - kind: ServiceAccount name: istio-citadel-service-account namespace: istio-system } {Name:istio/charts/security/templates/service.yaml Content:apiVersion: v1 kind: Service metadata: # we use the normal name here (e.g. 'prometheus') # as grafana is configured to use this as a data source name: istio-citadel namespace: istio-system labels: app: security chart: security heritage: Tiller maistra-version: 1.0.0 release: istio istio: citadel spec: ports: - name: grpc-citadel port: 8060 targetPort: 8060 protocol: TCP - name: http-monitoring port: 15014 selector: istio: citadel } {Name:istio/charts/security/templates/deployment.yaml Content:# istio CA watching all namespaces apiVersion: extensions/v1beta1 kind: Deployment metadata: name: istio-citadel namespace: istio-system labels: app: security chart: security heritage: Tiller maistra-version: 1.0.0 release: istio istio: citadel spec: replicas: 1 strategy: rollingUpdate: maxSurge: 1 maxUnavailable: 0 template: metadata: labels: app: security chart: security heritage: Tiller maistra-version: 1.0.0 maistra-control-plane: istio-system release: istio istio: citadel annotations: sidecar.istio.io/inject: "false" spec: serviceAccountName: istio-citadel-service-account containers: - name: citadel image: "quay.io/maistra/citadel-rhel8:latest-qe" imagePullPolicy: IfNotPresent args: - --append-dns-names=true - --grpc-port=8060 - --grpc-hostname=citadel - --citadel-storage-namespace=istio-system - --custom-dns-names=istio-pilot-service-account.istio-system:istio-pilot.istio-system - --monitoring-port=15014 - --self-signed-ca=true - --member-roll-name=default livenessProbe: httpGet: path: /version port: 15014 initialDelaySeconds: 5 periodSeconds: 5 resources: requests: cpu: 10m affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - amd64 - ppc64le - s390x preferredDuringSchedulingIgnoredDuringExecution: - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - amd64 - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - ppc64le - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - s390x } {Name:istio/charts/security/templates/enable-mesh-permissive.yaml Content: # Authentication policy to enable permissive mode for all services (that have sidecar) in the mesh. apiVersion: "authentication.maistra.io/v1" kind: "ServiceMeshPolicy" metadata: name: "default" namespace: istio-system labels: app: security chart: security heritage: Tiller maistra-version: 1.0.0 release: istio spec: peers: - mtls: mode: PERMISSIVE } {Name:istio/charts/security/templates/enable-mesh-mtls.yaml Content: } {Name:istio/charts/security/templates/meshexpansion.yaml Content: } {Name:istio/charts/security/templates/tests/test-citadel-connection.yaml Content: }] istio/charts/sidecarInjectorWebhook:[{Name:istio/charts/sidecarInjectorWebhook/templates/configmap.yaml Content:apiVersion: v1 kind: ConfigMap metadata: name: istio-sidecar-webhook-configuration namespace: istio-system labels: app: sidecarInjectorWebhook chart: sidecarInjectorWebhook heritage: Tiller maistra-version: 1.0.0 release: istio istio: sidecar-injector data: mutatingwebhookconfiguration.yaml: |- apiVersion: admissionregistration.k8s.io/v1beta1 kind: MutatingWebhookConfiguration metadata: name: istio-sidecar-injector labels: app: sidecarInjectorWebhook chart: sidecarInjectorWebhook heritage: Tiller maistra-version: 1.0.0 release: istio webhooks: - name: sidecar-injector.istio.io clientConfig: service: name: istio-sidecar-injector namespace: istio-system path: "/inject" caBundle: "" rules: - operations: [ "CREATE" ] apiGroups: [""] apiVersions: ["v1"] resources: ["pods"] failurePolicy: Fail namespaceSelector: matchExpressions: - key: maistra.io/ignore-namespace operator: DoesNotExist - key: istio.openshift.com/ignore-namespace operator: DoesNotExist } {Name:istio/charts/sidecarInjectorWebhook/templates/serviceaccount.yaml Content:apiVersion: v1 kind: ServiceAccount metadata: name: istio-sidecar-injector-service-account namespace: istio-system labels: app: sidecarInjectorWebhook chart: sidecarInjectorWebhook heritage: Tiller maistra-version: 1.0.0 release: istio istio: sidecar-injector } {Name:istio/charts/sidecarInjectorWebhook/templates/clusterrole.yaml Content:apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: istio-sidecar-injector-istio-system labels: app: sidecarInjectorWebhook chart: sidecarInjectorWebhook heritage: Tiller maistra-version: 1.0.0 release: istio istio: sidecar-injector rules: - apiGroups: [""] resources: ["configmaps"] verbs: ["get", "list", "watch"] - apiGroups: ["extensions","apps"] resources: ["deployments"] resourceNames: ["istio-sidecar-injector"] verbs: ["get"] - apiGroups: ["extensions"] resources: ["deployments/finalizers"] resourceNames: ["istio-sidecar-injector"] verbs: ["update"] - apiGroups: [""] resources: ["secrets"] verbs: ["get", "list", "watch", "create"] } {Name:istio/charts/sidecarInjectorWebhook/templates/clusterrolebinding.yaml Content:apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: istio-sidecar-injector-admin-role-binding-istio-system namespace: istio-system labels: app: sidecarInjectorWebhook chart: sidecarInjectorWebhook heritage: Tiller maistra-version: 1.0.0 release: istio istio: sidecar-injector roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: istio-sidecar-injector-istio-system subjects: - kind: ServiceAccount name: istio-sidecar-injector-service-account namespace: istio-system } {Name:istio/charts/sidecarInjectorWebhook/templates/service.yaml Content:apiVersion: v1 kind: Service metadata: name: istio-sidecar-injector namespace: istio-system labels: app: sidecarInjectorWebhook chart: sidecarInjectorWebhook heritage: Tiller maistra-version: 1.0.0 release: istio istio: sidecar-injector spec: ports: - port: 443 targetPort: webhook selector: istio: sidecar-injector } {Name:istio/charts/sidecarInjectorWebhook/templates/deployment.yaml Content:apiVersion: extensions/v1beta1 kind: Deployment metadata: name: istio-sidecar-injector namespace: istio-system labels: app: sidecarInjectorWebhook chart: sidecarInjectorWebhook heritage: Tiller maistra-version: 1.0.0 release: istio istio: sidecar-injector spec: replicas: 1 strategy: rollingUpdate: maxSurge: 1 maxUnavailable: 0 template: metadata: labels: app: sidecarInjectorWebhook chart: sidecarInjectorWebhook heritage: Tiller maistra-version: 1.0.0 maistra-control-plane: istio-system release: istio istio: sidecar-injector annotations: sidecar.istio.io/inject: "false" spec: serviceAccountName: istio-sidecar-injector-service-account containers: - name: sidecar-injector-webhook image: "quay.io/maistra/sidecar-injector-rhel8:latest-qe" imagePullPolicy: IfNotPresent args: - --webhookConfigName=istio-sidecar-injector-istio-system - --caCertFile=/etc/istio/certs/root-cert.pem - --tlsCertFile=/etc/istio/certs/cert-chain.pem - --tlsKeyFile=/etc/istio/certs/key.pem - --injectConfig=/etc/istio/inject/config - --meshConfig=/etc/istio/config/mesh - --healthCheckInterval=2s - --mutating-webhook-config-file - /etc/istio/webhook/mutatingwebhookconfiguration.yaml - --namespace=istio-system - --healthCheckFile=/tmp/health - --port=8443 - --manageWebhookConfig=false ports: - name: webhook containerPort: 8443 volumeMounts: - name: config-volume mountPath: /etc/istio/config readOnly: true - name: webhook mountPath: /etc/istio/webhook readOnly: true - name: certs mountPath: /etc/istio/certs readOnly: true - name: inject-config mountPath: /etc/istio/inject readOnly: true livenessProbe: exec: command: - /usr/local/bin/sidecar-injector - probe - --probe-path=/tmp/health - --interval=4s initialDelaySeconds: 4 periodSeconds: 4 readinessProbe: exec: command: - /usr/local/bin/sidecar-injector - probe - --probe-path=/tmp/health - --interval=4s initialDelaySeconds: 4 periodSeconds: 4 resources: requests: cpu: 10m volumes: - name: config-volume configMap: name: istio - name: webhook configMap: name: istio-sidecar-webhook-configuration - name: certs secret: secretName: istio.istio-sidecar-injector-service-account - name: inject-config configMap: name: istio-sidecar-injector items: - key: config path: config affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - amd64 - ppc64le - s390x preferredDuringSchedulingIgnoredDuringExecution: - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - amd64 - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - ppc64le - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - s390x } {Name:istio/charts/sidecarInjectorWebhook/templates/mutatingwebhookconfiguration.yaml Content:apiVersion: admissionregistration.k8s.io/v1beta1 kind: MutatingWebhookConfiguration metadata: name: istio-sidecar-injector-istio-system labels: app: sidecarInjectorWebhook chart: sidecarInjectorWebhook heritage: Tiller maistra-version: 1.0.0 release: istio annotations: "helm.sh/resource-policy": keep webhooks: - name: sidecar-injector.istio.io clientConfig: service: name: istio-sidecar-injector namespace: istio-system path: "/inject" caBundle: "" rules: - operations: [ "CREATE" ] apiGroups: [""] apiVersions: ["v1"] resources: ["pods"] failurePolicy: Fail namespaceSelector: matchExpressions: - key: maistra.io/member-of operator: In values: - istio-system - key: maistra.io/ignore-namespace operator: DoesNotExist } {Name:istio/charts/sidecarInjectorWebhook/templates/networkpolicy.yaml Content:apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: istio-sidecar-injector namespace: istio-system labels: app: sidecarInjectorWebhook chart: sidecarInjectorWebhook heritage: Tiller maistra-version: 1.0.0 release: istio istio: sidecar-injector annotations: "maistra.io/internal": "true" spec: podSelector: matchLabels: istio: sidecar-injector ingress: - ports: port: webhook } {Name:istio/charts/sidecarInjectorWebhook/templates/mutatingwebhookconfiguration.yaml.tpl Content: }]] {"level":"info","ts":1565379917.766621,"logger":"controller_servicemeshcontrolplane","caller":"controlplane/manifestprocessing.go:20","msg":"reconciling component resources","Component":"istio"} {"level":"info","ts":1565379917.8341415,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"istio","manifest":"istio/templates/htpasswd-secret.yaml","Resource":"istio-system/htpasswd=v1,Kind=Secret"} {"level":"info","ts":1565379918.2366195,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"istio","manifest":"istio/templates/configmap.yaml","Resource":"istio-system/istio=v1,Kind=ConfigMap"} {"level":"info","ts":1565379918.6361632,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"istio","manifest":"istio/templates/sidecar-injector-configmap.yaml","Resource":"istio-system/istio-sidecar-injector=v1,Kind=ConfigMap"} {"level":"info","ts":1565379919.0357609,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"istio","manifest":"istio/templates/networkpolicy.yaml","Resource":"istio-system/istio-mesh=networking.k8s.io/v1,Kind=NetworkPolicy"} {"level":"info","ts":1565379919.435345,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"istio","manifest":"istio/templates/networkpolicy.yaml","Resource":"istio-system/istio-ingress-router=networking.k8s.io/v1,Kind=NetworkPolicy"} {"level":"info","ts":1565379920.2347846,"logger":"controller_servicemeshcontrolplane","caller":"controlplane/manifestprocessing.go:24","msg":"component reconciliation complete","Component":"istio"} {"level":"info","ts":1565379920.2348468,"logger":"controller_servicemeshcontrolplane","caller":"controlplane/manifestprocessing.go:20","msg":"reconciling component resources","Component":"security"} {"level":"info","ts":1565379920.4353468,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"security","manifest":"istio/charts/security/templates/serviceaccount.yaml","Resource":"istio-system/istio-citadel-service-account=v1,Kind=ServiceAccount"} {"level":"info","ts":1565379920.8350558,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"security","manifest":"istio/charts/security/templates/clusterrole.yaml","Resource":"/istio-citadel-istio-system=rbac.authorization.k8s.io/v1,Kind=ClusterRole"} {"level":"info","ts":1565379921.2350562,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"security","manifest":"istio/charts/security/templates/meshclusterrole.yaml","Resource":"/istio-citadel-mesh-istio-system=rbac.authorization.k8s.io/v1,Kind=ClusterRole"} {"level":"info","ts":1565379921.6350646,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"security","manifest":"istio/charts/security/templates/meshclusterrolebinding.yaml","Resource":"/istio-citadel-mesh-istio-system=rbac.authorization.k8s.io/v1,Kind=ClusterRoleBinding"} {"level":"info","ts":1565379922.0350902,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"security","manifest":"istio/charts/security/templates/clusterrolebinding.yaml","Resource":"istio-system/istio-citadel-istio-system=rbac.authorization.k8s.io/v1,Kind=RoleBinding"} {"level":"info","ts":1565379922.434902,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"security","manifest":"istio/charts/security/templates/service.yaml","Resource":"istio-system/istio-citadel=v1,Kind=Service"} {"level":"info","ts":1565379922.8355362,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"security","manifest":"istio/charts/security/templates/deployment.yaml","Resource":"istio-system/istio-citadel=extensions/v1beta1,Kind=Deployment"} {"level":"info","ts":1565379923.2358947,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"security","manifest":"istio/charts/security/templates/enable-mesh-permissive.yaml","Resource":"istio-system/default=authentication.maistra.io/v1,Kind=ServiceMeshPolicy"} {"level":"info","ts":1565379924.0334039,"logger":"controller_servicemeshcontrolplane","caller":"controlplane/manifestprocessing.go:24","msg":"component reconciliation complete","Component":"security"} {"level":"info","ts":1565379924.0334551,"logger":"controller_servicemeshcontrolplane","caller":"controlplane/manifestprocessing.go:20","msg":"reconciling component resources","Component":"prometheus"} {"level":"info","ts":1565379924.237026,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"prometheus","manifest":"istio/charts/prometheus/templates/configmap.yaml","Resource":"istio-system/prometheus=v1,Kind=ConfigMap"} {"level":"info","ts":1565379924.6352284,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"prometheus","manifest":"istio/charts/prometheus/templates/serviceaccount.yaml","Resource":"istio-system/prometheus=v1,Kind=ServiceAccount"} {"level":"info","ts":1565379925.035188,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"prometheus","manifest":"istio/charts/prometheus/templates/clusterrole.yaml","Resource":"/prometheus-istio-system=rbac.authorization.k8s.io/v1,Kind=ClusterRole"} {"level":"info","ts":1565379925.4347122,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"prometheus","manifest":"istio/charts/prometheus/templates/clusterrolebindings.yaml","Resource":"istio-system/prometheus-istio-system=rbac.authorization.k8s.io/v1,Kind=RoleBinding"} {"level":"info","ts":1565379925.838836,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"prometheus","manifest":"istio/charts/prometheus/templates/ingress.yaml","Resource":"istio-system/prometheus=route.openshift.io/v1,Kind=Route"} {"level":"info","ts":1565379926.2347362,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"prometheus","manifest":"istio/charts/prometheus/templates/service.yaml","Resource":"istio-system/prometheus=v1,Kind=Service"} {"level":"info","ts":1565379926.6368992,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"prometheus","manifest":"istio/charts/prometheus/templates/deployment.yaml","Resource":"istio-system/prometheus=extensions/v1beta1,Kind=Deployment"} {"level":"info","ts":1565379927.0432389,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"prometheus","manifest":"istio/charts/prometheus/templates/networkpolicy.yaml","Resource":"istio-system/istio-prometheus-ingress=networking.k8s.io/v1,Kind=NetworkPolicy"} {"level":"info","ts":1565379927.8331532,"logger":"controller_servicemeshcontrolplane","caller":"controlplane/manifestprocessing.go:24","msg":"component reconciliation complete","Component":"prometheus"} {"level":"info","ts":1565379927.8332126,"logger":"controller_servicemeshcontrolplane","caller":"controlplane/manifestprocessing.go:20","msg":"reconciling component resources","Component":"galley"} {"level":"info","ts":1565379928.034796,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"galley","manifest":"istio/charts/galley/templates/configmap.yaml","Resource":"istio-system/istio-galley-configuration=v1,Kind=ConfigMap"} {"level":"info","ts":1565379928.4362626,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"galley","manifest":"istio/charts/galley/templates/serviceaccount.yaml","Resource":"istio-system/istio-galley-service-account=v1,Kind=ServiceAccount"} {"level":"info","ts":1565379928.8355544,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"galley","manifest":"istio/charts/galley/templates/clusterrole.yaml","Resource":"/istio-galley-istio-system=rbac.authorization.k8s.io/v1,Kind=ClusterRole"} {"level":"info","ts":1565379929.2350392,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"galley","manifest":"istio/charts/galley/templates/meshclusterrole.yaml","Resource":"/istio-galley-mesh-istio-system=rbac.authorization.k8s.io/v1,Kind=ClusterRole"} {"level":"info","ts":1565379929.6353102,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"galley","manifest":"istio/charts/galley/templates/meshclusterrolebinding.yaml","Resource":"/istio-galley-mesh-istio-system=rbac.authorization.k8s.io/v1,Kind=ClusterRoleBinding"} {"level":"info","ts":1565379930.0340173,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"galley","manifest":"istio/charts/galley/templates/clusterrolebinding.yaml","Resource":"istio-system/istio-galley-admin-role-binding-istio-system=rbac.authorization.k8s.io/v1,Kind=RoleBinding"} {"level":"info","ts":1565379930.4347453,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"galley","manifest":"istio/charts/galley/templates/service.yaml","Resource":"istio-system/istio-galley=v1,Kind=Service"} {"level":"info","ts":1565379930.8359485,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"galley","manifest":"istio/charts/galley/templates/deployment.yaml","Resource":"istio-system/istio-galley=extensions/v1beta1,Kind=Deployment"} {"level":"info","ts":1565379931.2356935,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"galley","manifest":"istio/charts/galley/templates/networkpolicy.yaml","Resource":"istio-system/istio-galley=networking.k8s.io/v1,Kind=NetworkPolicy"} {"level":"info","ts":1565379931.634819,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"galley","manifest":"istio/charts/galley/templates/poddisruptionbudget.yaml","Resource":"istio-system/istio-galley=policy/v1beta1,Kind=PodDisruptionBudget"} {"level":"info","ts":1565379932.0580354,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"galley","manifest":"istio/charts/galley/templates/validatingwebhookconfiguration.yaml","Resource":"istio-system/istio-galley-istio-system=admissionregistration.k8s.io/v1beta1,Kind=ValidatingWebhookConfiguration"} {"level":"info","ts":1565379932.2376235,"logger":"controller_validatingwebhook","caller":"validatingwebhook/controller.go:114","msg":"reconciling ValidatingWebhookConfiguration","WebhookConfig":"istio-galley-istio-system"} {"level":"info","ts":1565379932.2439208,"logger":"controller_validatingwebhook","caller":"validatingwebhook/controller.go:140","msg":"CABundle updated","WebhookConfig":"istio-galley-istio-system"} {"level":"info","ts":1565379932.2449017,"logger":"controller_validatingwebhook","caller":"validatingwebhook/controller.go:114","msg":"reconciling ValidatingWebhookConfiguration","WebhookConfig":"istio-galley-istio-system"} {"level":"info","ts":1565379932.244967,"logger":"controller_validatingwebhook","caller":"validatingwebhook/controller.go:144","msg":"Correct CABundle already present. Ignoring","WebhookConfig":"istio-galley-istio-system"} {"level":"info","ts":1565379932.8335059,"logger":"controller_servicemeshcontrolplane","caller":"controlplane/manifestprocessing.go:24","msg":"component reconciliation complete","Component":"galley"} {"level":"info","ts":1565379932.8335578,"logger":"controller_servicemeshcontrolplane","caller":"controlplane/manifestprocessing.go:20","msg":"reconciling component resources","Component":"mixer"} {"level":"info","ts":1565379933.034872,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"mixer","manifest":"istio/charts/mixer/templates/serviceaccount.yaml","Resource":"istio-system/istio-mixer-service-account=v1,Kind=ServiceAccount"} {"level":"info","ts":1565379933.4350443,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"mixer","manifest":"istio/charts/mixer/templates/clusterrole.yaml","Resource":"/istio-mixer-istio-system=rbac.authorization.k8s.io/v1,Kind=ClusterRole"} {"level":"info","ts":1565379933.8339558,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"mixer","manifest":"istio/charts/mixer/templates/clusterrolebinding.yaml","Resource":"istio-system/istio-mixer-admin-role-binding-istio-system=rbac.authorization.k8s.io/v1,Kind=RoleBinding"} {"level":"info","ts":1565379934.2343524,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"mixer","manifest":"istio/charts/mixer/templates/service.yaml","Resource":"istio-system/istio-policy=v1,Kind=Service"} {"level":"info","ts":1565379934.6344373,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"mixer","manifest":"istio/charts/mixer/templates/service.yaml","Resource":"istio-system/istio-telemetry=v1,Kind=Service"} {"level":"info","ts":1565379935.037057,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"mixer","manifest":"istio/charts/mixer/templates/deployment.yaml","Resource":"istio-system/istio-policy=extensions/v1beta1,Kind=Deployment"} {"level":"info","ts":1565379935.437476,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"mixer","manifest":"istio/charts/mixer/templates/deployment.yaml","Resource":"istio-system/istio-telemetry=extensions/v1beta1,Kind=Deployment"} {"level":"info","ts":1565379935.8356597,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"mixer","manifest":"istio/charts/mixer/templates/poddisruptionbudget.yaml","Resource":"istio-system/istio-policy=policy/v1beta1,Kind=PodDisruptionBudget"} {"level":"info","ts":1565379936.234658,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"mixer","manifest":"istio/charts/mixer/templates/poddisruptionbudget.yaml","Resource":"istio-system/istio-telemetry=policy/v1beta1,Kind=PodDisruptionBudget"} {"level":"info","ts":1565379936.6352417,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"mixer","manifest":"istio/charts/mixer/templates/config.yaml","Resource":"istio-system/kubernetesenv=config.istio.io/v1alpha2,Kind=handler"} {"level":"info","ts":1565379937.08155,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"mixer","manifest":"istio/charts/mixer/templates/config.yaml","Resource":"istio-system/kubeattrgenrulerule=config.istio.io/v1alpha2,Kind=rule"} {"level":"info","ts":1565379937.438934,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"mixer","manifest":"istio/charts/mixer/templates/config.yaml","Resource":"istio-system/kubernetes=config.istio.io/v1alpha2,Kind=attributemanifest"} {"level":"info","ts":1565379937.8371968,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"mixer","manifest":"istio/charts/mixer/templates/config.yaml","Resource":"istio-system/responsesize=config.istio.io/v1alpha2,Kind=metric"} {"level":"info","ts":1565379938.2372348,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"mixer","manifest":"istio/charts/mixer/templates/config.yaml","Resource":"istio-system/tcpbytesent=config.istio.io/v1alpha2,Kind=metric"} {"level":"info","ts":1565379938.6401308,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"mixer","manifest":"istio/charts/mixer/templates/config.yaml","Resource":"istio-system/tcpbytereceived=config.istio.io/v1alpha2,Kind=metric"} {"level":"info","ts":1565379939.0391161,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"mixer","manifest":"istio/charts/mixer/templates/config.yaml","Resource":"istio-system/prometheus=config.istio.io/v1alpha2,Kind=handler"} {"level":"info","ts":1565379939.4352064,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"mixer","manifest":"istio/charts/mixer/templates/config.yaml","Resource":"istio-system/promtcpconnectionopen=config.istio.io/v1alpha2,Kind=rule"} {"level":"info","ts":1565379939.834712,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"mixer","manifest":"istio/charts/mixer/templates/config.yaml","Resource":"istio-system/tcpkubeattrgenrulerule=config.istio.io/v1alpha2,Kind=rule"} {"level":"info","ts":1565379940.235411,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"mixer","manifest":"istio/charts/mixer/templates/config.yaml","Resource":"istio-system/istio-telemetry=networking.istio.io/v1alpha3,Kind=DestinationRule"} {"level":"info","ts":1565379940.6410468,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"mixer","manifest":"istio/charts/mixer/templates/config.yaml","Resource":"istio-system/tcpconnectionsopened=config.istio.io/v1alpha2,Kind=metric"} {"level":"info","ts":1565379941.0434244,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"mixer","manifest":"istio/charts/mixer/templates/config.yaml","Resource":"istio-system/tcpconnectionsclosed=config.istio.io/v1alpha2,Kind=metric"} {"level":"info","ts":1565379941.4362934,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"mixer","manifest":"istio/charts/mixer/templates/config.yaml","Resource":"istio-system/promhttp=config.istio.io/v1alpha2,Kind=rule"} {"level":"info","ts":1565379941.8379385,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"mixer","manifest":"istio/charts/mixer/templates/config.yaml","Resource":"istio-system/istioproxy=config.istio.io/v1alpha2,Kind=attributemanifest"} {"level":"info","ts":1565379942.237325,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"mixer","manifest":"istio/charts/mixer/templates/config.yaml","Resource":"istio-system/requestcount=config.istio.io/v1alpha2,Kind=metric"} {"level":"info","ts":1565379942.6567369,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"mixer","manifest":"istio/charts/mixer/templates/config.yaml","Resource":"istio-system/requestduration=config.istio.io/v1alpha2,Kind=metric"} {"level":"info","ts":1565379943.0362344,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"mixer","manifest":"istio/charts/mixer/templates/config.yaml","Resource":"istio-system/promtcp=config.istio.io/v1alpha2,Kind=rule"} {"level":"info","ts":1565379943.4380214,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"mixer","manifest":"istio/charts/mixer/templates/config.yaml","Resource":"istio-system/requestsize=config.istio.io/v1alpha2,Kind=metric"} {"level":"info","ts":1565379943.8354151,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"mixer","manifest":"istio/charts/mixer/templates/config.yaml","Resource":"istio-system/promtcpconnectionclosed=config.istio.io/v1alpha2,Kind=rule"} {"level":"info","ts":1565379944.245632,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"mixer","manifest":"istio/charts/mixer/templates/config.yaml","Resource":"istio-system/attributes=config.istio.io/v1alpha2,Kind=kubernetes"} {"level":"info","ts":1565379944.6351178,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"mixer","manifest":"istio/charts/mixer/templates/config.yaml","Resource":"istio-system/istio-policy=networking.istio.io/v1alpha3,Kind=DestinationRule"} {"level":"info","ts":1565379945.433721,"logger":"controller_servicemeshcontrolplane","caller":"controlplane/manifestprocessing.go:24","msg":"component reconciliation complete","Component":"mixer"} {"level":"info","ts":1565379945.433801,"logger":"controller_servicemeshcontrolplane","caller":"controlplane/manifestprocessing.go:20","msg":"reconciling component resources","Component":"pilot"} {"level":"info","ts":1565379945.6351411,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"pilot","manifest":"istio/charts/pilot/templates/serviceaccount.yaml","Resource":"istio-system/istio-pilot-service-account=v1,Kind=ServiceAccount"} {"level":"info","ts":1565379946.035688,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"pilot","manifest":"istio/charts/pilot/templates/clusterrole.yaml","Resource":"/istio-pilot-istio-system=rbac.authorization.k8s.io/v1,Kind=ClusterRole"} {"level":"info","ts":1565379946.434105,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"pilot","manifest":"istio/charts/pilot/templates/clusterrolebinding.yaml","Resource":"istio-system/istio-pilot-istio-system=rbac.authorization.k8s.io/v1,Kind=RoleBinding"} {"level":"info","ts":1565379946.8341668,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"pilot","manifest":"istio/charts/pilot/templates/service.yaml","Resource":"istio-system/istio-pilot=v1,Kind=Service"} {"level":"info","ts":1565379947.2400823,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"pilot","manifest":"istio/charts/pilot/templates/deployment.yaml","Resource":"istio-system/istio-pilot=extensions/v1beta1,Kind=Deployment"} {"level":"info","ts":1565379947.6340954,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"pilot","manifest":"istio/charts/pilot/templates/poddisruptionbudget.yaml","Resource":"istio-system/istio-pilot=policy/v1beta1,Kind=PodDisruptionBudget"} {"level":"info","ts":1565379948.4333436,"logger":"controller_servicemeshcontrolplane","caller":"controlplane/manifestprocessing.go:24","msg":"component reconciliation complete","Component":"pilot"} {"level":"info","ts":1565379948.433395,"logger":"controller_servicemeshcontrolplane","caller":"controlplane/manifestprocessing.go:20","msg":"reconciling component resources","Component":"gateways"} {"level":"info","ts":1565379948.6363008,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"gateways","manifest":"istio/charts/gateways/templates/serviceaccount.yaml","Resource":"istio-system/istio-egressgateway-service-account=v1,Kind=ServiceAccount"} {"level":"info","ts":1565379949.0433433,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"gateways","manifest":"istio/charts/gateways/templates/serviceaccount.yaml","Resource":"istio-system/istio-ingressgateway-service-account=v1,Kind=ServiceAccount"} {"level":"info","ts":1565379949.4350803,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"gateways","manifest":"istio/charts/gateways/templates/clusterrole.yaml","Resource":"/istio-egressgateway-istio-system=rbac.authorization.k8s.io/v1,Kind=ClusterRole"} {"level":"info","ts":1565379949.8350794,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"gateways","manifest":"istio/charts/gateways/templates/clusterrole.yaml","Resource":"/istio-ingressgateway-istio-system=rbac.authorization.k8s.io/v1,Kind=ClusterRole"} {"level":"info","ts":1565379950.236449,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"gateways","manifest":"istio/charts/gateways/templates/role.yaml","Resource":"istio-system/istio-ingressgateway-sds=rbac.authorization.k8s.io/v1,Kind=Role"} {"level":"info","ts":1565379950.6340265,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"gateways","manifest":"istio/charts/gateways/templates/clusterrolebindings.yaml","Resource":"istio-system/istio-egressgateway-istio-system=rbac.authorization.k8s.io/v1,Kind=RoleBinding"} {"level":"info","ts":1565379951.0349169,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"gateways","manifest":"istio/charts/gateways/templates/clusterrolebindings.yaml","Resource":"istio-system/istio-ingressgateway-istio-system=rbac.authorization.k8s.io/v1,Kind=RoleBinding"} {"level":"info","ts":1565379951.434176,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"gateways","manifest":"istio/charts/gateways/templates/rolebindings.yaml","Resource":"istio-system/istio-ingressgateway-sds=rbac.authorization.k8s.io/v1,Kind=RoleBinding"} {"level":"info","ts":1565379951.838078,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"gateways","manifest":"istio/charts/gateways/templates/istio-ingressgateway-route.yaml","Resource":"istio-system/istio-ingressgateway=route.openshift.io/v1,Kind=Route"} {"level":"info","ts":1565379952.2342312,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"gateways","manifest":"istio/charts/gateways/templates/service.yaml","Resource":"istio-system/istio-egressgateway=v1,Kind=Service"} {"level":"info","ts":1565379952.6343398,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"gateways","manifest":"istio/charts/gateways/templates/service.yaml","Resource":"istio-system/istio-ingressgateway=v1,Kind=Service"} {"level":"info","ts":1565379953.0385044,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"gateways","manifest":"istio/charts/gateways/templates/deployment.yaml","Resource":"istio-system/istio-egressgateway=extensions/v1beta1,Kind=Deployment"} {"level":"info","ts":1565379953.4371672,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"gateways","manifest":"istio/charts/gateways/templates/deployment.yaml","Resource":"istio-system/istio-ingressgateway=extensions/v1beta1,Kind=Deployment"} {"level":"info","ts":1565379953.8350446,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"gateways","manifest":"istio/charts/gateways/templates/networkpolicy.yaml","Resource":"istio-system/istio-ingressgateway=networking.k8s.io/v1,Kind=NetworkPolicy"} {"level":"info","ts":1565379954.2347105,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"gateways","manifest":"istio/charts/gateways/templates/poddisruptionbudget.yaml","Resource":"istio-system/istio-egressgateway=policy/v1beta1,Kind=PodDisruptionBudget"} {"level":"info","ts":1565379954.6345508,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"gateways","manifest":"istio/charts/gateways/templates/poddisruptionbudget.yaml","Resource":"istio-system/istio-ingressgateway=policy/v1beta1,Kind=PodDisruptionBudget"} {"level":"info","ts":1565379955.4339216,"logger":"controller_servicemeshcontrolplane","caller":"controlplane/manifestprocessing.go:24","msg":"component reconciliation complete","Component":"gateways"} {"level":"info","ts":1565379955.4339743,"logger":"controller_servicemeshcontrolplane","caller":"controlplane/manifestprocessing.go:20","msg":"reconciling component resources","Component":"sidecarInjectorWebhook"} {"level":"info","ts":1565379955.63446,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"sidecarInjectorWebhook","manifest":"istio/charts/sidecarInjectorWebhook/templates/configmap.yaml","Resource":"istio-system/istio-sidecar-webhook-configuration=v1,Kind=ConfigMap"} {"level":"info","ts":1565379956.038156,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"sidecarInjectorWebhook","manifest":"istio/charts/sidecarInjectorWebhook/templates/serviceaccount.yaml","Resource":"istio-system/istio-sidecar-injector-service-account=v1,Kind=ServiceAccount"} {"level":"info","ts":1565379956.4354055,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"sidecarInjectorWebhook","manifest":"istio/charts/sidecarInjectorWebhook/templates/clusterrole.yaml","Resource":"/istio-sidecar-injector-istio-system=rbac.authorization.k8s.io/v1,Kind=ClusterRole"} {"level":"info","ts":1565379956.83692,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"sidecarInjectorWebhook","manifest":"istio/charts/sidecarInjectorWebhook/templates/clusterrolebinding.yaml","Resource":"istio-system/istio-sidecar-injector-admin-role-binding-istio-system=rbac.authorization.k8s.io/v1,Kind=RoleBinding"} {"level":"info","ts":1565379957.2339652,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"sidecarInjectorWebhook","manifest":"istio/charts/sidecarInjectorWebhook/templates/service.yaml","Resource":"istio-system/istio-sidecar-injector=v1,Kind=Service"} {"level":"info","ts":1565379957.636724,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"sidecarInjectorWebhook","manifest":"istio/charts/sidecarInjectorWebhook/templates/deployment.yaml","Resource":"istio-system/istio-sidecar-injector=extensions/v1beta1,Kind=Deployment"} {"level":"info","ts":1565379958.0346327,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"sidecarInjectorWebhook","manifest":"istio/charts/sidecarInjectorWebhook/templates/mutatingwebhookconfiguration.yaml","Resource":"/istio-sidecar-injector-istio-system=admissionregistration.k8s.io/v1beta1,Kind=MutatingWebhookConfiguration"} {"level":"info","ts":1565379958.2371502,"logger":"controller_mutatingwebhook","caller":"mutatingwebhook/controller.go:114","msg":"reconciling MutatingWebhookConfiguration","WebhookConfig":"istio-sidecar-injector-istio-system"} {"level":"info","ts":1565379958.242844,"logger":"controller_mutatingwebhook","caller":"mutatingwebhook/controller.go:140","msg":"CABundle updated","WebhookConfig":"istio-sidecar-injector-istio-system"} {"level":"info","ts":1565379958.243028,"logger":"controller_mutatingwebhook","caller":"mutatingwebhook/controller.go:114","msg":"reconciling MutatingWebhookConfiguration","WebhookConfig":"istio-sidecar-injector-istio-system"} {"level":"info","ts":1565379958.2430775,"logger":"controller_mutatingwebhook","caller":"mutatingwebhook/controller.go:144","msg":"Correct CABundle already present. Ignoring","WebhookConfig":"istio-sidecar-injector-istio-system"} {"level":"info","ts":1565379958.4354491,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"sidecarInjectorWebhook","manifest":"istio/charts/sidecarInjectorWebhook/templates/networkpolicy.yaml","Resource":"istio-system/istio-sidecar-injector=networking.k8s.io/v1,Kind=NetworkPolicy"} {"level":"info","ts":1565379959.2330906,"logger":"controller_servicemeshcontrolplane","caller":"controlplane/manifestprocessing.go:24","msg":"component reconciliation complete","Component":"sidecarInjectorWebhook"} {"level":"info","ts":1565379959.23315,"logger":"controller_servicemeshcontrolplane","caller":"controlplane/manifestprocessing.go:20","msg":"reconciling component resources","Component":"grafana"} {"level":"info","ts":1565379959.4414952,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"grafana","manifest":"istio/charts/grafana/templates/configmap-dashboards.yaml","Resource":"istio-system/istio-grafana-configuration-dashboards-istio-mesh-dashboard=v1,Kind=ConfigMap"} {"level":"info","ts":1565379959.8548625,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"grafana","manifest":"istio/charts/grafana/templates/configmap-dashboards.yaml","Resource":"istio-system/istio-grafana-configuration-dashboards-istio-performance-dashboard=v1,Kind=ConfigMap"} {"level":"info","ts":1565379960.2629414,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"grafana","manifest":"istio/charts/grafana/templates/configmap-dashboards.yaml","Resource":"istio-system/istio-grafana-configuration-dashboards-istio-service-dashboard=v1,Kind=ConfigMap"} {"level":"info","ts":1565379960.6570735,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"grafana","manifest":"istio/charts/grafana/templates/configmap-dashboards.yaml","Resource":"istio-system/istio-grafana-configuration-dashboards-istio-workload-dashboard=v1,Kind=ConfigMap"} {"level":"info","ts":1565379961.0471828,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"grafana","manifest":"istio/charts/grafana/templates/configmap-dashboards.yaml","Resource":"istio-system/istio-grafana-configuration-dashboards-mixer-dashboard=v1,Kind=ConfigMap"} {"level":"info","ts":1565379961.4458773,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"grafana","manifest":"istio/charts/grafana/templates/configmap-dashboards.yaml","Resource":"istio-system/istio-grafana-configuration-dashboards-pilot-dashboard=v1,Kind=ConfigMap"} {"level":"info","ts":1565379961.8576963,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"grafana","manifest":"istio/charts/grafana/templates/configmap-dashboards.yaml","Resource":"istio-system/istio-grafana-configuration-dashboards-galley-dashboard=v1,Kind=ConfigMap"} {"level":"info","ts":1565379962.1381059,"logger":"controller_servicemeshcontrolplane","caller":"controlplane/htpasswd.go:75","msg":"patching Grafana-Prometheus link","Component":"grafana","ConfigMap":"istio-grafana"} {"level":"info","ts":1565379962.2349362,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"grafana","manifest":"istio/charts/grafana/templates/configmap.yaml","Resource":"istio-system/istio-grafana=v1,Kind=ConfigMap"} {"level":"info","ts":1565379962.6355276,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"grafana","manifest":"istio/charts/grafana/templates/serviceaccount.yaml","Resource":"istio-system/grafana=v1,Kind=ServiceAccount"} {"level":"info","ts":1565379963.038776,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"grafana","manifest":"istio/charts/grafana/templates/ingress.yaml","Resource":"istio-system/grafana=route.openshift.io/v1,Kind=Route"} {"level":"info","ts":1565379963.4342694,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"grafana","manifest":"istio/charts/grafana/templates/service.yaml","Resource":"istio-system/grafana=v1,Kind=Service"} {"level":"info","ts":1565379963.8383954,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"grafana","manifest":"istio/charts/grafana/templates/deployment.yaml","Resource":"istio-system/grafana=extensions/v1beta1,Kind=Deployment"} {"level":"info","ts":1565379964.2362003,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"grafana","manifest":"istio/charts/grafana/templates/networkpolicy.yaml","Resource":"istio-system/istio-grafana-ingress=networking.k8s.io/v1,Kind=NetworkPolicy"} {"level":"info","ts":1565379964.6359987,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"grafana","manifest":"istio/charts/grafana/templates/grafana-ports-mtls.yaml","Resource":"istio-system/grafana-ports-mtls-disabled=authentication.istio.io/v1alpha1,Kind=Policy"} {"level":"info","ts":1565379965.4338324,"logger":"controller_servicemeshcontrolplane","caller":"controlplane/manifestprocessing.go:24","msg":"component reconciliation complete","Component":"grafana"} {"level":"info","ts":1565379965.4338915,"logger":"controller_servicemeshcontrolplane","caller":"controlplane/manifestprocessing.go:20","msg":"reconciling component resources","Component":"kiali"} {"level":"info","ts":1565379965.6394372,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"kiali","manifest":"istio/charts/kiali/templates/secret.yaml","Resource":"istio-system/kiali=v1,Kind=Secret"} {"level":"info","ts":1565379965.841047,"logger":"controller_servicemeshcontrolplane","caller":"controlplane/hooks.go:63","msg":"patching kiali CR","Component":"kiali","Kiali":"kiali"} {"level":"info","ts":1565379965.8410947,"logger":"controller_servicemeshcontrolplane","caller":"controlplane/hooks.go:77","msg":"attempting to auto-detect jaeger for kiali","Component":"kiali"} {"level":"info","ts":1565379966.0393505,"logger":"controller_servicemeshcontrolplane","caller":"controlplane/hooks.go:115","msg":"attempting to auto-detect grafana for kiali","Component":"kiali"} {"level":"info","ts":1565379966.2393093,"logger":"controller_servicemeshcontrolplane","caller":"controlplane/hooks.go:140","msg":"new kiali jaeger settings","Component":"kiali","":false} {"level":"info","ts":1565379966.2393556,"logger":"controller_servicemeshcontrolplane","caller":"controlplane/hooks.go:141","msg":"new kiali grafana setting","Component":"kiali","https://grafana-istio-system.apps.bavery-ossmtesting15.devcluster.openshift.com":true} {"level":"info","ts":1565379966.4374833,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"kiali","manifest":"istio/charts/kiali/templates/kiali-cr.yaml","Resource":"istio-system/kiali=kiali.io/v1alpha1,Kind=Kiali"} {"level":"info","ts":1565379966.8355997,"logger":"controller_servicemeshcontrolplane","caller":"common/manifestprocessing.go:145","msg":"updating existing resource","Component":"kiali","manifest":"istio/charts/kiali/templates/networkpolicy.yaml","Resource":"istio-system/istio-kiali-ingress=networking.k8s.io/v1,Kind=NetworkPolicy"} {"level":"info","ts":1565379967.6337194,"logger":"controller_servicemeshcontrolplane","caller":"controlplane/manifestprocessing.go:24","msg":"component reconciliation complete","Component":"kiali"} {"level":"info","ts":1565379983.2421515,"logger":"controller_servicemeshcontrolplane","caller":"controlplane/pruner.go:106","msg":"pruning resource","resource":"/istio-pilot-mesh-istio-system=rbac.authorization.k8s.io/v1,Kind=ClusterRole"} {"level":"info","ts":1565379983.6371658,"logger":"controller_servicemeshcontrolplane","caller":"controlplane/pruner.go:106","msg":"pruning resource","resource":"/istio-pilot-mesh-istio-system=rbac.authorization.k8s.io/v1,Kind=ClusterRoleBinding"} {"level":"info","ts":1565379983.8411553,"logger":"controller_servicemeshcontrolplane","caller":"controlplane/reconciler.go:218","msg":"Completed ServiceMeshControlPlane reconcilation"} {"level":"info","ts":1565379983.8522325,"logger":"controller_servicemeshcontrolplane","caller":"controlplane/controller.go:149","msg":"Completed ServiceMeshControlPlane processing","Request.Namespace":"istio-system","Request.Name":"basic-install"} {"level":"info","ts":1565379983.852318,"logger":"controller_servicemeshcontrolplane","caller":"controlplane/controller.go:147","msg":"Processing ServiceMeshControlPlane","Request.Namespace":"istio-system","Request.Name":"basic-install"} {"level":"info","ts":1565379983.8525214,"logger":"controller_servicemeshcontrolplane","caller":"controlplane/controller.go:223","msg":"Reconciling ServiceMeshControlPlane","Request.Namespace":"istio-system","Request.Name":"basic-install"} {"level":"info","ts":1565379983.8525443,"logger":"controller_servicemeshcontrolplane","caller":"controlplane/reconciler.go:304","msg":"updating servicemeshcontrolplane with templates"} {"level":"info","ts":1565379983.8525548,"logger":"controller_servicemeshcontrolplane","caller":"controlplane/reconciler.go:307","msg":"No template provided. Using default"} {"level":"info","ts":1565379983.8525643,"logger":"controller_servicemeshcontrolplane","caller":"controlplane/reconciler.go:279","msg":"processing smcp template default"} {"level":"info","ts":1565379983.8530095,"logger":"controller_servicemeshcontrolplane","caller":"controlplane/reconciler.go:279","msg":"processing smcp template base"} {"level":"info","ts":1565379983.8536117,"logger":"controller_servicemeshcontrolplane","caller":"controlplane/reconciler.go:311","msg":"finished updating ServiceMeshControlPlane: {Template:default NetworkType: Istio:map[galley:map[image:galley-rhel8] gateways:map[istio-egressgateway:map[autoscaleEnabled:false enabled:true] istio-ingressgateway:map[autoscaleEnabled:false enabled:true ior_enabled:false ior_image:istio-ior-rhel8 ports:[map[name:status-port port:15020 targetPort:15020] map[name:http2 port:80 targetPort:80] map[name:https port:443] map[name:tls port:15443 targetPort:15443]] type:ClusterIP]] global:map[hub:quay.io/maistra multitenant:true oauthproxy:map[hub:registry.redhat.io/openshift4 image:ose-oauth-proxy imagePullPolicy:IfNotPresent tag:4.1] proxy:map[autoInject:disabled dnsRefreshRate:300s image:proxyv2-rhel8 resources:map[limits:map[cpu:501m memory:128Mi] requests:map[cpu:100m memory:128Mi]]] proxy_init:map[image:proxy-init-rhel8] tag:latest-qe] grafana:map[enabled:true image:grafana-rhel8 ingress:map[enabled:true] service:map[annotations:map[service.alpha.openshift.io/serving-cert-secret-name:grafana-tls]]] istio_cni:map[enabled:true] kiali:map[dashboard:map[passphrase:admin user:admin viewOnlyMode:false] enabled:true hub:quay.io/maistra ingress:map[enabled:true] tag:1.0.0] mixer:map[env:map[GODEBUG:] image:mixer-rhel8 policy:map[autoscaleEnabled:false] telemetry:map[autoscaleEnabled:false resources:map[limits:map[cpu:500m memory:4G] requests:map[cpu:100m memory:1G]]]] pilot:map[autoscaleEnabled:false env:map[GODEBUG:] image:pilot-rhel8 traceSampling:100] prometheus:map[image:prometheus-rhel8 ingress:map[enabled:true] service:map[annotations:map[service.alpha.openshift.io/serving-cert-secret-name:prometheus-tls]]] security:map[image:citadel-rhel8] sidecarInjectorWebhook:map[enableNamespacesByDefault:true image:sidecar-injector-rhel8] tracing:map[enabled:false ingress:map[enabled:true] jaeger:map[elasticsearch:map[hub:registry.centos.org/rhsyseng image:elasticsearch tag:5.6.10] hub:quay.io/maistra tag:1.13.1 template:all-in-one]]] ThreeScale:map[hub:registry.redhat.io/openshift-service-mesh tag:1.0.0]}"} {"level":"info","ts":1565379983.8536575,"logger":"controller_servicemeshcontrolplane","caller":"controlplane/reconciler.go:358","msg":"rendering helm charts"} 2019/08/09 19:46:23 warning: cannot overwrite table with non table for image (map[repository:grafana/grafana tag:6.0.2]) Bavery renderings2: map[istio:[{Name:istio/templates/htpasswd-secret.yaml Content:apiVersion: v1 data: auth: "" rawPassword: "" kind: Secret metadata: name: htpasswd namespace: istio-system labels: app: istio chart: istio heritage: Tiller maistra-version: 1.0.0 release: istio type: Opaque } {Name:istio/templates/configmap.yaml Content: apiVersion: v1 kind: ConfigMap metadata: name: istio namespace: istio-system labels: app: istio chart: istio heritage: Tiller maistra-version: 1.0.0 release: istio data: mesh: |- # Set the following variable to true to disable policy checks by the Mixer. # Note that metrics will still be reported to the Mixer. disablePolicyChecks: true # Set enableTracing to false to disable request tracing. enableTracing: true # Set accessLogFile to empty string to disable access log. accessLogFile: "" # If accessLogEncoding is TEXT, value will be used directly as the log format # example: "[%START_TIME%] %REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%\n" # If AccessLogEncoding is JSON, value will be parsed as map[string]string # example: '{"start_time": "%START_TIME%", "req_method": "%REQ(:METHOD)%"}' # Leave empty to use default log format accessLogFormat: "" # Set accessLogEncoding to JSON or TEXT to configure sidecar access log accessLogEncoding: 'TEXT' mixerCheckServer: istio-policy.istio-system.svc.cluster.local:9091 mixerReportServer: istio-telemetry.istio-system.svc.cluster.local:9091 # policyCheckFailOpen allows traffic in cases when the mixer policy service cannot be reached. # Default is false which means the traffic is denied when the client is unable to connect to Mixer. policyCheckFailOpen: false # Let Pilot give ingresses the public IP of the Istio ingressgateway ingressService: istio-ingressgateway # Default connect timeout for dynamic clusters generated by Pilot and returned via XDS connectTimeout: 10s # DNS refresh rate for Envoy clusters of type STRICT_DNS dnsRefreshRate: 300s # Unix Domain Socket through which envoy communicates with NodeAgent SDS to get # key/cert for mTLS. Use secret-mount files instead of SDS if set to empty. sdsUdsPath: # This flag is used by secret discovery service(SDS). # If set to true(prerequisite: https://kubernetes.io/docs/concepts/storage/volumes/#projected), Istio will inject volumes mount # for k8s service account JWT, so that K8s API server mounts k8s service account JWT to envoy container, which # will be used to generate key/cert eventually. This isn't supported for non-k8s case. enableSdsTokenMount: false # This flag is used by secret discovery service(SDS). # If set to true, envoy will fetch normal k8s service account JWT from '/var/run/secrets/kubernetes.io/serviceaccount/token' # (https://kubernetes.io/docs/tasks/access-application-cluster/access-cluster/#accessing-the-api-from-a-pod) # and pass to sds server, which will be used to request key/cert eventually. # this flag is ignored if enableSdsTokenMount is set. # This isn't supported for non-k8s case. sdsUseK8sSaJwt: false # The trust domain corresponds to the trust root of a system. # Refer to https://github.com/spiffe/spiffe/blob/master/standards/SPIFFE-ID.md#21-trust-domain trustDomain: # Set the default behavior of the sidecar for handling outbound traffic from the application: # ALLOW_ANY - outbound traffic to unknown destinations will be allowed, in case there are no # services or ServiceEntries for the destination port # REGISTRY_ONLY - restrict outbound traffic to services defined in the service registry as well # as those defined through ServiceEntries outboundTrafficPolicy: mode: ALLOW_ANY localityLbSetting: {} # The namespace to treat as the administrative root namespace for istio # configuration. rootNamespace: istio-system configSources: - address: istio-galley.istio-system.svc:9901 defaultConfig: # # TCP connection timeout between Envoy & the application, and between Envoys. Used for static clusters # defined in Envoy's configuration file connectTimeout: 10s # ### ADVANCED SETTINGS ############# # Where should envoy's configuration be stored in the istio-proxy container configPath: "/etc/istio/proxy" binaryPath: "/usr/local/bin/envoy" # The pseudo service name used for Envoy. serviceCluster: istio-proxy # These settings that determine how long an old Envoy # process should be kept alive after an occasional reload. drainDuration: 45s parentShutdownDuration: 1m0s # # The mode used to redirect inbound connections to Envoy. This setting # has no effect on outbound traffic: iptables REDIRECT is always used for # outbound connections. # If "REDIRECT", use iptables REDIRECT to NAT and redirect to Envoy. # The "REDIRECT" mode loses source addresses during redirection. # If "TPROXY", use iptables TPROXY to redirect to Envoy. # The "TPROXY" mode preserves both the source and destination IP # addresses and ports, so that they can be used for advanced filtering # and manipulation. # The "TPROXY" mode also configures the sidecar to run with the # CAP_NET_ADMIN capability, which is required to use TPROXY. #interceptionMode: REDIRECT # # Port where Envoy listens (on local host) for admin commands # You can exec into the istio-proxy container in a pod and # curl the admin port (curl http://localhost:15000/) to obtain # diagnostic information from Envoy. See # https://lyft.github.io/envoy/docs/operations/admin.html # for more details proxyAdminPort: 15000 # # Set concurrency to a specific number to control the number of Proxy worker threads. # If set to 0 (default), then start worker thread for each CPU thread/core. concurrency: 2 # tracing: zipkin: # Address of the Zipkin collector address: zipkin.istio-system:9411 # # Mutual TLS authentication between sidecars and istio control plane. controlPlaneAuthPolicy: NONE # # Address where istio Pilot service is running discoveryAddress: istio-pilot.istio-system:15010 # Configuration file for the mesh networks to be used by the Split Horizon EDS. meshNetworks: |- networks: {} } {Name:istio/templates/sidecar-injector-configmap.yaml Content: apiVersion: v1 kind: ConfigMap metadata: name: istio-sidecar-injector namespace: istio-system labels: app: istio chart: istio heritage: Tiller maistra-version: 1.0.0 release: istio istio: sidecar-injector data: config: |- policy: disabled template: |- annotations: k8s.v1.cni.cncf.io/networks: istio-cni rewriteAppHTTPProbe: false containers: - name: istio-proxy image: [[ annotation .ObjectMeta `sidecar.istio.io/proxyImage` "quay.io/maistra/proxyv2-rhel8:latest-qe" ]] ports: - containerPort: 15090 protocol: TCP name: http-envoy-prom args: - proxy - sidecar - --domain - $(POD_NAMESPACE).svc.cluster.local - --configPath - [[ .ProxyConfig.ConfigPath ]] - --binaryPath - [[ .ProxyConfig.BinaryPath ]] - --serviceCluster [[ if ne "" (index .ObjectMeta.Labels "app") -]] - [[ index .ObjectMeta.Labels "app" ]].$(POD_NAMESPACE) [[ else -]] - [[ valueOrDefault .DeploymentMeta.Name "istio-proxy" ]].[[ valueOrDefault .DeploymentMeta.Namespace "default" ]] [[ end -]] - --drainDuration - [[ formatDuration .ProxyConfig.DrainDuration ]] - --parentShutdownDuration - [[ formatDuration .ProxyConfig.ParentShutdownDuration ]] - --discoveryAddress - [[ annotation .ObjectMeta `sidecar.istio.io/discoveryAddress` .ProxyConfig.DiscoveryAddress ]] - --zipkinAddress - [[ .ProxyConfig.GetTracing.GetZipkin.GetAddress ]] - --connectTimeout - [[ formatDuration .ProxyConfig.ConnectTimeout ]] - --proxyAdminPort - [[ .ProxyConfig.ProxyAdminPort ]] [[ if gt .ProxyConfig.Concurrency 0 -]] - --concurrency - [[ .ProxyConfig.Concurrency ]] [[ end -]] - --controlPlaneAuthPolicy - [[ annotation .ObjectMeta `sidecar.istio.io/controlPlaneAuthPolicy` .ProxyConfig.ControlPlaneAuthPolicy ]] [[- if (ne (annotation .ObjectMeta `status.sidecar.istio.io/port` 15020 ) "0") ]] - --statusPort - [[ annotation .ObjectMeta `status.sidecar.istio.io/port` 15020 ]] - --applicationPorts - "[[ annotation .ObjectMeta `readiness.status.sidecar.istio.io/applicationPorts` (applicationPorts .Spec.Containers) ]]" [[- end ]] env: - name: POD_NAME valueFrom: fieldRef: fieldPath: metadata.name - name: POD_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - name: INSTANCE_IP valueFrom: fieldRef: fieldPath: status.podIP - name: ISTIO_META_POD_NAME valueFrom: fieldRef: fieldPath: metadata.name - name: ISTIO_META_CONFIG_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - name: ISTIO_META_INTERCEPTION_MODE value: [[ or (index .ObjectMeta.Annotations "sidecar.istio.io/interceptionMode") .ProxyConfig.InterceptionMode.String ]] [[ if .ObjectMeta.Annotations ]] - name: ISTIO_METAJSON_ANNOTATIONS value: | [[ toJSON .ObjectMeta.Annotations ]] [[ end ]] [[ if .ObjectMeta.Labels ]] - name: ISTIO_METAJSON_LABELS value: | [[ toJSON .ObjectMeta.Labels ]] [[ end ]] [[- if (isset .ObjectMeta.Annotations `sidecar.istio.io/bootstrapOverride`) ]] - name: ISTIO_BOOTSTRAP_OVERRIDE value: "/etc/istio/custom-bootstrap/custom_bootstrap.json" [[- end ]] imagePullPolicy: IfNotPresent [[ if (ne (annotation .ObjectMeta `status.sidecar.istio.io/port` 15020 ) "0") ]] readinessProbe: httpGet: path: /healthz/ready port: [[ annotation .ObjectMeta `status.sidecar.istio.io/port` 15020 ]] initialDelaySeconds: [[ annotation .ObjectMeta `readiness.status.sidecar.istio.io/initialDelaySeconds` 1 ]] periodSeconds: [[ annotation .ObjectMeta `readiness.status.sidecar.istio.io/periodSeconds` 2 ]] failureThreshold: [[ annotation .ObjectMeta `readiness.status.sidecar.istio.io/failureThreshold` 30 ]] [[ end -]]securityContext: readOnlyRootFilesystem: true [[ if eq (annotation .ObjectMeta `sidecar.istio.io/interceptionMode` .ProxyConfig.InterceptionMode) "TPROXY" -]] capabilities: add: - NET_ADMIN runAsGroup: 1337 [[ else -]] capabilities: drop: - KILL - SETUID - SETGID - MKNOD [[- end ]] resources: [[ if or (isset .ObjectMeta.Annotations `sidecar.istio.io/proxyCPU`) (isset .ObjectMeta.Annotations `sidecar.istio.io/proxyMemory`) -]] requests: [[ if (isset .ObjectMeta.Annotations `sidecar.istio.io/proxyCPU`) -]] cpu: "[[ index .ObjectMeta.Annotations `sidecar.istio.io/proxyCPU` ]]" [[ end ]] [[ if (isset .ObjectMeta.Annotations `sidecar.istio.io/proxyMemory`) -]] memory: "[[ index .ObjectMeta.Annotations `sidecar.istio.io/proxyMemory` ]]" [[ end ]] [[ else -]] limits: cpu: 501m memory: 128Mi requests: cpu: 100m memory: 128Mi [[ end -]] volumeMounts: [[- if (isset .ObjectMeta.Annotations `sidecar.istio.io/bootstrapOverride`) ]] - mountPath: /etc/istio/custom-bootstrap name: custom-bootstrap-volume [[- end ]] - mountPath: /etc/istio/proxy name: istio-envoy - mountPath: /etc/certs/ name: istio-certs readOnly: true [[- if isset .ObjectMeta.Annotations `sidecar.istio.io/userVolumeMount` ]] [[ range $index, $value := fromJSON (index .ObjectMeta.Annotations `sidecar.istio.io/userVolumeMount`) ]] - name: "[[ $index ]]" [[ toYaml $value | indent 4 ]] [[ end ]] [[- end ]] volumes: [[- if (isset .ObjectMeta.Annotations `sidecar.istio.io/bootstrapOverride`) ]] - name: custom-bootstrap-volume configMap: name: [[ annotation .ObjectMeta `sidecar.istio.io/bootstrapOverride` `` ]] [[- end ]] - emptyDir: medium: Memory name: istio-envoy - name: istio-certs secret: optional: true [[ if eq .Spec.ServiceAccountName "" -]] secretName: istio.default [[ else -]] secretName: [[ printf "istio.%s" .Spec.ServiceAccountName ]] [[ end -]] [[- if isset .ObjectMeta.Annotations `sidecar.istio.io/userVolume` ]] [[ range $index, $value := fromJSON (index .ObjectMeta.Annotations `sidecar.istio.io/userVolume`) ]] - name: "[[ $index ]]" [[ toYaml $value | indent 2 ]] [[ end ]] [[ end ]] } {Name:istio/templates/networkpolicy.yaml Content:apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: istio-mesh namespace: istio-system labels: app: istio chart: istio heritage: Tiller maistra-version: 1.0.0 release: istio spec: ingress: - from: - namespaceSelector: matchLabels: "maistra.io/member-of": "istio-system" egress: - to: - namespaceSelector: matchLabels: "maistra.io/member-of": "istio-system" --- # this will work for all routes into the mesh namespace, but not on ocp 3.11 apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: istio-ingress-router namespace: istio-system labels: app: istio chart: istio heritage: Tiller maistra-version: 1.0.0 release: istio annotations: "maistra.io/internal": "true" spec: ingress: - from: - namespaceSelector: matchLabels: network.openshift.io/policy-group: ingress } {Name:istio/templates/NOTES.txt Content:Thank you for installing istio. Your release is named istio. To get started running application with Istio, execute the following steps: 1. Label namespace that application object will be deployed to by the following command (take default namespace as an example) $ kubectl label namespace default istio-injection=enabled $ kubectl get namespace -L istio-injection 2. Deploy your applications $ kubectl apply -f .yaml For more information on running Istio, visit: https://istio.io/ } {Name:istio/templates/endpoints.yaml Content: } {Name:istio/templates/install-custom-resources.sh.tpl Content: } {Name:istio/templates/service.yaml Content: }] istio/charts/galley:[{Name:istio/charts/galley/templates/configmap.yaml Content:apiVersion: v1 kind: ConfigMap metadata: name: istio-galley-configuration namespace: istio-system labels: app: galley chart: galley heritage: Tiller maistra-version: 1.0.0 release: istio istio: galley data: validatingwebhookconfiguration.yaml: |- apiVersion: admissionregistration.k8s.io/v1beta1 kind: ValidatingWebhookConfiguration metadata: name: istio-galley labels: app: galley chart: galley heritage: Tiller maistra-version: 1.0.0 release: istio istio: galley webhooks: - name: pilot.validation.istio.io clientConfig: service: name: istio-galley namespace: istio-system path: "/admitpilot" caBundle: "" rules: - operations: - CREATE - UPDATE apiGroups: - config.istio.io apiVersions: - v1alpha2 resources: - httpapispecs - httpapispecbindings - quotaspecs - quotaspecbindings - operations: - CREATE - UPDATE apiGroups: - rbac.istio.io apiVersions: - "*" resources: - "*" - operations: - CREATE - UPDATE apiGroups: - authentication.istio.io apiVersions: - "*" resources: - "*" - operations: - CREATE - UPDATE apiGroups: - networking.istio.io apiVersions: - "*" resources: - destinationrules - envoyfilters - gateways - serviceentries - sidecars - virtualservices - operations: - CREATE - UPDATE apiGroups: - authentication.maistra.io apiVersions: - "*" resources: - "*" - operations: - CREATE - UPDATE apiGroups: - rbac.maistra.io apiVersions: - "*" resources: - "*" failurePolicy: Fail - name: mixer.validation.istio.io clientConfig: service: name: istio-galley namespace: istio-system path: "/admitmixer" caBundle: "" rules: - operations: - CREATE - UPDATE apiGroups: - config.istio.io apiVersions: - v1alpha2 resources: - rules - attributemanifests - circonuses - deniers - fluentds - kubernetesenvs - listcheckers - memquotas - noops - opas - prometheuses - rbacs - solarwindses - stackdrivers - cloudwatches - dogstatsds - statsds - stdios - apikeys - authorizations - checknothings # - kuberneteses - listentries - logentries - metrics - quotas - reportnothings - tracespans failurePolicy: Fail } {Name:istio/charts/galley/templates/serviceaccount.yaml Content:apiVersion: v1 kind: ServiceAccount metadata: name: istio-galley-service-account namespace: istio-system labels: app: galley chart: galley heritage: Tiller maistra-version: 1.0.0 release: istio } {Name:istio/charts/galley/templates/clusterrole.yaml Content:apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: istio-galley-istio-system labels: app: galley chart: galley heritage: Tiller maistra-version: 1.0.0 release: istio rules: - apiGroups: ["maistra.io"] resources: ["servicemeshmemberrolls"] verbs: ["get", "list", "watch"] - apiGroups: ["config.istio.io"] # istio mixer CRD watcher resources: ["*"] verbs: ["get", "list", "watch"] - apiGroups: ["networking.istio.io"] resources: ["*"] verbs: ["get", "list", "watch"] - apiGroups: ["authentication.istio.io"] resources: ["*"] verbs: ["get", "list", "watch"] - apiGroups: ["rbac.istio.io"] resources: ["*"] verbs: ["get", "list", "watch"] - apiGroups: ["extensions","apps"] resources: ["deployments"] resourceNames: ["istio-galley"] verbs: ["get"] - apiGroups: [""] resources: ["pods", "services", "endpoints"] verbs: ["get", "list", "watch"] - apiGroups: ["extensions"] resources: ["ingresses"] verbs: ["get", "list", "watch"] - apiGroups: ["extensions"] resources: ["deployments/finalizers"] resourceNames: ["istio-galley"] verbs: ["update"] - apiGroups: ["authentication.maistra.io"] resources: ["*"] verbs: ["get", "list", "watch"] - apiGroups: ["rbac.maistra.io"] resources: ["*"] verbs: ["get", "list", "watch"] } {Name:istio/charts/galley/templates/meshclusterrole.yaml Content:apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: istio-galley-mesh-istio-system labels: app: galley chart: galley heritage: Tiller maistra-version: 1.0.0 release: istio rules: - apiGroups: [""] resources: ["nodes"] verbs: ["get", "list", "watch"] } {Name:istio/charts/galley/templates/meshclusterrolebinding.yaml Content:apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: istio-galley-mesh-istio-system labels: app: galley chart: galley heritage: Tiller maistra-version: 1.0.0 release: istio roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: istio-galley-mesh-istio-system subjects: - kind: ServiceAccount name: istio-galley-service-account namespace: istio-system } {Name:istio/charts/galley/templates/clusterrolebinding.yaml Content:apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: istio-galley-admin-role-binding-istio-system namespace: istio-system labels: app: galley chart: galley heritage: Tiller maistra-version: 1.0.0 release: istio roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: istio-galley-istio-system subjects: - kind: ServiceAccount name: istio-galley-service-account namespace: istio-system } {Name:istio/charts/galley/templates/service.yaml Content:apiVersion: v1 kind: Service metadata: name: istio-galley namespace: istio-system labels: app: galley chart: galley heritage: Tiller maistra-version: 1.0.0 release: istio istio: galley spec: ports: - port: 443 targetPort: webhook name: https-validation - port: 15014 name: http-monitoring - port: 9901 name: grpc-mcp selector: istio: galley } {Name:istio/charts/galley/templates/deployment.yaml Content:apiVersion: extensions/v1beta1 kind: Deployment metadata: name: istio-galley namespace: istio-system labels: app: galley chart: galley heritage: Tiller maistra-version: 1.0.0 release: istio istio: galley spec: replicas: 1 strategy: rollingUpdate: maxSurge: 1 maxUnavailable: 0 template: metadata: labels: app: galley chart: galley heritage: Tiller maistra-version: 1.0.0 maistra-control-plane: istio-system release: istio istio: galley annotations: sidecar.istio.io/inject: "false" spec: serviceAccountName: istio-galley-service-account containers: - name: galley image: "quay.io/maistra/galley-rhel8:latest-qe" imagePullPolicy: IfNotPresent ports: - name: webhook containerPort: 8443 - containerPort: 15014 - containerPort: 9901 command: - /usr/local/bin/galley - server - --meshConfigFile=/etc/mesh-config/mesh - --livenessProbeInterval=1s - --livenessProbePath=/tmp/healthliveness - --readinessProbePath=/tmp/healthready - --readinessProbeInterval=1s - --deployment-namespace=istio-system - --insecure=true - --deployment-namespace - istio-system - --webhook-name - istio-galley-istio-system - --memberRollName=default - --manageWebhookConfig=false - --validation-webhook-config-file - /etc/config/validatingwebhookconfiguration.yaml - --monitoringPort=15014 - --validation-port=8443 - --log_output_level=default:info volumeMounts: - name: certs mountPath: /etc/certs readOnly: true - name: config mountPath: /etc/config readOnly: true - name: mesh-config mountPath: /etc/mesh-config readOnly: true livenessProbe: exec: command: - /usr/local/bin/galley - probe - --probe-path=/tmp/healthliveness - --interval=10s initialDelaySeconds: 5 periodSeconds: 5 readinessProbe: exec: command: - /usr/local/bin/galley - probe - --probe-path=/tmp/healthready - --interval=10s initialDelaySeconds: 5 periodSeconds: 5 resources: requests: cpu: 10m volumes: - name: certs secret: secretName: istio.istio-galley-service-account - name: config configMap: name: istio-galley-configuration - name: mesh-config configMap: name: istio affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - amd64 - ppc64le - s390x preferredDuringSchedulingIgnoredDuringExecution: - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - amd64 - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - ppc64le - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - s390x } {Name:istio/charts/galley/templates/networkpolicy.yaml Content:apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: istio-galley namespace: istio-system labels: app: galley chart: galley heritage: Tiller maistra-version: 1.0.0 release: istio annotations: "maistra.io/internal": "true" spec: podSelector: matchLabels: istio: galley ingress: - ports: port: webhook } {Name:istio/charts/galley/templates/poddisruptionbudget.yaml Content: apiVersion: policy/v1beta1 kind: PodDisruptionBudget metadata: name: istio-galley namespace: istio-system labels: app: galley chart: galley heritage: Tiller maistra-version: 1.0.0 release: istio istio: galley spec: minAvailable: 1 selector: matchLabels: app: galley maistra-version: 1.0.0 release: istio istio: galley } {Name:istio/charts/galley/templates/validatingwebhookconfiguration.yaml.tpl Content: } {Name:istio/charts/galley/templates/validatingwebhookconfiguration.yaml Content:apiVersion: admissionregistration.k8s.io/v1beta1 kind: ValidatingWebhookConfiguration metadata: name: istio-galley-istio-system namespace: istio-system labels: app: galley chart: galley heritage: Tiller maistra-version: 1.0.0 release: istio istio: galley annotations: "helm.sh/resource-policy": keep webhooks: - name: pilot.validation.istio.io clientConfig: service: name: istio-galley namespace: istio-system path: "/admitpilot" caBundle: "" namespaceSelector: matchExpressions: - key: maistra.io/member-of operator: In values: - istio-system rules: - operations: - CREATE - UPDATE apiGroups: - config.istio.io apiVersions: - v1alpha2 resources: - httpapispecs - httpapispecbindings - quotaspecs - quotaspecbindings - operations: - CREATE - UPDATE apiGroups: - rbac.istio.io apiVersions: - "*" resources: - "*" - operations: - CREATE - UPDATE apiGroups: - authentication.istio.io apiVersions: - "*" resources: - "*" - operations: - CREATE - UPDATE apiGroups: - authentication.maistra.io apiVersions: - "*" resources: - "*" - operations: - CREATE - UPDATE apiGroups: - rbac.maistra.io apiVersions: - "*" resources: - "*" - operations: - CREATE - UPDATE apiGroups: - networking.istio.io apiVersions: - "*" resources: - destinationrules - envoyfilters - gateways - serviceentries - sidecars - virtualservices failurePolicy: Fail - name: mixer.validation.istio.io clientConfig: service: name: istio-galley namespace: istio-system path: "/admitmixer" caBundle: "" namespaceSelector: matchExpressions: - key: maistra.io/member-of operator: In values: - istio-system rules: - operations: - CREATE - UPDATE apiGroups: - config.istio.io apiVersions: - v1alpha2 resources: - rules - attributemanifests - circonuses - deniers - fluentds - kubernetesenvs - listcheckers - memquotas - noops - opas - prometheuses - rbacs - solarwindses - stackdrivers - cloudwatches - dogstatsds - statsds - stdios - apikeys - authorizations - checknothings # - kuberneteses - listentries - logentries - metrics - quotas - reportnothings - tracespans failurePolicy: Fail }] istio/charts/gateways:[{Name:istio/charts/gateways/templates/serviceaccount.yaml Content: apiVersion: v1 kind: ServiceAccount metadata: name: istio-egressgateway-service-account namespace: istio-system labels: app: istio-egressgateway chart: gateways heritage: Tiller maistra-version: 1.0.0 release: istio --- apiVersion: v1 kind: ServiceAccount metadata: name: istio-ingressgateway-service-account namespace: istio-system labels: app: istio-ingressgateway chart: gateways heritage: Tiller maistra-version: 1.0.0 release: istio --- } {Name:istio/charts/gateways/templates/clusterrole.yaml Content: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: istio-egressgateway-istio-system labels: app: egressgateway chart: gateways heritage: Tiller maistra-version: 1.0.0 release: istio rules: - apiGroups: ["networking.istio.io"] resources: ["virtualservices", "destinationrules", "gateways"] verbs: ["get", "watch", "list", "update"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: istio-ingressgateway-istio-system labels: app: ingressgateway chart: gateways heritage: Tiller maistra-version: 1.0.0 release: istio rules: - apiGroups: ["networking.istio.io"] resources: ["virtualservices", "destinationrules", "gateways"] verbs: ["get", "watch", "list", "update"] --- } {Name:istio/charts/gateways/templates/role.yaml Content: apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: istio-ingressgateway-sds namespace: istio-system rules: - apiGroups: [""] resources: ["secrets"] verbs: ["get", "watch", "list"] --- } {Name:istio/charts/gateways/templates/clusterrolebindings.yaml Content: apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: istio-egressgateway-istio-system namespace: istio-system labels: app: egressgateway chart: gateways heritage: Tiller maistra-version: 1.0.0 release: istio roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: istio-egressgateway-istio-system subjects: - kind: ServiceAccount name: istio-egressgateway-service-account namespace: istio-system --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: istio-ingressgateway-istio-system namespace: istio-system labels: app: ingressgateway chart: gateways heritage: Tiller maistra-version: 1.0.0 release: istio roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: istio-ingressgateway-istio-system subjects: - kind: ServiceAccount name: istio-ingressgateway-service-account namespace: istio-system --- } {Name:istio/charts/gateways/templates/rolebindings.yaml Content: apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: istio-ingressgateway-sds namespace: istio-system roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: istio-ingressgateway-sds subjects: - kind: ServiceAccount name: istio-ingressgateway-service-account --- } {Name:istio/charts/gateways/templates/istio-ingressgateway-route.yaml Content: apiVersion: route.openshift.io/v1 kind: Route metadata: name: istio-ingressgateway namespace: istio-system labels: chart: gateways heritage: Tiller maistra-version: 1.0.0 release: istio app: istio-ingressgateway istio: ingressgateway spec: to: kind: Service name: istio-ingressgateway port: targetPort: 8080 } {Name:istio/charts/gateways/templates/service.yaml Content: apiVersion: v1 kind: Service metadata: name: istio-egressgateway namespace: istio-system annotations: labels: chart: gateways heritage: Tiller maistra-version: 1.0.0 release: istio app: istio-egressgateway istio: egressgateway spec: type: ClusterIP selector: maistra-version: 1.0.0 release: istio app: istio-egressgateway istio: egressgateway ports: - name: http2 port: 80 targetPort: 8080 - name: https port: 443 targetPort: 8443 - name: tls port: 15443 targetPort: 15443 --- apiVersion: v1 kind: Service metadata: name: istio-ingressgateway namespace: istio-system annotations: labels: chart: gateways heritage: Tiller maistra-version: 1.0.0 release: istio app: istio-ingressgateway istio: ingressgateway spec: type: ClusterIP selector: maistra-version: 1.0.0 release: istio app: istio-ingressgateway istio: ingressgateway ports: - name: status-port port: 15020 targetPort: 15020 - name: http2 port: 80 targetPort: 80 - name: https port: 443 - name: tls port: 15443 targetPort: 15443 --- } {Name:istio/charts/gateways/templates/deployment.yaml Content: apiVersion: extensions/v1beta1 kind: Deployment metadata: name: istio-egressgateway namespace: istio-system labels: chart: gateways heritage: Tiller maistra-version: 1.0.0 release: istio app: istio-egressgateway istio: egressgateway spec: replicas: 1 template: metadata: labels: chart: gateways heritage: Tiller maistra-version: 1.0.0 maistra-control-plane: istio-system release: istio app: istio-egressgateway istio: egressgateway annotations: sidecar.istio.io/inject: "false" spec: serviceAccountName: istio-egressgateway-service-account containers: - name: istio-proxy image: "quay.io/maistra/proxyv2-rhel8:latest-qe" imagePullPolicy: IfNotPresent ports: - name: http2 containerPort: 8080 - name: https containerPort: 8443 - name: tls containerPort: 15443 - containerPort: 15090 protocol: TCP name: http-envoy-prom args: - proxy - router - --domain - $(POD_NAMESPACE).svc.cluster.local - --log_output_level=default:info - --drainDuration - '45s' #drainDuration - --parentShutdownDuration - '1m0s' #parentShutdownDuration - --connectTimeout - '10s' #connectTimeout - --serviceCluster - istio-egressgateway - --zipkinAddress - zipkin:9411 - --proxyAdminPort - "15000" - --statusPort - "15020" - --controlPlaneAuthPolicy - NONE - --discoveryAddress - istio-pilot:15010 readinessProbe: failureThreshold: 30 httpGet: path: /healthz/ready port: 15020 scheme: HTTP initialDelaySeconds: 1 periodSeconds: 2 successThreshold: 1 timeoutSeconds: 1 resources: limits: cpu: 2000m memory: 256Mi requests: cpu: 100m memory: 128Mi env: - name: POD_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.name - name: POD_NAMESPACE valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.namespace - name: INSTANCE_IP valueFrom: fieldRef: apiVersion: v1 fieldPath: status.podIP - name: HOST_IP valueFrom: fieldRef: apiVersion: v1 fieldPath: status.hostIP - name: ISTIO_META_POD_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.name - name: ISTIO_META_CONFIG_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - name: ISTIO_META_ROUTER_MODE value: sni-dnat volumeMounts: - name: istio-certs mountPath: /etc/certs readOnly: true - name: egressgateway-certs mountPath: "/etc/istio/egressgateway-certs" readOnly: true - name: egressgateway-ca-certs mountPath: "/etc/istio/egressgateway-ca-certs" readOnly: true volumes: - name: istio-certs secret: secretName: istio.istio-egressgateway-service-account optional: true - name: egressgateway-certs secret: secretName: "istio-egressgateway-certs" optional: true - name: egressgateway-ca-certs secret: secretName: "istio-egressgateway-ca-certs" optional: true affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - amd64 - ppc64le - s390x preferredDuringSchedulingIgnoredDuringExecution: - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - amd64 - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - ppc64le - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - s390x --- apiVersion: extensions/v1beta1 kind: Deployment metadata: name: istio-ingressgateway namespace: istio-system labels: chart: gateways heritage: Tiller maistra-version: 1.0.0 release: istio app: istio-ingressgateway istio: ingressgateway spec: replicas: 1 template: metadata: labels: chart: gateways heritage: Tiller maistra-version: 1.0.0 maistra-control-plane: istio-system release: istio app: istio-ingressgateway istio: ingressgateway annotations: sidecar.istio.io/inject: "false" spec: serviceAccountName: istio-ingressgateway-service-account containers: - name: istio-proxy image: "quay.io/maistra/proxyv2-rhel8:latest-qe" imagePullPolicy: IfNotPresent ports: - name: status-port containerPort: 15020 - name: http2 containerPort: 80 - name: https containerPort: 443 - name: tls containerPort: 15443 - containerPort: 15090 protocol: TCP name: http-envoy-prom args: - proxy - router - --domain - $(POD_NAMESPACE).svc.cluster.local - --log_output_level=default:info - --drainDuration - '45s' #drainDuration - --parentShutdownDuration - '1m0s' #parentShutdownDuration - --connectTimeout - '10s' #connectTimeout - --serviceCluster - istio-ingressgateway - --zipkinAddress - zipkin:9411 - --proxyAdminPort - "15000" - --statusPort - "15020" - --controlPlaneAuthPolicy - NONE - --discoveryAddress - istio-pilot:15010 readinessProbe: failureThreshold: 30 httpGet: path: /healthz/ready port: 15020 scheme: HTTP initialDelaySeconds: 1 periodSeconds: 2 successThreshold: 1 timeoutSeconds: 1 resources: limits: cpu: 2000m memory: 1024Mi requests: cpu: 100m memory: 128Mi env: - name: POD_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.name - name: POD_NAMESPACE valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.namespace - name: INSTANCE_IP valueFrom: fieldRef: apiVersion: v1 fieldPath: status.podIP - name: HOST_IP valueFrom: fieldRef: apiVersion: v1 fieldPath: status.hostIP - name: ISTIO_META_POD_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.name - name: ISTIO_META_CONFIG_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - name: ISTIO_META_ROUTER_MODE value: sni-dnat volumeMounts: - name: istio-certs mountPath: /etc/certs readOnly: true - name: ingressgateway-certs mountPath: "/etc/istio/ingressgateway-certs" readOnly: true - name: ingressgateway-ca-certs mountPath: "/etc/istio/ingressgateway-ca-certs" readOnly: true volumes: - name: istio-certs secret: secretName: istio.istio-ingressgateway-service-account optional: true - name: ingressgateway-certs secret: secretName: "istio-ingressgateway-certs" optional: true - name: ingressgateway-ca-certs secret: secretName: "istio-ingressgateway-ca-certs" optional: true affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - amd64 - ppc64le - s390x preferredDuringSchedulingIgnoredDuringExecution: - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - amd64 - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - ppc64le - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - s390x --- } {Name:istio/charts/gateways/templates/networkpolicy.yaml Content: apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: istio-ingressgateway namespace: istio-system labels: app: ingressgateway chart: gateways heritage: Tiller maistra-version: 1.0.0 release: istio annotations: "maistra.io/internal": "true" spec: podSelector: matchLabels: istio: ingressgateway ingress: - from: - namespaceSelector: {} } {Name:istio/charts/gateways/templates/poddisruptionbudget.yaml Content: apiVersion: policy/v1beta1 kind: PodDisruptionBudget metadata: name: istio-egressgateway namespace: istio-system labels: chart: gateways heritage: Tiller maistra-version: 1.0.0 release: istio app: istio-egressgateway istio: egressgateway spec: minAvailable: 1 selector: matchLabels: maistra-version: 1.0.0 release: istio app: istio-egressgateway istio: egressgateway --- apiVersion: policy/v1beta1 kind: PodDisruptionBudget metadata: name: istio-ingressgateway namespace: istio-system labels: chart: gateways heritage: Tiller maistra-version: 1.0.0 release: istio app: istio-ingressgateway istio: ingressgateway spec: minAvailable: 1 selector: matchLabels: maistra-version: 1.0.0 release: istio app: istio-ingressgateway istio: ingressgateway --- } {Name:istio/charts/gateways/templates/autoscale.yaml Content: } {Name:istio/charts/gateways/templates/ior-deployment.yaml Content: } {Name:istio/charts/gateways/templates/ior-role.yaml Content: } {Name:istio/charts/gateways/templates/ior-rolebinding.yaml Content: } {Name:istio/charts/gateways/templates/ior-serviceaccount.yaml Content: } {Name:istio/charts/gateways/templates/preconfigured.yaml Content: }] istio/charts/grafana:[{Name:istio/charts/grafana/templates/configmap-dashboards.yaml Content: apiVersion: v1 kind: ConfigMap metadata: name: istio-grafana-configuration-dashboards-galley-dashboard namespace: istio-system labels: app: grafana chart: grafana heritage: Tiller maistra-version: 1.0.0 release: istio istio: grafana data: galley-dashboard.json: '{ "__inputs": [ { "name": "DS_PROMETHEUS", "label": "Prometheus", "description": "", "type": "datasource", "pluginId": "prometheus", "pluginName": "Prometheus" } ], "annotations": { "list": [ { "builtIn": 1, "datasource": "-- Grafana --", "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", "name": "Annotations & Alerts", "type": "dashboard" } ] }, "editable": false, "gnetId": null, "graphTooltip": 0, "links": [], "panels": [ { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 5, "w": 24, "x": 0, "y": 0 }, "id": 46, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(istio_build{component=\"galley\"}) by (tag)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ tag }}", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Galley Versions", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 5 }, "id": 40, "panels": [], "title": "Resource Usage", "type": "row" }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 8, "w": 6, "x": 0, "y": 6 }, "id": 36, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "process_virtual_memory_bytes{job=\"galley\"}", "format": "time_series", "intervalFactor": 2, "legendFormat": "Virtual Memory", "refId": "A" }, { "expr": "process_resident_memory_bytes{job=\"galley\"}", "format": "time_series", "intervalFactor": 2, "legendFormat": "Resident Memory", "refId": "B" }, { "expr": "go_memstats_heap_sys_bytes{job=\"galley\"}", "format": "time_series", "intervalFactor": 2, "legendFormat": "heap sys", "refId": "C" }, { "expr": "go_memstats_heap_alloc_bytes{job=\"galley\"}", "format": "time_series", "intervalFactor": 2, "legendFormat": "heap alloc", "refId": "D" }, { "expr": "go_memstats_alloc_bytes{job=\"galley\"}", "format": "time_series", "intervalFactor": 2, "legendFormat": "Alloc", "refId": "F" }, { "expr": "go_memstats_heap_inuse_bytes{job=\"galley\"}", "format": "time_series", "intervalFactor": 2, "legendFormat": "Heap in-use", "refId": "G" }, { "expr": "go_memstats_stack_inuse_bytes{job=\"galley\"}", "format": "time_series", "intervalFactor": 2, "legendFormat": "Stack in-use", "refId": "H" }, { "expr": "sum(container_memory_usage_bytes{container_name=~\"galley\", pod_name=~\"istio-galley-.*\"})", "format": "time_series", "intervalFactor": 1, "legendFormat": "Total (kis)", "refId": "E" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Memory", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 8, "w": 6, "x": 6, "y": 6 }, "id": 38, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(rate(container_cpu_usage_seconds_total{container_name=~\"galley\", pod_name=~\"istio-galley-.*\"}[1m]))", "format": "time_series", "intervalFactor": 2, "legendFormat": "Total (k8s)", "refId": "A" }, { "expr": "sum(rate(container_cpu_usage_seconds_total{container_name=~\"galley\", pod_name=~\"istio-galley-.*\"}[1m])) by (container_name)", "format": "time_series", "intervalFactor": 2, "legendFormat": "{{ container_name }} (k8s)", "refId": "B" }, { "expr": "irate(process_cpu_seconds_total{job=\"galley\"}[1m])", "format": "time_series", "intervalFactor": 2, "legendFormat": "galley (self-reported)", "refId": "C" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "CPU", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 8, "w": 6, "x": 12, "y": 6 }, "id": 42, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "process_open_fds{job=\"galley\"}", "format": "time_series", "intervalFactor": 2, "legendFormat": "Open FDs (galley)", "refId": "A" }, { "expr": "container_fs_usage_bytes{container_name=~\"galley\", pod_name=~\"istio-galley-.*\"}", "format": "time_series", "intervalFactor": 2, "legendFormat": "{{ container_name }} ", "refId": "B" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Disk", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 8, "w": 6, "x": 18, "y": 6 }, "id": 44, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "go_goroutines{job=\"galley\"}", "format": "time_series", "intervalFactor": 2, "legendFormat": "goroutines_total", "refId": "A" }, { "expr": "galley_mcp_source_clients_total", "format": "time_series", "intervalFactor": 1, "legendFormat": "clients_total", "refId": "B" }, { "expr": "go_goroutines{job=\"galley\"}/galley_mcp_source_clients_total", "format": "time_series", "intervalFactor": 1, "legendFormat": "avg_goroutines_per_client", "refId": "C" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Goroutines", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 14 }, "id": 10, "panels": [], "title": "Runtime", "type": "row" }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 0, "y": 15 }, "id": 2, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(rate(galley_runtime_strategy_on_change_total[1m])) * 60", "format": "time_series", "intervalFactor": 1, "legendFormat": "Strategy Change Events", "refId": "A" }, { "expr": "sum(rate(galley_runtime_processor_events_processed_total[1m])) * 60", "format": "time_series", "intervalFactor": 1, "legendFormat": "Processed Events", "refId": "B" }, { "expr": "sum(rate(galley_runtime_processor_snapshots_published_total[1m])) * 60", "format": "time_series", "intervalFactor": 1, "legendFormat": "Snapshot Published", "refId": "C" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Event Rates", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": "Events/min", "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": "", "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 8, "y": 15 }, "id": 4, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(rate(galley_runtime_strategy_timer_max_time_reached_total[1m])) * 60", "format": "time_series", "intervalFactor": 1, "legendFormat": "Max Time Reached", "refId": "A" }, { "expr": "sum(rate(galley_runtime_strategy_timer_quiesce_reached_total[1m])) * 60", "format": "time_series", "intervalFactor": 1, "legendFormat": "Quiesce Reached", "refId": "B" }, { "expr": "sum(rate(galley_runtime_strategy_timer_resets_total[1m])) * 60", "format": "time_series", "intervalFactor": 1, "legendFormat": "Timer Resets", "refId": "C" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Timer Rates", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": "Events/min", "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 16, "y": 15 }, "id": 8, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 3, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": true, "steppedLine": false, "targets": [ { "expr": "histogram_quantile(0.50, sum by (le) (galley_runtime_processor_snapshot_events_total_bucket))", "format": "time_series", "intervalFactor": 1, "legendFormat": "P50", "refId": "A" }, { "expr": "histogram_quantile(0.90, sum by (le) (galley_runtime_processor_snapshot_events_total_bucket))", "format": "time_series", "intervalFactor": 1, "legendFormat": "P90", "refId": "B" }, { "expr": "histogram_quantile(0.95, sum by (le) (galley_runtime_processor_snapshot_events_total_bucket))", "format": "time_series", "intervalFactor": 1, "legendFormat": "P95", "refId": "C" }, { "expr": "histogram_quantile(0.99, sum by (le) (galley_runtime_processor_snapshot_events_total_bucket))", "format": "time_series", "intervalFactor": 1, "legendFormat": "P99", "refId": "D" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Events Per Snapshot", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 8, "y": 21 }, "id": 6, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum by (typeURL) (galley_runtime_state_type_instances_total)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ typeURL }}", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "State Type Instances", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": "Count", "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 27 }, "id": 34, "panels": [], "title": "Validation", "type": "row" }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 0, "y": 28 }, "id": 28, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "galley_validation_cert_key_updates{job=\"galley\"}", "format": "time_series", "intervalFactor": 1, "legendFormat": "Key Updates", "refId": "A" }, { "expr": "galley_validation_cert_key_update_errors{job=\"galley\"}", "format": "time_series", "intervalFactor": 1, "legendFormat": "Key Update Errors: {{ error }}", "refId": "B" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Validation Webhook Certificate", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 8, "y": 28 }, "id": 30, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(galley_validation_passed{job=\"galley\"}) by (group, version, resource)", "format": "time_series", "intervalFactor": 1, "legendFormat": "Passed: {{ group }}/{{ version }}/{{resource}}", "refId": "A" }, { "expr": "sum(galley_validation_failed{job=\"galley\"}) by (group, version, resource, reason)", "format": "time_series", "intervalFactor": 1, "legendFormat": "Failed: {{ group }}/{{ version }}/{{resource}} ({{ reason}})", "refId": "B" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Resource Validation", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 16, "y": 28 }, "id": 32, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(galley_validation_http_error{job=\"galley\"}) by (status)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ status }}", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Validation HTTP Errors", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 34 }, "id": 12, "panels": [], "title": "Kubernetes Source", "type": "row" }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 0, "y": 35 }, "id": 14, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "rate(galley_source_kube_event_success_total[1m]) * 60", "format": "time_series", "intervalFactor": 1, "legendFormat": "Success", "refId": "A" }, { "expr": "rate(galley_source_kube_event_error_total[1m]) * 60", "format": "time_series", "intervalFactor": 1, "legendFormat": "Error", "refId": "B" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Source Event Rate", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": "Events/min", "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 8, "y": 35 }, "id": 16, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "rate(galley_source_kube_dynamic_converter_success_total[1m]) * 60", "format": "time_series", "intervalFactor": 1, "legendFormat": "{apiVersion=\"{{apiVersion}}\",group=\"{{group}}\",kind=\"{{kind}}\"}", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Kubernetes Object Conversion Successes", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": "Conversions/min", "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 16, "y": 35 }, "id": 24, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "rate(galley_source_kube_dynamic_converter_failure_total[1m]) * 60", "format": "time_series", "intervalFactor": 1, "legendFormat": "Error", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Kubernetes Object Conversion Failures", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": "Failures/min", "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 41 }, "id": 18, "panels": [], "title": "Mesh Configuration Protocol", "type": "row" }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 0, "y": 42 }, "id": 20, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(galley_mcp_source_clients_total)", "format": "time_series", "intervalFactor": 1, "legendFormat": "Clients", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Connected Clients", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 8, "y": 42 }, "id": 22, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum by(collection)(irate(galley_mcp_source_request_acks_total[1m]) * 60)", "format": "time_series", "intervalFactor": 1, "legendFormat": "", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Request ACKs", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": "ACKs/min", "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 16, "y": 42 }, "id": 26, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "rate(galley_mcp_source_request_nacks_total[1m]) * 60", "format": "time_series", "intervalFactor": 1, "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Request NACKs", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": "NACKs/min", "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } } ], "refresh": "5s", "schemaVersion": 16, "style": "dark", "tags": [], "templating": { "list": [] }, "time": { "from": "now-5m", "to": "now" }, "timepicker": { "refresh_intervals": [ "5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d" ], "time_options": [ "5m", "15m", "1h", "6h", "12h", "24h", "2d", "7d", "30d" ] }, "timezone": "", "title": "Istio Galley Dashboard", "uid": "TSEY6jLmk", "version": 1 } ' --- apiVersion: v1 kind: ConfigMap metadata: name: istio-grafana-configuration-dashboards-istio-mesh-dashboard namespace: istio-system labels: app: grafana chart: grafana heritage: Tiller maistra-version: 1.0.0 release: istio istio: grafana data: istio-mesh-dashboard.json: '{ "__inputs": [ { "name": "DS_PROMETHEUS", "label": "Prometheus", "description": "", "type": "datasource", "pluginId": "prometheus", "pluginName": "Prometheus" } ], "__requires": [ { "type": "grafana", "id": "grafana", "name": "Grafana", "version": "5.2.3" }, { "type": "panel", "id": "graph", "name": "Graph", "version": "5.0.0" }, { "type": "datasource", "id": "prometheus", "name": "Prometheus", "version": "5.0.0" }, { "type": "panel", "id": "singlestat", "name": "Singlestat", "version": "5.0.0" }, { "type": "panel", "id": "table", "name": "Table", "version": "5.0.0" }, { "type": "panel", "id": "text", "name": "Text", "version": "5.0.0" } ], "annotations": { "list": [ { "builtIn": 1, "datasource": "-- Grafana --", "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", "name": "Annotations & Alerts", "type": "dashboard" } ] }, "editable": false, "gnetId": null, "graphTooltip": 0, "id": null, "links": [], "panels": [ { "content": "
\n
\n Istio\n
\n
\n Istio is an open platform that provides a uniform way to connect,\n manage, and \n secure microservices.\n
\n Need help? Join the Istio community.\n
\n
", "gridPos": { "h": 3, "w": 24, "x": 0, "y": 0 }, "height": "50px", "id": 13, "links": [], "mode": "html", "style": { "font-size": "18pt" }, "title": "", "transparent": true, "type": "text" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "datasource": "Prometheus", "format": "ops", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 3, "w": 6, "x": 0, "y": 3 }, "id": 20, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": true, "lineColor": "rgb(31, 120, 193)", "show": true }, "tableColumn": "", "targets": [ { "expr": "round(sum(irate(istio_requests_total{reporter=\"destination\"}[1m])), 0.001)", "intervalFactor": 1, "refId": "A", "step": 4 } ], "thresholds": "", "title": "Global Request Volume", "transparent": false, "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "N/A", "value": "null" } ], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "datasource": "Prometheus", "format": "percentunit", "gauge": { "maxValue": 100, "minValue": 80, "show": false, "thresholdLabels": false, "thresholdMarkers": false }, "gridPos": { "h": 3, "w": 6, "x": 6, "y": 3 }, "id": 21, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": true, "lineColor": "rgb(31, 120, 193)", "show": true }, "tableColumn": "", "targets": [ { "expr": "sum(rate(istio_requests_total{reporter=\"destination\", response_code!~\"5.*\"}[1m])) / sum(rate(istio_requests_total{reporter=\"destination\"}[1m]))", "format": "time_series", "intervalFactor": 1, "refId": "A", "step": 4 } ], "thresholds": "95, 99, 99.5", "title": "Global Success Rate (non-5xx responses)", "transparent": false, "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "N/A", "value": "null" } ], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "datasource": "Prometheus", "format": "ops", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 3, "w": 6, "x": 12, "y": 3 }, "id": 22, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": true, "lineColor": "rgb(31, 120, 193)", "show": true }, "tableColumn": "", "targets": [ { "expr": "sum(irate(istio_requests_total{reporter=\"destination\", response_code=~\"4.*\"}[1m])) ", "format": "time_series", "intervalFactor": 1, "refId": "A", "step": 4 } ], "thresholds": "", "title": "4xxs", "transparent": false, "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "N/A", "value": "null" } ], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "datasource": "Prometheus", "format": "ops", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 3, "w": 6, "x": 18, "y": 3 }, "id": 23, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": true, "lineColor": "rgb(31, 120, 193)", "show": true }, "tableColumn": "", "targets": [ { "expr": "sum(irate(istio_requests_total{reporter=\"destination\", response_code=~\"5.*\"}[1m])) ", "format": "time_series", "intervalFactor": 1, "refId": "A", "step": 4 } ], "thresholds": "", "title": "5xxs", "transparent": false, "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "N/A", "value": "null" } ], "valueName": "avg" }, { "columns": [], "datasource": "Prometheus", "fontSize": "100%", "gridPos": { "h": 21, "w": 24, "x": 0, "y": 6 }, "hideTimeOverride": false, "id": 73, "links": [], "pageSize": null, "repeat": null, "repeatDirection": "v", "scroll": true, "showHeader": true, "sort": { "col": 4, "desc": true }, "styles": [ { "alias": "Workload", "colorMode": null, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat": "YYYY-MM-DD HH:mm:ss", "decimals": 2, "link": false, "linkTargetBlank": false, "linkTooltip": "Workload dashboard", "linkUrl": "/dashboard/db/istio-workload-dashboard?var-namespace=$__cell_2&var-workload=$__cell_", "pattern": "destination_workload", "preserveFormat": false, "sanitize": false, "thresholds": [], "type": "hidden", "unit": "short" }, { "alias": "", "colorMode": null, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat": "YYYY-MM-DD HH:mm:ss", "decimals": 2, "pattern": "Time", "thresholds": [], "type": "hidden", "unit": "short" }, { "alias": "Requests", "colorMode": null, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat": "YYYY-MM-DD HH:mm:ss", "decimals": 2, "pattern": "Value #A", "thresholds": [], "type": "number", "unit": "ops" }, { "alias": "P50 Latency", "colorMode": null, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat": "YYYY-MM-DD HH:mm:ss", "decimals": 2, "pattern": "Value #B", "thresholds": [], "type": "number", "unit": "s" }, { "alias": "P90 Latency", "colorMode": null, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat": "YYYY-MM-DD HH:mm:ss", "decimals": 2, "pattern": "Value #D", "thresholds": [], "type": "number", "unit": "s" }, { "alias": "P99 Latency", "colorMode": null, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat": "YYYY-MM-DD HH:mm:ss", "decimals": 2, "pattern": "Value #E", "thresholds": [], "type": "number", "unit": "s" }, { "alias": "Success Rate", "colorMode": "cell", "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat": "YYYY-MM-DD HH:mm:ss", "decimals": 2, "pattern": "Value #F", "thresholds": [ ".95", " 1.00" ], "type": "number", "unit": "percentunit" }, { "alias": "Workload", "colorMode": null, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat": "YYYY-MM-DD HH:mm:ss", "decimals": 2, "link": true, "linkTooltip": "$__cell dashboard", "linkUrl": "/dashboard/db/istio-workload-dashboard?var-workload=$__cell_2&var-namespace=$__cell_3", "pattern": "destination_workload_var", "thresholds": [], "type": "number", "unit": "short" }, { "alias": "Service", "colorMode": null, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat": "YYYY-MM-DD HH:mm:ss", "decimals": 2, "link": true, "linkTooltip": "$__cell dashboard", "linkUrl": "/dashboard/db/istio-service-dashboard?var-service=$__cell", "pattern": "destination_service", "thresholds": [], "type": "string", "unit": "short" }, { "alias": "", "colorMode": null, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat": "YYYY-MM-DD HH:mm:ss", "decimals": 2, "pattern": "destination_workload_namespace", "thresholds": [], "type": "hidden", "unit": "short" } ], "targets": [ { "expr": "label_join(sum(rate(istio_requests_total{reporter=\"destination\", response_code=\"200\"}[1m])) by (destination_workload, destination_workload_namespace, destination_service), \"destination_workload_var\", \".\", \"destination_workload\", \"destination_workload_namespace\")", "format": "table", "hide": false, "instant": true, "intervalFactor": 1, "legendFormat": "{{ destination_workload}}.{{ destination_workload_namespace }}", "refId": "A" }, { "expr": "label_join(histogram_quantile(0.50, sum(rate(istio_request_duration_seconds_bucket{reporter=\"destination\"}[1m])) by (le, destination_workload, destination_workload_namespace)), \"destination_workload_var\", \".\", \"destination_workload\", \"destination_workload_namespace\")", "format": "table", "hide": false, "instant": true, "intervalFactor": 1, "legendFormat": "{{ destination_workload}}.{{ destination_workload_namespace }}", "refId": "B" }, { "expr": "label_join(histogram_quantile(0.90, sum(rate(istio_request_duration_seconds_bucket{reporter=\"destination\"}[1m])) by (le, destination_workload, destination_workload_namespace)), \"destination_workload_var\", \".\", \"destination_workload\", \"destination_workload_namespace\")", "format": "table", "hide": false, "instant": true, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }}", "refId": "D" }, { "expr": "label_join(histogram_quantile(0.99, sum(rate(istio_request_duration_seconds_bucket{reporter=\"destination\"}[1m])) by (le, destination_workload, destination_workload_namespace)), \"destination_workload_var\", \".\", \"destination_workload\", \"destination_workload_namespace\")", "format": "table", "hide": false, "instant": true, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }}", "refId": "E" }, { "expr": "label_join((sum(rate(istio_requests_total{reporter=\"destination\", response_code!~\"5.*\"}[1m])) by (destination_workload, destination_workload_namespace) / sum(rate(istio_requests_total{reporter=\"destination\"}[1m])) by (destination_workload, destination_workload_namespace)), \"destination_workload_var\", \".\", \"destination_workload\", \"destination_workload_namespace\")", "format": "table", "hide": false, "instant": true, "interval": "", "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }}", "refId": "F" } ], "timeFrom": null, "title": "HTTP/GRPC Workloads", "transform": "table", "transparent": false, "type": "table" }, { "columns": [], "datasource": "Prometheus", "fontSize": "100%", "gridPos": { "h": 18, "w": 24, "x": 0, "y": 27 }, "hideTimeOverride": false, "id": 109, "links": [], "pageSize": null, "repeatDirection": "v", "scroll": true, "showHeader": true, "sort": { "col": 2, "desc": true }, "styles": [ { "alias": "Workload", "colorMode": null, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat": "YYYY-MM-DD HH:mm:ss", "decimals": 2, "link": false, "linkTargetBlank": false, "linkTooltip": "$__cell dashboard", "linkUrl": "/dashboard/db/istio-tcp-workload-dashboard?var-namespace=$__cell_2&&var-workload=$__cell", "pattern": "destination_workload", "preserveFormat": false, "sanitize": false, "thresholds": [], "type": "hidden", "unit": "short" }, { "alias": "Bytes Sent", "colorMode": null, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat": "YYYY-MM-DD HH:mm:ss", "decimals": 2, "pattern": "Value #A", "thresholds": [ "" ], "type": "number", "unit": "Bps" }, { "alias": "Bytes Received", "colorMode": null, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat": "YYYY-MM-DD HH:mm:ss", "decimals": 2, "pattern": "Value #C", "thresholds": [], "type": "number", "unit": "Bps" }, { "alias": "", "colorMode": null, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat": "YYYY-MM-DD HH:mm:ss", "decimals": 2, "pattern": "Time", "thresholds": [], "type": "hidden", "unit": "short" }, { "alias": "Workload", "colorMode": null, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat": "YYYY-MM-DD HH:mm:ss", "decimals": 2, "link": true, "linkTooltip": "$__cell dashboard", "linkUrl": "/dashboard/db/istio-workload-dashboard?var-namespace=$__cell_3&var-workload=$__cell_2", "pattern": "destination_workload_var", "thresholds": [], "type": "string", "unit": "short" }, { "alias": "", "colorMode": null, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat": "YYYY-MM-DD HH:mm:ss", "decimals": 2, "pattern": "destination_workload_namespace", "thresholds": [], "type": "hidden", "unit": "short" }, { "alias": "Service", "colorMode": null, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat": "YYYY-MM-DD HH:mm:ss", "decimals": 2, "link": true, "linkTooltip": "$__cell dashboard", "linkUrl": "/dashboard/db/istio-service-dashboard?var-service=$__cell", "pattern": "destination_service", "thresholds": [], "type": "number", "unit": "short" } ], "targets": [ { "expr": "label_join(sum(rate(istio_tcp_received_bytes_total{reporter=\"source\"}[1m])) by (destination_workload, destination_workload_namespace, destination_service), \"destination_workload_var\", \".\", \"destination_workload\", \"destination_workload_namespace\")", "format": "table", "hide": false, "instant": true, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}", "refId": "C" }, { "expr": "label_join(sum(rate(istio_tcp_sent_bytes_total{reporter=\"source\"}[1m])) by (destination_workload, destination_workload_namespace, destination_service), \"destination_workload_var\", \".\", \"destination_workload\", \"destination_workload_namespace\")", "format": "table", "hide": false, "instant": true, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}", "refId": "A" } ], "timeFrom": null, "title": "TCP Workloads", "transform": "table", "transparent": false, "type": "table" }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 9, "w": 24, "x": 0, "y": 45 }, "id": 111, "legend": { "alignAsTable": false, "avg": false, "current": false, "max": false, "min": false, "rightSide": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(istio_build) by (component, tag)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ component }}: {{ tag }}", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Istio Components by Version", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "transparent": false, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } } ], "refresh": "5s", "schemaVersion": 16, "style": "dark", "tags": [], "templating": { "list": [] }, "time": { "from": "now-5m", "to": "now" }, "timepicker": { "refresh_intervals": [ "5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d" ], "time_options": [ "5m", "15m", "1h", "6h", "12h", "24h", "2d", "7d", "30d" ] }, "timezone": "browser", "title": "Istio Mesh Dashboard", "version": 4 } ' --- apiVersion: v1 kind: ConfigMap metadata: name: istio-grafana-configuration-dashboards-istio-performance-dashboard namespace: istio-system labels: app: grafana chart: grafana heritage: Tiller maistra-version: 1.0.0 release: istio istio: grafana data: istio-performance-dashboard.json: '{ "__inputs": [ { "name": "DS_PROMETHEUS", "label": "Prometheus", "description": "", "type": "datasource", "pluginId": "prometheus", "pluginName": "Prometheus" } ], "__requires": [ { "type": "grafana", "id": "grafana", "name": "Grafana", "version": "5.2.3" }, { "type": "panel", "id": "graph", "name": "Graph", "version": "5.0.0" }, { "type": "datasource", "id": "prometheus", "name": "Prometheus", "version": "5.0.0" }, { "type": "panel", "id": "text", "name": "Text", "version": "5.0.0" } ], "annotations": { "list": [ { "builtIn": 1, "datasource": "-- Grafana --", "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", "name": "Annotations & Alerts", "type": "dashboard" } ] }, "editable": false, "gnetId": null, "graphTooltip": 0, "id": null, "links": [], "panels": [ { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 9, "w": 12, "x": 0, "y": 0 }, "id": 2, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "(sum(rate(container_cpu_usage_seconds_total{pod_name=~\"istio-telemetry-.*\",container_name=~\"mixer|istio-proxy\"}[1m]))/ (round(sum(irate(istio_requests_total[1m])), 0.001)/1000))/ (sum(irate(istio_requests_total{source_workload=\"istio-ingressgateway\"}[1m])) >bool 10)", "format": "time_series", "intervalFactor": 1, "legendFormat": "istio-telemetry", "refId": "A" }, { "expr": "sum(rate(container_cpu_usage_seconds_total{pod_name=~\"istio-ingressgateway-.*\",container_name=\"istio-proxy\"}[1m])) / (round(sum(irate(istio_requests_total{source_workload=\"istio-ingressgateway\", reporter=\"source\"}[1m])), 0.001)/1000)", "format": "time_series", "intervalFactor": 1, "legendFormat": "istio-ingressgateway", "refId": "B" }, { "expr": "(sum(rate(container_cpu_usage_seconds_total{namespace!=\"istio-system\",container_name=\"istio-proxy\"}[1m]))/ (round(sum(irate(istio_requests_total[1m])), 0.001)/1000))/ (sum(irate(istio_requests_total{source_workload=\"istio-ingressgateway\"}[1m])) >bool 10)", "format": "time_series", "intervalFactor": 1, "legendFormat": "istio-proxy", "refId": "C" }, { "expr": "(sum(rate(container_cpu_usage_seconds_total{pod_name=~\"istio-policy-.*\",container_name=~\"mixer|istio-proxy\"}[1m]))/ (round(sum(irate(istio_requests_total[1m])), 0.001)/1000)) / (sum(irate(istio_requests_total{source_workload=\"istio-ingressgateway\"}[1m])) >bool 10)", "format": "time_series", "intervalFactor": 1, "legendFormat": "istio-policy", "refId": "D" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "vCPU / 1k rps", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 9, "w": 12, "x": 12, "y": 0 }, "id": 6, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(rate(container_cpu_usage_seconds_total{pod_name=~\"istio-telemetry-.*\",container_name=~\"mixer|istio-proxy\"}[1m]))", "format": "time_series", "intervalFactor": 1, "legendFormat": "istio-telemetry", "refId": "A" }, { "expr": "sum(rate(container_cpu_usage_seconds_total{pod_name=~\"istio-ingressgateway-.*\",container_name=\"istio-proxy\"}[1m]))", "format": "time_series", "intervalFactor": 1, "legendFormat": "istio-ingressgateway", "refId": "B" }, { "expr": "sum(rate(container_cpu_usage_seconds_total{namespace!=\"istio-system\",container_name=\"istio-proxy\"}[1m]))", "format": "time_series", "intervalFactor": 1, "legendFormat": "istio-proxy", "refId": "C" }, { "expr": "sum(rate(container_cpu_usage_seconds_total{pod_name=~\"istio-policy-.*\",container_name=~\"mixer|istio-proxy\"}[1m]))", "format": "time_series", "intervalFactor": 1, "legendFormat": "istio-policy", "refId": "D" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "vCPU", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 9, "w": 12, "x": 0, "y": 9 }, "id": 4, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "(sum(container_memory_usage_bytes{pod_name=~\"istio-telemetry-.*\"}) / (sum(irate(istio_requests_total[1m])) / 1000)) / (sum(irate(istio_requests_total{source_workload=\"istio-ingressgateway\"}[1m])) >bool 10)", "format": "time_series", "intervalFactor": 1, "legendFormat": "istio-telemetry / 1k rps", "refId": "A" }, { "expr": "sum(container_memory_usage_bytes{pod_name=~\"istio-ingressgateway-.*\"}) / count(container_memory_usage_bytes{pod_name=~\"istio-ingressgateway-.*\",container_name!=\"POD\"})", "format": "time_series", "intervalFactor": 1, "legendFormat": "per istio-ingressgateway", "refId": "C" }, { "expr": "sum(container_memory_usage_bytes{namespace!=\"istio-system\",container_name=\"istio-proxy\"}) / count(container_memory_usage_bytes{namespace!=\"istio-system\",container_name=\"istio-proxy\"})", "format": "time_series", "intervalFactor": 1, "legendFormat": "per istio-proxy", "refId": "B" }, { "expr": "(sum(container_memory_usage_bytes{pod_name=~\"istio-policy-.*\"}) / (sum(irate(istio_requests_total[1m])) / 1000))/ (sum(irate(istio_requests_total{source_workload=\"istio-ingressgateway\"}[1m])) >bool 10)", "format": "time_series", "intervalFactor": 1, "legendFormat": "istio-policy / 1k rps", "refId": "D" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Memory", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "decbytes", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 9, "w": 12, "x": 12, "y": 9 }, "id": 5, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(irate(istio_response_bytes_sum{destination_workload=\"istio-telemetry\"}[1m])) + sum(irate(istio_request_bytes_sum{destination_workload=\"istio-telemetry\"}[1m]))", "format": "time_series", "intervalFactor": 1, "legendFormat": "istio-telemetry", "refId": "A" }, { "expr": "sum(irate(istio_response_bytes_sum{source_workload=\"istio-ingressgateway\", reporter=\"source\"}[1m]))", "format": "time_series", "intervalFactor": 1, "legendFormat": "istio-ingressgateway", "refId": "C" }, { "expr": "sum(irate(istio_response_bytes_sum{source_workload_namespace!=\"istio-system\", reporter=\"source\"}[1m])) + sum(irate(istio_response_bytes_sum{destination_workload_namespace!=\"istio-system\", reporter=\"destination\"}[1m])) + sum(irate(istio_request_bytes_sum{source_workload_namespace!=\"istio-system\", reporter=\"source\"}[1m])) + sum(irate(istio_request_bytes_sum{destination_workload_namespace!=\"istio-system\", reporter=\"destination\"}[1m]))", "format": "time_series", "intervalFactor": 1, "legendFormat": "istio-proxy", "refId": "D" }, { "expr": "sum(irate(istio_response_bytes_sum{destination_workload=\"istio-policy\"}[1m])) + sum(irate(istio_request_bytes_sum{destination_workload=\"istio-policy\"}[1m]))", "format": "time_series", "intervalFactor": 1, "legendFormat": "istio-policy", "refId": "E" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Bytes transferred / sec", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "bytes", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 9, "w": 24, "x": 0, "y": 18 }, "id": 8, "legend": { "alignAsTable": false, "avg": false, "current": false, "max": false, "min": false, "rightSide": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(istio_build) by (component, tag)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ component }}: {{ tag }}", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Istio Components by Version", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "transparent": false, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "content": "The charts on this dashboard are intended to show Istio main components cost in terms resources utilization under steady load.\n\n- **vCPU/1k rps:** shows vCPU utilization by the main Istio components normalized by 1000 requests/second. When idle or low traffic, this chart will be blank. The curve for istio-proxy refers to the services sidecars only. \n- **vCPU:** vCPU utilization by Istio components, not normalized.\n- **Memory:** memory footprint for the components. Telemetry and policy are normalized by 1k rps, and no data is shown when there is no traffic. For ingress and istio-proxy, the data is per instance. \n- **Bytes transferred/ sec:** shows the number of bytes flowing through each Istio component.", "gridPos": { "h": 4, "w": 24, "x": 0, "y": 18 }, "id": 11, "links": [], "mode": "markdown", "title": "Istio Performance Dashboard Readme", "type": "text" } ], "schemaVersion": 16, "style": "dark", "tags": [], "templating": { "list": [] }, "time": { "from": "now-5m", "to": "now" }, "timepicker": { "refresh_intervals": [ "5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d" ], "time_options": [ "5m", "15m", "1h", "6h", "12h", "24h", "2d", "7d", "30d" ] }, "timezone": "", "title": "Istio Performance Dashboard", "version": 4 } ' --- apiVersion: v1 kind: ConfigMap metadata: name: istio-grafana-configuration-dashboards-istio-service-dashboard namespace: istio-system labels: app: grafana chart: grafana heritage: Tiller maistra-version: 1.0.0 release: istio istio: grafana data: istio-service-dashboard.json: '{ "annotations": { "list": [ { "builtIn": 1, "datasource": "-- Grafana --", "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", "name": "Annotations & Alerts", "type": "dashboard" } ] }, "editable": false, "gnetId": null, "graphTooltip": 0, "iteration": 1536442501501, "links": [], "panels": [ { "content": "
\nSERVICE: $service\n
", "gridPos": { "h": 3, "w": 24, "x": 0, "y": 0 }, "id": 89, "links": [], "mode": "html", "title": "", "transparent": true, "type": "text" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "datasource": "Prometheus", "format": "ops", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 4, "w": 6, "x": 0, "y": 3 }, "id": 12, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": true, "lineColor": "rgb(31, 120, 193)", "show": true }, "tableColumn": "", "targets": [ { "expr": "round(sum(irate(istio_requests_total{reporter=\"source\",destination_service=~\"$service\"}[5m])), 0.001)", "format": "time_series", "intervalFactor": 1, "refId": "A", "step": 4 } ], "thresholds": "", "title": "Client Request Volume", "transparent": false, "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "N/A", "value": "null" } ], "valueName": "current" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "rgba(50, 172, 45, 0.97)", "rgba(237, 129, 40, 0.89)", "rgba(245, 54, 54, 0.9)" ], "datasource": "Prometheus", "decimals": null, "format": "percentunit", "gauge": { "maxValue": 100, "minValue": 80, "show": false, "thresholdLabels": false, "thresholdMarkers": false }, "gridPos": { "h": 4, "w": 6, "x": 6, "y": 3 }, "id": 14, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": true, "lineColor": "rgb(31, 120, 193)", "show": true }, "tableColumn": "", "targets": [ { "expr": "sum(irate(istio_requests_total{reporter=\"source\",destination_service=~\"$service\",response_code!~\"5.*\"}[5m])) / sum(irate(istio_requests_total{reporter=\"source\",destination_service=~\"$service\"}[5m]))", "format": "time_series", "intervalFactor": 1, "refId": "B" } ], "thresholds": "95, 99, 99.5", "title": "Client Success Rate (non-5xx responses)", "transparent": false, "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "N/A", "value": "null" } ], "valueName": "avg" }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 4, "w": 6, "x": 12, "y": 3 }, "id": 87, "legend": { "alignAsTable": false, "avg": false, "current": false, "hideEmpty": false, "hideZero": false, "max": false, "min": false, "rightSide": true, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "histogram_quantile(0.50, sum(irate(istio_request_duration_seconds_bucket{reporter=\"source\",destination_service=~\"$service\"}[1m])) by (le))", "format": "time_series", "interval": "", "intervalFactor": 1, "legendFormat": "P50", "refId": "A" }, { "expr": "histogram_quantile(0.90, sum(irate(istio_request_duration_seconds_bucket{reporter=\"source\",destination_service=~\"$service\"}[1m])) by (le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "P90", "refId": "B" }, { "expr": "histogram_quantile(0.99, sum(irate(istio_request_duration_seconds_bucket{reporter=\"source\",destination_service=~\"$service\"}[1m])) by (le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "P99", "refId": "C" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Client Request Duration", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "s", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a" ], "datasource": "Prometheus", "format": "Bps", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 4, "w": 6, "x": 18, "y": 3 }, "id": 84, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": true, "lineColor": "rgb(31, 120, 193)", "show": true }, "tableColumn": "", "targets": [ { "expr": "sum(irate(istio_tcp_received_bytes_total{reporter=\"source\", destination_service=~\"$service\"}[1m]))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "", "refId": "A" } ], "thresholds": "", "title": "TCP Received Bytes", "transparent": false, "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "N/A", "value": "null" } ], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "datasource": "Prometheus", "format": "ops", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 4, "w": 6, "x": 0, "y": 7 }, "id": 97, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": true, "lineColor": "rgb(31, 120, 193)", "show": true }, "tableColumn": "", "targets": [ { "expr": "round(sum(irate(istio_requests_total{reporter=\"destination\",destination_service=~\"$service\"}[5m])), 0.001)", "format": "time_series", "intervalFactor": 1, "refId": "A", "step": 4 } ], "thresholds": "", "title": "Server Request Volume", "transparent": false, "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "N/A", "value": "null" } ], "valueName": "current" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "rgba(50, 172, 45, 0.97)", "rgba(237, 129, 40, 0.89)", "rgba(245, 54, 54, 0.9)" ], "datasource": "Prometheus", "decimals": null, "format": "percentunit", "gauge": { "maxValue": 100, "minValue": 80, "show": false, "thresholdLabels": false, "thresholdMarkers": false }, "gridPos": { "h": 4, "w": 6, "x": 6, "y": 7 }, "id": 98, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": true, "lineColor": "rgb(31, 120, 193)", "show": true }, "tableColumn": "", "targets": [ { "expr": "sum(irate(istio_requests_total{reporter=\"destination\",destination_service=~\"$service\",response_code!~\"5.*\"}[5m])) / sum(irate(istio_requests_total{reporter=\"destination\",destination_service=~\"$service\"}[5m]))", "format": "time_series", "intervalFactor": 1, "refId": "B" } ], "thresholds": "95, 99, 99.5", "title": "Server Success Rate (non-5xx responses)", "transparent": false, "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "N/A", "value": "null" } ], "valueName": "avg" }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 4, "w": 6, "x": 12, "y": 7 }, "id": 99, "legend": { "alignAsTable": false, "avg": false, "current": false, "hideEmpty": false, "hideZero": false, "max": false, "min": false, "rightSide": true, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "histogram_quantile(0.50, sum(irate(istio_request_duration_seconds_bucket{reporter=\"destination\",destination_service=~\"$service\"}[1m])) by (le))", "format": "time_series", "interval": "", "intervalFactor": 1, "legendFormat": "P50", "refId": "A" }, { "expr": "histogram_quantile(0.90, sum(irate(istio_request_duration_seconds_bucket{reporter=\"destination\",destination_service=~\"$service\"}[1m])) by (le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "P90", "refId": "B" }, { "expr": "histogram_quantile(0.99, sum(irate(istio_request_duration_seconds_bucket{reporter=\"destination\",destination_service=~\"$service\"}[1m])) by (le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "P99", "refId": "C" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Server Request Duration", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "s", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a" ], "datasource": "Prometheus", "format": "Bps", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 4, "w": 6, "x": 18, "y": 7 }, "id": 100, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": true, "lineColor": "rgb(31, 120, 193)", "show": true }, "tableColumn": "", "targets": [ { "expr": "sum(irate(istio_tcp_sent_bytes_total{reporter=\"source\", destination_service=~\"$service\"}[1m])) ", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "", "refId": "A" } ], "thresholds": "", "title": "TCP Sent Bytes", "transparent": false, "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "N/A", "value": "null" } ], "valueName": "avg" }, { "content": "
\nCLIENT WORKLOADS\n
", "gridPos": { "h": 3, "w": 24, "x": 0, "y": 11 }, "id": 45, "links": [], "mode": "html", "title": "", "transparent": true, "type": "text" }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 0, "gridPos": { "h": 6, "w": 12, "x": 0, "y": 14 }, "id": 25, "legend": { "avg": false, "current": false, "hideEmpty": true, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null as zero", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "round(sum(irate(istio_requests_total{connection_security_policy=\"mutual_tls\",destination_service=~\"$service\",reporter=\"source\",source_workload=~\"$srcwl\",source_workload_namespace=~\"$srcns\"}[5m])) by (source_workload, source_workload_namespace, response_code), 0.001)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ source_workload }}.{{ source_workload_namespace }} : {{ response_code }} (🔐mTLS)", "refId": "B", "step": 2 }, { "expr": "round(sum(irate(istio_requests_total{connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", reporter=\"source\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[5m])) by (source_workload, source_workload_namespace, response_code), 0.001)", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ source_workload }}.{{ source_workload_namespace }} : {{ response_code }}", "refId": "A", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Incoming Requests by Source And Response Code", "tooltip": { "shared": false, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [ "total" ] }, "yaxes": [ { "format": "ops", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 12, "x": 12, "y": 14 }, "id": 26, "legend": { "avg": false, "current": false, "hideEmpty": true, "hideZero": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(irate(istio_requests_total{reporter=\"source\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\",response_code!~\"5.*\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[5m])) by (source_workload, source_workload_namespace) / sum(irate(istio_requests_total{reporter=\"source\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[5m])) by (source_workload, source_workload_namespace)", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ source_workload }}.{{ source_workload_namespace }} (🔐mTLS)", "refId": "A", "step": 2 }, { "expr": "sum(irate(istio_requests_total{reporter=\"source\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\",response_code!~\"5.*\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[5m])) by (source_workload, source_workload_namespace) / sum(irate(istio_requests_total{reporter=\"source\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[5m])) by (source_workload, source_workload_namespace)", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ source_workload }}.{{ source_workload_namespace }}", "refId": "B", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Incoming Success Rate (non-5xx responses) By Source", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "percentunit", "label": null, "logBase": 1, "max": "1.01", "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "description": "", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 0, "y": 20 }, "id": 27, "legend": { "alignAsTable": false, "avg": false, "current": false, "hideEmpty": true, "hideZero": false, "max": false, "min": false, "rightSide": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "histogram_quantile(0.50, sum(irate(istio_request_duration_seconds_bucket{reporter=\"source\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P50 (🔐mTLS)", "refId": "D", "step": 2 }, { "expr": "histogram_quantile(0.90, sum(irate(istio_request_duration_seconds_bucket{reporter=\"source\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P90 (🔐mTLS)", "refId": "A", "step": 2 }, { "expr": "histogram_quantile(0.95, sum(irate(istio_request_duration_seconds_bucket{reporter=\"source\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P95 (🔐mTLS)", "refId": "B", "step": 2 }, { "expr": "histogram_quantile(0.99, sum(irate(istio_request_duration_seconds_bucket{reporter=\"source\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P99 (🔐mTLS)", "refId": "C", "step": 2 }, { "expr": "histogram_quantile(0.50, sum(irate(istio_request_duration_seconds_bucket{reporter=\"source\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P50", "refId": "E", "step": 2 }, { "expr": "histogram_quantile(0.90, sum(irate(istio_request_duration_seconds_bucket{reporter=\"source\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P90", "refId": "F", "step": 2 }, { "expr": "histogram_quantile(0.95, sum(irate(istio_request_duration_seconds_bucket{reporter=\"source\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P95", "refId": "G", "step": 2 }, { "expr": "histogram_quantile(0.99, sum(irate(istio_request_duration_seconds_bucket{reporter=\"source\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P99", "refId": "H", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Incoming Request Duration by Source", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "s", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 8, "y": 20 }, "id": 28, "legend": { "alignAsTable": false, "avg": false, "current": false, "hideEmpty": true, "max": false, "min": false, "rightSide": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "histogram_quantile(0.50, sum(irate(istio_request_bytes_bucket{reporter=\"source\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P50 (🔐mTLS)", "refId": "D", "step": 2 }, { "expr": "histogram_quantile(0.90, sum(irate(istio_request_bytes_bucket{reporter=\"source\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P90 (🔐mTLS)", "refId": "A", "step": 2 }, { "expr": "histogram_quantile(0.95, sum(irate(istio_request_bytes_bucket{reporter=\"source\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P95 (🔐mTLS)", "refId": "B", "step": 2 }, { "expr": "histogram_quantile(0.99, sum(irate(istio_request_bytes_bucket{reporter=\"source\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P99 (🔐mTLS)", "refId": "C", "step": 2 }, { "expr": "histogram_quantile(0.50, sum(irate(istio_request_bytes_bucket{reporter=\"source\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P50", "refId": "E", "step": 2 }, { "expr": "histogram_quantile(0.90, sum(irate(istio_request_bytes_bucket{reporter=\"source\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P90", "refId": "F", "step": 2 }, { "expr": "histogram_quantile(0.95, sum(irate(istio_request_bytes_bucket{reporter=\"source\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P95", "refId": "G", "step": 2 }, { "expr": "histogram_quantile(0.99, sum(irate(istio_request_bytes_bucket{reporter=\"source\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P99", "refId": "H", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Incoming Request Size By Source", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "decbytes", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 16, "y": 20 }, "id": 68, "legend": { "alignAsTable": false, "avg": false, "current": false, "hideEmpty": true, "max": false, "min": false, "rightSide": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "histogram_quantile(0.50, sum(irate(istio_response_bytes_bucket{reporter=\"source\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P50 (🔐mTLS)", "refId": "D", "step": 2 }, { "expr": "histogram_quantile(0.90, sum(irate(istio_response_bytes_bucket{reporter=\"source\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P90 (🔐mTLS)", "refId": "A", "step": 2 }, { "expr": "histogram_quantile(0.95, sum(irate(istio_response_bytes_bucket{reporter=\"source\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P95 (🔐mTLS)", "refId": "B", "step": 2 }, { "expr": "histogram_quantile(0.99, sum(irate(istio_response_bytes_bucket{reporter=\"source\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P99 (🔐mTLS)", "refId": "C", "step": 2 }, { "expr": "histogram_quantile(0.50, sum(irate(istio_response_bytes_bucket{reporter=\"source\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P50", "refId": "E", "step": 2 }, { "expr": "histogram_quantile(0.90, sum(irate(istio_response_bytes_bucket{reporter=\"source\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P90", "refId": "F", "step": 2 }, { "expr": "histogram_quantile(0.95, sum(irate(istio_response_bytes_bucket{reporter=\"source\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P95", "refId": "G", "step": 2 }, { "expr": "histogram_quantile(0.99, sum(irate(istio_response_bytes_bucket{reporter=\"source\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P99", "refId": "H", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Response Size By Source", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "decbytes", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 12, "x": 0, "y": 26 }, "id": 80, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "round(sum(irate(istio_tcp_received_bytes_total{reporter=\"source\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace), 0.001)", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ source_workload }}.{{ source_workload_namespace}} (🔐mTLS)", "refId": "A", "step": 2 }, { "expr": "round(sum(irate(istio_tcp_received_bytes_total{reporter=\"source\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace), 0.001)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ source_workload }}.{{ source_workload_namespace}}", "refId": "B", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Bytes Received from Incoming TCP Connection", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "Bps", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 12, "x": 12, "y": 26 }, "id": 82, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "round(sum(irate(istio_tcp_sent_bytes_total{connection_security_policy=\"mutual_tls\", reporter=\"source\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace), 0.001)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ source_workload }}.{{ source_workload_namespace}} (🔐mTLS)", "refId": "A", "step": 2 }, { "expr": "round(sum(irate(istio_tcp_sent_bytes_total{connection_security_policy!=\"mutual_tls\", reporter=\"source\", destination_service=~\"$service\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace), 0.001)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ source_workload }}.{{ source_workload_namespace}}", "refId": "B", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Bytes Sent to Incoming TCP Connection", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "Bps", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "content": "
\nSERVICE WORKLOADS\n
", "gridPos": { "h": 3, "w": 24, "x": 0, "y": 32 }, "id": 69, "links": [], "mode": "html", "title": "", "transparent": true, "type": "text" }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 0, "gridPos": { "h": 6, "w": 12, "x": 0, "y": 35 }, "id": 90, "legend": { "avg": false, "current": false, "hideEmpty": true, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null as zero", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "round(sum(irate(istio_requests_total{connection_security_policy=\"mutual_tls\",destination_service=~\"$service\",reporter=\"destination\",destination_workload=~\"$dstwl\",destination_workload_namespace=~\"$dstns\"}[5m])) by (destination_workload, destination_workload_namespace, response_code), 0.001)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} : {{ response_code }} (🔐mTLS)", "refId": "B", "step": 2 }, { "expr": "round(sum(irate(istio_requests_total{connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", reporter=\"destination\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[5m])) by (destination_workload, destination_workload_namespace, response_code), 0.001)", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} : {{ response_code }}", "refId": "A", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Incoming Requests by Destination And Response Code", "tooltip": { "shared": false, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [ "total" ] }, "yaxes": [ { "format": "ops", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 12, "x": 12, "y": 35 }, "id": 91, "legend": { "avg": false, "current": false, "hideEmpty": true, "hideZero": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(irate(istio_requests_total{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\",response_code!~\"5.*\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[5m])) by (destination_workload, destination_workload_namespace) / sum(rate(istio_requests_total{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[5m])) by (destination_workload, destination_workload_namespace)", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} (🔐mTLS)", "refId": "A", "step": 2 }, { "expr": "sum(irate(istio_requests_total{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\",response_code!~\"5.*\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[5m])) by (destination_workload, destination_workload_namespace) / sum(rate(istio_requests_total{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[5m])) by (destination_workload, destination_workload_namespace)", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }}", "refId": "B", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Incoming Success Rate (non-5xx responses) By Source", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "percentunit", "label": null, "logBase": 1, "max": "1.01", "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "description": "", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 0, "y": 41 }, "id": 94, "legend": { "alignAsTable": false, "avg": false, "current": false, "hideEmpty": true, "hideZero": false, "max": false, "min": false, "rightSide": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "histogram_quantile(0.50, sum(irate(istio_request_duration_seconds_bucket{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} P50 (🔐mTLS)", "refId": "D", "step": 2 }, { "expr": "histogram_quantile(0.90, sum(irate(istio_request_duration_seconds_bucket{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} P90 (🔐mTLS)", "refId": "A", "step": 2 }, { "expr": "histogram_quantile(0.95, sum(irate(istio_request_duration_seconds_bucket{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} P95 (🔐mTLS)", "refId": "B", "step": 2 }, { "expr": "histogram_quantile(0.99, sum(irate(istio_request_duration_seconds_bucket{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} P99 (🔐mTLS)", "refId": "C", "step": 2 }, { "expr": "histogram_quantile(0.50, sum(irate(istio_request_duration_seconds_bucket{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} P50", "refId": "E", "step": 2 }, { "expr": "histogram_quantile(0.90, sum(irate(istio_request_duration_seconds_bucket{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} P90", "refId": "F", "step": 2 }, { "expr": "histogram_quantile(0.95, sum(irate(istio_request_duration_seconds_bucket{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} P95", "refId": "G", "step": 2 }, { "expr": "histogram_quantile(0.99, sum(irate(istio_request_duration_seconds_bucket{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} P99", "refId": "H", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Incoming Request Duration by Source", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "s", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 8, "y": 41 }, "id": 95, "legend": { "alignAsTable": false, "avg": false, "current": false, "hideEmpty": true, "max": false, "min": false, "rightSide": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "histogram_quantile(0.50, sum(irate(istio_request_bytes_bucket{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} P50 (🔐mTLS)", "refId": "D", "step": 2 }, { "expr": "histogram_quantile(0.90, sum(irate(istio_request_bytes_bucket{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} P90 (🔐mTLS)", "refId": "A", "step": 2 }, { "expr": "histogram_quantile(0.95, sum(irate(istio_request_bytes_bucket{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} P95 (🔐mTLS)", "refId": "B", "step": 2 }, { "expr": "histogram_quantile(0.99, sum(irate(istio_request_bytes_bucket{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} P99 (🔐mTLS)", "refId": "C", "step": 2 }, { "expr": "histogram_quantile(0.50, sum(irate(istio_request_bytes_bucket{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} P50", "refId": "E", "step": 2 }, { "expr": "histogram_quantile(0.90, sum(irate(istio_request_bytes_bucket{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} P90", "refId": "F", "step": 2 }, { "expr": "histogram_quantile(0.95, sum(irate(istio_request_bytes_bucket{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} P95", "refId": "G", "step": 2 }, { "expr": "histogram_quantile(0.99, sum(irate(istio_request_bytes_bucket{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} P99", "refId": "H", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Incoming Request Size By Source", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "decbytes", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 16, "y": 41 }, "id": 96, "legend": { "alignAsTable": false, "avg": false, "current": false, "hideEmpty": true, "max": false, "min": false, "rightSide": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "histogram_quantile(0.50, sum(irate(istio_response_bytes_bucket{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} P50 (🔐mTLS)", "refId": "D", "step": 2 }, { "expr": "histogram_quantile(0.90, sum(irate(istio_response_bytes_bucket{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} P90 (🔐mTLS)", "refId": "A", "step": 2 }, { "expr": "histogram_quantile(0.95, sum(irate(istio_response_bytes_bucket{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} P95 (🔐mTLS)", "refId": "B", "step": 2 }, { "expr": "histogram_quantile(0.99, sum(irate(istio_response_bytes_bucket{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} P99 (🔐mTLS)", "refId": "C", "step": 2 }, { "expr": "histogram_quantile(0.50, sum(irate(istio_response_bytes_bucket{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} P50", "refId": "E", "step": 2 }, { "expr": "histogram_quantile(0.90, sum(irate(istio_response_bytes_bucket{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} P90", "refId": "F", "step": 2 }, { "expr": "histogram_quantile(0.95, sum(irate(istio_response_bytes_bucket{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} P95", "refId": "G", "step": 2 }, { "expr": "histogram_quantile(0.99, sum(irate(istio_response_bytes_bucket{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace }} P99", "refId": "H", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Response Size By Source", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "decbytes", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 12, "x": 0, "y": 47 }, "id": 92, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "round(sum(irate(istio_tcp_received_bytes_total{reporter=\"source\", connection_security_policy=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace), 0.001)", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace}} (🔐mTLS)", "refId": "A", "step": 2 }, { "expr": "round(sum(irate(istio_tcp_received_bytes_total{reporter=\"source\", connection_security_policy!=\"mutual_tls\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace), 0.001)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{ destination_workload_namespace}}", "refId": "B", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Bytes Received from Incoming TCP Connection", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "Bps", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 12, "x": 12, "y": 47 }, "id": 93, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "round(sum(irate(istio_tcp_sent_bytes_total{connection_security_policy=\"mutual_tls\", reporter=\"source\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace), 0.001)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{destination_workload_namespace }} (🔐mTLS)", "refId": "A", "step": 2 }, { "expr": "round(sum(irate(istio_tcp_sent_bytes_total{connection_security_policy!=\"mutual_tls\", reporter=\"source\", destination_service=~\"$service\", destination_workload=~\"$dstwl\", destination_workload_namespace=~\"$dstns\"}[1m])) by (destination_workload, destination_workload_namespace), 0.001)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ destination_workload }}.{{destination_workload_namespace }}", "refId": "B", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Bytes Sent to Incoming TCP Connection", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "Bps", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } } ], "refresh": "10s", "schemaVersion": 16, "style": "dark", "tags": [], "templating": { "list": [ { "allValue": null, "datasource": "Prometheus", "hide": 0, "includeAll": false, "label": "Service", "multi": false, "name": "service", "options": [], "query": "label_values(destination_service)", "refresh": 1, "regex": "", "sort": 0, "tagValuesQuery": "", "tags": [], "tagsQuery": "", "type": "query", "useTags": false }, { "allValue": null, "current": { "text": "All", "value": "$__all" }, "datasource": "Prometheus", "hide": 0, "includeAll": true, "label": "Client Workload Namespace", "multi": true, "name": "srcns", "options": [], "query": "query_result( sum(istio_requests_total{reporter=\"destination\", destination_service=\"$service\"}) by (source_workload_namespace) or sum(istio_tcp_sent_bytes_total{reporter=\"destination\", destination_service=~\"$service\"}) by (source_workload_namespace))", "refresh": 1, "regex": "/.*namespace=\"([^\"]*).*/", "sort": 2, "tagValuesQuery": "", "tags": [], "tagsQuery": "", "type": "query", "useTags": false }, { "allValue": null, "current": { "text": "All", "value": "$__all" }, "datasource": "Prometheus", "hide": 0, "includeAll": true, "label": "Client Workload", "multi": true, "name": "srcwl", "options": [], "query": "query_result( sum(istio_requests_total{reporter=\"destination\", destination_service=~\"$service\", source_workload_namespace=~\"$srcns\"}) by (source_workload) or sum(istio_tcp_sent_bytes_total{reporter=\"destination\", destination_service=~\"$service\", source_workload_namespace=~\"$srcns\"}) by (source_workload))", "refresh": 1, "regex": "/.*workload=\"([^\"]*).*/", "sort": 3, "tagValuesQuery": "", "tags": [], "tagsQuery": "", "type": "query", "useTags": false }, { "allValue": null, "current": { "text": "All", "value": "$__all" }, "datasource": "Prometheus", "hide": 0, "includeAll": true, "label": "Service Workload Namespace", "multi": true, "name": "dstns", "options": [], "query": "query_result( sum(istio_requests_total{reporter=\"destination\", destination_service=\"$service\"}) by (destination_workload_namespace) or sum(istio_tcp_sent_bytes_total{reporter=\"destination\", destination_service=~\"$service\"}) by (destination_workload_namespace))", "refresh": 1, "regex": "/.*namespace=\"([^\"]*).*/", "sort": 2, "tagValuesQuery": "", "tags": [], "tagsQuery": "", "type": "query", "useTags": false }, { "allValue": null, "current": { "text": "All", "value": "$__all" }, "datasource": "Prometheus", "hide": 0, "includeAll": true, "label": "Service Workload", "multi": true, "name": "dstwl", "options": [], "query": "query_result( sum(istio_requests_total{reporter=\"destination\", destination_service=~\"$service\", destination_workload_namespace=~\"$dstns\"}) by (destination_workload) or sum(istio_tcp_sent_bytes_total{reporter=\"destination\", destination_service=~\"$service\", destination_workload_namespace=~\"$dstns\"}) by (destination_workload))", "refresh": 1, "regex": "/.*workload=\"([^\"]*).*/", "sort": 3, "tagValuesQuery": "", "tags": [], "tagsQuery": "", "type": "query", "useTags": false } ] }, "time": { "from": "now-5m", "to": "now" }, "timepicker": { "refresh_intervals": [ "5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d" ], "time_options": [ "5m", "15m", "1h", "6h", "12h", "24h", "2d", "7d", "30d" ] }, "timezone": "", "title": "Istio Service Dashboard", "uid": "LJ_uJAvmk", "version": 1 } ' --- apiVersion: v1 kind: ConfigMap metadata: name: istio-grafana-configuration-dashboards-istio-workload-dashboard namespace: istio-system labels: app: grafana chart: grafana heritage: Tiller maistra-version: 1.0.0 release: istio istio: grafana data: istio-workload-dashboard.json: '{ "__inputs": [ { "name": "DS_PROMETHEUS", "label": "Prometheus", "description": "", "type": "datasource", "pluginId": "prometheus", "pluginName": "Prometheus" } ], "__requires": [ { "type": "grafana", "id": "grafana", "name": "Grafana", "version": "5.0.4" }, { "type": "panel", "id": "graph", "name": "Graph", "version": "5.0.0" }, { "type": "datasource", "id": "prometheus", "name": "Prometheus", "version": "5.0.0" }, { "type": "panel", "id": "singlestat", "name": "Singlestat", "version": "5.0.0" }, { "type": "panel", "id": "text", "name": "Text", "version": "5.0.0" } ], "annotations": { "list": [ { "builtIn": 1, "datasource": "-- Grafana --", "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", "name": "Annotations & Alerts", "type": "dashboard" } ] }, "editable": false, "gnetId": null, "graphTooltip": 0, "id": null, "iteration": 1531345461465, "links": [], "panels": [ { "content": "
\nWORKLOAD: $workload.$namespace\n
", "gridPos": { "h": 3, "w": 24, "x": 0, "y": 0 }, "id": 89, "links": [], "mode": "html", "title": "", "transparent": true, "type": "text" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "datasource": "Prometheus", "format": "ops", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 4, "w": 8, "x": 0, "y": 3 }, "id": 12, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": true, "lineColor": "rgb(31, 120, 193)", "show": true }, "tableColumn": "", "targets": [ { "expr": "round(sum(irate(istio_requests_total{reporter=\"destination\",destination_workload_namespace=~\"$namespace\",destination_workload=~\"$workload\"}[5m])), 0.001)", "format": "time_series", "intervalFactor": 1, "refId": "A", "step": 4 } ], "thresholds": "", "title": "Incoming Request Volume", "transparent": false, "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "N/A", "value": "null" } ], "valueName": "current" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "rgba(50, 172, 45, 0.97)", "rgba(237, 129, 40, 0.89)", "rgba(245, 54, 54, 0.9)" ], "datasource": "Prometheus", "decimals": null, "format": "percentunit", "gauge": { "maxValue": 100, "minValue": 80, "show": false, "thresholdLabels": false, "thresholdMarkers": false }, "gridPos": { "h": 4, "w": 8, "x": 8, "y": 3 }, "id": 14, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": true, "lineColor": "rgb(31, 120, 193)", "show": true }, "tableColumn": "", "targets": [ { "expr": "sum(irate(istio_requests_total{reporter=\"destination\",destination_workload_namespace=~\"$namespace\",destination_workload=~\"$workload\",response_code!~\"5.*\"}[5m])) / sum(irate(istio_requests_total{reporter=\"destination\",destination_workload_namespace=~\"$namespace\",destination_workload=~\"$workload\"}[5m]))", "format": "time_series", "intervalFactor": 1, "refId": "B" } ], "thresholds": "95, 99, 99.5", "title": "Incoming Success Rate (non-5xx responses)", "transparent": false, "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "N/A", "value": "null" } ], "valueName": "avg" }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 4, "w": 8, "x": 16, "y": 3 }, "id": 87, "legend": { "alignAsTable": false, "avg": false, "current": false, "hideEmpty": false, "hideZero": false, "max": false, "min": false, "rightSide": true, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "histogram_quantile(0.50, sum(irate(istio_request_duration_seconds_bucket{reporter=\"destination\",destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\"}[1m])) by (le))", "format": "time_series", "interval": "", "intervalFactor": 1, "legendFormat": "P50", "refId": "A" }, { "expr": "histogram_quantile(0.90, sum(irate(istio_request_duration_seconds_bucket{reporter=\"destination\",destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\"}[1m])) by (le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "P90", "refId": "B" }, { "expr": "histogram_quantile(0.99, sum(irate(istio_request_duration_seconds_bucket{reporter=\"destination\",destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\"}[1m])) by (le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "P99", "refId": "C" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Request Duration", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "s", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ] }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a" ], "datasource": "Prometheus", "format": "Bps", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 4, "w": 12, "x": 0, "y": 7 }, "id": 84, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": true, "lineColor": "rgb(31, 120, 193)", "show": true }, "tableColumn": "", "targets": [ { "expr": "sum(irate(istio_tcp_sent_bytes_total{reporter=\"destination\", destination_workload_namespace=~\"$namespace\", destination_workload=~\"$workload\"}[1m])) + sum(irate(istio_tcp_received_bytes_total{reporter=\"destination\", destination_workload_namespace=~\"$namespace\", destination_workload=~\"$workload\"}[1m]))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "", "refId": "A" } ], "thresholds": "", "title": "TCP Server Traffic", "transparent": false, "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "N/A", "value": "null" } ], "valueName": "avg" }, { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a" ], "datasource": "Prometheus", "format": "Bps", "gauge": { "maxValue": 100, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "gridPos": { "h": 4, "w": 12, "x": 12, "y": 7 }, "id": 85, "interval": null, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": true, "lineColor": "rgb(31, 120, 193)", "show": true }, "tableColumn": "", "targets": [ { "expr": "sum(irate(istio_tcp_sent_bytes_total{reporter=\"source\", source_workload_namespace=~\"$namespace\", source_workload=~\"$workload\"}[1m])) + sum(irate(istio_tcp_received_bytes_total{reporter=\"source\", source_workload_namespace=~\"$namespace\", source_workload=~\"$workload\"}[1m]))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "", "refId": "A" } ], "thresholds": "", "title": "TCP Client Traffic", "transparent": false, "type": "singlestat", "valueFontSize": "80%", "valueMaps": [ { "op": "=", "text": "N/A", "value": "null" } ], "valueName": "avg" }, { "content": "
\nINBOUND WORKLOADS\n
", "gridPos": { "h": 3, "w": 24, "x": 0, "y": 11 }, "id": 45, "links": [], "mode": "html", "title": "", "transparent": true, "type": "text" }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 0, "gridPos": { "h": 6, "w": 12, "x": 0, "y": 14 }, "id": 25, "legend": { "avg": false, "current": false, "hideEmpty": true, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null as zero", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "round(sum(irate(istio_requests_total{connection_security_policy=\"mutual_tls\", destination_workload_namespace=~\"$namespace\", destination_workload=~\"$workload\", reporter=\"destination\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[5m])) by (source_workload, source_workload_namespace, response_code), 0.001)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ source_workload }}.{{ source_workload_namespace }} : {{ response_code }} (🔐mTLS)", "refId": "B", "step": 2 }, { "expr": "round(sum(irate(istio_requests_total{connection_security_policy!=\"mutual_tls\", destination_workload_namespace=~\"$namespace\", destination_workload=~\"$workload\", reporter=\"destination\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[5m])) by (source_workload, source_workload_namespace, response_code), 0.001)", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ source_workload }}.{{ source_workload_namespace }} : {{ response_code }}", "refId": "A", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Incoming Requests by Source And Response Code", "tooltip": { "shared": false, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [ "total" ] }, "yaxes": [ { "format": "ops", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ] }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 12, "x": 12, "y": 14 }, "id": 26, "legend": { "avg": false, "current": false, "hideEmpty": true, "hideZero": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(irate(istio_requests_total{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_workload_namespace=~\"$namespace\", destination_workload=~\"$workload\",response_code!~\"5.*\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[5m])) by (source_workload, source_workload_namespace) / sum(rate(istio_requests_total{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_workload_namespace=~\"$namespace\", destination_workload=~\"$workload\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[5m])) by (source_workload, source_workload_namespace)", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ source_workload }}.{{ source_workload_namespace }} (🔐mTLS)", "refId": "A", "step": 2 }, { "expr": "sum(irate(istio_requests_total{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_workload_namespace=~\"$namespace\", destination_workload=~\"$workload\",response_code!~\"5.*\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[5m])) by (source_workload, source_workload_namespace) / sum(rate(istio_requests_total{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_workload_namespace=~\"$namespace\", destination_workload=~\"$workload\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[5m])) by (source_workload, source_workload_namespace)", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ source_workload }}.{{ source_workload_namespace }}", "refId": "B", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Incoming Success Rate (non-5xx responses) By Source", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "percentunit", "label": null, "logBase": 1, "max": "1.01", "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ] }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "description": "", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 0, "y": 20 }, "id": 27, "legend": { "alignAsTable": false, "avg": false, "current": false, "hideEmpty": true, "hideZero": false, "max": false, "min": false, "rightSide": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "histogram_quantile(0.50, sum(irate(istio_request_duration_seconds_bucket{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P50 (🔐mTLS)", "refId": "D", "step": 2 }, { "expr": "histogram_quantile(0.90, sum(irate(istio_request_duration_seconds_bucket{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P90 (🔐mTLS)", "refId": "A", "step": 2 }, { "expr": "histogram_quantile(0.95, sum(irate(istio_request_duration_seconds_bucket{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P95 (🔐mTLS)", "refId": "B", "step": 2 }, { "expr": "histogram_quantile(0.99, sum(irate(istio_request_duration_seconds_bucket{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P99 (🔐mTLS)", "refId": "C", "step": 2 }, { "expr": "histogram_quantile(0.50, sum(irate(istio_request_duration_seconds_bucket{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P50", "refId": "E", "step": 2 }, { "expr": "histogram_quantile(0.90, sum(irate(istio_request_duration_seconds_bucket{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P90", "refId": "F", "step": 2 }, { "expr": "histogram_quantile(0.95, sum(irate(istio_request_duration_seconds_bucket{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P95", "refId": "G", "step": 2 }, { "expr": "histogram_quantile(0.99, sum(irate(istio_request_duration_seconds_bucket{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P99", "refId": "H", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Incoming Request Duration by Source", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "s", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ] }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 8, "y": 20 }, "id": 28, "legend": { "alignAsTable": false, "avg": false, "current": false, "hideEmpty": true, "max": false, "min": false, "rightSide": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "histogram_quantile(0.50, sum(irate(istio_request_bytes_bucket{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P50 (🔐mTLS)", "refId": "D", "step": 2 }, { "expr": "histogram_quantile(0.90, sum(irate(istio_request_bytes_bucket{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P90 (🔐mTLS)", "refId": "A", "step": 2 }, { "expr": "histogram_quantile(0.95, sum(irate(istio_request_bytes_bucket{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P95 (🔐mTLS)", "refId": "B", "step": 2 }, { "expr": "histogram_quantile(0.99, sum(irate(istio_request_bytes_bucket{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P99 (🔐mTLS)", "refId": "C", "step": 2 }, { "expr": "histogram_quantile(0.50, sum(irate(istio_request_bytes_bucket{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P50", "refId": "E", "step": 2 }, { "expr": "histogram_quantile(0.90, sum(irate(istio_request_bytes_bucket{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P90", "refId": "F", "step": 2 }, { "expr": "histogram_quantile(0.95, sum(irate(istio_request_bytes_bucket{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P95", "refId": "G", "step": 2 }, { "expr": "histogram_quantile(0.99, sum(irate(istio_request_bytes_bucket{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P99", "refId": "H", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Incoming Request Size By Source", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "decbytes", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ] }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 16, "y": 20 }, "id": 68, "legend": { "alignAsTable": false, "avg": false, "current": false, "hideEmpty": true, "max": false, "min": false, "rightSide": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "histogram_quantile(0.50, sum(irate(istio_response_bytes_bucket{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P50 (🔐mTLS)", "refId": "D", "step": 2 }, { "expr": "histogram_quantile(0.90, sum(irate(istio_response_bytes_bucket{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P90 (🔐mTLS)", "refId": "A", "step": 2 }, { "expr": "histogram_quantile(0.95, sum(irate(istio_response_bytes_bucket{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P95 (🔐mTLS)", "refId": "B", "step": 2 }, { "expr": "histogram_quantile(0.99, sum(irate(istio_response_bytes_bucket{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P99 (🔐mTLS)", "refId": "C", "step": 2 }, { "expr": "histogram_quantile(0.50, sum(irate(istio_response_bytes_bucket{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P50", "refId": "E", "step": 2 }, { "expr": "histogram_quantile(0.90, sum(irate(istio_response_bytes_bucket{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P90", "refId": "F", "step": 2 }, { "expr": "histogram_quantile(0.95, sum(irate(istio_response_bytes_bucket{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P95", "refId": "G", "step": 2 }, { "expr": "histogram_quantile(0.99, sum(irate(istio_response_bytes_bucket{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_workload=~\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{source_workload}}.{{source_workload_namespace}} P99", "refId": "H", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Response Size By Source", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "decbytes", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ] }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 12, "x": 0, "y": 26 }, "id": 80, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "round(sum(irate(istio_tcp_received_bytes_total{reporter=\"destination\", connection_security_policy=\"mutual_tls\", destination_workload_namespace=~\"$namespace\", destination_workload=~\"$workload\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace), 0.001)", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ source_workload }}.{{ source_workload_namespace}} (🔐mTLS)", "refId": "A", "step": 2 }, { "expr": "round(sum(irate(istio_tcp_received_bytes_total{reporter=\"destination\", connection_security_policy!=\"mutual_tls\", destination_workload_namespace=~\"$namespace\", destination_workload=~\"$workload\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace), 0.001)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ source_workload }}.{{ source_workload_namespace}}", "refId": "B", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Bytes Received from Incoming TCP Connection", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "Bps", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ] }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 12, "x": 12, "y": 26 }, "id": 82, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "round(sum(irate(istio_tcp_sent_bytes_total{connection_security_policy=\"mutual_tls\", reporter=\"destination\", destination_workload_namespace=~\"$namespace\", destination_workload=~\"$workload\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace), 0.001)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ source_workload }}.{{ source_workload_namespace}} (🔐mTLS)", "refId": "A", "step": 2 }, { "expr": "round(sum(irate(istio_tcp_sent_bytes_total{connection_security_policy!=\"mutual_tls\", reporter=\"destination\", destination_workload_namespace=~\"$namespace\", destination_workload=~\"$workload\", source_workload=~\"$srcwl\", source_workload_namespace=~\"$srcns\"}[1m])) by (source_workload, source_workload_namespace), 0.001)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ source_workload }}.{{ source_workload_namespace}}", "refId": "B", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Bytes Sent to Incoming TCP Connection", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "Bps", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ] }, { "content": "
\nOUTBOUND SERVICES\n
", "gridPos": { "h": 3, "w": 24, "x": 0, "y": 32 }, "id": 69, "links": [], "mode": "html", "title": "", "transparent": true, "type": "text" }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 0, "gridPos": { "h": 6, "w": 12, "x": 0, "y": 35 }, "id": 70, "legend": { "avg": false, "current": false, "hideEmpty": true, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null as zero", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "round(sum(irate(istio_requests_total{connection_security_policy=\"mutual_tls\", source_workload_namespace=~\"$namespace\", source_workload=~\"$workload\", reporter=\"source\", destination_service=~\"$dstsvc\"}[5m])) by (destination_service, response_code), 0.001)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ destination_service }} : {{ response_code }} (🔐mTLS)", "refId": "B", "step": 2 }, { "expr": "round(sum(irate(istio_requests_total{connection_security_policy!=\"mutual_tls\", source_workload_namespace=~\"$namespace\", source_workload=~\"$workload\", reporter=\"source\", destination_service=~\"$dstsvc\"}[5m])) by (destination_service, response_code), 0.001)", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} : {{ response_code }}", "refId": "A", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Outgoing Requests by Destination And Response Code", "tooltip": { "shared": false, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [ "total" ] }, "yaxes": [ { "format": "ops", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ] }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 12, "x": 12, "y": 35 }, "id": 71, "legend": { "avg": false, "current": false, "hideEmpty": true, "hideZero": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(irate(istio_requests_total{reporter=\"source\", connection_security_policy=\"mutual_tls\", source_workload_namespace=~\"$namespace\", source_workload=~\"$workload\",response_code!~\"5.*\", destination_service=~\"$dstsvc\"}[5m])) by (destination_service) / sum(irate(istio_requests_total{reporter=\"source\", connection_security_policy=\"mutual_tls\", source_workload_namespace=~\"$namespace\", source_workload=~\"$workload\", destination_service=~\"$dstsvc\"}[5m])) by (destination_service)", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} (🔐mTLS)", "refId": "A", "step": 2 }, { "expr": "sum(irate(istio_requests_total{reporter=\"source\", connection_security_policy!=\"mutual_tls\", source_workload_namespace=~\"$namespace\", source_workload=~\"$workload\",response_code!~\"5.*\", destination_service=~\"$dstsvc\"}[5m])) by (destination_service) / sum(irate(istio_requests_total{reporter=\"source\", connection_security_policy!=\"mutual_tls\", source_workload_namespace=~\"$namespace\", source_workload=~\"$workload\", destination_service=~\"$dstsvc\"}[5m])) by (destination_service)", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{destination_service }}", "refId": "B", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Outgoing Success Rate (non-5xx responses) By Destination", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "percentunit", "label": null, "logBase": 1, "max": "1.01", "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ] }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "description": "", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 0, "y": 41 }, "id": 72, "legend": { "alignAsTable": false, "avg": false, "current": false, "hideEmpty": true, "hideZero": false, "max": false, "min": false, "rightSide": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "histogram_quantile(0.50, sum(irate(istio_request_duration_seconds_bucket{reporter=\"source\", connection_security_policy=\"mutual_tls\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} P50 (🔐mTLS)", "refId": "D", "step": 2 }, { "expr": "histogram_quantile(0.90, sum(irate(istio_request_duration_seconds_bucket{reporter=\"source\", connection_security_policy=\"mutual_tls\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} P90 (🔐mTLS)", "refId": "A", "step": 2 }, { "expr": "histogram_quantile(0.95, sum(irate(istio_request_duration_seconds_bucket{reporter=\"source\", connection_security_policy=\"mutual_tls\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} P95 (🔐mTLS)", "refId": "B", "step": 2 }, { "expr": "histogram_quantile(0.99, sum(irate(istio_request_duration_seconds_bucket{reporter=\"source\", connection_security_policy=\"mutual_tls\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} P99 (🔐mTLS)", "refId": "C", "step": 2 }, { "expr": "histogram_quantile(0.50, sum(irate(istio_request_duration_seconds_bucket{reporter=\"source\", connection_security_policy!=\"mutual_tls\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} P50", "refId": "E", "step": 2 }, { "expr": "histogram_quantile(0.90, sum(irate(istio_request_duration_seconds_bucket{reporter=\"source\", connection_security_policy!=\"mutual_tls\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} P90", "refId": "F", "step": 2 }, { "expr": "histogram_quantile(0.95, sum(irate(istio_request_duration_seconds_bucket{reporter=\"source\", connection_security_policy!=\"mutual_tls\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} P95", "refId": "G", "step": 2 }, { "expr": "histogram_quantile(0.99, sum(irate(istio_request_duration_seconds_bucket{reporter=\"source\", connection_security_policy!=\"mutual_tls\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} P99", "refId": "H", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Outgoing Request Duration by Destination", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "s", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ] }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 8, "y": 41 }, "id": 73, "legend": { "alignAsTable": false, "avg": false, "current": false, "hideEmpty": true, "max": false, "min": false, "rightSide": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "histogram_quantile(0.50, sum(irate(istio_request_bytes_bucket{reporter=\"source\", connection_security_policy=\"mutual_tls\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} P50 (🔐mTLS)", "refId": "D", "step": 2 }, { "expr": "histogram_quantile(0.90, sum(irate(istio_request_bytes_bucket{reporter=\"source\", connection_security_policy=\"mutual_tls\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} P90 (🔐mTLS)", "refId": "A", "step": 2 }, { "expr": "histogram_quantile(0.95, sum(irate(istio_request_bytes_bucket{reporter=\"source\", connection_security_policy=\"mutual_tls\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} P95 (🔐mTLS)", "refId": "B", "step": 2 }, { "expr": "histogram_quantile(0.99, sum(irate(istio_request_bytes_bucket{reporter=\"source\", connection_security_policy=\"mutual_tls\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} P99 (🔐mTLS)", "refId": "C", "step": 2 }, { "expr": "histogram_quantile(0.50, sum(irate(istio_request_bytes_bucket{reporter=\"source\", connection_security_policy!=\"mutual_tls\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} P50", "refId": "E", "step": 2 }, { "expr": "histogram_quantile(0.90, sum(irate(istio_request_bytes_bucket{reporter=\"source\", connection_security_policy!=\"mutual_tls\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} P90", "refId": "F", "step": 2 }, { "expr": "histogram_quantile(0.95, sum(irate(istio_request_bytes_bucket{reporter=\"source\", connection_security_policy!=\"mutual_tls\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} P95", "refId": "G", "step": 2 }, { "expr": "histogram_quantile(0.99, sum(irate(istio_request_bytes_bucket{reporter=\"source\", connection_security_policy!=\"mutual_tls\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} P99", "refId": "H", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Outgoing Request Size By Destination", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "decbytes", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ] }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 16, "y": 41 }, "id": 74, "legend": { "alignAsTable": false, "avg": false, "current": false, "hideEmpty": true, "max": false, "min": false, "rightSide": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "histogram_quantile(0.50, sum(irate(istio_response_bytes_bucket{reporter=\"source\", connection_security_policy=\"mutual_tls\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} P50 (🔐mTLS)", "refId": "D", "step": 2 }, { "expr": "histogram_quantile(0.90, sum(irate(istio_response_bytes_bucket{reporter=\"source\", connection_security_policy=\"mutual_tls\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} P90 (🔐mTLS)", "refId": "A", "step": 2 }, { "expr": "histogram_quantile(0.95, sum(irate(istio_response_bytes_bucket{reporter=\"source\", connection_security_policy=\"mutual_tls\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} P95 (🔐mTLS)", "refId": "B", "step": 2 }, { "expr": "histogram_quantile(0.99, sum(irate(istio_response_bytes_bucket{reporter=\"source\", connection_security_policy=\"mutual_tls\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} P99 (🔐mTLS)", "refId": "C", "step": 2 }, { "expr": "histogram_quantile(0.50, sum(irate(istio_response_bytes_bucket{reporter=\"source\", connection_security_policy!=\"mutual_tls\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} P50", "refId": "E", "step": 2 }, { "expr": "histogram_quantile(0.90, sum(irate(istio_response_bytes_bucket{reporter=\"source\", connection_security_policy!=\"mutual_tls\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} P90", "refId": "F", "step": 2 }, { "expr": "histogram_quantile(0.95, sum(irate(istio_response_bytes_bucket{reporter=\"source\", connection_security_policy!=\"mutual_tls\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} P95", "refId": "G", "step": 2 }, { "expr": "histogram_quantile(0.99, sum(irate(istio_response_bytes_bucket{reporter=\"source\", connection_security_policy!=\"mutual_tls\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service, le))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "{{ destination_service }} P99", "refId": "H", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Response Size By Destination", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "decbytes", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ] }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 12, "x": 0, "y": 47 }, "id": 76, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "round(sum(irate(istio_tcp_sent_bytes_total{connection_security_policy=\"mutual_tls\", reporter=\"source\", source_workload_namespace=~\"$namespace\", source_workload=~\"$workload\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service), 0.001)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ destination_service }} (🔐mTLS)", "refId": "A", "step": 2 }, { "expr": "round(sum(irate(istio_tcp_sent_bytes_total{connection_security_policy!=\"mutual_tls\", reporter=\"source\", source_workload_namespace=~\"$namespace\", source_workload=~\"$workload\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service), 0.001)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ destination_service }}", "refId": "B", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Bytes Sent on Outgoing TCP Connection", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "Bps", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ] }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 12, "x": 12, "y": 47 }, "id": 78, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "round(sum(irate(istio_tcp_received_bytes_total{reporter=\"source\", connection_security_policy=\"mutual_tls\", source_workload_namespace=~\"$namespace\", source_workload=~\"$workload\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service), 0.001)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ destination_service }} (🔐mTLS)", "refId": "A", "step": 2 }, { "expr": "round(sum(irate(istio_tcp_received_bytes_total{reporter=\"source\", connection_security_policy!=\"mutual_tls\", source_workload_namespace=~\"$namespace\", source_workload=~\"$workload\", destination_service=~\"$dstsvc\"}[1m])) by (destination_service), 0.001)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ destination_service }}", "refId": "B", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Bytes Received from Outgoing TCP Connection", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "Bps", "label": null, "logBase": 1, "max": null, "min": "0", "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ] } ], "refresh": "10s", "schemaVersion": 16, "style": "dark", "tags": [], "templating": { "list": [ { "allValue": null, "current": {}, "datasource": "Prometheus", "hide": 0, "includeAll": false, "label": "Namespace", "multi": false, "name": "namespace", "options": [], "query": "query_result(sum(istio_requests_total) by (destination_workload_namespace) or sum(istio_tcp_sent_bytes_total) by (destination_workload_namespace))", "refresh": 1, "regex": "/.*_namespace=\"([^\"]*).*/", "sort": 0, "tagValuesQuery": "", "tags": [], "tagsQuery": "", "type": "query", "useTags": false }, { "allValue": null, "current": {}, "datasource": "Prometheus", "hide": 0, "includeAll": false, "label": "Workload", "multi": false, "name": "workload", "options": [], "query": "query_result((sum(istio_requests_total{destination_workload_namespace=~\"$namespace\"}) by (destination_workload) or sum(istio_requests_total{source_workload_namespace=~\"$namespace\"}) by (source_workload)) or (sum(istio_tcp_sent_bytes_total{destination_workload_namespace=~\"$namespace\"}) by (destination_workload) or sum(istio_tcp_sent_bytes_total{source_workload_namespace=~\"$namespace\"}) by (source_workload)))", "refresh": 1, "regex": "/.*workload=\"([^\"]*).*/", "sort": 1, "tagValuesQuery": "", "tags": [], "tagsQuery": "", "type": "query", "useTags": false }, { "allValue": null, "current": {}, "datasource": "Prometheus", "hide": 0, "includeAll": true, "label": "Inbound Workload Namespace", "multi": true, "name": "srcns", "options": [], "query": "query_result( sum(istio_requests_total{reporter=\"destination\", destination_workload=\"$workload\", destination_workload_namespace=~\"$namespace\"}) by (source_workload_namespace) or sum(istio_tcp_sent_bytes_total{reporter=\"destination\", destination_workload=\"$workload\", destination_workload_namespace=~\"$namespace\"}) by (source_workload_namespace))", "refresh": 1, "regex": "/.*namespace=\"([^\"]*).*/", "sort": 2, "tagValuesQuery": "", "tags": [], "tagsQuery": "", "type": "query", "useTags": false }, { "allValue": null, "current": {}, "datasource": "Prometheus", "hide": 0, "includeAll": true, "label": "Inbound Workload", "multi": true, "name": "srcwl", "options": [], "query": "query_result( sum(istio_requests_total{reporter=\"destination\", destination_workload=\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload_namespace=~\"$srcns\"}) by (source_workload) or sum(istio_tcp_sent_bytes_total{reporter=\"destination\", destination_workload=\"$workload\", destination_workload_namespace=~\"$namespace\", source_workload_namespace=~\"$srcns\"}) by (source_workload))", "refresh": 1, "regex": "/.*workload=\"([^\"]*).*/", "sort": 3, "tagValuesQuery": "", "tags": [], "tagsQuery": "", "type": "query", "useTags": false }, { "allValue": null, "current": {}, "datasource": "Prometheus", "hide": 0, "includeAll": true, "label": "Destination Service", "multi": true, "name": "dstsvc", "options": [], "query": "query_result( sum(istio_requests_total{reporter=\"source\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\"}) by (destination_service) or sum(istio_tcp_sent_bytes_total{reporter=\"source\", source_workload=~\"$workload\", source_workload_namespace=~\"$namespace\"}) by (destination_service))", "refresh": 1, "regex": "/.*destination_service=\"([^\"]*).*/", "sort": 4, "tagValuesQuery": "", "tags": [], "tagsQuery": "", "type": "query", "useTags": false } ] }, "time": { "from": "now-5m", "to": "now" }, "timepicker": { "refresh_intervals": [ "5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d" ], "time_options": [ "5m", "15m", "1h", "6h", "12h", "24h", "2d", "7d", "30d" ] }, "timezone": "", "title": "Istio Workload Dashboard", "uid": "UbsSZTDik", "version": 1 } ' --- apiVersion: v1 kind: ConfigMap metadata: name: istio-grafana-configuration-dashboards-mixer-dashboard namespace: istio-system labels: app: grafana chart: grafana heritage: Tiller maistra-version: 1.0.0 release: istio istio: grafana data: mixer-dashboard.json: '{ "__inputs": [ { "name": "DS_PROMETHEUS", "label": "Prometheus", "description": "", "type": "datasource", "pluginId": "prometheus", "pluginName": "Prometheus" } ], "__requires": [ { "type": "grafana", "id": "grafana", "name": "Grafana", "version": "5.2.3" }, { "type": "panel", "id": "graph", "name": "Graph", "version": "5.0.0" }, { "type": "datasource", "id": "prometheus", "name": "Prometheus", "version": "5.0.0" }, { "type": "panel", "id": "text", "name": "Text", "version": "5.0.0" } ], "annotations": { "list": [ { "builtIn": 1, "datasource": "-- Grafana --", "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", "limit": 100, "name": "Annotations & Alerts", "showIn": 0, "type": "dashboard" } ] }, "editable": false, "gnetId": null, "graphTooltip": 1, "id": null, "iteration": 1543881232533, "links": [], "panels": [ { "content": "

Deployed Versions

", "gridPos": { "h": 3, "w": 24, "x": 0, "y": 0 }, "height": "40", "id": 62, "links": [], "mode": "html", "title": "", "transparent": true, "type": "text" }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 5, "w": 24, "x": 0, "y": 3 }, "id": 64, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(istio_build{component=\"mixer\"}) by (tag)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ tag }}", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Mixer Versions", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "content": "

Resource Usage

", "gridPos": { "h": 3, "w": 24, "x": 0, "y": 8 }, "height": "40", "id": 29, "links": [], "mode": "html", "title": "", "transparent": true, "type": "text" }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 7, "w": 6, "x": 0, "y": 11 }, "id": 5, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(process_virtual_memory_bytes{job=~\"istio-telemetry|istio-policy\"}) by (job)", "format": "time_series", "instant": false, "intervalFactor": 2, "legendFormat": "Virtual Memory ({{ job }})", "refId": "I" }, { "expr": "sum(process_resident_memory_bytes{job=~\"istio-telemetry|istio-policy\"}) by (job)", "format": "time_series", "intervalFactor": 2, "legendFormat": "Resident Memory ({{ job }})", "refId": "H" }, { "expr": "sum(go_memstats_heap_sys_bytes{job=~\"istio-telemetry|istio-policy\"}) by (job)", "format": "time_series", "hide": true, "intervalFactor": 2, "legendFormat": "heap sys ({{ job }})", "refId": "A" }, { "expr": "sum(go_memstats_heap_alloc_bytes{job=~\"istio-telemetry|istio-policy\"}) by (job)", "format": "time_series", "hide": true, "intervalFactor": 2, "legendFormat": "heap alloc ({{ job }})", "refId": "D" }, { "expr": "sum(go_memstats_alloc_bytes{job=~\"istio-telemetry|istio-policy\"}) by (job)", "format": "time_series", "intervalFactor": 2, "legendFormat": "Alloc ({{ job }})", "refId": "F" }, { "expr": "sum(go_memstats_heap_inuse_bytes{job=~\"istio-telemetry|istio-policy\"}) by (job)", "format": "time_series", "hide": false, "intervalFactor": 2, "legendFormat": "Heap in-use ({{ job }})", "refId": "E" }, { "expr": "sum(go_memstats_stack_inuse_bytes{job=~\"istio-telemetry|istio-policy\"}) by (job)", "format": "time_series", "intervalFactor": 2, "legendFormat": "Stack in-use ({{ job }})", "refId": "G" }, { "expr": "sum(label_replace(container_memory_usage_bytes{container_name=~\"mixer|istio-proxy\", pod_name=~\"istio-telemetry-.*|istio-policy-.*\"}, \"service\", \"$1\" , \"pod_name\", \"(istio-telemetry|istio-policy)-.*\")) by (service)", "format": "time_series", "hide": false, "intervalFactor": 2, "legendFormat": "{{ service }} total (k8s)", "refId": "C" }, { "expr": "sum(label_replace(container_memory_usage_bytes{container_name=~\"mixer|istio-proxy\", pod_name=~\"istio-telemetry-.*|istio-policy-.*\"}, \"service\", \"$1\" , \"pod_name\", \"(istio-telemetry|istio-policy)-.*\")) by (container_name, service)", "format": "time_series", "hide": false, "intervalFactor": 2, "legendFormat": "{{ service }} - {{ container_name }} (k8s)", "refId": "B" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Memory", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "bytes", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 7, "w": 6, "x": 6, "y": 11 }, "id": 6, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "label_replace(sum(rate(container_cpu_usage_seconds_total{container_name=~\"mixer|istio-proxy\", pod_name=~\"istio-telemetry-.*|istio-policy-.*\"}[1m])) by (pod_name), \"service\", \"$1\" , \"pod_name\", \"(istio-telemetry|istio-policy)-.*\")", "format": "time_series", "hide": false, "intervalFactor": 2, "legendFormat": "{{ service }} total (k8s)", "refId": "A" }, { "expr": "label_replace(sum(rate(container_cpu_usage_seconds_total{container_name=~\"mixer|istio-proxy\", pod_name=~\"istio-telemetry-.*|istio-policy-.*\"}[1m])) by (container_name, pod_name), \"service\", \"$1\" , \"pod_name\", \"(istio-telemetry|istio-policy)-.*\")", "format": "time_series", "hide": false, "intervalFactor": 2, "legendFormat": "{{ service }} - {{ container_name }} (k8s)", "refId": "B" }, { "expr": "sum(irate(process_cpu_seconds_total{job=~\"istio-telemetry|istio-policy\"}[1m])) by (job)", "format": "time_series", "hide": false, "intervalFactor": 2, "legendFormat": "{{ job }} (self-reported)", "refId": "C" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "CPU", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 7, "w": 6, "x": 12, "y": 11 }, "id": 7, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(process_open_fds{job=~\"istio-telemetry|istio-policy\"}) by (job)", "format": "time_series", "hide": true, "instant": false, "interval": "", "intervalFactor": 2, "legendFormat": "Open FDs ({{ job }})", "refId": "A" }, { "expr": "sum(label_replace(container_fs_usage_bytes{container_name=~\"mixer|istio-proxy\", pod_name=~\"istio-telemetry-.*|istio-policy-.*\"}, \"service\", \"$1\" , \"pod_name\", \"(istio-telemetry|istio-policy)-.*\")) by (container_name, service)", "format": "time_series", "intervalFactor": 2, "legendFormat": "{{ service }} - {{ container_name }}", "refId": "B" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Disk", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "bytes", "label": "", "logBase": 1, "max": null, "min": null, "show": true }, { "decimals": null, "format": "none", "label": "", "logBase": 1024, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 7, "w": 6, "x": 18, "y": 11 }, "id": 4, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": false, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(go_goroutines{job=~\"istio-telemetry|istio-policy\"}) by (job)", "format": "time_series", "intervalFactor": 2, "legendFormat": "Number of Goroutines ({{ job }})", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Goroutines", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": "", "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "content": "

Mixer Overview

", "gridPos": { "h": 3, "w": 24, "x": 0, "y": 18 }, "height": "40px", "id": 30, "links": [], "mode": "html", "title": "", "transparent": true, "type": "text" }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 6, "x": 0, "y": 21 }, "id": 9, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(rate(grpc_io_server_completed_rpcs[1m]))", "format": "time_series", "hide": false, "intervalFactor": 2, "legendFormat": "mixer (Total)", "refId": "B" }, { "expr": "sum(rate(grpc_io_server_completed_rpcs[1m])) by (grpc_server_method)", "format": "time_series", "intervalFactor": 2, "legendFormat": "mixer ({{ grpc_server_method }})", "refId": "C" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Incoming Requests", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "ops", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 6, "x": 6, "y": 21 }, "id": 8, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [ { "alias": "{}", "yaxis": 1 } ], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "histogram_quantile(0.5, sum(rate(grpc_io_server_server_latency_bucket{}[1m])) by (grpc_server_method, le))", "format": "time_series", "intervalFactor": 2, "legendFormat": "{{ grpc_server_method }} 0.5", "refId": "B" }, { "expr": "histogram_quantile(0.9, sum(rate(grpc_io_server_server_latency_bucket{}[1m])) by (grpc_server_method, le))", "format": "time_series", "intervalFactor": 2, "legendFormat": "{{ grpc_server_method }} 0.9", "refId": "C" }, { "expr": "histogram_quantile(0.99, sum(rate(grpc_io_server_server_latency_bucket{}[1m])) by (grpc_server_method, le))", "format": "time_series", "intervalFactor": 2, "legendFormat": "{{ grpc_server_method }} 0.99", "refId": "D" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Response Durations", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "ms", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 6, "x": 12, "y": 21 }, "id": 11, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(rate(grpc_server_handled_total{grpc_code=~\"Unknown|Unimplemented|Internal|DataLoss\"}[1m])) by (grpc_method)", "format": "time_series", "intervalFactor": 2, "legendFormat": "Mixer {{ grpc_method }}", "refId": "B" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Server Error Rate (5xx responses)", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 6, "x": 18, "y": 21 }, "id": 12, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(irate(grpc_server_handled_total{grpc_code!=\"OK\",grpc_service=~\".*Mixer\"}[1m])) by (grpc_method)", "format": "time_series", "intervalFactor": 2, "legendFormat": "Mixer {{ grpc_method }}", "refId": "B" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Non-successes (4xxs)", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "content": "

Adapters and Config

", "gridPos": { "h": 3, "w": 24, "x": 0, "y": 27 }, "id": 28, "links": [], "mode": "html", "title": "", "transparent": true, "type": "text" }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 7, "w": 12, "x": 0, "y": 30 }, "id": 13, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(irate(mixer_runtime_dispatches_total{adapter=~\"$adapter\"}[1m])) by (adapter)", "format": "time_series", "intervalFactor": 2, "legendFormat": "{{ adapter }}", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Adapter Dispatch Count", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 7, "w": 12, "x": 12, "y": 30 }, "id": 14, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "histogram_quantile(0.5, sum(irate(mixer_runtime_dispatch_duration_seconds_bucket{adapter=~\"$adapter\"}[1m])) by (adapter, le))", "format": "time_series", "intervalFactor": 2, "legendFormat": "{{ adapter }} - p50", "refId": "A" }, { "expr": "histogram_quantile(0.9, sum(irate(mixer_runtime_dispatch_duration_seconds_bucket{adapter=~\"$adapter\"}[1m])) by (adapter, le))", "format": "time_series", "intervalFactor": 2, "legendFormat": "{{ adapter }} - p90 ", "refId": "B" }, { "expr": "histogram_quantile(0.99, sum(irate(mixer_runtime_dispatch_duration_seconds_bucket{adapter=~\"$adapter\"}[1m])) by (adapter, le))", "format": "time_series", "intervalFactor": 2, "legendFormat": "{{ adapter }} - p99", "refId": "C" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Adapter Dispatch Duration", "tooltip": { "shared": true, "sort": 1, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "s", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 7, "w": 6, "x": 0, "y": 37 }, "id": 60, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "scalar(topk(1, max(mixer_config_rule_config_count) by (configID)))", "format": "time_series", "intervalFactor": 1, "legendFormat": "Rules", "refId": "A" }, { "expr": "scalar(topk(1, max(mixer_config_rule_config_error_count) by (configID)))", "format": "time_series", "intervalFactor": 1, "legendFormat": "Config Errors", "refId": "B" }, { "expr": "scalar(topk(1, max(mixer_config_rule_config_match_error_count) by (configID)))", "format": "time_series", "intervalFactor": 1, "legendFormat": "Match Errors", "refId": "C" }, { "expr": "scalar(topk(1, max(mixer_config_unsatisfied_action_handler_count) by (configID)))", "format": "time_series", "intervalFactor": 1, "legendFormat": "Unsatisfied Actions", "refId": "D" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Rules", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 7, "w": 6, "x": 6, "y": 37 }, "id": 56, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "scalar(topk(1, max(mixer_config_instance_config_count) by (configID)))", "format": "time_series", "intervalFactor": 1, "legendFormat": "Instances", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Instances in Latest Config", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 7, "w": 6, "x": 12, "y": 37 }, "id": 54, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "scalar(topk(1, max(mixer_config_handler_config_count) by (configID)))", "format": "time_series", "intervalFactor": 1, "legendFormat": "Handlers", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Handlers in Latest Config", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 7, "w": 6, "x": 18, "y": 37 }, "id": 58, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "scalar(topk(1, max(mixer_config_attribute_count) by (configID)))", "format": "time_series", "instant": false, "intervalFactor": 1, "legendFormat": "Attributes", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Attributes in Latest Config", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "content": "

Individual Adapters

", "gridPos": { "h": 3, "w": 24, "x": 0, "y": 44 }, "id": 23, "links": [], "mode": "html", "title": "", "transparent": true, "type": "text" }, { "collapsed": false, "gridPos": { "h": 1, "w": 24, "x": 0, "y": 47 }, "id": 46, "panels": [], "repeat": "adapter", "title": "$adapter Adapter", "type": "row" }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 7, "w": 12, "x": 0, "y": 48 }, "id": 17, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "label_replace(irate(mixer_runtime_dispatches_total{adapter=\"$adapter\"}[1m]),\"handler\", \"$1 ($3)\", \"handler\", \"(.*)\\\\.(.*)\\\\.(.*)\")", "format": "time_series", "intervalFactor": 2, "legendFormat": "{{ handler }} (error: {{ error }})", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Dispatch Count By Handler", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 7, "w": 12, "x": 12, "y": 48 }, "id": 18, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "label_replace(histogram_quantile(0.5, sum(rate(mixer_runtime_dispatch_duration_seconds_bucket{adapter=\"$adapter\"}[1m])) by (handler, error, le)), \"handler_short\", \"$1 ($3)\", \"handler\", \"(.*)\\\\.(.*)\\\\.(.*)\")", "format": "time_series", "intervalFactor": 2, "legendFormat": "p50 - {{ handler_short }} (error: {{ error }})", "refId": "A" }, { "expr": "label_replace(histogram_quantile(0.9, sum(irate(mixer_runtime_dispatch_duration_seconds_bucket{adapter=\"$adapter\"}[1m])) by (handler, error, le)), \"handler_short\", \"$1 ($3)\", \"handler\", \"(.*)\\\\.(.*)\\\\.(.*)\")", "format": "time_series", "intervalFactor": 2, "legendFormat": "p90 - {{ handler_short }} (error: {{ error }})", "refId": "D" }, { "expr": "label_replace(histogram_quantile(0.99, sum(irate(mixer_runtime_dispatch_duration_seconds_bucket{adapter=\"$adapter\"}[1m])) by (handler, error, le)), \"handler_short\", \"$1 ($3)\", \"handler\", \"(.*)\\\\.(.*)\\\\.(.*)\")", "format": "time_series", "intervalFactor": 2, "legendFormat": "p99 - {{ handler_short }} (error: {{ error }})", "refId": "E" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Dispatch Duration By Handler", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "s", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } } ], "refresh": "5s", "schemaVersion": 16, "style": "dark", "tags": [], "templating": { "list": [ { "allValue": null, "current": {}, "datasource": "Prometheus", "hide": 0, "includeAll": true, "label": "Adapter", "multi": true, "name": "adapter", "options": [], "query": "label_values(adapter)", "refresh": 2, "regex": "", "sort": 1, "tagValuesQuery": "", "tags": [], "tagsQuery": "", "type": "query", "useTags": false } ] }, "time": { "from": "now-5m", "to": "now" }, "timepicker": { "refresh_intervals": [ "5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d" ], "time_options": [ "5m", "15m", "1h", "6h", "12h", "24h", "2d", "7d", "30d" ] }, "timezone": "", "title": "Istio Mixer Dashboard", "version": 4 } ' --- apiVersion: v1 kind: ConfigMap metadata: name: istio-grafana-configuration-dashboards-pilot-dashboard namespace: istio-system labels: app: grafana chart: grafana heritage: Tiller maistra-version: 1.0.0 release: istio istio: grafana data: pilot-dashboard.json: '{ "__inputs": [ { "name": "DS_PROMETHEUS", "label": "Prometheus", "description": "", "type": "datasource", "pluginId": "prometheus", "pluginName": "Prometheus" } ], "__requires": [ { "type": "grafana", "id": "grafana", "name": "Grafana", "version": "5.2.3" }, { "type": "panel", "id": "graph", "name": "Graph", "version": "5.0.0" }, { "type": "datasource", "id": "prometheus", "name": "Prometheus", "version": "5.0.0" }, { "type": "panel", "id": "text", "name": "Text", "version": "5.0.0" } ], "annotations": { "list": [ { "builtIn": 1, "datasource": "-- Grafana --", "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", "name": "Annotations & Alerts", "type": "dashboard" } ] }, "editable": false, "gnetId": null, "graphTooltip": 1, "id": null, "links": [], "panels": [ { "content": "

Deployed Versions

", "gridPos": { "h": 3, "w": 24, "x": 0, "y": 0 }, "height": "40", "id": 58, "links": [], "mode": "html", "title": "", "transparent": true, "type": "text" }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 5, "w": 24, "x": 0, "y": 3 }, "id": 56, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(istio_build{component=\"pilot\"}) by (tag)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ tag }}", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Pilot Versions", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "content": "

Resource Usage

", "gridPos": { "h": 3, "w": 24, "x": 0, "y": 8 }, "height": "40", "id": 29, "links": [], "mode": "html", "title": "", "transparent": true, "type": "text" }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 7, "w": 6, "x": 0, "y": 11 }, "id": 5, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "process_virtual_memory_bytes{job=\"pilot\"}", "format": "time_series", "instant": false, "intervalFactor": 2, "legendFormat": "Virtual Memory", "refId": "I", "step": 2 }, { "expr": "process_resident_memory_bytes{job=\"pilot\"}", "format": "time_series", "intervalFactor": 2, "legendFormat": "Resident Memory", "refId": "H", "step": 2 }, { "expr": "go_memstats_heap_sys_bytes{job=\"pilot\"}", "format": "time_series", "hide": true, "intervalFactor": 2, "legendFormat": "heap sys", "refId": "A" }, { "expr": "go_memstats_heap_alloc_bytes{job=\"pilot\"}", "format": "time_series", "hide": true, "intervalFactor": 2, "legendFormat": "heap alloc", "refId": "D" }, { "expr": "go_memstats_alloc_bytes{job=\"pilot\"}", "format": "time_series", "intervalFactor": 2, "legendFormat": "Alloc", "refId": "F", "step": 2 }, { "expr": "go_memstats_heap_inuse_bytes{job=\"pilot\"}", "format": "time_series", "hide": false, "intervalFactor": 2, "legendFormat": "Heap in-use", "refId": "E", "step": 2 }, { "expr": "go_memstats_stack_inuse_bytes{job=\"pilot\"}", "format": "time_series", "intervalFactor": 2, "legendFormat": "Stack in-use", "refId": "G", "step": 2 }, { "expr": "sum(container_memory_usage_bytes{container_name=~\"discovery|istio-proxy\", pod_name=~\"istio-pilot-.*\"})", "format": "time_series", "hide": false, "intervalFactor": 2, "legendFormat": "Total (k8s)", "refId": "C", "step": 2 }, { "expr": "container_memory_usage_bytes{container_name=~\"discovery|istio-proxy\", pod_name=~\"istio-pilot-.*\"}", "format": "time_series", "hide": false, "intervalFactor": 2, "legendFormat": "{{ container_name }} (k8s)", "refId": "B", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Memory", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "bytes", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 7, "w": 6, "x": 6, "y": 11 }, "id": 6, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(rate(container_cpu_usage_seconds_total{container_name=~\"discovery|istio-proxy\", pod_name=~\"istio-pilot-.*\"}[1m]))", "format": "time_series", "hide": false, "intervalFactor": 2, "legendFormat": "Total (k8s)", "refId": "A", "step": 2 }, { "expr": "sum(rate(container_cpu_usage_seconds_total{container_name=~\"discovery|istio-proxy\", pod_name=~\"istio-pilot-.*\"}[1m])) by (container_name)", "format": "time_series", "hide": false, "intervalFactor": 2, "legendFormat": "{{ container_name }} (k8s)", "refId": "B", "step": 2 }, { "expr": "irate(process_cpu_seconds_total{job=\"pilot\"}[1m])", "format": "time_series", "hide": false, "intervalFactor": 2, "legendFormat": "pilot (self-reported)", "refId": "C", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "CPU", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 7, "w": 6, "x": 12, "y": 11 }, "id": 7, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "process_open_fds{job=\"pilot\"}", "format": "time_series", "hide": true, "instant": false, "interval": "", "intervalFactor": 2, "legendFormat": "Open FDs (pilot)", "refId": "A" }, { "expr": "container_fs_usage_bytes{container_name=~\"discovery|istio-proxy\", pod_name=~\"istio-pilot-.*\"}", "format": "time_series", "intervalFactor": 2, "legendFormat": "{{ container_name }}", "refId": "B", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Disk", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "bytes", "label": "", "logBase": 1, "max": null, "min": null, "show": true }, { "decimals": null, "format": "none", "label": "", "logBase": 1024, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 7, "w": 6, "x": 18, "y": 11 }, "id": 4, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": false, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "go_goroutines{job=\"pilot\"}", "format": "time_series", "intervalFactor": 2, "legendFormat": "Number of Goroutines", "refId": "A", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Goroutines", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": "", "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "content": "

xDS

", "gridPos": { "h": 3, "w": 24, "x": 0, "y": 18 }, "id": 28, "links": [], "mode": "html", "title": "", "transparent": true, "type": "text" }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 0, "y": 21 }, "id": 40, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(irate(envoy_cluster_update_success{cluster_name=\"xds-grpc\"}[1m]))", "format": "time_series", "hide": false, "intervalFactor": 1, "legendFormat": "XDS GRPC Successes", "refId": "C" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Updates", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "ops", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "ops", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 8, "y": 21 }, "id": 42, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "round(sum(rate(envoy_cluster_update_attempt{cluster_name=\"xds-grpc\"}[1m])) - sum(rate(envoy_cluster_update_success{cluster_name=\"xds-grpc\"}[1m])))", "format": "time_series", "intervalFactor": 2, "legendFormat": "XDS GRPC ", "refId": "A", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Failures", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "ops", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": false } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 6, "w": 8, "x": 16, "y": 21 }, "id": 41, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(envoy_cluster_upstream_cx_active{cluster_name=\"xds-grpc\"})", "format": "time_series", "intervalFactor": 2, "legendFormat": "Pilot (XDS GRPC)", "refId": "C", "step": 2 } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Active Connections", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 8, "w": 8, "x": 0, "y": 27 }, "id": 45, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "pilot_conflict_inbound_listener{job=\"pilot\"}", "format": "time_series", "intervalFactor": 1, "legendFormat": "Inbound Listeners", "refId": "B" }, { "expr": "pilot_conflict_outbound_listener_http_over_current_tcp{job=\"pilot\"}", "format": "time_series", "intervalFactor": 1, "legendFormat": "Outbound Listeners (http over current tcp)", "refId": "A" }, { "expr": "pilot_conflict_outbound_listener_tcp_over_current_tcp{job=\"pilot\"}", "format": "time_series", "intervalFactor": 1, "legendFormat": "Outbound Listeners (tcp over current tcp)", "refId": "C" }, { "expr": "pilot_conflict_outbound_listener_tcp_over_current_http{job=\"pilot\"}", "format": "time_series", "intervalFactor": 1, "legendFormat": "Outbound Listeners (tcp over current http)", "refId": "D" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Conflicts", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 8, "w": 8, "x": 8, "y": 27 }, "id": 47, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "pilot_virt_services{job=\"pilot\"}", "format": "time_series", "intervalFactor": 1, "legendFormat": "Virtual Services", "refId": "A" }, { "expr": "pilot_services{job=\"pilot\"}", "format": "time_series", "intervalFactor": 1, "legendFormat": "Services", "refId": "B" }, { "expr": "label_replace(sum(pilot_xds_cds_reject{job=\"pilot\"}) by (node, err), \"node\", \"$1\", \"node\", \".*~.*~(.*)~.*\")", "format": "time_series", "hide": true, "intervalFactor": 1, "legendFormat": "Rejected CDS Configs - {{ node }}: {{ err }}", "refId": "C" }, { "expr": "pilot_xds_eds_reject{job=\"pilot\"}", "format": "time_series", "hide": true, "intervalFactor": 1, "legendFormat": "Rejected EDS Configs", "refId": "D" }, { "expr": "pilot_xds{job=\"pilot\"}", "format": "time_series", "intervalFactor": 1, "legendFormat": "Connected Endpoints", "refId": "E" }, { "expr": "rate(pilot_xds_write_timeout{job=\"pilot\"}[1m])", "format": "time_series", "intervalFactor": 1, "legendFormat": "Write Timeouts", "refId": "F" }, { "expr": "rate(pilot_xds_push_timeout{job=\"pilot\"}[1m])", "format": "time_series", "intervalFactor": 1, "legendFormat": "Push Timeouts", "refId": "G" }, { "expr": "rate(pilot_xds_pushes{job=\"pilot\"}[1m])", "format": "time_series", "intervalFactor": 1, "legendFormat": "Pushes ({{ type }})", "refId": "H" }, { "expr": "rate(pilot_xds_push_errors{job=\"pilot\"}[1m])", "format": "time_series", "intervalFactor": 1, "legendFormat": "Push Errors ({{ type }})", "refId": "I" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "ADS Monitoring", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 8, "w": 8, "x": 16, "y": 27 }, "id": 49, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "label_replace(sum(pilot_xds_cds_reject{job=\"pilot\"}) by (node, err), \"node\", \"$1\", \"node\", \".*~.*~(.*)~.*\")", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ node }} ({{ err }})", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Rejected CDS Configs", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 7, "w": 8, "x": 0, "y": 35 }, "id": 52, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "label_replace(sum(pilot_xds_eds_reject{job=\"pilot\"}) by (node, err), \"node\", \"$1\", \"node\", \".*~.*~(.*)~.*\")", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ node }} ({{err}})", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Rejected EDS Configs", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 7, "w": 8, "x": 8, "y": 35 }, "id": 54, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "label_replace(sum(pilot_xds_lds_reject{job=\"pilot\"}) by (node, err), \"node\", \"$1\", \"node\", \".*~.*~(.*)~.*\")", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ node }} ({{err}})", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Rejected LDS Configs", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 7, "w": 8, "x": 16, "y": 35 }, "id": 53, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "label_replace(sum(pilot_xds_rds_reject{job=\"pilot\"}) by (node, err), \"node\", \"$1\", \"node\", \".*~.*~(.*)~.*\")", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ node }} ({{err}})", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "Rejected RDS Configs", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": { "outbound|80||default-http-backend.kube-system.svc.cluster.local": "rgba(255, 255, 255, 0.97)" }, "bars": false, "dashLength": 10, "dashes": false, "datasource": "Prometheus", "fill": 1, "gridPos": { "h": 7, "w": 8, "x": 0, "y": 42 }, "id": 51, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "links": [], "nullPointMode": "null", "percentage": false, "pointradius": 5, "points": false, "renderer": "flot", "seriesOverrides": [ { "alias": "outbound|80||default-http-backend.kube-system.svc.cluster.local", "yaxis": 1 } ], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "sum(pilot_xds_eds_instances{job=\"pilot\"}) by (cluster)", "format": "time_series", "intervalFactor": 1, "legendFormat": "{{ cluster }}", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeShift": null, "title": "EDS Instances", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true }, { "format": "short", "label": null, "logBase": 1, "max": null, "min": null, "show": true } ], "yaxis": { "align": false, "alignLevel": null } } ], "refresh": "5s", "schemaVersion": 16, "style": "dark", "tags": [], "templating": { "list": [] }, "time": { "from": "now-5m", "to": "now" }, "timepicker": { "refresh_intervals": [ "5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d" ], "time_options": [ "5m", "15m", "1h", "6h", "12h", "24h", "2d", "7d", "30d" ] }, "timezone": "browser", "title": "Istio Pilot Dashboard", "version": 4 } ' --- } {Name:istio/charts/grafana/templates/configmap.yaml Content:apiVersion: v1 kind: ConfigMap metadata: name: istio-grafana namespace: istio-system labels: app: grafana chart: grafana heritage: Tiller maistra-version: 1.0.0 release: istio istio: grafana data: datasources.yaml: | apiVersion: 1 datasources: - access: proxy editable: true isDefault: true jsonData: timeInterval: 5s name: Prometheus orgId: 1 type: prometheus url: http://prometheus:9090 dashboardproviders.yaml: | apiVersion: 1 providers: - disableDeletion: false folder: istio name: istio options: path: /var/lib/grafana/dashboards/istio orgId: 1 type: file } {Name:istio/charts/grafana/templates/serviceaccount.yaml Content:apiVersion: v1 kind: ServiceAccount metadata: name: grafana namespace: istio-system annotations: serviceaccounts.openshift.io/oauth-redirectreference.primary: '{"kind":"OAuthRedirectReference","apiVersion":"v1","reference":{"kind":"Route","name":"grafana"}}' labels: app: grafana chart: grafana heritage: Tiller maistra-version: 1.0.0 release: istio } {Name:istio/charts/grafana/templates/ingress.yaml Content:apiVersion: route.openshift.io/v1 kind: Route metadata: name: grafana namespace: istio-system labels: app: grafana chart: grafana heritage: Tiller maistra-version: 1.0.0 release: istio annotations: spec: to: kind: Service name: grafana tls: termination: reencrypt } {Name:istio/charts/grafana/templates/service.yaml Content:apiVersion: v1 kind: Service metadata: name: grafana namespace: istio-system annotations: service.alpha.openshift.io/serving-cert-secret-name: "grafana-tls" labels: app: grafana chart: grafana heritage: Tiller maistra-version: 1.0.0 release: istio spec: type: ClusterIP ports: - port: 3000 targetPort: 3001 protocol: TCP name: http selector: app: grafana } {Name:istio/charts/grafana/templates/deployment.yaml Content:apiVersion: extensions/v1beta1 kind: Deployment metadata: name: grafana namespace: istio-system labels: app: grafana chart: grafana heritage: Tiller maistra-version: 1.0.0 release: istio spec: replicas: 1 template: metadata: labels: app: grafana chart: grafana heritage: Tiller maistra-version: 1.0.0 maistra-control-plane: istio-system release: istio annotations: sidecar.istio.io/inject: "false" spec: serviceAccountName: grafana containers: # OAuth proxy - name: grafana-proxy image: registry.redhat.io/openshift4/ose-oauth-proxy:4.1 imagePullPolicy: IfNotPresent ports: - containerPort: 3001 name: https protocol: TCP readinessProbe: failureThreshold: 3 periodSeconds: 10 successThreshold: 1 tcpSocket: port: https timeoutSeconds: 1 resources: {} terminationMessagePath: /dev/termination-log terminationMessagePolicy: File volumeMounts: - mountPath: /etc/tls/private name: secret-grafana-tls - mountPath: /etc/proxy/htpasswd name: secret-htpasswd args: - -provider=openshift - -https-address=:3001 - -http-address= - -email-domain=* - -upstream=http://localhost:3000 - -htpasswd-file=/etc/proxy/htpasswd/auth - -display-htpasswd-form=false - '-openshift-sar={"namespace": "istio-system", "resource": "pods", "verb": "get"}' - -client-secret-file=/var/run/secrets/kubernetes.io/serviceaccount/token - -openshift-service-account=grafana - -cookie-secret=SECRET - -tls-cert=/etc/tls/private/tls.crt - -tls-key=/etc/tls/private/tls.key - -openshift-ca=/etc/pki/tls/cert.pem - -openshift-ca=/var/run/secrets/kubernetes.io/serviceaccount/ca.crt - name: grafana image: "quay.io/maistra/grafana-rhel8:latest-qe" imagePullPolicy: IfNotPresent ports: - containerPort: 3000 readinessProbe: httpGet: path: /login port: 3000 env: - name: GRAFANA_PORT value: "3000" - name: GF_AUTH_BASIC_ENABLED value: "false" - name: GF_AUTH_PROXY_ENABLED value: "true" - name: GF_AUTH_PROXY_AUTO_SIGN_UP value: "true" - name: GF_AUTH_PROXY_WHITELIST value: 127.0.0.0/24,::1 - name: GF_AUTH_PROXY_HEADERS value: Email:X-Forwarded-Email - name: GF_AUTH_PROXY_HEADER_NAME value: X-Forwarded-User - name: GF_USERS_AUTO_ASSIGN_ORG_ROLE value: Admin - name: GF_PATHS_DATA value: /data/grafana resources: requests: cpu: 10m volumeMounts: - name: data mountPath: /data/grafana - name: dashboards-istio-galley-dashboard mountPath: "/var/lib/grafana/dashboards/istio/galley-dashboard.json" subPath: galley-dashboard.json readOnly: true - name: dashboards-istio-istio-mesh-dashboard mountPath: "/var/lib/grafana/dashboards/istio/istio-mesh-dashboard.json" subPath: istio-mesh-dashboard.json readOnly: true - name: dashboards-istio-istio-performance-dashboard mountPath: "/var/lib/grafana/dashboards/istio/istio-performance-dashboard.json" subPath: istio-performance-dashboard.json readOnly: true - name: dashboards-istio-istio-service-dashboard mountPath: "/var/lib/grafana/dashboards/istio/istio-service-dashboard.json" subPath: istio-service-dashboard.json readOnly: true - name: dashboards-istio-istio-workload-dashboard mountPath: "/var/lib/grafana/dashboards/istio/istio-workload-dashboard.json" subPath: istio-workload-dashboard.json readOnly: true - name: dashboards-istio-mixer-dashboard mountPath: "/var/lib/grafana/dashboards/istio/mixer-dashboard.json" subPath: mixer-dashboard.json readOnly: true - name: dashboards-istio-pilot-dashboard mountPath: "/var/lib/grafana/dashboards/istio/pilot-dashboard.json" subPath: pilot-dashboard.json readOnly: true - name: config mountPath: "/etc/grafana/provisioning/datasources/datasources.yaml" subPath: datasources.yaml - name: config mountPath: "/etc/grafana/provisioning/dashboards/dashboardproviders.yaml" subPath: dashboardproviders.yaml affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - amd64 - ppc64le - s390x preferredDuringSchedulingIgnoredDuringExecution: - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - amd64 - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - ppc64le - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - s390x volumes: # OAuth proxy - name: secret-grafana-tls secret: defaultMode: 420 secretName: grafana-tls - name: secret-htpasswd secret: defaultMode: 420 secretName: htpasswd - name: config configMap: name: istio-grafana - name: data emptyDir: {} - name: dashboards-istio-galley-dashboard configMap: name: istio-grafana-configuration-dashboards-galley-dashboard - name: dashboards-istio-istio-mesh-dashboard configMap: name: istio-grafana-configuration-dashboards-istio-mesh-dashboard - name: dashboards-istio-istio-performance-dashboard configMap: name: istio-grafana-configuration-dashboards-istio-performance-dashboard - name: dashboards-istio-istio-service-dashboard configMap: name: istio-grafana-configuration-dashboards-istio-service-dashboard - name: dashboards-istio-istio-workload-dashboard configMap: name: istio-grafana-configuration-dashboards-istio-workload-dashboard - name: dashboards-istio-mixer-dashboard configMap: name: istio-grafana-configuration-dashboards-mixer-dashboard - name: dashboards-istio-pilot-dashboard configMap: name: istio-grafana-configuration-dashboards-pilot-dashboard } {Name:istio/charts/grafana/templates/networkpolicy.yaml Content:# This is to support routes on ocp 3.11 installs apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: istio-grafana-ingress namespace: istio-system labels: app: grafana chart: grafana heritage: Tiller maistra-version: 1.0.0 release: istio annotations: "maistra.io/internal": "true" spec: podSelector: matchLabels: app: grafana ingress: - ports: port: 3001 } {Name:istio/charts/grafana/templates/grafana-ports-mtls.yaml Content:apiVersion: authentication.istio.io/v1alpha1 kind: Policy metadata: name: grafana-ports-mtls-disabled namespace: istio-system labels: app: grafana chart: grafana heritage: Tiller maistra-version: 1.0.0 release: istio spec: targets: - name: grafana ports: - number: 3000 } {Name:istio/charts/grafana/templates/pvc.yaml Content: } {Name:istio/charts/grafana/templates/tests/test-grafana-connection.yaml Content: }] istio/charts/kiali:[{Name:istio/charts/kiali/templates/secret.yaml Content: # this is like the old demo secret enabled by .Values.createDemoSecret apiVersion: v1 kind: Secret metadata: name: kiali namespace: istio-system labels: app: kiali chart: kiali heritage: Tiller maistra-version: 1.0.0 release: istio data: username: YWRtaW4= passphrase: YWRtaW4= } {Name:istio/charts/kiali/templates/kiali-cr.yaml Content:apiVersion: kiali.io/v1alpha1 kind: Kiali metadata: name: kiali namespace: istio-system spec: installation_tag: "Kiali [istio-system]" istio_namespace: "istio-system" auth: strategy: "login" deployment: accessible_namespaces: - "istio-system" image_name: "quay.io/maistra/kiali" image_pull_policy: "IfNotPresent" image_version: "1.0.0" ingress_enabled: true namespace: "istio-system" secret_name: "kiali" version_label: "1.0.0" view_only_mode: false external_services: grafana: auth: ca_file: "/var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt" type: "basic" use_kiali_token: false username: "internal" password: "" enabled: true in_cluster_url: "https://grafana.istio-system.svc:3000" url: "" prometheus: auth: ca_file: "/var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt" type: "basic" use_kiali_token: false username: "internal" password: "" url: "https://prometheus.istio-system.svc:9090" tracing: auth: ca_file: "/var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt" type: "basic" use_kiali_token: false username: "internal" password: "" enabled: true namespace: "istio-system" service : "" url: "" server: web_root: "/kiali" } {Name:istio/charts/kiali/templates/networkpolicy.yaml Content:# This is to support routes on ocp 3.11 installs apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: istio-kiali-ingress namespace: istio-system labels: app: kiali chart: kiali heritage: Tiller maistra-version: 1.0.0 release: istio annotations: "maistra.io/internal": "true" spec: podSelector: matchLabels: app: kiali ingress: - ports: port: 20001 } {Name:istio/charts/kiali/templates/tests/test-kiali-connection.yaml Content: }] istio/charts/mixer:[{Name:istio/charts/mixer/templates/serviceaccount.yaml Content: apiVersion: v1 kind: ServiceAccount metadata: name: istio-mixer-service-account namespace: istio-system labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio } {Name:istio/charts/mixer/templates/clusterrole.yaml Content: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: istio-mixer-istio-system labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio rules: - apiGroups: ["config.istio.io"] # istio CRD watcher resources: ["*"] verbs: ["create", "get", "list", "watch", "patch"] - apiGroups: ["maistra.io"] resources: ["servicemeshmemberrolls"] verbs: ["get", "list", "watch"] - apiGroups: [""] resources: ["configmaps", "endpoints", "pods", "services", "namespaces", "secrets", "replicationcontrollers"] verbs: ["get", "list", "watch"] - apiGroups: ["extensions", "apps"] resources: ["replicasets"] verbs: ["get", "list", "watch"] } {Name:istio/charts/mixer/templates/clusterrolebinding.yaml Content: apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: istio-mixer-admin-role-binding-istio-system namespace: istio-system labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: istio-mixer-istio-system subjects: - kind: ServiceAccount name: istio-mixer-service-account namespace: istio-system } {Name:istio/charts/mixer/templates/service.yaml Content: apiVersion: v1 kind: Service metadata: name: istio-policy namespace: istio-system annotations: networking.istio.io/exportTo: "*" labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio istio: mixer spec: ports: - name: grpc-mixer port: 9091 - name: grpc-mixer-mtls port: 15004 - name: http-monitoring port: 15014 selector: istio: mixer istio-mixer-type: policy --- apiVersion: v1 kind: Service metadata: name: istio-telemetry namespace: istio-system annotations: networking.istio.io/exportTo: "*" labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio istio: mixer spec: ports: - name: grpc-mixer port: 9091 - name: grpc-mixer-mtls port: 15004 - name: http-monitoring port: 15014 - name: prometheus port: 42422 selector: istio: mixer istio-mixer-type: telemetry --- } {Name:istio/charts/mixer/templates/deployment.yaml Content: apiVersion: extensions/v1beta1 kind: Deployment metadata: name: istio-policy namespace: istio-system labels: app: istio-mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio istio: mixer spec: replicas: 1 strategy: rollingUpdate: maxSurge: 1 maxUnavailable: 0 selector: matchLabels: istio: mixer istio-mixer-type: policy template: metadata: labels: app: policy chart: mixer heritage: Tiller maistra-version: 1.0.0 maistra-control-plane: istio-system release: istio istio: mixer istio-mixer-type: policy annotations: sidecar.istio.io/inject: "false" spec: serviceAccountName: istio-mixer-service-account volumes: - name: istio-certs secret: secretName: istio.istio-mixer-service-account optional: true - name: uds-socket emptyDir: {} - name: policy-adapter-secret secret: secretName: policy-adapter-secret optional: true affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - amd64 - ppc64le - s390x preferredDuringSchedulingIgnoredDuringExecution: - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - amd64 - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - ppc64le - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - s390x containers: - name: mixer image: "quay.io/maistra/mixer-rhel8:latest-qe" imagePullPolicy: IfNotPresent ports: - containerPort: 15014 - containerPort: 42422 args: - --memberRollName=default - --memberRollNamespace=istio-system - --monitoringPort=15014 - --address - unix:///sock/mixer.socket - --log_output_level=default:info - --configStoreURL=mcp://istio-galley.istio-system.svc:9901 - --configDefaultNamespace=istio-system - --useAdapterCRDs=true - --trace_zipkin_url=http://zipkin:9411/api/v1/spans env: - name: GODEBUG value: "" - name: GOMAXPROCS value: "6" resources: requests: cpu: 10m volumeMounts: - name: istio-certs mountPath: /etc/certs readOnly: true - name: uds-socket mountPath: /sock livenessProbe: httpGet: path: /version port: 15014 initialDelaySeconds: 5 periodSeconds: 5 - name: istio-proxy image: "quay.io/maistra/proxyv2-rhel8:latest-qe" imagePullPolicy: IfNotPresent ports: - containerPort: 9091 - containerPort: 15004 - containerPort: 15090 protocol: TCP name: http-envoy-prom args: - proxy - --domain - $(POD_NAMESPACE).svc.cluster.local - --serviceCluster - istio-policy - --templateFile - /etc/istio/proxy/envoy_policy.yaml.tmpl - --controlPlaneAuthPolicy - NONE env: - name: POD_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.name - name: POD_NAMESPACE valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.namespace - name: INSTANCE_IP valueFrom: fieldRef: apiVersion: v1 fieldPath: status.podIP resources: limits: cpu: 501m memory: 128Mi requests: cpu: 100m memory: 128Mi volumeMounts: - name: istio-certs mountPath: /etc/certs readOnly: true - name: uds-socket mountPath: /sock - name: policy-adapter-secret mountPath: /var/run/secrets/istio.io/policy/adapter readOnly: true --- apiVersion: extensions/v1beta1 kind: Deployment metadata: name: istio-telemetry namespace: istio-system labels: app: istio-mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio istio: mixer spec: replicas: 1 strategy: rollingUpdate: maxSurge: 1 maxUnavailable: 0 selector: matchLabels: istio: mixer istio-mixer-type: telemetry template: metadata: labels: app: telemetry chart: mixer heritage: Tiller maistra-version: 1.0.0 maistra-control-plane: istio-system release: istio istio: mixer istio-mixer-type: telemetry annotations: sidecar.istio.io/inject: "false" spec: serviceAccountName: istio-mixer-service-account volumes: - name: istio-certs secret: secretName: istio.istio-mixer-service-account optional: true - name: uds-socket emptyDir: {} - name: telemetry-adapter-secret secret: secretName: telemetry-adapter-secret optional: true affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - amd64 - ppc64le - s390x preferredDuringSchedulingIgnoredDuringExecution: - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - amd64 - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - ppc64le - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - s390x containers: - name: mixer image: "quay.io/maistra/mixer-rhel8:latest-qe" imagePullPolicy: IfNotPresent ports: - containerPort: 15014 - containerPort: 42422 args: - --memberRollName=default - --memberRollNamespace=istio-system - --monitoringPort=15014 - --address - unix:///sock/mixer.socket - --log_output_level=default:info - --configStoreURL=mcp://istio-galley.istio-system.svc:9901 - --configDefaultNamespace=istio-system - --useAdapterCRDs=true - --trace_zipkin_url=http://zipkin:9411/api/v1/spans - --averageLatencyThreshold - 100ms - --loadsheddingMode - enforce env: - name: POD_NAMESPACE valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.namespace - name: GODEBUG value: "" - name: GOMAXPROCS value: "6" resources: limits: cpu: 500m memory: 4G requests: cpu: 100m memory: 1G volumeMounts: - name: istio-certs mountPath: /etc/certs readOnly: true - name: telemetry-adapter-secret mountPath: /var/run/secrets/istio.io/telemetry/adapter readOnly: true - name: uds-socket mountPath: /sock livenessProbe: httpGet: path: /version port: 15014 initialDelaySeconds: 5 periodSeconds: 5 - name: istio-proxy image: "quay.io/maistra/proxyv2-rhel8:latest-qe" imagePullPolicy: IfNotPresent ports: - containerPort: 9091 - containerPort: 15004 - containerPort: 15090 protocol: TCP name: http-envoy-prom args: - proxy - --domain - $(POD_NAMESPACE).svc.cluster.local - --serviceCluster - istio-telemetry - --templateFile - /etc/istio/proxy/envoy_telemetry.yaml.tmpl - --controlPlaneAuthPolicy - NONE env: - name: POD_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.name - name: POD_NAMESPACE valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.namespace - name: INSTANCE_IP valueFrom: fieldRef: apiVersion: v1 fieldPath: status.podIP resources: limits: cpu: 501m memory: 128Mi requests: cpu: 100m memory: 128Mi volumeMounts: - name: istio-certs mountPath: /etc/certs readOnly: true - name: uds-socket mountPath: /sock --- } {Name:istio/charts/mixer/templates/poddisruptionbudget.yaml Content: apiVersion: policy/v1beta1 kind: PodDisruptionBudget metadata: name: istio-policy namespace: istio-system labels: app: policy chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio version: 1.1.0 istio: mixer istio-mixer-type: policy spec: minAvailable: 1 selector: matchLabels: app: policy maistra-version: 1.0.0 release: istio istio: mixer istio-mixer-type: policy --- apiVersion: policy/v1beta1 kind: PodDisruptionBudget metadata: name: istio-telemetry namespace: istio-system labels: app: telemetry chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio version: 1.1.0 istio: mixer istio-mixer-type: telemetry spec: minAvailable: 1 selector: matchLabels: app: telemetry maistra-version: 1.0.0 release: istio istio: mixer istio-mixer-type: telemetry --- } {Name:istio/charts/mixer/templates/autoscale.yaml Content: } {Name:istio/charts/mixer/templates/config.yaml Content: apiVersion: "config.istio.io/v1alpha2" kind: attributemanifest metadata: name: istioproxy namespace: istio-system labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio spec: attributes: origin.ip: valueType: IP_ADDRESS origin.uid: valueType: STRING origin.user: valueType: STRING request.headers: valueType: STRING_MAP request.id: valueType: STRING request.host: valueType: STRING request.method: valueType: STRING request.path: valueType: STRING request.url_path: valueType: STRING request.query_params: valueType: STRING_MAP request.reason: valueType: STRING request.referer: valueType: STRING request.scheme: valueType: STRING request.total_size: valueType: INT64 request.size: valueType: INT64 request.time: valueType: TIMESTAMP request.useragent: valueType: STRING response.code: valueType: INT64 response.duration: valueType: DURATION response.headers: valueType: STRING_MAP response.total_size: valueType: INT64 response.size: valueType: INT64 response.time: valueType: TIMESTAMP response.grpc_status: valueType: STRING response.grpc_message: valueType: STRING source.uid: valueType: STRING source.user: # DEPRECATED valueType: STRING source.principal: valueType: STRING destination.uid: valueType: STRING destination.principal: valueType: STRING destination.port: valueType: INT64 connection.event: valueType: STRING connection.id: valueType: STRING connection.received.bytes: valueType: INT64 connection.received.bytes_total: valueType: INT64 connection.sent.bytes: valueType: INT64 connection.sent.bytes_total: valueType: INT64 connection.duration: valueType: DURATION connection.mtls: valueType: BOOL connection.requested_server_name: valueType: STRING context.protocol: valueType: STRING context.proxy_error_code: valueType: STRING context.timestamp: valueType: TIMESTAMP context.time: valueType: TIMESTAMP # Deprecated, kept for compatibility context.reporter.local: valueType: BOOL context.reporter.kind: valueType: STRING context.reporter.uid: valueType: STRING api.service: valueType: STRING api.version: valueType: STRING api.operation: valueType: STRING api.protocol: valueType: STRING request.auth.principal: valueType: STRING request.auth.audiences: valueType: STRING request.auth.presenter: valueType: STRING request.auth.claims: valueType: STRING_MAP request.auth.raw_claims: valueType: STRING request.api_key: valueType: STRING rbac.permissive.response_code: valueType: STRING rbac.permissive.effective_policy_id: valueType: STRING check.error_code: valueType: INT64 check.error_message: valueType: STRING check.cache_hit: valueType: BOOL quota.cache_hit: valueType: BOOL --- apiVersion: "config.istio.io/v1alpha2" kind: attributemanifest metadata: name: kubernetes namespace: istio-system labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio spec: attributes: source.ip: valueType: IP_ADDRESS source.labels: valueType: STRING_MAP source.metadata: valueType: STRING_MAP source.name: valueType: STRING source.namespace: valueType: STRING source.owner: valueType: STRING source.serviceAccount: valueType: STRING source.services: valueType: STRING source.workload.uid: valueType: STRING source.workload.name: valueType: STRING source.workload.namespace: valueType: STRING destination.ip: valueType: IP_ADDRESS destination.labels: valueType: STRING_MAP destination.metadata: valueType: STRING_MAP destination.owner: valueType: STRING destination.name: valueType: STRING destination.container.name: valueType: STRING destination.namespace: valueType: STRING destination.service.uid: valueType: STRING destination.service.name: valueType: STRING destination.service.namespace: valueType: STRING destination.service.host: valueType: STRING destination.serviceAccount: valueType: STRING destination.workload.uid: valueType: STRING destination.workload.name: valueType: STRING destination.workload.namespace: valueType: STRING --- --- apiVersion: "config.istio.io/v1alpha2" kind: metric metadata: name: requestcount namespace: istio-system labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio spec: value: "1" dimensions: reporter: conditional((context.reporter.kind | "inbound") == "outbound", "source", "destination") source_workload: source.workload.name | "unknown" source_workload_namespace: source.workload.namespace | "unknown" source_principal: source.principal | "unknown" source_app: source.labels["app"] | "unknown" source_version: source.labels["version"] | "unknown" destination_workload: destination.workload.name | "unknown" destination_workload_namespace: destination.workload.namespace | "unknown" destination_principal: destination.principal | "unknown" destination_app: destination.labels["app"] | "unknown" destination_version: destination.labels["version"] | "unknown" destination_service: destination.service.host | "unknown" destination_service_name: destination.service.name | "unknown" destination_service_namespace: destination.service.namespace | "unknown" request_protocol: api.protocol | context.protocol | "unknown" response_code: response.code | 200 response_flags: context.proxy_error_code | "-" permissive_response_code: rbac.permissive.response_code | "none" permissive_response_policyid: rbac.permissive.effective_policy_id | "none" connection_security_policy: conditional((context.reporter.kind | "inbound") == "outbound", "unknown", conditional(connection.mtls | false, "mutual_tls", "none")) monitored_resource_type: '"UNSPECIFIED"' --- apiVersion: "config.istio.io/v1alpha2" kind: metric metadata: name: requestduration namespace: istio-system labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio spec: value: response.duration | "0ms" dimensions: reporter: conditional((context.reporter.kind | "inbound") == "outbound", "source", "destination") source_workload: source.workload.name | "unknown" source_workload_namespace: source.workload.namespace | "unknown" source_principal: source.principal | "unknown" source_app: source.labels["app"] | "unknown" source_version: source.labels["version"] | "unknown" destination_workload: destination.workload.name | "unknown" destination_workload_namespace: destination.workload.namespace | "unknown" destination_principal: destination.principal | "unknown" destination_app: destination.labels["app"] | "unknown" destination_version: destination.labels["version"] | "unknown" destination_service: destination.service.host | "unknown" destination_service_name: destination.service.name | "unknown" destination_service_namespace: destination.service.namespace | "unknown" request_protocol: api.protocol | context.protocol | "unknown" response_code: response.code | 200 response_flags: context.proxy_error_code | "-" permissive_response_code: rbac.permissive.response_code | "none" permissive_response_policyid: rbac.permissive.effective_policy_id | "none" connection_security_policy: conditional((context.reporter.kind | "inbound") == "outbound", "unknown", conditional(connection.mtls | false, "mutual_tls", "none")) monitored_resource_type: '"UNSPECIFIED"' --- apiVersion: "config.istio.io/v1alpha2" kind: metric metadata: name: requestsize namespace: istio-system labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio spec: value: request.size | 0 dimensions: reporter: conditional((context.reporter.kind | "inbound") == "outbound", "source", "destination") source_workload: source.workload.name | "unknown" source_workload_namespace: source.workload.namespace | "unknown" source_principal: source.principal | "unknown" source_app: source.labels["app"] | "unknown" source_version: source.labels["version"] | "unknown" destination_workload: destination.workload.name | "unknown" destination_workload_namespace: destination.workload.namespace | "unknown" destination_principal: destination.principal | "unknown" destination_app: destination.labels["app"] | "unknown" destination_version: destination.labels["version"] | "unknown" destination_service: destination.service.host | "unknown" destination_service_name: destination.service.name | "unknown" destination_service_namespace: destination.service.namespace | "unknown" request_protocol: api.protocol | context.protocol | "unknown" response_code: response.code | 200 response_flags: context.proxy_error_code | "-" permissive_response_code: rbac.permissive.response_code | "none" permissive_response_policyid: rbac.permissive.effective_policy_id | "none" connection_security_policy: conditional((context.reporter.kind | "inbound") == "outbound", "unknown", conditional(connection.mtls | false, "mutual_tls", "none")) monitored_resource_type: '"UNSPECIFIED"' --- apiVersion: "config.istio.io/v1alpha2" kind: metric metadata: name: responsesize namespace: istio-system labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio spec: value: response.size | 0 dimensions: reporter: conditional((context.reporter.kind | "inbound") == "outbound", "source", "destination") source_workload: source.workload.name | "unknown" source_workload_namespace: source.workload.namespace | "unknown" source_principal: source.principal | "unknown" source_app: source.labels["app"] | "unknown" source_version: source.labels["version"] | "unknown" destination_workload: destination.workload.name | "unknown" destination_workload_namespace: destination.workload.namespace | "unknown" destination_principal: destination.principal | "unknown" destination_app: destination.labels["app"] | "unknown" destination_version: destination.labels["version"] | "unknown" destination_service: destination.service.host | "unknown" destination_service_name: destination.service.name | "unknown" destination_service_namespace: destination.service.namespace | "unknown" request_protocol: api.protocol | context.protocol | "unknown" response_code: response.code | 200 response_flags: context.proxy_error_code | "-" permissive_response_code: rbac.permissive.response_code | "none" permissive_response_policyid: rbac.permissive.effective_policy_id | "none" connection_security_policy: conditional((context.reporter.kind | "inbound") == "outbound", "unknown", conditional(connection.mtls | false, "mutual_tls", "none")) monitored_resource_type: '"UNSPECIFIED"' --- apiVersion: "config.istio.io/v1alpha2" kind: metric metadata: name: tcpbytesent namespace: istio-system labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio spec: value: connection.sent.bytes | 0 dimensions: reporter: conditional((context.reporter.kind | "inbound") == "outbound", "source", "destination") source_workload: source.workload.name | "unknown" source_workload_namespace: source.workload.namespace | "unknown" source_principal: source.principal | "unknown" source_app: source.labels["app"] | "unknown" source_version: source.labels["version"] | "unknown" destination_workload: destination.workload.name | "unknown" destination_workload_namespace: destination.workload.namespace | "unknown" destination_principal: destination.principal | "unknown" destination_app: destination.labels["app"] | "unknown" destination_version: destination.labels["version"] | "unknown" destination_service: destination.service.host | "unknown" destination_service_name: destination.service.name | "unknown" destination_service_namespace: destination.service.namespace | "unknown" connection_security_policy: conditional((context.reporter.kind | "inbound") == "outbound", "unknown", conditional(connection.mtls | false, "mutual_tls", "none")) response_flags: context.proxy_error_code | "-" monitored_resource_type: '"UNSPECIFIED"' --- apiVersion: "config.istio.io/v1alpha2" kind: metric metadata: name: tcpbytereceived namespace: istio-system labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio spec: value: connection.received.bytes | 0 dimensions: reporter: conditional((context.reporter.kind | "inbound") == "outbound", "source", "destination") source_workload: source.workload.name | "unknown" source_workload_namespace: source.workload.namespace | "unknown" source_principal: source.principal | "unknown" source_app: source.labels["app"] | "unknown" source_version: source.labels["version"] | "unknown" destination_workload: destination.workload.name | "unknown" destination_workload_namespace: destination.workload.namespace | "unknown" destination_principal: destination.principal | "unknown" destination_app: destination.labels["app"] | "unknown" destination_version: destination.labels["version"] | "unknown" destination_service: destination.service.host | "unknown" destination_service_name: destination.service.name | "unknown" destination_service_namespace: destination.service.namespace | "unknown" connection_security_policy: conditional((context.reporter.kind | "inbound") == "outbound", "unknown", conditional(connection.mtls | false, "mutual_tls", "none")) response_flags: context.proxy_error_code | "-" monitored_resource_type: '"UNSPECIFIED"' --- apiVersion: "config.istio.io/v1alpha2" kind: metric metadata: name: tcpconnectionsopened namespace: istio-system labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio spec: value: "1" dimensions: reporter: conditional((context.reporter.kind | "inbound") == "outbound", "source", "destination") source_workload: source.workload.name | "unknown" source_workload_namespace: source.workload.namespace | "unknown" source_principal: source.principal | "unknown" source_app: source.labels["app"] | "unknown" source_version: source.labels["version"] | "unknown" destination_workload: destination.workload.name | "unknown" destination_workload_namespace: destination.workload.namespace | "unknown" destination_principal: destination.principal | "unknown" destination_app: destination.labels["app"] | "unknown" destination_version: destination.labels["version"] | "unknown" destination_service: destination.service.name | "unknown" destination_service_name: destination.service.name | "unknown" destination_service_namespace: destination.service.namespace | "unknown" connection_security_policy: conditional((context.reporter.kind | "inbound") == "outbound", "unknown", conditional(connection.mtls | false, "mutual_tls", "none")) response_flags: context.proxy_error_code | "-" monitored_resource_type: '"UNSPECIFIED"' --- apiVersion: "config.istio.io/v1alpha2" kind: metric metadata: name: tcpconnectionsclosed namespace: istio-system labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio spec: value: "1" dimensions: reporter: conditional((context.reporter.kind | "inbound") == "outbound", "source", "destination") source_workload: source.workload.name | "unknown" source_workload_namespace: source.workload.namespace | "unknown" source_principal: source.principal | "unknown" source_app: source.labels["app"] | "unknown" source_version: source.labels["version"] | "unknown" destination_workload: destination.workload.name | "unknown" destination_workload_namespace: destination.workload.namespace | "unknown" destination_principal: destination.principal | "unknown" destination_app: destination.labels["app"] | "unknown" destination_version: destination.labels["version"] | "unknown" destination_service: destination.service.name | "unknown" destination_service_name: destination.service.name | "unknown" destination_service_namespace: destination.service.namespace | "unknown" connection_security_policy: conditional((context.reporter.kind | "inbound") == "outbound", "unknown", conditional(connection.mtls | false, "mutual_tls", "none")) response_flags: context.proxy_error_code | "-" monitored_resource_type: '"UNSPECIFIED"' --- apiVersion: "config.istio.io/v1alpha2" kind: handler metadata: name: prometheus namespace: istio-system labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio spec: compiledAdapter: prometheus params: metricsExpirationPolicy: metricsExpiryDuration: "10m" metrics: - name: requests_total instance_name: requestcount.metric.istio-system kind: COUNTER label_names: - reporter - source_app - source_principal - source_workload - source_workload_namespace - source_version - destination_app - destination_principal - destination_workload - destination_workload_namespace - destination_version - destination_service - destination_service_name - destination_service_namespace - request_protocol - response_code - response_flags - permissive_response_code - permissive_response_policyid - connection_security_policy - name: request_duration_seconds instance_name: requestduration.metric.istio-system kind: DISTRIBUTION label_names: - reporter - source_app - source_principal - source_workload - source_workload_namespace - source_version - destination_app - destination_principal - destination_workload - destination_workload_namespace - destination_version - destination_service - destination_service_name - destination_service_namespace - request_protocol - response_code - response_flags - permissive_response_code - permissive_response_policyid - connection_security_policy buckets: explicit_buckets: bounds: [0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 10] - name: request_bytes instance_name: requestsize.metric.istio-system kind: DISTRIBUTION label_names: - reporter - source_app - source_principal - source_workload - source_workload_namespace - source_version - destination_app - destination_principal - destination_workload - destination_workload_namespace - destination_version - destination_service - destination_service_name - destination_service_namespace - request_protocol - response_code - response_flags - permissive_response_code - permissive_response_policyid - connection_security_policy buckets: exponentialBuckets: numFiniteBuckets: 8 scale: 1 growthFactor: 10 - name: response_bytes instance_name: responsesize.metric.istio-system kind: DISTRIBUTION label_names: - reporter - source_app - source_principal - source_workload - source_workload_namespace - source_version - destination_app - destination_principal - destination_workload - destination_workload_namespace - destination_version - destination_service - destination_service_name - destination_service_namespace - request_protocol - response_code - response_flags - permissive_response_code - permissive_response_policyid - connection_security_policy buckets: exponentialBuckets: numFiniteBuckets: 8 scale: 1 growthFactor: 10 - name: tcp_sent_bytes_total instance_name: tcpbytesent.metric.istio-system kind: COUNTER label_names: - reporter - source_app - source_principal - source_workload - source_workload_namespace - source_version - destination_app - destination_principal - destination_workload - destination_workload_namespace - destination_version - destination_service - destination_service_name - destination_service_namespace - connection_security_policy - response_flags - name: tcp_received_bytes_total instance_name: tcpbytereceived.metric.istio-system kind: COUNTER label_names: - reporter - source_app - source_principal - source_workload - source_workload_namespace - source_version - destination_app - destination_principal - destination_workload - destination_workload_namespace - destination_version - destination_service - destination_service_name - destination_service_namespace - connection_security_policy - response_flags - name: tcp_connections_opened_total instance_name: tcpconnectionsopened.metric.istio-system kind: COUNTER label_names: - reporter - source_app - source_principal - source_workload - source_workload_namespace - source_version - destination_app - destination_principal - destination_workload - destination_workload_namespace - destination_version - destination_service - destination_service_name - destination_service_namespace - connection_security_policy - response_flags - name: tcp_connections_closed_total instance_name: tcpconnectionsclosed.metric.istio-system kind: COUNTER label_names: - reporter - source_app - source_principal - source_workload - source_workload_namespace - source_version - destination_app - destination_principal - destination_workload - destination_workload_namespace - destination_version - destination_service - destination_service_name - destination_service_namespace - connection_security_policy - response_flags --- apiVersion: "config.istio.io/v1alpha2" kind: rule metadata: name: promhttp namespace: istio-system labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio spec: match: (context.protocol == "http" || context.protocol == "grpc") && (match((request.useragent | "-"), "kube-probe*") == false) && (match((request.useragent | "-"), "Prometheus*") == false) actions: - handler: prometheus instances: - requestcount.metric - requestduration.metric - requestsize.metric - responsesize.metric --- apiVersion: "config.istio.io/v1alpha2" kind: rule metadata: name: promtcp namespace: istio-system labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio spec: match: context.protocol == "tcp" actions: - handler: prometheus instances: - tcpbytesent.metric - tcpbytereceived.metric --- apiVersion: "config.istio.io/v1alpha2" kind: rule metadata: name: promtcpconnectionopen namespace: istio-system labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio spec: match: context.protocol == "tcp" && ((connection.event | "na") == "open") actions: - handler: prometheus instances: - tcpconnectionsopened.metric --- apiVersion: "config.istio.io/v1alpha2" kind: rule metadata: name: promtcpconnectionclosed namespace: istio-system labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio spec: match: context.protocol == "tcp" && ((connection.event | "na") == "close") actions: - handler: prometheus instances: - tcpconnectionsclosed.metric --- apiVersion: "config.istio.io/v1alpha2" kind: handler metadata: name: kubernetesenv namespace: istio-system labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio spec: compiledAdapter: kubernetesenv params: # when running from mixer root, use the following config after adding a # symbolic link to a kubernetes config file via: # # $ ln -s ~/.kube/config mixer/adapter/kubernetes/kubeconfig # # kubeconfig_path: "mixer/adapter/kubernetes/kubeconfig" --- apiVersion: "config.istio.io/v1alpha2" kind: rule metadata: name: kubeattrgenrulerule namespace: istio-system labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio spec: actions: - handler: kubernetesenv instances: - attributes.kubernetes --- apiVersion: "config.istio.io/v1alpha2" kind: rule metadata: name: tcpkubeattrgenrulerule namespace: istio-system labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio spec: match: context.protocol == "tcp" actions: - handler: kubernetesenv instances: - attributes.kubernetes --- apiVersion: "config.istio.io/v1alpha2" kind: kubernetes metadata: name: attributes namespace: istio-system labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio spec: # Pass the required attribute data to the adapter source_uid: source.uid | "" source_ip: source.ip | ip("0.0.0.0") # default to unspecified ip addr destination_uid: destination.uid | "" destination_port: destination.port | 0 attribute_bindings: # Fill the new attributes from the adapter produced output. # $out refers to an instance of OutputTemplate message source.ip: $out.source_pod_ip | ip("0.0.0.0") source.uid: $out.source_pod_uid | "unknown" source.labels: $out.source_labels | emptyStringMap() source.name: $out.source_pod_name | "unknown" source.namespace: $out.source_namespace | "default" source.owner: $out.source_owner | "unknown" source.serviceAccount: $out.source_service_account_name | "unknown" source.workload.uid: $out.source_workload_uid | "unknown" source.workload.name: $out.source_workload_name | "unknown" source.workload.namespace: $out.source_workload_namespace | "unknown" destination.ip: $out.destination_pod_ip | ip("0.0.0.0") destination.uid: $out.destination_pod_uid | "unknown" destination.labels: $out.destination_labels | emptyStringMap() destination.name: $out.destination_pod_name | "unknown" destination.container.name: $out.destination_container_name | "unknown" destination.namespace: $out.destination_namespace | "default" destination.owner: $out.destination_owner | "unknown" destination.serviceAccount: $out.destination_service_account_name | "unknown" destination.workload.uid: $out.destination_workload_uid | "unknown" destination.workload.name: $out.destination_workload_name | "unknown" destination.workload.namespace: $out.destination_workload_namespace | "unknown" --- # Configuration needed by Mixer. # Mixer cluster is delivered via CDS # Specify mixer cluster settings apiVersion: networking.istio.io/v1alpha3 kind: DestinationRule metadata: name: istio-policy namespace: istio-system labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio spec: host: istio-policy.istio-system.svc.cluster.local trafficPolicy: connectionPool: http: http2MaxRequests: 10000 maxRequestsPerConnection: 10000 --- apiVersion: networking.istio.io/v1alpha3 kind: DestinationRule metadata: name: istio-telemetry namespace: istio-system labels: app: mixer chart: mixer heritage: Tiller maistra-version: 1.0.0 release: istio spec: host: istio-telemetry.istio-system.svc.cluster.local trafficPolicy: connectionPool: http: http2MaxRequests: 10000 maxRequestsPerConnection: 10000 --- }] istio/charts/pilot:[{Name:istio/charts/pilot/templates/serviceaccount.yaml Content:apiVersion: v1 kind: ServiceAccount metadata: name: istio-pilot-service-account namespace: istio-system labels: app: pilot chart: pilot heritage: Tiller maistra-version: 1.0.0 release: istio } {Name:istio/charts/pilot/templates/clusterrole.yaml Content:apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: istio-pilot-istio-system labels: app: pilot chart: pilot heritage: Tiller maistra-version: 1.0.0 release: istio rules: - apiGroups: ["config.istio.io"] resources: ["*"] verbs: ["*"] - apiGroups: ["rbac.istio.io"] resources: ["*"] verbs: ["get", "watch", "list"] - apiGroups: ["networking.istio.io"] resources: ["*"] verbs: ["*"] - apiGroups: ["authentication.istio.io"] resources: ["*"] verbs: ["*"] - apiGroups: ["maistra.io"] resources: ["servicemeshmemberrolls"] verbs: ["get", "list", "watch"] - apiGroups: ["extensions"] resources: ["ingresses", "ingresses/status"] verbs: ["*"] - apiGroups: [""] resources: ["configmaps"] verbs: ["create", "get", "list", "watch", "update"] - apiGroups: [""] resources: ["endpoints", "pods", "services", "namespaces", "secrets"] verbs: ["get", "list", "watch"] - apiGroups: ["authentication.maistra.io"] resources: ["*"] verbs: ["*"] - apiGroups: ["rbac.maistra.io"] resources: ["*"] verbs: ["get", "watch", "list"] } {Name:istio/charts/pilot/templates/clusterrolebinding.yaml Content:apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: istio-pilot-istio-system namespace: istio-system labels: app: pilot chart: pilot heritage: Tiller maistra-version: 1.0.0 release: istio roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: istio-pilot-istio-system subjects: - kind: ServiceAccount name: istio-pilot-service-account namespace: istio-system } {Name:istio/charts/pilot/templates/service.yaml Content:apiVersion: v1 kind: Service metadata: name: istio-pilot namespace: istio-system labels: app: pilot chart: pilot heritage: Tiller maistra-version: 1.0.0 release: istio istio: pilot spec: ports: - port: 15010 name: grpc-xds # direct - port: 15011 name: https-xds # mTLS - port: 8080 name: http-legacy-discovery # direct - port: 15014 name: http-monitoring selector: istio: pilot } {Name:istio/charts/pilot/templates/deployment.yaml Content:apiVersion: extensions/v1beta1 kind: Deployment metadata: name: istio-pilot namespace: istio-system # TODO: default template doesn't have this, which one is right ? labels: app: pilot chart: pilot heritage: Tiller maistra-version: 1.0.0 release: istio istio: pilot annotations: checksum/config-volume: f8da08b6b8c170dde721efd680270b2901e750d4aa186ebb6c22bef5b78a43f9 spec: replicas: 1 strategy: rollingUpdate: maxSurge: 1 maxUnavailable: 0 selector: matchLabels: istio: pilot template: metadata: labels: app: pilot chart: pilot heritage: Tiller maistra-version: 1.0.0 maistra-control-plane: istio-system release: istio istio: pilot annotations: sidecar.istio.io/inject: "false" spec: serviceAccountName: istio-pilot-service-account containers: - name: discovery image: "quay.io/maistra/pilot-rhel8:latest-qe" imagePullPolicy: IfNotPresent args: - "discovery" - --memberRollName=default - --podLocalitySource=pod - --monitoringAddr=:15014 - --log_output_level=default:info - --domain - cluster.local - --secureGrpcAddr - "" - --keepaliveMaxServerConnectionAge - "30m" ports: - containerPort: 8080 - containerPort: 15010 readinessProbe: httpGet: path: /ready port: 8080 initialDelaySeconds: 5 periodSeconds: 30 timeoutSeconds: 5 env: - name: POD_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.name - name: POD_NAMESPACE valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.namespace - name: GODEBUG value: "" - name: PILOT_PUSH_THROTTLE value: "100" - name: PILOT_TRACE_SAMPLING value: "100" - name: PILOT_DISABLE_XDS_MARSHALING_TO_ANY value: "1" resources: requests: cpu: 500m memory: 2048Mi volumeMounts: - name: config-volume mountPath: /etc/istio/config - name: istio-certs mountPath: /etc/certs readOnly: true - name: istio-proxy image: "quay.io/maistra/proxyv2-rhel8:latest-qe" imagePullPolicy: IfNotPresent ports: - containerPort: 15003 - containerPort: 15005 - containerPort: 15007 - containerPort: 15011 args: - proxy - --domain - $(POD_NAMESPACE).svc.cluster.local - --serviceCluster - istio-pilot - --templateFile - /etc/istio/proxy/envoy_pilot.yaml.tmpl - --controlPlaneAuthPolicy - NONE env: - name: POD_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.name - name: POD_NAMESPACE valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.namespace - name: INSTANCE_IP valueFrom: fieldRef: apiVersion: v1 fieldPath: status.podIP resources: limits: cpu: 501m memory: 128Mi requests: cpu: 100m memory: 128Mi volumeMounts: - name: istio-certs mountPath: /etc/certs readOnly: true volumes: - name: config-volume configMap: name: istio - name: istio-certs secret: secretName: istio.istio-pilot-service-account optional: true affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - amd64 - ppc64le - s390x preferredDuringSchedulingIgnoredDuringExecution: - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - amd64 - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - ppc64le - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - s390x } {Name:istio/charts/pilot/templates/poddisruptionbudget.yaml Content: apiVersion: policy/v1beta1 kind: PodDisruptionBudget metadata: name: istio-pilot namespace: istio-system labels: app: pilot chart: pilot heritage: Tiller maistra-version: 1.0.0 release: istio istio: pilot spec: minAvailable: 1 selector: matchLabels: app: pilot maistra-version: 1.0.0 release: istio istio: pilot } {Name:istio/charts/pilot/templates/autoscale.yaml Content: } {Name:istio/charts/pilot/templates/meshexpansion.yaml Content: }] istio/charts/prometheus:[{Name:istio/charts/prometheus/templates/configmap.yaml Content:apiVersion: v1 kind: ConfigMap metadata: name: prometheus namespace: istio-system labels: app: prometheus chart: prometheus heritage: Tiller maistra-version: 1.0.0 release: istio data: prometheus.yml: |- global: scrape_interval: 15s scrape_configs: - job_name: 'istio-mesh' kubernetes_sd_configs: - role: endpoints namespaces: names: - istio-system relabel_configs: - source_labels: [__meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name] action: keep regex: istio-telemetry;prometheus # Scrape config for envoy stats - job_name: 'envoy-stats' metrics_path: /stats/prometheus kubernetes_sd_configs: - role: pod relabel_configs: - source_labels: [__meta_kubernetes_pod_container_port_name] action: keep regex: '.*-envoy-prom' - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port] action: replace regex: ([^:]+)(?::\d+)?;(\d+) replacement: $1:15090 target_label: __address__ - action: labelmap regex: __meta_kubernetes_pod_label_(.+) - source_labels: [__meta_kubernetes_namespace] action: replace target_label: namespace - source_labels: [__meta_kubernetes_pod_name] action: replace target_label: pod_name metric_relabel_configs: # Exclude some of the envoy metrics that have massive cardinality # This list may need to be pruned further moving forward, as informed # by performance and scalability testing. - source_labels: [ cluster_name ] regex: '(outbound|inbound|prometheus_stats).*' action: drop - source_labels: [ tcp_prefix ] regex: '(outbound|inbound|prometheus_stats).*' action: drop - source_labels: [ listener_address ] regex: '(.+)' action: drop - source_labels: [ http_conn_manager_listener_prefix ] regex: '(.+)' action: drop - source_labels: [ http_conn_manager_prefix ] regex: '(.+)' action: drop - source_labels: [ __name__ ] regex: 'envoy_tls.*' action: drop - source_labels: [ __name__ ] regex: 'envoy_tcp_downstream.*' action: drop - source_labels: [ __name__ ] regex: 'envoy_http_(stats|admin).*' action: drop - source_labels: [ __name__ ] regex: 'envoy_cluster_(lb|retry|bind|internal|max|original).*' action: drop - job_name: 'istio-policy' kubernetes_sd_configs: - role: endpoints namespaces: names: - istio-system relabel_configs: - source_labels: [__meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name] action: keep regex: istio-policy;http-monitoring - job_name: 'istio-telemetry' kubernetes_sd_configs: - role: endpoints namespaces: names: - istio-system relabel_configs: - source_labels: [__meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name] action: keep regex: istio-telemetry;http-monitoring - job_name: 'pilot' kubernetes_sd_configs: - role: endpoints namespaces: names: - istio-system relabel_configs: - source_labels: [__meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name] action: keep regex: istio-pilot;http-monitoring - job_name: 'galley' kubernetes_sd_configs: - role: endpoints namespaces: names: - istio-system relabel_configs: - source_labels: [__meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name] action: keep regex: istio-galley;http-monitoring - job_name: 'citadel' kubernetes_sd_configs: - role: endpoints namespaces: names: - istio-system relabel_configs: - source_labels: [__meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name] action: keep regex: istio-citadel;http-monitoring # scrape config for API servers # config removed # scrape config for nodes (kubelet) # config removed # Scrape config for Kubelet cAdvisor. # # This is required for Kubernetes 1.7.3 and later, where cAdvisor metrics # (those whose names begin with 'container_') have been removed from the # Kubelet metrics endpoint. This job scrapes the cAdvisor endpoint to # retrieve those metrics. # # In Kubernetes 1.7.0-1.7.2, these metrics are only exposed on the cAdvisor # HTTP endpoint; use "replacement: /api/v1/nodes/${1}:4194/proxy/metrics" # in that case (and ensure cAdvisor's HTTP server hasn't been disabled with # the --cadvisor-port=0 Kubelet flag). # # This job is not necessary and should be removed in Kubernetes 1.6 and # earlier versions, or it will cause the metrics to be scraped twice. # config removed # scrape config for service endpoints. - job_name: 'kubernetes-service-endpoints' kubernetes_sd_configs: - role: endpoints relabel_configs: - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scrape] action: keep regex: true - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scheme] action: replace target_label: __scheme__ regex: (https?) - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_path] action: replace target_label: __metrics_path__ regex: (.+) - source_labels: [__address__, __meta_kubernetes_service_annotation_prometheus_io_port] action: replace target_label: __address__ regex: ([^:]+)(?::\d+)?;(\d+) replacement: $1:$2 - action: labelmap regex: __meta_kubernetes_service_label_(.+) - source_labels: [__meta_kubernetes_namespace] action: replace target_label: kubernetes_namespace - source_labels: [__meta_kubernetes_service_name] action: replace target_label: kubernetes_name - job_name: 'kubernetes-pods' kubernetes_sd_configs: - role: pod relabel_configs: # If first two labels are present, pod should be scraped by the istio-secure job. - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape] action: keep regex: true # Keep target if there's no sidecar or if prometheus.io/scheme is explicitly set to "http" - source_labels: [__meta_kubernetes_pod_annotation_sidecar_istio_io_status, __meta_kubernetes_pod_annotation_prometheus_io_scheme] action: keep regex: ((;.*)|(.*;http)) - source_labels: [__meta_kubernetes_pod_annotation_istio_mtls] action: drop regex: (true) - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path] action: replace target_label: __metrics_path__ regex: (.+) - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port] action: replace regex: ([^:]+)(?::\d+)?;(\d+) replacement: $1:$2 target_label: __address__ - action: labelmap regex: __meta_kubernetes_pod_label_(.+) - source_labels: [__meta_kubernetes_namespace] action: replace target_label: namespace - source_labels: [__meta_kubernetes_pod_name] action: replace target_label: pod_name - job_name: 'kubernetes-pods-istio-secure' scheme: https tls_config: ca_file: /etc/istio-certs/root-cert.pem cert_file: /etc/istio-certs/cert-chain.pem key_file: /etc/istio-certs/key.pem insecure_skip_verify: true # prometheus does not support secure naming. kubernetes_sd_configs: - role: pod relabel_configs: - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape] action: keep regex: true # sidecar status annotation is added by sidecar injector and # istio_workload_mtls_ability can be specifically placed on a pod to indicate its ability to receive mtls traffic. - source_labels: [__meta_kubernetes_pod_annotation_sidecar_istio_io_status, __meta_kubernetes_pod_annotation_istio_mtls] action: keep regex: (([^;]+);([^;]*))|(([^;]*);(true)) - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scheme] action: drop regex: (http) - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path] action: replace target_label: __metrics_path__ regex: (.+) - source_labels: [__address__] # Only keep address that is host:port action: keep # otherwise an extra target with ':443' is added for https scheme regex: ([^:]+):(\d+) - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port] action: replace regex: ([^:]+)(?::\d+)?;(\d+) replacement: $1:$2 target_label: __address__ - action: labelmap regex: __meta_kubernetes_pod_label_(.+) - source_labels: [__meta_kubernetes_namespace] action: replace target_label: namespace - source_labels: [__meta_kubernetes_pod_name] action: replace target_label: pod_name } {Name:istio/charts/prometheus/templates/serviceaccount.yaml Content:apiVersion: v1 kind: ServiceAccount metadata: name: prometheus annotations: serviceaccounts.openshift.io/oauth-redirectreference.primary: '{"kind":"OAuthRedirectReference","apiVersion":"v1","reference":{"kind":"Route","name":"prometheus"}}' namespace: istio-system labels: app: prometheus chart: prometheus heritage: Tiller maistra-version: 1.0.0 release: istio } {Name:istio/charts/prometheus/templates/clusterrole.yaml Content:apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: prometheus-istio-system labels: app: prometheus chart: prometheus heritage: Tiller maistra-version: 1.0.0 release: istio rules: - apiGroups: [""] resources: - services - endpoints - pods verbs: ["get", "list", "watch"] - apiGroups: [""] resources: - configmaps verbs: ["get"] - nonResourceURLs: ["/metrics"] verbs: ["get"] } {Name:istio/charts/prometheus/templates/clusterrolebindings.yaml Content:apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: prometheus-istio-system namespace: istio-system labels: app: prometheus chart: prometheus heritage: Tiller maistra-version: 1.0.0 release: istio roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: prometheus-istio-system subjects: - kind: ServiceAccount name: prometheus namespace: istio-system } {Name:istio/charts/prometheus/templates/ingress.yaml Content:apiVersion: route.openshift.io/v1 kind: Route metadata: name: prometheus namespace: istio-system labels: app: prometheus chart: prometheus heritage: Tiller maistra-version: 1.0.0 release: istio annotations: spec: to: kind: Service name: prometheus tls: termination: reencrypt } {Name:istio/charts/prometheus/templates/service.yaml Content:apiVersion: v1 kind: Service metadata: name: prometheus namespace: istio-system annotations: prometheus.io/scrape: 'true' service.alpha.openshift.io/serving-cert-secret-name: "prometheus-tls" labels: app: prometheus chart: prometheus heritage: Tiller maistra-version: 1.0.0 release: istio spec: selector: app: prometheus ports: - name: http-prometheus protocol: TCP port: 9090 targetPort: 3001 } {Name:istio/charts/prometheus/templates/deployment.yaml Content:# TODO: the original template has service account, roles, etc apiVersion: extensions/v1beta1 kind: Deployment metadata: name: prometheus namespace: istio-system labels: app: prometheus chart: prometheus heritage: Tiller maistra-version: 1.0.0 release: istio spec: replicas: 1 selector: matchLabels: app: prometheus template: metadata: labels: app: prometheus chart: prometheus heritage: Tiller maistra-version: 1.0.0 maistra-control-plane: istio-system release: istio annotations: sidecar.istio.io/inject: "false" spec: serviceAccountName: prometheus serviceAccountName: prometheus containers: # OAuth proxy - name: prometheus-proxy image: registry.redhat.io/openshift4/ose-oauth-proxy:4.1 imagePullPolicy: IfNotPresent ports: - containerPort: 3001 name: https protocol: TCP readinessProbe: failureThreshold: 3 periodSeconds: 10 successThreshold: 1 tcpSocket: port: https timeoutSeconds: 1 resources: {} terminationMessagePath: /dev/termination-log terminationMessagePolicy: File volumeMounts: - mountPath: /etc/tls/private name: secret-prometheus-tls - mountPath: /etc/proxy/htpasswd name: secret-htpasswd args: - -provider=openshift - -https-address=:3001 - -http-address= - -email-domain=* - -upstream=http://localhost:9090 - -htpasswd-file=/etc/proxy/htpasswd/auth - -display-htpasswd-form=false - '-openshift-sar={"namespace": "istio-system", "resource": "pods", "verb": "get"}' - -client-secret-file=/var/run/secrets/kubernetes.io/serviceaccount/token - -openshift-service-account=prometheus - -cookie-secret=SECRET - -tls-cert=/etc/tls/private/tls.crt - -tls-key=/etc/tls/private/tls.key - -openshift-ca=/etc/pki/tls/cert.pem - -openshift-ca=/var/run/secrets/kubernetes.io/serviceaccount/ca.crt - name: prometheus image: "quay.io/maistra/prometheus-rhel8:latest-qe" imagePullPolicy: IfNotPresent args: - '--storage.tsdb.retention=6h' - '--storage.tsdb.path=/prometheus' - '--config.file=/etc/prometheus/prometheus.yml' ports: - containerPort: 9090 name: http livenessProbe: httpGet: path: /-/healthy port: 9090 readinessProbe: httpGet: path: /-/ready port: 9090 resources: requests: cpu: 10m volumeMounts: - name: config-volume mountPath: /etc/prometheus - mountPath: /etc/istio-certs name: istio-certs volumes: # OAuth proxy - name: secret-prometheus-tls secret: defaultMode: 420 secretName: prometheus-tls - name: secret-htpasswd secret: defaultMode: 420 secretName: htpasswd - name: config-volume configMap: name: prometheus - name: istio-certs secret: defaultMode: 420 secretName: istio.default affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - amd64 - ppc64le - s390x preferredDuringSchedulingIgnoredDuringExecution: - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - amd64 - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - ppc64le - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - s390x } {Name:istio/charts/prometheus/templates/networkpolicy.yaml Content:# This is to support routes on ocp 3.11 installs apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: istio-prometheus-ingress namespace: istio-system labels: app: prometheus chart: prometheus heritage: Tiller maistra-version: 1.0.0 release: istio annotations: "maistra.io/internal": "true" spec: podSelector: matchLabels: app: prometheus ingress: - ports: port: 3001 } {Name:istio/charts/prometheus/templates/tests/test-prometheus-connection.yaml Content: }] istio/charts/security:[{Name:istio/charts/security/templates/serviceaccount.yaml Content:apiVersion: v1 kind: ServiceAccount metadata: name: istio-citadel-service-account namespace: istio-system labels: app: security chart: security heritage: Tiller maistra-version: 1.0.0 release: istio } {Name:istio/charts/security/templates/clusterrole.yaml Content:apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: istio-citadel-istio-system labels: app: security chart: security heritage: Tiller maistra-version: 1.0.0 release: istio rules: - apiGroups: [""] resources: ["configmaps"] verbs: ["create", "get", "update"] - apiGroups: [""] resources: ["secrets"] verbs: ["create", "get", "watch", "list", "update", "delete"] - apiGroups: [""] resources: ["serviceaccounts", "services"] verbs: ["get", "watch", "list"] - apiGroups: ["maistra.io"] resources: ["servicemeshmemberrolls"] verbs: ["get", "list", "watch"] } {Name:istio/charts/security/templates/meshclusterrole.yaml Content:apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: istio-citadel-mesh-istio-system labels: app: security chart: security heritage: Tiller maistra-version: 1.0.0 release: istio rules: - apiGroups: ["authentication.k8s.io"] resources: ["tokenreviews"] verbs: ["create"] } {Name:istio/charts/security/templates/meshclusterrolebinding.yaml Content:apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: istio-citadel-mesh-istio-system labels: app: security chart: security heritage: Tiller maistra-version: 1.0.0 release: istio roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: istio-citadel-mesh-istio-system subjects: - kind: ServiceAccount name: istio-citadel-service-account namespace: istio-system } {Name:istio/charts/security/templates/clusterrolebinding.yaml Content:apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: istio-citadel-istio-system namespace: istio-system labels: app: security chart: security heritage: Tiller maistra-version: 1.0.0 release: istio roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: istio-citadel-istio-system subjects: - kind: ServiceAccount name: istio-citadel-service-account namespace: istio-system } {Name:istio/charts/security/templates/service.yaml Content:apiVersion: v1 kind: Service metadata: # we use the normal name here (e.g. 'prometheus') # as grafana is configured to use this as a data source name: istio-citadel namespace: istio-system labels: app: security chart: security heritage: Tiller maistra-version: 1.0.0 release: istio istio: citadel spec: ports: - name: grpc-citadel port: 8060 targetPort: 8060 protocol: TCP - name: http-monitoring port: 15014 selector: istio: citadel } {Name:istio/charts/security/templates/deployment.yaml Content:# istio CA watching all namespaces apiVersion: extensions/v1beta1 kind: Deployment metadata: name: istio-citadel namespace: istio-system labels: app: security chart: security heritage: Tiller maistra-version: 1.0.0 release: istio istio: citadel spec: replicas: 1 strategy: rollingUpdate: maxSurge: 1 maxUnavailable: 0 template: metadata: labels: app: security chart: security heritage: Tiller maistra-version: 1.0.0 maistra-control-plane: istio-system release: istio istio: citadel annotations: sidecar.istio.io/inject: "false" spec: serviceAccountName: istio-citadel-service-account containers: - name: citadel image: "quay.io/maistra/citadel-rhel8:latest-qe" imagePullPolicy: IfNotPresent args: - --append-dns-names=true - --grpc-port=8060 - --grpc-hostname=citadel - --citadel-storage-namespace=istio-system - --custom-dns-names=istio-pilot-service-account.istio-system:istio-pilot.istio-system - --monitoring-port=15014 - --self-signed-ca=true - --member-roll-name=default livenessProbe: httpGet: path: /version port: 15014 initialDelaySeconds: 5 periodSeconds: 5 resources: requests: cpu: 10m affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - amd64 - ppc64le - s390x preferredDuringSchedulingIgnoredDuringExecution: - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - amd64 - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - ppc64le - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - s390x } {Name:istio/charts/security/templates/enable-mesh-permissive.yaml Content: # Authentication policy to enable permissive mode for all services (that have sidecar) in the mesh. apiVersion: "authentication.maistra.io/v1" kind: "ServiceMeshPolicy" metadata: name: "default" namespace: istio-system labels: app: security chart: security heritage: Tiller maistra-version: 1.0.0 release: istio spec: peers: - mtls: mode: PERMISSIVE } {Name:istio/charts/security/templates/enable-mesh-mtls.yaml Content: } {Name:istio/charts/security/templates/meshexpansion.yaml Content: } {Name:istio/charts/security/templates/tests/test-citadel-connection.yaml Content: }] istio/charts/sidecarInjectorWebhook:[{Name:istio/charts/sidecarInjectorWebhook/templates/configmap.yaml Content:apiVersion: v1 kind: ConfigMap metadata: name: istio-sidecar-webhook-configuration namespace: istio-system labels: app: sidecarInjectorWebhook chart: sidecarInjectorWebhook heritage: Tiller maistra-version: 1.0.0 release: istio istio: sidecar-injector data: mutatingwebhookconfiguration.yaml: |- apiVersion: admissionregistration.k8s.io/v1beta1 kind: MutatingWebhookConfiguration metadata: name: istio-sidecar-injector labels: app: sidecarInjectorWebhook chart: sidecarInjectorWebhook heritage: Tiller maistra-version: 1.0.0 release: istio webhooks: - name: sidecar-injector.istio.io clientConfig: service: name: istio-sidecar-injector namespace: istio-system path: "/inject" caBundle: "" rules: - operations: [ "CREATE" ] apiGroups: [""] apiVersions: ["v1"] resources: ["pods"] failurePolicy: Fail namespaceSelector: matchExpressions: - key: maistra.io/ignore-namespace operator: DoesNotExist - key: istio.openshift.com/ignore-namespace operator: DoesNotExist } {Name:istio/charts/sidecarInjectorWebhook/templates/serviceaccount.yaml Content:apiVersion: v1 kind: ServiceAccount metadata: name: istio-sidecar-injector-service-account namespace: istio-system labels: app: sidecarInjectorWebhook chart: sidecarInjectorWebhook heritage: Tiller maistra-version: 1.0.0 release: istio istio: sidecar-injector } {Name:istio/charts/sidecarInjectorWebhook/templates/clusterrole.yaml Content:apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: istio-sidecar-injector-istio-system labels: app: sidecarInjectorWebhook chart: sidecarInjectorWebhook heritage: Tiller maistra-version: 1.0.0 release: istio istio: sidecar-injector rules: - apiGroups: [""] resources: ["configmaps"] verbs: ["get", "list", "watch"] - apiGroups: ["extensions","apps"] resources: ["deployments"] resourceNames: ["istio-sidecar-injector"] verbs: ["get"] - apiGroups: ["extensions"] resources: ["deployments/finalizers"] resourceNames: ["istio-sidecar-injector"] verbs: ["update"] - apiGroups: [""] resources: ["secrets"] verbs: ["get", "list", "watch", "create"] } {Name:istio/charts/sidecarInjectorWebhook/templates/clusterrolebinding.yaml Content:apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: istio-sidecar-injector-admin-role-binding-istio-system namespace: istio-system labels: app: sidecarInjectorWebhook chart: sidecarInjectorWebhook heritage: Tiller maistra-version: 1.0.0 release: istio istio: sidecar-injector roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: istio-sidecar-injector-istio-system subjects: - kind: ServiceAccount name: istio-sidecar-injector-service-account namespace: istio-system } {Name:istio/charts/sidecarInjectorWebhook/templates/service.yaml Content:apiVersion: v1 kind: Service metadata: name: istio-sidecar-injector namespace: istio-system labels: app: sidecarInjectorWebhook chart: sidecarInjectorWebhook heritage: Tiller maistra-version: 1.0.0 release: istio istio: sidecar-injector spec: ports: - port: 443 targetPort: webhook selector: istio: sidecar-injector } {Name:istio/charts/sidecarInjectorWebhook/templates/deployment.yaml Content:apiVersion: extensions/v1beta1 kind: Deployment metadata: name: istio-sidecar-injector namespace: istio-system labels: app: sidecarInjectorWebhook chart: sidecarInjectorWebhook heritage: Tiller maistra-version: 1.0.0 release: istio istio: sidecar-injector spec: replicas: 1 strategy: rollingUpdate: maxSurge: 1 maxUnavailable: 0 template: metadata: labels: app: sidecarInjectorWebhook chart: sidecarInjectorWebhook heritage: Tiller maistra-version: 1.0.0 maistra-control-plane: istio-system release: istio istio: sidecar-injector annotations: sidecar.istio.io/inject: "false" spec: serviceAccountName: istio-sidecar-injector-service-account containers: - name: sidecar-injector-webhook image: "quay.io/maistra/sidecar-injector-rhel8:latest-qe" imagePullPolicy: IfNotPresent args: - --webhookConfigName=istio-sidecar-injector-istio-system - --caCertFile=/etc/istio/certs/root-cert.pem - --tlsCertFile=/etc/istio/certs/cert-chain.pem - --tlsKeyFile=/etc/istio/certs/key.pem - --injectConfig=/etc/istio/inject/config - --meshConfig=/etc/istio/config/mesh - --healthCheckInterval=2s - --mutating-webhook-config-file - /etc/istio/webhook/mutatingwebhookconfiguration.yaml - --namespace=istio-system - --healthCheckFile=/tmp/health - --port=8443 - --manageWebhookConfig=false ports: - name: webhook containerPort: 8443 volumeMounts: - name: config-volume mountPath: /etc/istio/config readOnly: true - name: webhook mountPath: /etc/istio/webhook readOnly: true - name: certs mountPath: /etc/istio/certs readOnly: true - name: inject-config mountPath: /etc/istio/inject readOnly: true livenessProbe: exec: command: - /usr/local/bin/sidecar-injector - probe - --probe-path=/tmp/health - --interval=4s initialDelaySeconds: 4 periodSeconds: 4 readinessProbe: exec: command: - /usr/local/bin/sidecar-injector - probe - --probe-path=/tmp/health - --interval=4s initialDelaySeconds: 4 periodSeconds: 4 resources: requests: cpu: 10m volumes: - name: config-volume configMap: name: istio - name: webhook configMap: name: istio-sidecar-webhook-configuration - name: certs secret: secretName: istio.istio-sidecar-injector-service-account - name: inject-config configMap: name: istio-sidecar-injector items: - key: config path: config affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - amd64 - ppc64le - s390x preferredDuringSchedulingIgnoredDuringExecution: - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - amd64 - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - ppc64le - weight: 2 preference: matchExpressions: - key: beta.kubernetes.io/arch operator: In values: - s390x } {Name:istio/charts/sidecarInjectorWebhook/templates/mutatingwebhookconfiguration.yaml Content:apiVersion: admissionregistration.k8s.io/v1beta1 kind: MutatingWebhookConfiguration metadata: name: istio-sidecar-injector-istio-system labels: app: sidecarInjectorWebhook chart: sidecarInjectorWebhook heritage: Tiller maistra-version: 1.0.0 release: istio annotations: "helm.sh/resource-policy": keep webhooks: - name: sidecar-injector.istio.io clientConfig: service: name: istio-sidecar-injector namespace: istio-system path: "/inject" caBundle: "" rules: - operations: [ "CREATE" ] apiGroups: [""] apiVersions: ["v1"] resources: ["pods"] failurePolicy: Fail namespaceSelector: matchExpressions: - key: maistra.io/member-of operator: In values: - istio-system - key: maistra.io/ignore-namespace operator: DoesNotExist } {Name:istio/charts/sidecarInjectorWebhook/templates/networkpolicy.yaml Content:apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: istio-sidecar-injector namespace: istio-system labels: app: sidecarInjectorWebhook chart: sidecarInjectorWebhook heritage: Tiller maistra-version: 1.0.0 release: istio istio: sidecar-injector annotations: "maistra.io/internal": "true" spec: podSelector: matchLabels: istio: sidecar-injector ingress: - ports: port: webhook } {Name:istio/charts/sidecarInjectorWebhook/templates/mutatingwebhookconfiguration.yaml.tpl Content: }]]