diff --git a/Makefile b/Makefile index f5ecaa0269ae..9fd239f416ad 100644 --- a/Makefile +++ b/Makefile @@ -272,7 +272,7 @@ ALL_GENERATE_MODULES = core kubeadm-bootstrap kubeadm-control-plane docker-infra .PHONY: generate generate: ## Run all generate-manifests-*, generate-go-deepcopy-*, generate-go-conversions-* and generate-go-openapi targets - $(MAKE) generate-modules generate-manifests generate-go-deepcopy generate-go-conversions generate-go-openapi generate-metrics-config + $(MAKE) generate-modules generate-manifests generate-go-deepcopy generate-go-conversions generate-go-openapi .PHONY: generate-manifests generate-manifests: $(addprefix generate-manifests-,$(ALL_GENERATE_MODULES)) ## Run all generate-manifests-* targets @@ -619,17 +619,8 @@ generate-e2e-templates-main: $(KUSTOMIZE) .PHONY: generate-metrics-config generate-metrics-config: ## Generate ./config/metrics/crd-metrics-config.yaml - OUTPUT_FILE="./config/metrics/crd-metrics-config.yaml"; \ - METRIC_TEMPLATES_DIR="./config/metrics/templates"; \ - echo "# This file was auto-generated via: make generate-metrics-config" > "$${OUTPUT_FILE}"; \ - cat "$${METRIC_TEMPLATES_DIR}/header.yaml" >> "$${OUTPUT_FILE}"; \ - for resource in clusterclass cluster kubeadmcontrolplane kubeadmconfig machine machinedeployment machinehealthcheck machineset machinepool; do \ - cat "$${METRIC_TEMPLATES_DIR}/$${resource}.yaml"; \ - sed 's/$${RESOURCE}/'$${resource}'/g' "$${METRIC_TEMPLATES_DIR}/common_metrics.yaml"; \ - if [[ "$${resource}" != "cluster" ]]; then \ - cat "$${METRIC_TEMPLATES_DIR}/owner_metric.yaml"; \ - fi \ - done >> "$${OUTPUT_FILE}"; \ + @echo "Use PR state from 'https://github.com/kubernetes-sigs/cluster-api/pull/9347'"; \ + exit 1 .PHONY: generate-diagrams generate-diagrams: ## Generate diagrams for *.plantuml files diff --git a/config/metrics/crd-clusterrole.yaml b/config/metrics/crd-clusterrole.yaml index bcd5bde16ba3..52ca08243e28 100644 --- a/config/metrics/crd-clusterrole.yaml +++ b/config/metrics/crd-clusterrole.yaml @@ -6,16 +6,32 @@ metadata: labels: kube-state-metrics/aggregate-to-manager: "true" rules: +- apiGroups: + - addons.cluster.x-k8s.io + resources: + - clusterresourcesets + verbs: + - get + - list + - watch +- apiGroups: + - bootstrap.cluster.x-k8s.io + resources: + - kubeadmconfigs + verbs: + - get + - list + - watch - apiGroups: - cluster.x-k8s.io resources: - clusterclasses - clusters - machinedeployments + - machinehealthchecks - machinepools - - machinesets - machines - - machinehealthchecks + - machinesets verbs: - get - list @@ -29,9 +45,28 @@ rules: - list - watch - apiGroups: - - bootstrap.cluster.x-k8s.io + - infrastructure.cluster.x-k8s.io resources: - - kubeadmconfigs + - devclusters + - devmachines + - dockerclusters + - dockermachines + verbs: + - get + - list + - watch +- apiGroups: + - ipam.cluster.x-k8s.io + resources: + - ipaddressclaims + verbs: + - get + - list + - watch +- apiGroups: + - runtime.cluster.x-k8s.io + resources: + - extensionconfigs verbs: - get - list diff --git a/config/metrics/crd-metrics-config.yaml b/config/metrics/crd-metrics-config.yaml index 718af5a9bd9f..6ace01c4711d 100644 --- a/config/metrics/crd-metrics-config.yaml +++ b/config/metrics/crd-metrics-config.yaml @@ -1,10 +1,13 @@ -# This file was auto-generated via: make generate-metrics-config +# Generated by controller-gen version v0.0.0-00010101000000-000000000000 +# Generated based on types for kube-state-metrics v2.13.0 +--- kind: CustomResourceStateMetrics spec: resources: - - groupVersionKind: - group: cluster.x-k8s.io - kind: ClusterClass + - errorLogV: 0 + groupVersionKind: + group: addons.cluster.x-k8s.io + kind: ClusterResourceSet version: v1beta1 labelsFromPath: name: @@ -16,73 +19,99 @@ spec: uid: - metadata - uid - metricNamePrefix: capi_clusterclass + metricNamePrefix: capi_clusterresourceset metrics: - - name: info - help: Information about a clusterclass. - each: - info: - # TODO: added metadata.name even it's already defined above as the metric doesn't work with empty labelsFromPath. - labelsFromPath: - name: - - metadata - - name - type: Info - - name: created - help: Unix creation timestamp. - each: - gauge: - path: - - metadata - - creationTimestamp - type: Gauge - - name: annotation_paused - help: Whether the clusterclass is paused and any of its resources will not be processed by the controllers. - each: - info: - path: - - metadata - - annotations - - cluster.x-k8s.io/paused - labelsFromPath: - paused_value: [] - type: Info - - name: status_condition - help: The condition of a clusterclass. - each: + - each: stateSet: labelName: status labelsFromPath: type: - type list: - - 'True' - - 'False' + - "True" + - "False" - Unknown path: - status + - v1beta2 - conditions valueFrom: - status type: StateSet - - name: status_condition_last_transition_time - help: The condition last transition time of a clusterclass. - each: + help: The condition of a clusterresourceset. + name: status_condition + - each: gauge: labelsFromPath: - type: - - type status: - status + type: + - type + nilIsZero: false path: - status + - v1beta2 - conditions valueFrom: - lastTransitionTime type: Gauge - - name: owner - help: Owner references. - each: + help: The condition's last transition time of a clusterresourceset. + name: status_condition_last_transition_time + resourcePlural: "" + - errorLogV: 0 + groupVersionKind: + group: bootstrap.cluster.x-k8s.io + kind: KubeadmConfig + version: v1beta1 + labelsFromPath: + cluster_name: + - metadata + - labels + - cluster.x-k8s.io/cluster-name + name: + - metadata + - name + namespace: + - metadata + - namespace + uid: + - metadata + - uid + metricNamePrefix: capi_kubeadmconfig + metrics: + - each: + info: + labelsFromPath: + paused_value: [] + path: + - metadata + - annotations + - cluster.x-k8s.io/paused + type: Info + help: Whether the kubeadmconfig is paused and any of its resources will not + be processed by the controllers. + name: annotation_paused + - each: + gauge: + nilIsZero: false + path: + - metadata + - creationTimestamp + valueFrom: null + type: Gauge + help: Unix creation timestamp. + name: created + - each: + info: + labelsFromPath: + name: + - metadata + - name + path: null + type: Info + help: Information about a kubeadmconfig. + name: info + - each: info: labelsFromPath: owner_is_controller: @@ -97,7 +126,47 @@ spec: - metadata - ownerReferences type: Info - - groupVersionKind: + help: Owner references. + name: owner + - each: + stateSet: + labelName: status + labelsFromPath: + type: + - type + list: + - "True" + - "False" + - Unknown + path: + - status + - v1beta2 + - conditions + valueFrom: + - status + type: StateSet + help: The condition of a kubeadmconfig. + name: status_condition + - each: + gauge: + labelsFromPath: + status: + - status + type: + - type + nilIsZero: false + path: + - status + - v1beta2 + - conditions + valueFrom: + - lastTransitionTime + type: Gauge + help: The condition's last transition time of a kubeadmconfig. + name: status_condition_last_transition_time + resourcePlural: "" + - errorLogV: 0 + groupVersionKind: group: cluster.x-k8s.io kind: Cluster version: v1beta1 @@ -113,19 +182,31 @@ spec: - uid metricNamePrefix: capi_cluster metrics: - - name: info - help: Information about a cluster. - each: + - each: + info: + labelsFromPath: + paused_value: [] + path: + - metadata + - annotations + - cluster.x-k8s.io/paused + type: Info + help: Whether the cluster is paused and any of its resources will not be processed + by the controllers. + name: annotation_paused + - each: + gauge: + nilIsZero: false + path: + - metadata + - creationTimestamp + valueFrom: null + type: Gauge + help: Unix creation timestamp. + name: created + - each: info: labelsFromPath: - topology_version: - - spec - - topology - - version - topology_class: - - spec - - topology - - class control_plane_endpoint_host: - spec - controlPlaneEndpoint @@ -150,19 +231,66 @@ spec: - spec - infrastructureRef - name + topology_class: + - spec + - topology + - class + topology_version: + - spec + - topology + - version + path: null type: Info - - name: spec_paused - help: Whether the cluster is paused and any of its resources will not be processed by the controllers. - each: + help: Information about a cluster. + name: info + - each: gauge: nilIsZero: true path: - spec - paused + valueFrom: null type: Gauge - - name: status_phase - help: The clusters current phase. - each: + help: Whether the cluster is paused and any of its resources will not be processed + by the controllers. + name: spec_paused + - each: + stateSet: + labelName: status + labelsFromPath: + type: + - type + list: + - "True" + - "False" + - Unknown + path: + - status + - v1beta2 + - conditions + valueFrom: + - status + type: StateSet + help: The condition of a cluster. + name: status_condition + - each: + gauge: + labelsFromPath: + status: + - status + type: + - type + nilIsZero: false + path: + - status + - v1beta2 + - conditions + valueFrom: + - lastTransitionTime + type: Gauge + help: The condition's last transition time of a cluster. + name: status_condition_last_transition_time + - each: stateSet: labelName: phase list: @@ -175,69 +303,123 @@ spec: path: - status - phase + valueFrom: null type: StateSet - - name: created - help: Unix creation timestamp. - each: + help: The clusters current phase. + name: status_phase + resourcePlural: "" + - errorLogV: 0 + groupVersionKind: + group: cluster.x-k8s.io + kind: ClusterClass + version: v1beta1 + labelsFromPath: + name: + - metadata + - name + namespace: + - metadata + - namespace + uid: + - metadata + - uid + metricNamePrefix: capi_clusterclass + metrics: + - each: + info: + labelsFromPath: + paused_value: [] + path: + - metadata + - annotations + - cluster.x-k8s.io/paused + type: Info + help: Whether the clusterclass is paused and any of its resources will not be + processed by the controllers. + name: annotation_paused + - each: gauge: + nilIsZero: false path: - metadata - creationTimestamp + valueFrom: null type: Gauge - - name: annotation_paused - help: Whether the cluster is paused and any of its resources will not be processed by the controllers. - each: + help: Unix creation timestamp. + name: created + - each: + info: + labelsFromPath: + name: + - metadata + - name + path: null + type: Info + help: Information about a clusterclass. + name: info + - each: info: + labelsFromPath: + owner_is_controller: + - controller + owner_kind: + - kind + owner_name: + - name + owner_uid: + - uid path: - metadata - - annotations - - cluster.x-k8s.io/paused - labelsFromPath: - paused_value: [] + - ownerReferences type: Info - - name: status_condition - help: The condition of a cluster. - each: + help: Owner references. + name: owner + - each: stateSet: labelName: status labelsFromPath: type: - type list: - - 'True' - - 'False' + - "True" + - "False" - Unknown path: - status + - v1beta2 - conditions valueFrom: - status type: StateSet - - name: status_condition_last_transition_time - help: The condition last transition time of a cluster. - each: + help: The condition of a clusterclass. + name: status_condition + - each: gauge: labelsFromPath: - type: - - type status: - status + type: + - type + nilIsZero: false path: - status + - v1beta2 - conditions valueFrom: - lastTransitionTime type: Gauge - - groupVersionKind: - group: controlplane.cluster.x-k8s.io - kind: KubeadmControlPlane + help: The condition's last transition time of a clusterclass. + name: status_condition_last_transition_time + resourcePlural: "" + - errorLogV: 0 + groupVersionKind: + group: cluster.x-k8s.io + kind: Machine version: v1beta1 labelsFromPath: cluster_name: - - metadata - - ownerReferences - - '[kind=Cluster]' - - name + - spec + - clusterName name: - metadata - name @@ -247,126 +429,102 @@ spec: uid: - metadata - uid - metricNamePrefix: capi_kubeadmcontrolplane + metricNamePrefix: capi_machine metrics: - - name: info - help: Information about a kubeadmcontrolplane. - each: + - each: info: labelsFromPath: - version: - - spec - - version - type: Info - - name: status_replicas - help: The number of replicas per kubeadmcontrolplane. - each: - gauge: + address: + - address + type: + - type path: - status - - replicas - nilIsZero: true - type: Gauge - - name: status_replicas_ready - help: The number of ready replicas per kubeadmcontrolplane. - each: - gauge: + - addresses + type: Info + help: Address information about a machine. + name: addresses + - each: + info: + labelsFromPath: + paused_value: [] path: - - status - - readyReplicas - nilIsZero: true - type: Gauge - - name: status_replicas_unavailable - help: The number of unavailable replicas per kubeadmcontrolplane. - each: - gauge: - path: - - status - - unavailableReplicas - nilIsZero: true - type: Gauge - - name: status_replicas_updated - help: The number of updated replicas per kubeadmcontrolplane. - each: - gauge: - path: - - status - - updatedReplicas - nilIsZero: true - type: Gauge - - name: spec_replicas - help: The number of desired machines for a kubeadmcontrolplane. - each: - gauge: - path: - - spec - - replicas - type: Gauge - - name: spec_strategy_rollingupdate_max_surge - help: Maximum number of replicas that can be scheduled above the desired number of replicas during a rolling update of a kubeadmcontrolplane. - each: - gauge: - path: - - spec - - rolloutStrategy - - rollingUpdate - - maxSurge - type: Gauge - - name: created - help: Unix creation timestamp. - each: + - metadata + - annotations + - cluster.x-k8s.io/paused + type: Info + help: Whether the machine is paused and any of its resources will not be processed + by the controllers. + name: annotation_paused + - each: gauge: + nilIsZero: false path: - metadata - creationTimestamp + valueFrom: null type: Gauge - - name: annotation_paused - help: Whether the kubeadmcontrolplane is paused and any of its resources will not be processed by the controllers. - each: + help: Unix creation timestamp. + name: created + - each: info: - path: - - metadata - - annotations - - cluster.x-k8s.io/paused - labelsFromPath: - paused_value: [] - type: Info - - name: status_condition - help: The condition of a kubeadmcontrolplane. - each: - stateSet: - labelName: status - labelsFromPath: - type: - - type - list: - - 'True' - - 'False' - - Unknown - path: - - status - - conditions - valueFrom: - - status - type: StateSet - - name: status_condition_last_transition_time - help: The condition last transition time of a kubeadmcontrolplane. - each: - gauge: labelsFromPath: - type: - - type - status: + bootstrap_reference_kind: + - spec + - bootstrap + - configRef + - kind + bootstrap_reference_name: + - spec + - bootstrap + - configRef + - name + container_runtime_version: - status - path: - - status - - conditions - valueFrom: - - lastTransitionTime - type: Gauge - - name: owner - help: Owner references. - each: + - nodeInfo + - containerRuntimeVersion + control_plane_name: + - metadata + - labels + - cluster.x-k8s.io/control-plane-name + failure_domain: + - spec + - failureDomain + infrastructure_reference_kind: + - spec + - infrastructureRef + - kind + infrastructure_reference_name: + - spec + - infrastructureRef + - name + kernel_version: + - status + - nodeInfo + - kernelVersion + kube_proxy_version: + - status + - nodeInfo + - kubeProxyVersion + kubelet_version: + - status + - nodeInfo + - kubeletVersion + os_image: + - status + - nodeInfo + - osImage + provider_id: + - spec + - providerID + version: + - spec + - version + path: null + type: Info + help: Information about a machine. + name: info + - each: info: labelsFromPath: owner_is_controller: @@ -381,108 +539,91 @@ spec: - metadata - ownerReferences type: Info - - groupVersionKind: - group: bootstrap.cluster.x-k8s.io - kind: KubeadmConfig - version: v1beta1 - labelsFromPath: - cluster_name: - - metadata - - labels - - cluster.x-k8s.io/cluster-name - name: - - metadata - - name - namespace: - - metadata - - namespace - uid: - - metadata - - uid - metricNamePrefix: capi_kubeadmconfig - metrics: - - name: info - help: Information about a kubeadmconfig. - each: - info: - # TODO: added metadata.name even it's already defined above as the metric doesn't work with empty labelsFromPath. - labelsFromPath: - name: - - metadata - - name - type: Info - - name: created - help: Unix creation timestamp. - each: + help: Owner references. + name: owner + - each: gauge: + nilIsZero: true path: - - metadata - - creationTimestamp + - status + - certificatesExpiryDate + valueFrom: null type: Gauge - - name: annotation_paused - help: Whether the kubeadmconfig is paused and any of its resources will not be processed by the controllers. - each: - info: - path: - - metadata - - annotations - - cluster.x-k8s.io/paused - labelsFromPath: - paused_value: [] - type: Info - - name: status_condition - help: The condition of a kubeadmconfig. - each: + help: Information about certificate expiration date of a control plane node. + name: status_certificatesexpirydate + - each: stateSet: labelName: status labelsFromPath: type: - type list: - - 'True' - - 'False' + - "True" + - "False" - Unknown path: - status + - v1beta2 - conditions valueFrom: - status type: StateSet - - name: status_condition_last_transition_time - help: The condition last transition time of a kubeadmconfig. - each: + help: The condition of a machine. + name: status_condition + - each: gauge: labelsFromPath: - type: - - type status: - status + type: + - type + nilIsZero: false path: - status + - v1beta2 - conditions valueFrom: - lastTransitionTime type: Gauge - - name: owner - help: Owner references. - each: + help: The condition's last transition time of a machine. + name: status_condition_last_transition_time + - each: info: labelsFromPath: - owner_is_controller: - - controller - owner_kind: - - kind - owner_name: + node_name: - name - owner_uid: + node_uid: - uid path: - - metadata - - ownerReferences + - status + - nodeRef type: Info - - groupVersionKind: + help: Information about the node reference of a machine. + name: status_noderef + - each: + stateSet: + labelName: phase + list: + - Pending + - Provisioning + - Provisioned + - Running + - Deleting + - Deleted + - Failed + - Unknown + path: + - status + - phase + valueFrom: null + type: StateSet + help: The machines current phase. + name: status_phase + resourcePlural: "" + - errorLogV: 0 + groupVersionKind: group: cluster.x-k8s.io - kind: Machine + kind: MachineDeployment version: v1beta1 labelsFromPath: cluster_name: @@ -497,174 +638,69 @@ spec: uid: - metadata - uid - metricNamePrefix: capi_machine + metricNamePrefix: capi_machinedeployment metrics: - - name: info - help: Information about a machine. - each: + - each: + info: + labelsFromPath: + paused_value: [] + path: + - metadata + - annotations + - cluster.x-k8s.io/paused + type: Info + help: Whether the machinedeployment is paused and any of its resources will + not be processed by the controllers. + name: annotation_paused + - each: + gauge: + nilIsZero: false + path: + - metadata + - creationTimestamp + valueFrom: null + type: Gauge + help: Unix creation timestamp. + name: created + - each: info: labelsFromPath: - container_runtime_version: - - status - - nodeInfo - - containerRuntimeVersion - failure_domain: - - spec - - failureDomain - kernel_version: - - status - - nodeInfo - - kernelVersion - kubelet_version: - - status - - nodeInfo - - kubeletVersion - kube_proxy_version: - - status - - nodeInfo - - kubeProxyVersion - os_image: - - status - - nodeInfo - - osImage - provider_id: - - spec - - providerID - version: - - spec - - version bootstrap_reference_kind: - spec + - template + - spec - bootstrap - configRef - kind bootstrap_reference_name: - spec + - template + - spec - bootstrap - configRef - name infrastructure_reference_kind: - spec + - template + - spec - infrastructureRef - kind infrastructure_reference_name: - spec + - template + - spec - infrastructureRef - name - control_plane_name: - - metadata - - labels - - cluster.x-k8s.io/control-plane-name + version: + - spec + - template + - spec + - version + path: null type: Info - - name: addresses - help: Address information about a machine. - each: - info: - path: - - status - - addresses - labelsFromPath: - type: - - type - address: - - address - type: Info - - name: status_certificatesexpirydate - help: Information about certificate expiration date of a control plane node. - each: - gauge: - nilIsZero: true - path: - - status - - certificatesExpiryDate - type: Gauge - - name: status_noderef - help: Information about the node reference of a machine. - each: - info: - labelsFromPath: - node_name: - - status - - nodeRef - - name - node_uid: - - status - - nodeRef - - uid - type: Info - - name: status_phase - help: The machines current phase. - each: - stateSet: - labelName: phase - list: - - Pending - - Provisioning - - Provisioned - - Running - - Deleting - - Deleted - - Failed - - Unknown - path: - - status - - phase - type: StateSet - - name: created - help: Unix creation timestamp. - each: - gauge: - path: - - metadata - - creationTimestamp - type: Gauge - - name: annotation_paused - help: Whether the machine is paused and any of its resources will not be processed by the controllers. - each: - info: - path: - - metadata - - annotations - - cluster.x-k8s.io/paused - labelsFromPath: - paused_value: [] - type: Info - - name: status_condition - help: The condition of a machine. - each: - stateSet: - labelName: status - labelsFromPath: - type: - - type - list: - - 'True' - - 'False' - - Unknown - path: - - status - - conditions - valueFrom: - - status - type: StateSet - - name: status_condition_last_transition_time - help: The condition last transition time of a machine. - each: - gauge: - labelsFromPath: - type: - - type - status: - - status - path: - - status - - conditions - valueFrom: - - lastTransitionTime - type: Gauge - - name: owner - help: Owner references. - each: + help: Information about a machinedeployment. + name: info + - each: info: labelsFromPath: owner_is_controller: @@ -679,102 +715,91 @@ spec: - metadata - ownerReferences type: Info - - groupVersionKind: - group: cluster.x-k8s.io - kind: MachineDeployment - version: v1beta1 - labelsFromPath: - cluster_name: - - spec - - clusterName - name: - - metadata - - name - namespace: - - metadata - - namespace - uid: - - metadata - - uid - metricNamePrefix: capi_machinedeployment - metrics: - - name: info - help: Information about a machinedeployment. - each: - info: - labelsFromPath: - version: - - spec - - template - - spec - - version - bootstrap_reference_kind: - - spec - - template - - spec - - bootstrap - - configRef - - kind - bootstrap_reference_name: - - spec - - template - - spec - - bootstrap - - configRef - - name - infrastructure_reference_kind: - - spec - - template - - spec - - infrastructureRef - - kind - infrastructure_reference_name: - - spec - - template - - spec - - infrastructureRef - - name - type: Info - - name: spec_paused - help: Whether the machinedeployment is paused and any of its resources will not be processed by the controllers. - each: + help: Owner references. + name: owner + - each: gauge: nilIsZero: true path: - spec - paused + valueFrom: null type: Gauge - - name: spec_replicas - help: The number of desired machines for a machinedeployment. - each: + help: Whether the machinedeployment is paused and any of its resources will + not be processed by the controllers. + name: spec_paused + - each: gauge: + nilIsZero: false path: - spec - replicas + valueFrom: null type: Gauge - - name: spec_strategy_rollingupdate_max_surge - help: Maximum number of replicas that can be scheduled above the desired number of replicas during a rolling update of a machinedeployment. - each: + help: The number of desired machines for a machinedeployment. + name: spec_replicas + - each: gauge: + nilIsZero: false path: - spec - strategy - rollingUpdate - maxSurge + valueFrom: null type: Gauge - - name: spec_strategy_rollingupdate_max_unavailable - help: Maximum number of unavailable replicas during a rolling update of a machinedeployment. - each: + help: Maximum number of replicas that can be scheduled above the desired number + of replicas during a rolling update of a machinedeployment. + name: spec_strategy_rollingupdate_max_surge + - each: gauge: + nilIsZero: false path: - spec - strategy - rollingUpdate - maxUnavailable + valueFrom: null type: Gauge - - name: status_phase - help: The machinedeployments current phase. - each: + help: Maximum number of unavailable replicas during a rolling update of a machinedeployment. + name: spec_strategy_rollingupdate_max_unavailable + - each: + stateSet: + labelName: status + labelsFromPath: + type: + - type + list: + - "True" + - "False" + - Unknown + path: + - status + - v1beta2 + - conditions + valueFrom: + - status + type: StateSet + help: The condition of a machinedeployment. + name: status_condition + - each: + gauge: + labelsFromPath: + status: + - status + type: + - type + nilIsZero: false + path: + - status + - v1beta2 + - conditions + valueFrom: + - lastTransitionTime + type: Gauge + help: The condition's last transition time of a machinedeployment. + name: status_condition_last_transition_time + - each: stateSet: labelName: phase list: @@ -786,124 +811,201 @@ spec: path: - status - phase + valueFrom: null type: StateSet - - name: status_replicas - help: The number of replicas per machinedeployment. - each: + help: The machinedeployments current phase. + name: status_phase + - each: gauge: + nilIsZero: true path: - status - replicas - nilIsZero: true + valueFrom: null type: Gauge - - name: status_replicas_available - help: The number of available replicas per machinedeployment. - each: + help: The number of replicas per machinedeployment. + name: status_replicas + - each: gauge: + nilIsZero: true path: - status - availableReplicas - nilIsZero: true + valueFrom: null type: Gauge - - name: status_replicas_ready - help: The number of ready replicas per machinedeployment. - each: + help: The number of available replicas per machinedeployment. + name: status_replicas_available + - each: gauge: + nilIsZero: true path: - status - readyReplicas - nilIsZero: true + valueFrom: null type: Gauge - - name: status_replicas_unavailable - help: The number of unavailable replicas per machinedeployment. - each: + help: The number of ready replicas per machinedeployment. + name: status_replicas_ready + - each: gauge: + nilIsZero: true path: - status - unavailableReplicas - nilIsZero: true + valueFrom: null type: Gauge - - name: status_replicas_updated - help: The number of updated replicas per machinedeployment. - each: + help: The number of unavailable replicas per machinedeployment. + name: status_replicas_unavailable + - each: gauge: + nilIsZero: true path: - status - updatedReplicas - nilIsZero: true + valueFrom: null type: Gauge - - name: created - help: Unix creation timestamp. - each: + help: The number of updated replicas per machinedeployment. + name: status_replicas_updated + resourcePlural: "" + - errorLogV: 0 + groupVersionKind: + group: cluster.x-k8s.io + kind: MachineHealthCheck + version: v1beta1 + labelsFromPath: + cluster_name: + - spec + - clusterName + name: + - metadata + - name + namespace: + - metadata + - namespace + uid: + - metadata + - uid + metricNamePrefix: capi_machinehealthcheck + metrics: + - each: + info: + labelsFromPath: + paused_value: [] + path: + - metadata + - annotations + - cluster.x-k8s.io/paused + type: Info + help: Whether the machinehealthcheck is paused and any of its resources will + not be processed by the controllers. + name: annotation_paused + - each: gauge: + nilIsZero: false path: - metadata - creationTimestamp + valueFrom: null type: Gauge - - name: annotation_paused - help: Whether the machinedeployment is paused and any of its resources will not be processed by the controllers. - each: + help: Unix creation timestamp. + name: created + - each: + info: + labelsFromPath: + maxUnhealthy: + - spec + - maxUnhealthy + path: null + type: Info + help: Information about a machinehealthcheck. + name: info + - each: info: + labelsFromPath: + owner_is_controller: + - controller + owner_kind: + - kind + owner_name: + - name + owner_uid: + - uid path: - metadata - - annotations - - cluster.x-k8s.io/paused - labelsFromPath: - paused_value: [] + - ownerReferences type: Info - - name: status_condition - help: The condition of a machinedeployment. - each: + help: Owner references. + name: owner + - each: stateSet: labelName: status labelsFromPath: type: - type list: - - 'True' - - 'False' + - "True" + - "False" - Unknown path: - status + - v1beta2 - conditions valueFrom: - status type: StateSet - - name: status_condition_last_transition_time - help: The condition last transition time of a machinedeployment. - each: + help: The condition of a machinehealthcheck. + name: status_condition + - each: gauge: labelsFromPath: - type: - - type status: - status + type: + - type + nilIsZero: false path: - status + - v1beta2 - conditions valueFrom: - lastTransitionTime type: Gauge - - name: owner - help: Owner references. - each: - info: - labelsFromPath: - owner_is_controller: - - controller - owner_kind: - - kind - owner_name: - - name - owner_uid: - - uid + help: The condition's last transition time of a machinehealthcheck. + name: status_condition_last_transition_time + - each: + gauge: + nilIsZero: true path: - - metadata - - ownerReferences - type: Info - - groupVersionKind: - group: cluster.x-k8s.io - kind: MachineHealthCheck + - status + - currentHealthy + valueFrom: null + type: Gauge + help: Current number of healthy machines. + name: status_current_healthy + - each: + gauge: + nilIsZero: true + path: + - status + - expectedMachines + valueFrom: null + type: Gauge + help: Total number of machines counted by this machinehealthcheck. + name: status_expected_machines + - each: + gauge: + nilIsZero: true + path: + - status + - remediationsAllowed + valueFrom: null + type: Gauge + help: Number of machine remediations that are currently allowed. + name: status_remediations_allowed + resourcePlural: "" + - errorLogV: 0 + groupVersionKind: + group: cluster.x-k8s.io + kind: MachinePool version: v1beta1 labelsFromPath: cluster_name: @@ -918,112 +1020,195 @@ spec: uid: - metadata - uid - metricNamePrefix: capi_machinehealthcheck + metricNamePrefix: capi_machinepool metrics: - - name: info - help: Information about a machinehealthcheck. - each: + - each: info: - # TODO: added metadata.name even it's already defined above as the metric doesn't work with empty labelsFromPath. labelsFromPath: - name: - - metadata - - name - type: Info - - name: status_current_healthy - help: Current number of healthy machines. - each: - gauge: - path: - - status - - currentHealthy - type: Gauge - - name: status_expected_machines - help: Total number of pods counted by this machinehealthcheck. - each: - gauge: - path: - - status - - expectedMachines - type: Gauge - - name: status_remediations_allowed - help: Number of machine remediations that are currently allowed. - each: - gauge: + paused_value: [] path: - - status - - remediationsAllowed - type: Gauge - - name: created - help: Unix creation timestamp. - each: + - metadata + - annotations + - cluster.x-k8s.io/paused + type: Info + help: Whether the machinepool is paused and any of its resources will not be + processed by the controllers. + name: annotation_paused + - each: gauge: + nilIsZero: false path: - metadata - creationTimestamp + valueFrom: null type: Gauge - - name: annotation_paused - help: Whether the machinehealthcheck is paused and any of its resources will not be processed by the controllers. - each: + help: Unix creation timestamp. + name: created + - each: + info: + labelsFromPath: + bootstrap_configuration_reference_kind: + - spec + - template + - spec + - bootstrap + - configRef + - kind + bootstrap_configuration_reference_name: + - spec + - template + - spec + - bootstrap + - configRef + - name + failure_domain: + - spec + - template + - spec + - failureDomain + infrastructure_reference_kind: + - spec + - template + - spec + - infrastructureRef + - kind + infrastructure_reference_name: + - spec + - template + - spec + - infrastructureRef + - name + version: + - spec + - template + - spec + - version + path: null + type: Info + help: Information about a machinepool. + name: info + - each: info: + labelsFromPath: + owner_is_controller: + - controller + owner_kind: + - kind + owner_name: + - name + owner_uid: + - uid path: - metadata - - annotations - - cluster.x-k8s.io/paused - labelsFromPath: - paused_value: [] + - ownerReferences type: Info - - name: status_condition - help: The condition of a machinehealthcheck. - each: + help: Owner references. + name: owner + - each: + gauge: + nilIsZero: false + path: + - spec + - replicas + valueFrom: null + type: Gauge + help: The number of desired machines for a machinepool. + name: spec_replicas + - each: stateSet: labelName: status labelsFromPath: type: - type list: - - 'True' - - 'False' + - "True" + - "False" - Unknown path: - status + - v1beta2 - conditions valueFrom: - status type: StateSet - - name: status_condition_last_transition_time - help: The condition last transition time of a machinehealthcheck. - each: + help: The condition of a machinepool. + name: status_condition + - each: gauge: labelsFromPath: - type: - - type status: - status + type: + - type + nilIsZero: false path: - status + - v1beta2 - conditions valueFrom: - lastTransitionTime type: Gauge - - name: owner - help: Owner references. - each: - info: - labelsFromPath: - owner_is_controller: - - controller - owner_kind: - - kind - owner_name: - - name - owner_uid: - - uid + help: The condition's last transition time of a machinepool. + name: status_condition_last_transition_time + - each: + stateSet: + labelName: phase + list: + - ScalingUp + - ScalingDown + - Running + - Failed + - Unknown path: - - metadata - - ownerReferences - type: Info - - groupVersionKind: + - status + - phase + valueFrom: null + type: StateSet + help: The machinepools current phase. + name: status_phase + - each: + gauge: + nilIsZero: true + path: + - status + - replicas + valueFrom: null + type: Gauge + help: The number of replicas per machinepool. + name: status_replicas + - each: + gauge: + nilIsZero: true + path: + - status + - availableReplicas + valueFrom: null + type: Gauge + help: The number of available replicas per machinepool. + name: status_replicas_available + - each: + gauge: + nilIsZero: true + path: + - status + - readyReplicas + valueFrom: null + type: Gauge + help: The number of ready replicas per machinepool. + name: status_replicas_ready + - each: + gauge: + nilIsZero: true + path: + - status + - unavailableReplicas + valueFrom: null + type: Gauge + help: The number of unavailable replicas per machinepool. + name: status_replicas_unavailable + resourcePlural: "" + - errorLogV: 0 + groupVersionKind: group: cluster.x-k8s.io kind: MachineSet version: v1beta1 @@ -1042,16 +1227,31 @@ spec: - uid metricNamePrefix: capi_machineset metrics: - - name: info - help: Information about a machineset. - each: + - each: + info: + labelsFromPath: + paused_value: [] + path: + - metadata + - annotations + - cluster.x-k8s.io/paused + type: Info + help: Whether the machineset is paused and any of its resources will not be + processed by the controllers. + name: annotation_paused + - each: + gauge: + nilIsZero: false + path: + - metadata + - creationTimestamp + valueFrom: null + type: Gauge + help: Unix creation timestamp. + name: created + - each: info: labelsFromPath: - version: - - spec - - template - - spec - - version bootstrap_reference_kind: - spec - template @@ -1078,128 +1278,300 @@ spec: - spec - infrastructureRef - name + version: + - spec + - template + - spec + - version + path: null + type: Info + help: Information about a machineset. + name: info + - each: + info: + labelsFromPath: + owner_is_controller: + - controller + owner_kind: + - kind + owner_name: + - name + owner_uid: + - uid + path: + - metadata + - ownerReferences type: Info - - name: spec_replicas - help: The number of desired machines for a machineset. - each: + help: Owner references. + name: owner + - each: gauge: + nilIsZero: true path: - spec - replicas - nilIsZero: true + valueFrom: null type: Gauge - - name: status_replicas_available - help: The number of available replicas per machineset. - each: - gauge: + help: The number of desired machines for a machineset. + name: spec_replicas + - each: + stateSet: + labelName: status + labelsFromPath: + type: + - type + list: + - "True" + - "False" + - Unknown path: - status - - availableReplicas - nilIsZero: true - type: Gauge - - name: status_replicas_fully_labeled - help: The number of fully labeled replicas per machineset. - each: + - v1beta2 + - conditions + valueFrom: + - status + type: StateSet + help: The condition of a machineset. + name: status_condition + - each: gauge: + labelsFromPath: + status: + - status + type: + - type + nilIsZero: false path: - status - - fullyLabeledReplicas + - v1beta2 + - conditions + valueFrom: + - lastTransitionTime type: Gauge - - name: status_replicas_ready - help: The number of ready replicas per machineset. - each: + help: The condition's last transition time of a machineset. + name: status_condition_last_transition_time + - each: gauge: + nilIsZero: true path: - status - - readyReplicas - nilIsZero: true + - replicas + valueFrom: null type: Gauge - - name: status_replicas help: The number of replicas per machineset. - each: + name: status_replicas + - each: gauge: + nilIsZero: true path: - status - - replicas - nilIsZero: true + - availableReplicas + valueFrom: null type: Gauge - - name: created - help: Unix creation timestamp. - each: + help: The number of available replicas per machineset. + name: status_replicas_available + - each: gauge: + nilIsZero: true path: - - metadata - - creationTimestamp + - status + - fullyLabeledReplicas + valueFrom: null type: Gauge - - name: annotation_paused - help: Whether the machineset is paused and any of its resources will not be processed by the controllers. - each: + help: The number of fully labeled replicas per machineset. + name: status_replicas_fully_labeled + - each: + gauge: + nilIsZero: true + path: + - status + - readyReplicas + valueFrom: null + type: Gauge + help: The number of ready replicas per machineset. + name: status_replicas_ready + resourcePlural: "" + - errorLogV: 0 + groupVersionKind: + group: controlplane.cluster.x-k8s.io + kind: KubeadmControlPlane + version: v1beta1 + labelsFromPath: + cluster_name: + - metadata + - ownerReferences + - '[kind=Cluster]' + - name + name: + - metadata + - name + namespace: + - metadata + - namespace + uid: + - metadata + - uid + metricNamePrefix: capi_kubeadmcontrolplane + metrics: + - each: info: + labelsFromPath: + paused_value: [] path: - metadata - annotations - cluster.x-k8s.io/paused + type: Info + help: Whether the kubeadmcontrolplane is paused and any of its resources will + not be processed by the controllers. + name: annotation_paused + - each: + gauge: + nilIsZero: false + path: + - metadata + - creationTimestamp + valueFrom: null + type: Gauge + help: Unix creation timestamp. + name: created + - each: + info: labelsFromPath: - paused_value: [] + version: + - spec + - version + path: null type: Info - - name: status_condition - help: The condition of a machineset. - each: + help: Information about a kubeadmcontrolplane. + name: info + - each: + info: + labelsFromPath: + owner_is_controller: + - controller + owner_kind: + - kind + owner_name: + - name + owner_uid: + - uid + path: + - metadata + - ownerReferences + type: Info + help: Owner references. + name: owner + - each: + gauge: + nilIsZero: false + path: + - spec + - replicas + valueFrom: null + type: Gauge + help: The number of desired machines for a kubeadmcontrolplane. + name: spec_replicas + - each: + gauge: + nilIsZero: false + path: + - spec + - rolloutStrategy + - rollingUpdate + - maxSurge + valueFrom: null + type: Gauge + help: Maximum number of replicas that can be scheduled above the desired number + of replicas during a rolling update of a kubeadmcontrolplane. + name: spec_strategy_rollingupdate_max_surge + - each: stateSet: labelName: status labelsFromPath: type: - type list: - - 'True' - - 'False' + - "True" + - "False" - Unknown path: - status + - v1beta2 - conditions valueFrom: - status type: StateSet - - name: status_condition_last_transition_time - help: The condition last transition time of a machineset. - each: + help: The condition of a kubeadmcontrolplane. + name: status_condition + - each: gauge: labelsFromPath: - type: - - type status: - status + type: + - type + nilIsZero: false path: - status + - v1beta2 - conditions valueFrom: - lastTransitionTime type: Gauge - - name: owner - help: Owner references. - each: - info: - labelsFromPath: - owner_is_controller: - - controller - owner_kind: - - kind - owner_name: - - name - owner_uid: - - uid + help: The condition's last transition time of a kubeadmcontrolplane. + name: status_condition_last_transition_time + - each: + gauge: + nilIsZero: true path: - - metadata - - ownerReferences - type: Info - - groupVersionKind: - group: cluster.x-k8s.io - kind: MachinePool + - status + - replicas + valueFrom: null + type: Gauge + help: The number of replicas per kubeadmcontrolplane. + name: status_replicas + - each: + gauge: + nilIsZero: true + path: + - status + - readyReplicas + valueFrom: null + type: Gauge + help: The number of ready replicas per kubeadmcontrolplane. + name: status_replicas_ready + - each: + gauge: + nilIsZero: true + path: + - status + - unavailableReplicas + valueFrom: null + type: Gauge + help: The number of unavailable replicas per kubeadmcontrolplane. + name: status_replicas_unavailable + - each: + gauge: + nilIsZero: true + path: + - status + - updatedReplicas + valueFrom: null + type: Gauge + help: The number of updated replicas per kubeadmcontrolplane. + name: status_replicas_updated + resourcePlural: "" + - errorLogV: 0 + groupVersionKind: + group: infrastructure.cluster.x-k8s.io + kind: DevCluster version: v1beta1 labelsFromPath: cluster_name: - - spec - - clusterName + - metadata + - labels + - cluster.x-k8s.io/cluster-name name: - metadata - name @@ -1209,174 +1581,328 @@ spec: uid: - metadata - uid - metricNamePrefix: capi_machinepool + metricNamePrefix: capi_devcluster metrics: - - name: spec_replicas - help: The number of desired machines for a machinepool. - each: - gauge: + - each: + stateSet: + labelName: status + labelsFromPath: + type: + - type + list: + - "True" + - "False" + - Unknown path: - - spec - - replicas - type: Gauge - - name: status_replicas - help: The number of replicas per machinepool. - each: + - status + - v1beta2 + - conditions + valueFrom: + - status + type: StateSet + help: The condition of a devcluster. + name: status_condition + - each: gauge: + labelsFromPath: + status: + - status + type: + - type + nilIsZero: false path: - status - - replicas - nilIsZero: true + - v1beta2 + - conditions + valueFrom: + - lastTransitionTime type: Gauge - - name: status_replicas_ready - help: The number of ready replicas per machinepool. - each: - gauge: + help: The condition's last transition time of a devcluster. + name: status_condition_last_transition_time + resourcePlural: "" + - errorLogV: 0 + groupVersionKind: + group: infrastructure.cluster.x-k8s.io + kind: DevMachine + version: v1beta1 + labelsFromPath: + cluster_name: + - metadata + - labels + - cluster.x-k8s.io/cluster-name + name: + - metadata + - name + namespace: + - metadata + - namespace + uid: + - metadata + - uid + metricNamePrefix: capi_devmachine + metrics: + - each: + stateSet: + labelName: status + labelsFromPath: + type: + - type + list: + - "True" + - "False" + - Unknown path: - status - - readyReplicas - nilIsZero: true - type: Gauge - - name: status_replicas_available - help: The number of available replicas per machinepool. - each: + - v1beta2 + - conditions + valueFrom: + - status + type: StateSet + help: The condition of a devmachine. + name: status_condition + - each: gauge: + labelsFromPath: + status: + - status + type: + - type + nilIsZero: false path: - status - - availableReplicas - nilIsZero: true + - v1beta2 + - conditions + valueFrom: + - lastTransitionTime type: Gauge - - name: status_replicas_unavailable - help: The number of unavailable replicas per machinepool. - each: + help: The condition's last transition time of a devmachine. + name: status_condition_last_transition_time + resourcePlural: "" + - errorLogV: 0 + groupVersionKind: + group: infrastructure.cluster.x-k8s.io + kind: DockerCluster + version: v1beta1 + labelsFromPath: + cluster_name: + - metadata + - labels + - cluster.x-k8s.io/cluster-name + name: + - metadata + - name + namespace: + - metadata + - namespace + uid: + - metadata + - uid + metricNamePrefix: capi_dockercluster + metrics: + - each: + stateSet: + labelName: status + labelsFromPath: + type: + - type + list: + - "True" + - "False" + - Unknown + path: + - status + - v1beta2 + - conditions + valueFrom: + - status + type: StateSet + help: The condition of a dockercluster. + name: status_condition + - each: gauge: + labelsFromPath: + status: + - status + type: + - type + nilIsZero: false path: - status - - unavailableReplicas - nilIsZero: true + - v1beta2 + - conditions + valueFrom: + - lastTransitionTime type: Gauge - - name: info - each: - type: Info - info: - labelsFromPath: - infrastructure_reference_name: - - spec - - template - - spec - - infrastructureRef - - name - infrastructure_reference_kind: - - spec - - template - - spec - - infrastructureRef - - kind - bootstrap_configuration_reference_name: - - spec - - template - - spec - - bootstrap - - configRef - - name - bootstrap_configuration_reference_kind: - - spec - - template - - spec - - bootstrap - - configRef - - kind - failure_domain: - - spec - - template - - spec - - failureDomain - version: - - spec - - template - - spec - - version - - name: status_phase - help: The machinepools current phase. - each: + help: The condition's last transition time of a dockercluster. + name: status_condition_last_transition_time + resourcePlural: "" + - errorLogV: 0 + groupVersionKind: + group: infrastructure.cluster.x-k8s.io + kind: DockerMachine + version: v1beta1 + labelsFromPath: + cluster_name: + - metadata + - labels + - cluster.x-k8s.io/cluster-name + name: + - metadata + - name + namespace: + - metadata + - namespace + uid: + - metadata + - uid + metricNamePrefix: capi_dockermachine + metrics: + - each: stateSet: - labelName: phase + labelName: status + labelsFromPath: + type: + - type list: - - ScalingUp - - ScalingDown - - Running - - Failed + - "True" + - "False" - Unknown path: - status - - phase + - v1beta2 + - conditions + valueFrom: + - status type: StateSet - - name: created - help: Unix creation timestamp. - each: + help: The condition of a dockermachine. + name: status_condition + - each: gauge: + labelsFromPath: + status: + - status + type: + - type + nilIsZero: false path: - - metadata - - creationTimestamp + - status + - v1beta2 + - conditions + valueFrom: + - lastTransitionTime type: Gauge - - name: annotation_paused - help: Whether the machinepool is paused and any of its resources will not be processed by the controllers. - each: - info: - path: - - metadata - - annotations - - cluster.x-k8s.io/paused - labelsFromPath: - paused_value: [] - type: Info - - name: status_condition - help: The condition of a machinepool. - each: + help: The condition's last transition time of a dockermachine. + name: status_condition_last_transition_time + resourcePlural: "" + - errorLogV: 0 + groupVersionKind: + group: ipam.cluster.x-k8s.io + kind: IPAddressClaim + version: v1beta1 + labelsFromPath: + cluster_name: + - metadata + - labels + - cluster.x-k8s.io/cluster-name + name: + - metadata + - name + namespace: + - metadata + - namespace + uid: + - metadata + - uid + metricNamePrefix: capi_ipaddressclaim + metrics: + - each: stateSet: labelName: status labelsFromPath: type: - type list: - - 'True' - - 'False' + - "True" + - "False" - Unknown path: - status + - v1beta2 - conditions valueFrom: - status type: StateSet - - name: status_condition_last_transition_time - help: The condition last transition time of a machinepool. - each: + help: The condition of a ipaddressclaim. + name: status_condition + - each: gauge: labelsFromPath: - type: - - type status: - status + type: + - type + nilIsZero: false path: - status + - v1beta2 - conditions valueFrom: - lastTransitionTime type: Gauge - - name: owner - help: Owner references. - each: - info: + help: The condition's last transition time of a ipaddressclaim. + name: status_condition_last_transition_time + resourcePlural: "" + - errorLogV: 0 + groupVersionKind: + group: runtime.cluster.x-k8s.io + kind: ExtensionConfig + version: v1alpha1 + labelsFromPath: + name: + - metadata + - name + namespace: + - metadata + - namespace + uid: + - metadata + - uid + metricNamePrefix: capi_extensionconfig + metrics: + - each: + stateSet: + labelName: status labelsFromPath: - owner_is_controller: - - controller - owner_kind: - - kind - owner_name: - - name - owner_uid: - - uid + type: + - type + list: + - "True" + - "False" + - Unknown path: - - metadata - - ownerReferences - type: Info + - status + - v1beta2 + - conditions + valueFrom: + - status + type: StateSet + help: The condition of a extensionconfig. + name: status_condition + - each: + gauge: + labelsFromPath: + status: + - status + type: + - type + nilIsZero: false + path: + - status + - v1beta2 + - conditions + valueFrom: + - lastTransitionTime + type: Gauge + help: The condition's last transition time of a extensionconfig. + name: status_condition_last_transition_time + resourcePlural: "" diff --git a/hack/observability/grafana/dashboards/cluster-api-performance.json b/hack/observability/grafana/dashboards/cluster-api-performance.json index 3f40c62e7c75..115c9c946827 100644 --- a/hack/observability/grafana/dashboards/cluster-api-performance.json +++ b/hack/observability/grafana/dashboards/cluster-api-performance.json @@ -18,9 +18,8 @@ "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 0, - "id": 2, + "id": 3, "links": [], - "liveNow": false, "panels": [ { "collapsed": false, @@ -74,6 +73,7 @@ "graphMode": "area", "justifyMode": "auto", "orientation": "auto", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -81,9 +81,11 @@ "fields": "", "values": false }, - "textMode": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "9.5.2", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -139,6 +141,7 @@ "graphMode": "area", "justifyMode": "auto", "orientation": "auto", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -146,9 +149,11 @@ "fields": "", "values": false }, - "textMode": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "9.5.2", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -204,6 +209,7 @@ "graphMode": "area", "justifyMode": "auto", "orientation": "auto", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -211,9 +217,11 @@ "fields": "", "values": false }, - "textMode": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "9.5.2", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -269,6 +277,7 @@ "graphMode": "area", "justifyMode": "auto", "orientation": "auto", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -276,9 +285,11 @@ "fields": "", "values": false }, - "textMode": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "9.5.2", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -334,6 +345,7 @@ "graphMode": "area", "justifyMode": "auto", "orientation": "auto", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -341,9 +353,11 @@ "fields": "", "values": false }, - "textMode": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "9.5.2", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -399,6 +413,7 @@ "graphMode": "area", "justifyMode": "auto", "orientation": "auto", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -406,9 +421,11 @@ "fields": "", "values": false }, - "textMode": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "9.5.2", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -465,6 +482,7 @@ "graphMode": "area", "justifyMode": "auto", "orientation": "auto", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -472,9 +490,11 @@ "fields": "", "values": false }, - "textMode": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "9.5.2", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -530,6 +550,7 @@ "graphMode": "area", "justifyMode": "auto", "orientation": "auto", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -537,9 +558,11 @@ "fields": "", "values": false }, - "textMode": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "9.5.2", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -578,6 +601,7 @@ "mode": "thresholds" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", @@ -602,8 +626,7 @@ "mode": "percentage", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "#EAB839", @@ -623,7 +646,7 @@ "h": 6, "w": 24, "x": 0, - "y": 2 + "y": 6 }, "id": 5, "options": { @@ -641,13 +664,14 @@ "showValue": "never", "stacking": "none", "tooltip": { + "hideZeros": false, "mode": "single", "sort": "none" }, "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "9.5.2", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -678,6 +702,7 @@ "mode": "thresholds" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", @@ -702,8 +727,7 @@ "mode": "percentage", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "#EAB839", @@ -723,7 +747,7 @@ "h": 6, "w": 24, "x": 0, - "y": 8 + "y": 715 }, "id": 4, "options": { @@ -741,13 +765,14 @@ "showValue": "never", "stacking": "none", "tooltip": { + "hideZeros": false, "mode": "single", "sort": "none" }, "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "9.5.2", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -778,6 +803,7 @@ "mode": "thresholds" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", @@ -802,8 +828,7 @@ "mode": "percentage", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "#EAB839", @@ -823,7 +848,7 @@ "h": 6, "w": 24, "x": 0, - "y": 14 + "y": 721 }, "id": 6, "options": { @@ -841,13 +866,14 @@ "showValue": "never", "stacking": "none", "tooltip": { + "hideZeros": false, "mode": "single", "sort": "none" }, "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "9.5.2", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -856,7 +882,7 @@ }, "editorMode": "code", "exemplar": false, - "expr": "avg(min_over_time(capi_cluster_status_condition_last_transition_time{status=\"True\",type=\"ControlPlaneReady\"}[168h]) - on(name) group_left () capi_cluster_created{name=~\"${Cluster:pipe}\"}) by (name)", + "expr": "avg(min_over_time(capi_cluster_status_condition_last_transition_time{status=\"True\",type=\"ControlPlaneAvailable\"}[168h]) - on(name) group_left () capi_cluster_created{name=~\"${Cluster:pipe}\"}) by (name)", "format": "time_series", "instant": true, "legendFormat": "__auto", @@ -864,7 +890,7 @@ "refId": "A" } ], - "title": "Cluster time until ControlPlaneReady since creationTimestamp", + "title": "Cluster time until ControlPlaneAvailable since creationTimestamp", "type": "barchart" }, { @@ -882,8 +908,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -898,7 +923,7 @@ "h": 4, "w": 24, "x": 0, - "y": 20 + "y": 727 }, "id": 38, "options": { @@ -906,6 +931,7 @@ "graphMode": "area", "justifyMode": "auto", "orientation": "auto", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -913,9 +939,11 @@ "fields": "", "values": false }, - "textMode": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "9.5.2", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -979,8 +1007,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -1009,7 +1036,7 @@ "h": 7, "w": 24, "x": 0, - "y": 24 + "y": 731 }, "id": 1, "options": { @@ -1026,7 +1053,7 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "9.5.2", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -1180,11 +1207,13 @@ "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -1193,6 +1222,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 1, @@ -1214,8 +1244,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -1231,7 +1260,7 @@ "h": 8, "w": 12, "x": 0, - "y": 31 + "y": 738 }, "id": 13, "options": { @@ -1247,10 +1276,12 @@ "showLegend": true }, "tooltip": { + "hideZeros": false, "mode": "multi", "sort": "asc" } }, + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -1278,11 +1309,13 @@ "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -1291,6 +1324,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 1, @@ -1312,8 +1346,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -1329,7 +1362,7 @@ "h": 8, "w": 12, "x": 12, - "y": 31 + "y": 738 }, "id": 14, "options": { @@ -1345,10 +1378,12 @@ "showLegend": true }, "tooltip": { + "hideZeros": false, "mode": "multi", "sort": "asc" } }, + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -1376,11 +1411,13 @@ "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -1389,6 +1426,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 1, @@ -1410,8 +1448,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -1427,7 +1464,7 @@ "h": 8, "w": 12, "x": 0, - "y": 39 + "y": 746 }, "id": 25, "options": { @@ -1443,10 +1480,12 @@ "showLegend": false }, "tooltip": { + "hideZeros": false, "mode": "multi", "sort": "asc" } }, + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -1489,6 +1528,7 @@ "mode": "thresholds" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", @@ -1513,8 +1553,7 @@ "mode": "percentage", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "#EAB839", @@ -1534,7 +1573,7 @@ "h": 6, "w": 24, "x": 0, - "y": 11 + "y": 7 }, "id": 39, "options": { @@ -1552,13 +1591,14 @@ "showValue": "never", "stacking": "none", "tooltip": { + "hideZeros": false, "mode": "single", "sort": "none" }, "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "9.5.2", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -1567,7 +1607,7 @@ }, "editorMode": "code", "exemplar": false, - "expr": "avg(min_over_time(capi_kubeadmcontrolplane_status_condition_last_transition_time{status=\"True\",type=\"Ready\"}[168h]) - on(name) group_left () capi_kubeadmcontrolplane_created{cluster_name=~\"${Cluster:pipe}\"}) by (name)", + "expr": "avg(min_over_time(capi_kubeadmcontrolplane_status_condition_last_transition_time{status=\"True\",type=\"Available\"}[168h]) - on(name) group_left () capi_kubeadmcontrolplane_created{cluster_name=~\"${Cluster:pipe}\"}) by (name)", "format": "time_series", "instant": true, "legendFormat": "__auto", @@ -1575,7 +1615,7 @@ "refId": "A" } ], - "title": "KubeadmControlPlane time until Ready since creationTimestamp", + "title": "KubeadmControlPlane time until Available since creationTimestamp", "type": "barchart" }, { @@ -1593,8 +1633,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -1609,7 +1648,7 @@ "h": 4, "w": 24, "x": 0, - "y": 17 + "y": 716 }, "id": 40, "options": { @@ -1617,6 +1656,7 @@ "graphMode": "area", "justifyMode": "auto", "orientation": "auto", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -1624,9 +1664,11 @@ "fields": "", "values": false }, - "textMode": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "9.5.2", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -1634,13 +1676,13 @@ "uid": "prometheus" }, "editorMode": "code", - "expr": "avg(min_over_time(capi_kubeadmcontrolplane_status_condition_last_transition_time{status=\"True\",type=\"Ready\"}[168h]) - on(name) group_left () capi_kubeadmcontrolplane_created{cluster_name=~\"${Cluster:pipe}\"})", + "expr": "avg(min_over_time(capi_kubeadmcontrolplane_status_condition_last_transition_time{status=\"True\",type=\"Available\"}[168h]) - on(name) group_left () capi_kubeadmcontrolplane_created{cluster_name=~\"${Cluster:pipe}\"})", "legendFormat": "__auto", "range": true, "refId": "A" } ], - "title": "Average time until Ready since creationTimestamp", + "title": "Average time until Available since creationTimestamp", "type": "stat" }, { @@ -1666,8 +1708,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -1695,7 +1736,7 @@ "h": 7, "w": 24, "x": 0, - "y": 21 + "y": 720 }, "id": 41, "options": { @@ -1712,7 +1753,7 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "9.5.2", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -1796,11 +1837,13 @@ "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -1809,6 +1852,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 1, @@ -1830,8 +1874,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -1847,7 +1890,7 @@ "h": 8, "w": 12, "x": 0, - "y": 28 + "y": 727 }, "id": 15, "options": { @@ -1863,10 +1906,12 @@ "showLegend": true }, "tooltip": { + "hideZeros": false, "mode": "multi", "sort": "asc" } }, + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -1894,11 +1939,13 @@ "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -1907,6 +1954,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 1, @@ -1928,8 +1976,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -1945,7 +1992,7 @@ "h": 8, "w": 12, "x": 12, - "y": 28 + "y": 727 }, "id": 16, "options": { @@ -1961,10 +2008,12 @@ "showLegend": true }, "tooltip": { + "hideZeros": false, "mode": "multi", "sort": "asc" } }, + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -2006,6 +2055,7 @@ "mode": "thresholds" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", @@ -2051,7 +2101,7 @@ "h": 6, "w": 24, "x": 0, - "y": 12 + "y": 8 }, "id": 10, "options": { @@ -2069,13 +2119,14 @@ "showValue": "never", "stacking": "none", "tooltip": { + "hideZeros": false, "mode": "single", "sort": "none" }, "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "9.5.2", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -2106,6 +2157,7 @@ "mode": "thresholds" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", @@ -2151,7 +2203,7 @@ "h": 6, "w": 24, "x": 0, - "y": 18 + "y": 14 }, "id": 11, "options": { @@ -2169,13 +2221,14 @@ "showValue": "never", "stacking": "none", "tooltip": { + "hideZeros": false, "mode": "single", "sort": "none" }, "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "9.5.2", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -2184,7 +2237,7 @@ }, "editorMode": "code", "exemplar": false, - "expr": "avg(min_over_time(capi_machine_status_condition_last_transition_time{status=\"True\",type=\"BootstrapReady\"}[168h]) - on(name) group_left () (capi_machine_created{cluster_name=~\"${Cluster:pipe}\"} * on (name) group_right avg(capi_machine_info{control_plane_name!=\"\"}) by (name))) by (name)", + "expr": "avg(min_over_time(capi_machine_status_condition_last_transition_time{status=\"True\",type=\"BootstrapConfigReady\"}[168h]) - on(name) group_left () (capi_machine_created{cluster_name=~\"${Cluster:pipe}\"} * on (name) group_right avg(capi_machine_info{control_plane_name!=\"\"}) by (name))) by (name)", "format": "time_series", "instant": true, "legendFormat": "__auto", @@ -2192,7 +2245,7 @@ "refId": "A" } ], - "title": "Control Plane Machine time until BootstrapReady since creationTimestamp", + "title": "Control Plane Machine time until BootstrapConfigReady since creationTimestamp", "type": "barchart" }, { @@ -2206,6 +2259,7 @@ "mode": "thresholds" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", @@ -2251,7 +2305,7 @@ "h": 6, "w": 24, "x": 0, - "y": 24 + "y": 20 }, "id": 12, "options": { @@ -2269,13 +2323,14 @@ "showValue": "never", "stacking": "none", "tooltip": { + "hideZeros": false, "mode": "single", "sort": "none" }, "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "9.5.2", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -2326,7 +2381,7 @@ "h": 4, "w": 24, "x": 0, - "y": 30 + "y": 26 }, "id": 42, "options": { @@ -2334,6 +2389,7 @@ "graphMode": "area", "justifyMode": "auto", "orientation": "auto", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -2341,9 +2397,11 @@ "fields": "", "values": false }, - "textMode": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "9.5.2", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -2351,8 +2409,8 @@ "uid": "prometheus" }, "editorMode": "code", - "expr": "avg(min_over_time(capi_machine_status_condition_last_transition_time{status=\"True\",type=\"BootstrapReady\"}[168h]) - on(name) group_left () (capi_machine_created{cluster_name=~\"${Cluster:pipe}\"} * on (name) group_right avg(capi_machine_info{control_plane_name!=\"\"}) by (name)))", - "legendFormat": "until BootstrapReady since creationTimestamp", + "expr": "avg(min_over_time(capi_machine_status_condition_last_transition_time{status=\"True\",type=\"BootstrapConfigReady\"}[168h]) - on(name) group_left () (capi_machine_created{cluster_name=~\"${Cluster:pipe}\"} * on (name) group_right avg(capi_machine_info{control_plane_name!=\"\"}) by (name)))", + "legendFormat": "until BootstrapConfigReady since creationTimestamp", "range": true, "refId": "A" }, @@ -2379,6 +2437,19 @@ "legendFormat": "until NodeHealthy since creationTimestamp", "range": true, "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "editorMode": "code", + "expr": "avg(min_over_time(capi_machine_status_condition_last_transition_time{status=\"True\",type=\"NodeReady\"}[168h]) - on(name) group_left () (capi_machine_created{cluster_name=~\"${Cluster:pipe}\"} * on (name) group_right avg(capi_machine_info{control_plane_name!=\"\"}) by (name)))", + "hide": false, + "instant": false, + "legendFormat": "until NodeReady since creationTimestamp", + "range": true, + "refId": "D" } ], "title": "Average time", @@ -2436,7 +2507,7 @@ "h": 7, "w": 24, "x": 0, - "y": 34 + "y": 30 }, "id": 2, "options": { @@ -2453,7 +2524,7 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "9.5.2", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -2462,7 +2533,7 @@ }, "editorMode": "code", "exemplar": false, - "expr": "avg(min_over_time(capi_machine_status_condition_last_transition_time{status=\"True\",type=\"BootstrapReady\"}[168h]) - on(name) group_left () (capi_machine_created{cluster_name=~\"${Cluster:pipe}\"} * on (name) group_right avg(capi_machine_info{control_plane_name!=\"\"}) by (name))) by (name)", + "expr": "avg(min_over_time(capi_machine_status_condition_last_transition_time{status=\"True\",type=\"BootstrapConfigReady\"}[168h]) - on(name) group_left () (capi_machine_created{cluster_name=~\"${Cluster:pipe}\"} * on (name) group_right avg(capi_machine_info{control_plane_name!=\"\"}) by (name))) by (name)", "format": "table", "instant": true, "legendFormat": "__auto", @@ -2546,8 +2617,8 @@ "name": 0 }, "renameByName": { - "Value": "Creation until BootstrapReady", - "Value #A": "Time until BootstrapReady", + "Value": "Creation until BootstrapConfigReady", + "Value #A": "Time until BootstrapConfigReady", "Value #B": "Time until InfrastructureReady", "Value #C": "Time until NodeHealthy", "Value #D": "Creation Timestamp", @@ -2569,11 +2640,13 @@ "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -2582,6 +2655,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 1, @@ -2620,7 +2694,7 @@ "h": 8, "w": 12, "x": 0, - "y": 41 + "y": 37 }, "id": 17, "options": { @@ -2636,10 +2710,12 @@ "showLegend": true }, "tooltip": { + "hideZeros": false, "mode": "multi", "sort": "asc" } }, + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -2667,11 +2743,13 @@ "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -2680,6 +2758,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 1, @@ -2718,7 +2797,7 @@ "h": 8, "w": 12, "x": 12, - "y": 41 + "y": 37 }, "id": 18, "options": { @@ -2734,10 +2813,12 @@ "showLegend": true }, "tooltip": { + "hideZeros": false, "mode": "multi", "sort": "asc" } }, + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -2779,6 +2860,7 @@ "mode": "thresholds" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", @@ -2824,7 +2906,7 @@ "h": 6, "w": 24, "x": 0, - "y": 13 + "y": 9 }, "id": 43, "options": { @@ -2842,13 +2924,14 @@ "showValue": "never", "stacking": "none", "tooltip": { + "hideZeros": false, "mode": "single", "sort": "none" }, "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "9.5.2", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -2879,6 +2962,7 @@ "mode": "thresholds" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", @@ -2924,7 +3008,7 @@ "h": 6, "w": 24, "x": 0, - "y": 19 + "y": 15 }, "id": 44, "options": { @@ -2942,13 +3026,14 @@ "showValue": "never", "stacking": "none", "tooltip": { + "hideZeros": false, "mode": "single", "sort": "none" }, "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "9.5.2", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -2957,7 +3042,7 @@ }, "editorMode": "code", "exemplar": false, - "expr": "avg(min_over_time(capi_machine_status_condition_last_transition_time{status=\"True\",type=\"BootstrapReady\"}[168h]) - on(name) group_left () (capi_machine_created{cluster_name=~\"${Cluster:pipe}\"} * on (name) group_right avg(capi_machine_info{control_plane_name=\"\"}) by (name))) by (name)", + "expr": "avg(min_over_time(capi_machine_status_condition_last_transition_time{status=\"True\",type=\"BootstrapConfigReady\"}[168h]) - on(name) group_left () (capi_machine_created{cluster_name=~\"${Cluster:pipe}\"} * on (name) group_right avg(capi_machine_info{control_plane_name=\"\"}) by (name))) by (name)", "format": "time_series", "instant": true, "legendFormat": "__auto", @@ -2965,7 +3050,7 @@ "refId": "A" } ], - "title": "Worker Machine time until BootstrapReady since creationTimestamp", + "title": "Worker Machine time until BootstrapConfigReady since creationTimestamp", "type": "barchart" }, { @@ -2979,6 +3064,7 @@ "mode": "thresholds" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", @@ -3024,7 +3110,7 @@ "h": 6, "w": 24, "x": 0, - "y": 25 + "y": 21 }, "id": 45, "options": { @@ -3042,13 +3128,14 @@ "showValue": "never", "stacking": "none", "tooltip": { + "hideZeros": false, "mode": "single", "sort": "none" }, "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "9.5.2", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -3099,7 +3186,7 @@ "h": 4, "w": 24, "x": 0, - "y": 31 + "y": 27 }, "id": 46, "options": { @@ -3107,6 +3194,7 @@ "graphMode": "area", "justifyMode": "auto", "orientation": "auto", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -3114,9 +3202,11 @@ "fields": "", "values": false }, - "textMode": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "9.5.2", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -3124,8 +3214,8 @@ "uid": "prometheus" }, "editorMode": "code", - "expr": "avg(min_over_time(capi_machine_status_condition_last_transition_time{status=\"True\",type=\"BootstrapReady\"}[168h]) - on(name) group_left () (capi_machine_created{cluster_name=~\"${Cluster:pipe}\"} * on (name) group_right avg(capi_machine_info{control_plane_name=\"\"}) by (name)))", - "legendFormat": "until BootstrapReady since creationTimestamp", + "expr": "avg(min_over_time(capi_machine_status_condition_last_transition_time{status=\"True\",type=\"BootstrapConfigReady\"}[168h]) - on(name) group_left () (capi_machine_created{cluster_name=~\"${Cluster:pipe}\"} * on (name) group_right avg(capi_machine_info{control_plane_name=\"\"}) by (name)))", + "legendFormat": "until BootstrapConfigReady since creationTimestamp", "range": true, "refId": "A" }, @@ -3152,6 +3242,19 @@ "legendFormat": "until NodeHealthy since creationTimestamp", "range": true, "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "editorMode": "code", + "expr": "avg(min_over_time(capi_machine_status_condition_last_transition_time{status=\"True\",type=\"NodeReady\"}[168h]) - on(name) group_left () (capi_machine_created{cluster_name=~\"${Cluster:pipe}\"} * on (name) group_right avg(capi_machine_info{control_plane_name=\"\"}) by (name)))", + "hide": false, + "instant": false, + "legendFormat": "until NodeReady since CreationTimestamp", + "range": true, + "refId": "D" } ], "title": "Average time", @@ -3209,7 +3312,7 @@ "h": 7, "w": 24, "x": 0, - "y": 35 + "y": 31 }, "id": 47, "options": { @@ -3226,7 +3329,7 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "9.5.2", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -3235,7 +3338,7 @@ }, "editorMode": "code", "exemplar": false, - "expr": "avg(min_over_time(capi_machine_status_condition_last_transition_time{status=\"True\",type=\"BootstrapReady\"}[168h]) - on(name) group_left () (capi_machine_created{cluster_name=~\"${Cluster:pipe}\"} * on (name) group_right avg(capi_machine_info{control_plane_name=\"\"}) by (name))) by (name)", + "expr": "avg(min_over_time(capi_machine_status_condition_last_transition_time{status=\"True\",type=\"BootstrapConfigReady\"}[168h]) - on(name) group_left () (capi_machine_created{cluster_name=~\"${Cluster:pipe}\"} * on (name) group_right avg(capi_machine_info{control_plane_name=\"\"}) by (name))) by (name)", "format": "table", "instant": true, "legendFormat": "__auto", @@ -3319,8 +3422,8 @@ "name": 0 }, "renameByName": { - "Value": "Creation until BootstrapReady", - "Value #A": "Time until BootstrapReady", + "Value": "Creation until BootstrapConfigReady", + "Value #A": "Time until BootstrapConfigReady", "Value #B": "Time until InfrastructureReady", "Value #C": "Time until NodeHealthy", "Value #D": "Creation Timestamp", @@ -3342,11 +3445,13 @@ "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -3355,6 +3460,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 1, @@ -3393,7 +3499,7 @@ "h": 8, "w": 12, "x": 0, - "y": 42 + "y": 38 }, "id": 19, "options": { @@ -3409,10 +3515,12 @@ "showLegend": true }, "tooltip": { + "hideZeros": false, "mode": "multi", "sort": "asc" } }, + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -3440,11 +3548,13 @@ "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -3453,6 +3563,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 1, @@ -3491,7 +3602,7 @@ "h": 8, "w": 12, "x": 12, - "y": 42 + "y": 38 }, "id": 20, "options": { @@ -3507,10 +3618,12 @@ "showLegend": true }, "tooltip": { + "hideZeros": false, "mode": "multi", "sort": "asc" } }, + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -3552,6 +3665,7 @@ "mode": "thresholds" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", @@ -3597,7 +3711,7 @@ "h": 6, "w": 24, "x": 0, - "y": 14 + "y": 10 }, "id": 48, "options": { @@ -3615,13 +3729,14 @@ "showValue": "never", "stacking": "none", "tooltip": { + "hideZeros": false, "mode": "single", "sort": "none" }, "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "9.5.2", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -3672,7 +3787,7 @@ "h": 4, "w": 24, "x": 0, - "y": 20 + "y": 16 }, "id": 49, "options": { @@ -3680,6 +3795,7 @@ "graphMode": "area", "justifyMode": "auto", "orientation": "auto", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -3687,9 +3803,11 @@ "fields": "", "values": false }, - "textMode": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "9.5.2", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -3758,7 +3876,7 @@ "h": 7, "w": 24, "x": 0, - "y": 24 + "y": 20 }, "id": 50, "options": { @@ -3775,7 +3893,7 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "9.5.2", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -3856,11 +3974,13 @@ "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -3869,6 +3989,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 1, @@ -3907,7 +4028,7 @@ "h": 8, "w": 12, "x": 0, - "y": 31 + "y": 27 }, "id": 21, "options": { @@ -3923,10 +4044,12 @@ "showLegend": true }, "tooltip": { + "hideZeros": false, "mode": "multi", "sort": "asc" } }, + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -3954,11 +4077,13 @@ "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -3967,6 +4092,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 1, @@ -4005,7 +4131,7 @@ "h": 8, "w": 12, "x": 12, - "y": 31 + "y": 27 }, "id": 22, "options": { @@ -4021,10 +4147,12 @@ "showLegend": true }, "tooltip": { + "hideZeros": false, "mode": "multi", "sort": "asc" } }, + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -4066,6 +4194,7 @@ "mode": "thresholds" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", @@ -4111,7 +4240,7 @@ "h": 6, "w": 24, "x": 0, - "y": 15 + "y": 11 }, "id": 51, "options": { @@ -4129,13 +4258,14 @@ "showValue": "never", "stacking": "none", "tooltip": { + "hideZeros": false, "mode": "single", "sort": "none" }, "xTickLabelRotation": 0, "xTickLabelSpacing": 0 }, - "pluginVersion": "9.5.2", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -4186,7 +4316,7 @@ "h": 4, "w": 24, "x": 0, - "y": 21 + "y": 17 }, "id": 52, "options": { @@ -4194,6 +4324,7 @@ "graphMode": "area", "justifyMode": "auto", "orientation": "auto", + "percentChangeColorMode": "standard", "reduceOptions": { "calcs": [ "lastNotNull" @@ -4201,9 +4332,11 @@ "fields": "", "values": false }, - "textMode": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "9.5.2", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -4272,7 +4405,7 @@ "h": 7, "w": 24, "x": 0, - "y": 25 + "y": 21 }, "id": 53, "options": { @@ -4289,7 +4422,7 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "9.5.2", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -4370,11 +4503,13 @@ "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -4383,6 +4518,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 1, @@ -4421,7 +4557,7 @@ "h": 8, "w": 12, "x": 0, - "y": 32 + "y": 28 }, "id": 23, "options": { @@ -4437,10 +4573,12 @@ "showLegend": true }, "tooltip": { + "hideZeros": false, "mode": "multi", "sort": "asc" } }, + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -4468,11 +4606,13 @@ "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -4481,6 +4621,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 1, @@ -4519,7 +4660,7 @@ "h": 8, "w": 12, "x": 12, - "y": 32 + "y": 28 }, "id": 24, "options": { @@ -4535,10 +4676,12 @@ "showLegend": true }, "tooltip": { + "hideZeros": false, "mode": "multi", "sort": "asc" } }, + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -4638,7 +4781,7 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "9.5.2", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -4895,7 +5038,7 @@ "showHeader": true, "sortBy": [] }, - "pluginVersion": "9.5.2", + "pluginVersion": "11.5.2", "targets": [ { "datasource": { @@ -5058,21 +5201,19 @@ "type": "row" } ], + "preload": false, "refresh": "", - "schemaVersion": 38, - "style": "dark", + "schemaVersion": 40, "tags": [], "templating": { "list": [ { "allValue": ".*", "current": { - "selected": false, "text": ".*", "value": ".*" }, "description": "Cluster prefix to filter by", - "hide": 0, "includeAll": true, "label": "Cluster", "multi": true, @@ -5085,8 +5226,6 @@ } ], "query": "", - "queryValue": ".*", - "skipUrlSync": false, "type": "custom" } ] @@ -5099,6 +5238,6 @@ "timezone": "", "title": "Cluster API Performance", "uid": "b2660352-4f3c-4024-837c-393d901e6981", - "version": 11, + "version": 1, "weekStart": "" -} +} \ No newline at end of file