From f2c0782544102eb954e056b2d340fff9a9ff8735 Mon Sep 17 00:00:00 2001 From: woojae-siloai Date: Wed, 10 Dec 2025 13:51:46 +0200 Subject: [PATCH 01/27] refactor: first commit --- root/values_dev.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/root/values_dev.yaml b/root/values_dev.yaml index 02819547..3709678a 100644 --- a/root/values_dev.yaml +++ b/root/values_dev.yaml @@ -1,13 +1,13 @@ clusterForge: repoUrl: "https://github.com/silogen/cluster-forge.git" - targetRevision: # feature-branch name to be provided by developer + targetRevision: 551_lgtm_stack_to_helm_charts # feature-branch name to be provided by developer valuesFile: values_dev.yaml externalValues: enabled: false global: - domain: # to be provided by developer + domain: plat-dev-3.silogen.ai # to be provided by developer enabledApps: - argocd From 68a99a777f4c6335cc13286f66d653f39582b9c4 Mon Sep 17 00:00:00 2001 From: woojae-siloai Date: Wed, 10 Dec 2025 20:21:40 +0200 Subject: [PATCH 02/27] refactor: 1st phase of lgtm helm templates --- sources/otel-lgtm-stack/Chart.yaml | 4 + .../kube-state-metrics-values.yaml | 202 ------------------ .../chrony-node-exporter.yaml | 0 .../collectors.yaml} | 0 .../dashboards-default.yaml} | 6 +- .../dashboards-gpu.yaml} | 2 + .../dashboards-minio.yaml} | 8 +- .../kube-state-metrics.yaml} | 0 .../lgtm-stack.yaml} | 0 .../node-exporter.yaml} | 0 sources/otel-lgtm-stack/values.yaml | 30 +++ 11 files changed, 47 insertions(+), 205 deletions(-) create mode 100644 sources/otel-lgtm-stack/Chart.yaml delete mode 100644 sources/otel-lgtm-stack/kube-state-metrics/kube-state-metrics-values.yaml rename sources/otel-lgtm-stack/{node-exporter => templates}/chrony-node-exporter.yaml (100%) rename sources/otel-lgtm-stack/{otel-collectors/collector-manifests.yaml => templates/collectors.yaml} (100%) rename sources/otel-lgtm-stack/{dashboards/lgtm-default-dashboards.yaml => templates/dashboards-default.yaml} (99%) rename sources/otel-lgtm-stack/{dashboards/lgtm-gpu-metrics-dashboard.yaml => templates/dashboards-gpu.yaml} (99%) rename sources/otel-lgtm-stack/{dashboards/lgtm-minio-dashboard.yaml => templates/dashboards-minio.yaml} (98%) rename sources/otel-lgtm-stack/{kube-state-metrics/kube-state-metrics-manifests.yaml => templates/kube-state-metrics.yaml} (100%) rename sources/otel-lgtm-stack/{otel-lgtm/modified-manifests.yaml => templates/lgtm-stack.yaml} (100%) rename sources/otel-lgtm-stack/{node-exporter/node-exporter-manifests.yaml => templates/node-exporter.yaml} (100%) create mode 100644 sources/otel-lgtm-stack/values.yaml diff --git a/sources/otel-lgtm-stack/Chart.yaml b/sources/otel-lgtm-stack/Chart.yaml new file mode 100644 index 00000000..bf84a496 --- /dev/null +++ b/sources/otel-lgtm-stack/Chart.yaml @@ -0,0 +1,4 @@ +apiVersion: v2 +name: otel-lgtm-stack +description: A Helm chart for OpenTelemetry LGTM (Loki, Grafana, Tempo, Mimir) stack +version: 0.1.0 \ No newline at end of file diff --git a/sources/otel-lgtm-stack/kube-state-metrics/kube-state-metrics-values.yaml b/sources/otel-lgtm-stack/kube-state-metrics/kube-state-metrics-values.yaml deleted file mode 100644 index ac395ac7..00000000 --- a/sources/otel-lgtm-stack/kube-state-metrics/kube-state-metrics-values.yaml +++ /dev/null @@ -1,202 +0,0 @@ -# Default values for kube-state-metrics. -prometheusScrape: true - -replicas: 1 - -# Change the deployment strategy when autosharding is disabled. -# ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy -# The default is "RollingUpdate" as per Kubernetes defaults. -# During a release, 'RollingUpdate' can lead to two running instances for a short period of time while 'Recreate' can create a small gap in data. -# updateStrategy: Recreate - -# Number of old history to retain to allow rollback -# Default Kubernetes value is set to 10 -revisionHistoryLimit: 10 - -# List of additional cli arguments to configure kube-state-metrics -# for example: --enable-gzip-encoding, --log-file, etc. -# all the possible args can be found here: https://github.com/kubernetes/kube-state-metrics/blob/master/docs/cli-arguments.md -extraArgs: [] - -# If false then the user will opt out of automounting API credentials. -automountServiceAccountToken: true - -service: - port: 8080 - # Default to clusterIP for backward compatibility - type: ClusterIP - ipDualStack: - enabled: false - ipFamilies: ["IPv6", "IPv4"] - ipFamilyPolicy: "PreferDualStack" - nodePort: 0 - loadBalancerIP: "" - # Only allow access to the loadBalancerIP from these IPs - loadBalancerSourceRanges: [] - clusterIP: "" - annotations: {} - -## Additional labels to add to all resources -customLabels: {} - # app: kube-state-metrics - -## Override selector labels -selectorOverride: {} - -## set to true to add the release label so scraping of the servicemonitor with kube-prometheus-stack works out of the box -releaseLabel: false - -hostNetwork: false - -rbac: - # If true, create & use RBAC resources - create: true - - # Set to a rolename to use existing role - skipping role creating - but still doing serviceaccount and rolebinding to it, rolename set here. - # useExistingRole: your-existing-role - - # If set to false - Run without Cluteradmin privs needed - ONLY works if namespace is also set (if useExistingRole is set this name is used as ClusterRole or Role to bind to) - useClusterRole: true - - # Add permissions for CustomResources' apiGroups in Role/ClusterRole. Should be used in conjunction with Custom Resource State Metrics configuration - # Example: - # - apiGroups: ["monitoring.coreos.com"] - # resources: ["prometheuses"] - # verbs: ["list", "watch"] - extraRules: [] - - -serviceAccount: - # Specifies whether a ServiceAccount should be created, require rbac true - create: true - # The name of the ServiceAccount to use. - # If not set and create is true, a name is generated using the fullname template - name: - # Reference to one or more secrets to be used when pulling images - # ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ - imagePullSecrets: [] - # ServiceAccount annotations. - # Use case: AWS EKS IAM roles for service accounts - # ref: https://docs.aws.amazon.com/eks/latest/userguide/specify-service-account-role.html - annotations: {} - # If false then the user will opt out of automounting API credentials. - automountServiceAccountToken: true - -# Additional Environment variables -env: {} - # - name: GOMAXPROCS - # valueFrom: - # resourceFieldRef: - # resource: limits.cpu - - -## Specify if a Pod Security Policy for kube-state-metrics must be created -## Ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/ -## -podSecurityPolicy: - enabled: false - annotations: {} - ## Specify pod annotations - ## Ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/#apparmor - ## Ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/#seccomp - ## Ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/#sysctl - ## - # seccomp.security.alpha.kubernetes.io/allowedProfileNames: '*' - # seccomp.security.alpha.kubernetes.io/defaultProfileName: 'docker/default' - # apparmor.security.beta.kubernetes.io/defaultProfileName: 'runtime/default' - - additionalVolumes: [] - -## Configure network policy for kube-state-metrics -networkPolicy: - enabled: false - # networkPolicy.flavor -- Flavor of the network policy to use. - # Can be: - # * kubernetes for networking.k8s.io/v1/NetworkPolicy - # * cilium for cilium.io/v2/CiliumNetworkPolicy - flavor: kubernetes - - ## Configure the cilium network policy kube-apiserver selector - # cilium: - # kubeApiServerSelector: - # - toEntities: - # - kube-apiserver - - # egress: - # - {} - # ingress: - # - {} - # podSelector: - # matchLabels: - # app.kubernetes.io/name: kube-state-metrics - -securityContext: - enabled: true - runAsGroup: 65534 - runAsUser: 65534 - fsGroup: 65534 - runAsNonRoot: true - seccompProfile: - type: RuntimeDefault - -## Specify security settings for a Container -## Allows overrides and additional options compared to (Pod) securityContext -## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container -containerSecurityContext: - readOnlyRootFilesystem: true - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - -# Comma-separated list of additional Kubernetes label keys that will be used in the resource's -# labels metric. By default the metric contains only name and namespace labels. -# To include additional labels, provide a list of resource names in their plural form and Kubernetes -# label keys you would like to allow for them (Example: '=namespaces=[k8s-label-1,k8s-label-n,...],pods=[app],...)'. -# A single '*' can be provided per resource instead to allow any labels, but that has -# severe performance implications (Example: '=pods=[*]'). -metricLabelsAllowlist: [] - # - namespaces=[k8s-label-1,k8s-label-n] - -# Comma-separated list of Kubernetes annotations keys that will be used in the resource' -# labels metric. By default the metric contains only name and namespace labels. -# To include additional annotations provide a list of resource names in their plural form and Kubernetes -# annotation keys you would like to allow for them (Example: '=namespaces=[kubernetes.io/team,...],pods=[kubernetes.io/team],...)'. -# A single '*' can be provided per resource instead to allow any annotations, but that has -# severe performance implications (Example: '=pods=[*]'). -metricAnnotationsAllowList: [] - # - pods=[k8s-annotation-1,k8s-annotation-n] - -# Available collectors for kube-state-metrics. -# By default, all available resources are enabled, comment out to disable. -collectors: - - certificatesigningrequests - - configmaps - - cronjobs - - daemonsets - - deployments - - endpoints - - horizontalpodautoscalers - - ingresses - - jobs - - leases - - limitranges - - mutatingwebhookconfigurations - - namespaces - - networkpolicies - - nodes - - persistentvolumeclaims - - persistentvolumes - - poddisruptionbudgets - - pods - - replicasets - - replicationcontrollers - - resourcequotas - - secrets - - services - - statefulsets - - storageclasses - - validatingwebhookconfigurations - - volumeattachments - - diff --git a/sources/otel-lgtm-stack/node-exporter/chrony-node-exporter.yaml b/sources/otel-lgtm-stack/templates/chrony-node-exporter.yaml similarity index 100% rename from sources/otel-lgtm-stack/node-exporter/chrony-node-exporter.yaml rename to sources/otel-lgtm-stack/templates/chrony-node-exporter.yaml diff --git a/sources/otel-lgtm-stack/otel-collectors/collector-manifests.yaml b/sources/otel-lgtm-stack/templates/collectors.yaml similarity index 100% rename from sources/otel-lgtm-stack/otel-collectors/collector-manifests.yaml rename to sources/otel-lgtm-stack/templates/collectors.yaml diff --git a/sources/otel-lgtm-stack/dashboards/lgtm-default-dashboards.yaml b/sources/otel-lgtm-stack/templates/dashboards-default.yaml similarity index 99% rename from sources/otel-lgtm-stack/dashboards/lgtm-default-dashboards.yaml rename to sources/otel-lgtm-stack/templates/dashboards-default.yaml index a93ea3da..a5cc787c 100644 --- a/sources/otel-lgtm-stack/dashboards/lgtm-default-dashboards.yaml +++ b/sources/otel-lgtm-stack/templates/dashboards-default.yaml @@ -10,7 +10,7 @@ metadata: grafana_folder: "common" data: k8s-nodes-overview.json: |- - { +{{` { "annotations": { "list": [ { @@ -4719,6 +4719,7 @@ data: "version": 1, "weekStart": "" } +`}} --- apiVersion: v1 kind: ConfigMap @@ -4731,7 +4732,7 @@ metadata: grafana_folder: "common" data: k8s-volume-information.json: |- - { +{{` { "__inputs": [ { "name": "DS_OPENSHIFT_PROMETHEUS", @@ -7071,3 +7072,4 @@ data: "timezone": "", "title": "K8s / Storage / Volumes / Cluster" } +`}} diff --git a/sources/otel-lgtm-stack/dashboards/lgtm-gpu-metrics-dashboard.yaml b/sources/otel-lgtm-stack/templates/dashboards-gpu.yaml similarity index 99% rename from sources/otel-lgtm-stack/dashboards/lgtm-gpu-metrics-dashboard.yaml rename to sources/otel-lgtm-stack/templates/dashboards-gpu.yaml index 30afe61c..46b0e68e 100644 --- a/sources/otel-lgtm-stack/dashboards/lgtm-gpu-metrics-dashboard.yaml +++ b/sources/otel-lgtm-stack/templates/dashboards-gpu.yaml @@ -10,6 +10,7 @@ metadata: grafana_folder: "common" data: amd-gpu-dashboard.json: |- +{{` { "annotations": { "list": [ @@ -1102,3 +1103,4 @@ data: "version": 25, "weekStart": "" } +`}} diff --git a/sources/otel-lgtm-stack/dashboards/lgtm-minio-dashboard.yaml b/sources/otel-lgtm-stack/templates/dashboards-minio.yaml similarity index 98% rename from sources/otel-lgtm-stack/dashboards/lgtm-minio-dashboard.yaml rename to sources/otel-lgtm-stack/templates/dashboards-minio.yaml index 9cf0509b..dcdd5690 100644 --- a/sources/otel-lgtm-stack/dashboards/lgtm-minio-dashboard.yaml +++ b/sources/otel-lgtm-stack/templates/dashboards-minio.yaml @@ -1,4 +1,8 @@ --- +{{- /* +This template contains Grafana dashboard JSON with Prometheus template expressions like {{job}}. +We use the 'raw' block to prevent Helm from interpreting these as Helm templates. +*/ -}} apiVersion: v1 kind: ConfigMap metadata: @@ -9,7 +13,8 @@ metadata: annotations: grafana_folder: "common" data: - lgtm-minio-dashboard.json: |- + lgtm-minio-dashboard.json: | +{{` { "annotations": { "list": [ @@ -655,3 +660,4 @@ data: "uid": "minioSimple", "version": 5 } +`}} diff --git a/sources/otel-lgtm-stack/kube-state-metrics/kube-state-metrics-manifests.yaml b/sources/otel-lgtm-stack/templates/kube-state-metrics.yaml similarity index 100% rename from sources/otel-lgtm-stack/kube-state-metrics/kube-state-metrics-manifests.yaml rename to sources/otel-lgtm-stack/templates/kube-state-metrics.yaml diff --git a/sources/otel-lgtm-stack/otel-lgtm/modified-manifests.yaml b/sources/otel-lgtm-stack/templates/lgtm-stack.yaml similarity index 100% rename from sources/otel-lgtm-stack/otel-lgtm/modified-manifests.yaml rename to sources/otel-lgtm-stack/templates/lgtm-stack.yaml diff --git a/sources/otel-lgtm-stack/node-exporter/node-exporter-manifests.yaml b/sources/otel-lgtm-stack/templates/node-exporter.yaml similarity index 100% rename from sources/otel-lgtm-stack/node-exporter/node-exporter-manifests.yaml rename to sources/otel-lgtm-stack/templates/node-exporter.yaml diff --git a/sources/otel-lgtm-stack/values.yaml b/sources/otel-lgtm-stack/values.yaml new file mode 100644 index 00000000..02a41353 --- /dev/null +++ b/sources/otel-lgtm-stack/values.yaml @@ -0,0 +1,30 @@ +# OpenTelemetry LGTM Stack Configuration +# Basic values.yaml for Phase 0 - minimal structure + +# Namespace configuration +namespace: otel-lgtm + +# LGTM Stack configuration +lgtm: + # Basic configuration placeholder + enabled: true + +# Collectors configuration +collectors: + # Basic configuration placeholder + enabled: true + +# Dashboards configuration +dashboards: + # Basic configuration placeholder + enabled: true + +# Node exporter configuration +nodeExporter: + # Basic configuration placeholder + enabled: true + +# Kube state metrics configuration +kubeStateMetrics: + # Basic configuration placeholder + enabled: true \ No newline at end of file From 97cadd1221df5951769909f16453341c0a50bb04 Mon Sep 17 00:00:00 2001 From: woojae-siloai Date: Wed, 10 Dec 2025 20:51:20 +0200 Subject: [PATCH 03/27] fix: 1st phase of lgtm helm templates --- sources/otel-lgtm-stack/templates/dashboards-default.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sources/otel-lgtm-stack/templates/dashboards-default.yaml b/sources/otel-lgtm-stack/templates/dashboards-default.yaml index a5cc787c..a7ee0a32 100644 --- a/sources/otel-lgtm-stack/templates/dashboards-default.yaml +++ b/sources/otel-lgtm-stack/templates/dashboards-default.yaml @@ -10,7 +10,8 @@ metadata: grafana_folder: "common" data: k8s-nodes-overview.json: |- -{{` { +{{` + { "annotations": { "list": [ { @@ -4732,7 +4733,8 @@ metadata: grafana_folder: "common" data: k8s-volume-information.json: |- -{{` { +{{` + { "__inputs": [ { "name": "DS_OPENSHIFT_PROMETHEUS", From 4f56bbac77542ddfd3ba72f106905a08f0b0be24 Mon Sep 17 00:00:00 2001 From: woojae-siloai Date: Wed, 10 Dec 2025 21:09:14 +0200 Subject: [PATCH 04/27] fix: 1st phase of lgtm helm templates --- sources/otel-lgtm-stack/dashboards.yaml | 5 + .../templates/dashboards-default.yaml | 7077 ----------------- .../templates/dashboards-gpu.yaml | 1106 --- .../templates/dashboards-minio.yaml | 663 -- 4 files changed, 5 insertions(+), 8846 deletions(-) create mode 100644 sources/otel-lgtm-stack/dashboards.yaml delete mode 100644 sources/otel-lgtm-stack/templates/dashboards-default.yaml delete mode 100644 sources/otel-lgtm-stack/templates/dashboards-gpu.yaml delete mode 100644 sources/otel-lgtm-stack/templates/dashboards-minio.yaml diff --git a/sources/otel-lgtm-stack/dashboards.yaml b/sources/otel-lgtm-stack/dashboards.yaml new file mode 100644 index 00000000..951fccf5 --- /dev/null +++ b/sources/otel-lgtm-stack/dashboards.yaml @@ -0,0 +1,5 @@ +# This file contains dashboard ConfigMaps with Prometheus template expressions +# It's kept outside templates/ to avoid Helm templating conflicts +# ArgoCD can deploy this file directly alongside the Helm chart + +# This approach will be used if the raw block method doesn't work with ArgoCD \ No newline at end of file diff --git a/sources/otel-lgtm-stack/templates/dashboards-default.yaml b/sources/otel-lgtm-stack/templates/dashboards-default.yaml deleted file mode 100644 index a7ee0a32..00000000 --- a/sources/otel-lgtm-stack/templates/dashboards-default.yaml +++ /dev/null @@ -1,7077 +0,0 @@ ---- -apiVersion: v1 -kind: ConfigMap -metadata: - name: lgtm-k8s-nodes-overview - namespace: otel-lgtm-stack - labels: - grafana_dashboard: "1" - annotations: - grafana_folder: "common" -data: - k8s-nodes-overview.json: |- -{{` - { - "annotations": { - "list": [ - { - "$$hashKey": "object:247", - "builtIn": 1, - "datasource": { - "type": "datasource", - "uid": "grafana" - }, - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "target": { - "limit": 100, - "matchAny": false, - "tags": [], - "type": "dashboard" - }, - "type": "dashboard" - } - ] - }, - "description": "【 resource overview 】2021.10.10 detail ,kubernetes Node information details ! outflow K8S Node resource overview 、 Network bandwidth per second 、Pod Resource details K8S Network overview , Optimizing important metrics display 。https://github.com/starsliao/Prometheus", - "editable": true, - "fiscalYearStartMonth": 0, - "gnetId": 15661, - "graphTooltip": 0, - "id": 1, - "links": [ - { - "icon": "bolt", - "tags": [], - "targetBlank": true, - "title": "Update", - "tooltip": " Update current dashboard ", - "type": "link", - "url": "https://grafana.com/dashboards/13105" - }, - { - "$$hashKey": "object:831", - "icon": "question", - "tags": [ - "node_exporter" - ], - "targetBlank": true, - "title": "GitHub", - "tooltip": " Overall memory usage ", - "type": "link", - "url": "https://github.com/starsliao/Prometheus" - }, - { - "$$hashKey": "object:1091", - "asDropdown": true, - "icon": "external link", - "tags": [], - "targetBlank": true, - "type": "dashboards" - } - ], - "panels": [ - { - "collapsed": false, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 0 - }, - "id": 54, - "panels": [], - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "refId": "A" - } - ], - "title": " Node Storage Information : Number of cores used :【$Node】", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "decimals": 1, - "mappings": [], - "max": 1, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "rgba(50, 172, 45, 0.97)", - "value": null - }, - { - "color": "rgba(237, 129, 40, 0.89)", - "value": 0.8 - }, - { - "color": "rgba(245, 54, 54, 0.9)", - "value": 0.99 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 4, - "x": 0, - "y": 1 - }, - "id": 44, - "options": { - "displayMode": "basic", - "maxVizHeight": 300, - "minVizHeight": 16, - "minVizWidth": 8, - "namePlacement": "auto", - "orientation": "vertical", - "reduceOptions": { - "calcs": [ - "last" - ], - "fields": "", - "values": false - }, - "showUnfilled": true, - "sizing": "auto", - "text": {}, - "valueMode": "color" - }, - "pluginVersion": "11.1.4", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum(container_memory_working_set_bytes{origin_prometheus=~\"$origin_prometheus\",container!=\"\",node=~\"^$Node$\"}) / sum(kube_node_status_allocatable{origin_prometheus=~\"$origin_prometheus\",resource=\"memory\", unit=\"byte\", node=~\"^$Node$\"})", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": " Memory Limit Rate ", - "refId": "C" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum(kube_pod_container_resource_requests{origin_prometheus=~\"$origin_prometheus\",resource=\"memory\", unit=\"byte\",node=~\"^$Node$\"}) / sum(kube_node_status_allocatable{origin_prometheus=~\"$origin_prometheus\",resource=\"memory\", unit=\"byte\", node=~\"^$Node$\"})", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": " Total memory usage ", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum(kube_pod_container_resource_limits{origin_prometheus=~\"$origin_prometheus\",resource=\"memory\", unit=\"byte\",node=~\"^$Node$\"}) / sum(kube_node_status_allocatable{origin_prometheus=~\"$origin_prometheus\",resource=\"memory\", unit=\"byte\", node=~\"^$Node$\"})", - "hide": false, - "instant": true, - "interval": "10s", - "intervalFactor": 1, - "legendFormat": " Total Memory Demand ", - "refId": "B", - "step": 10 - } - ], - "title": " Overall core usage ", - "type": "bargauge" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "decimals": 1, - "mappings": [], - "max": 1, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "rgba(50, 172, 45, 0.97)", - "value": null - }, - { - "color": "rgba(237, 129, 40, 0.89)", - "value": 0.8 - }, - { - "color": "rgba(245, 54, 54, 0.9)", - "value": 0.99 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 4, - "x": 4, - "y": 1 - }, - "id": 45, - "options": { - "displayMode": "basic", - "maxVizHeight": 300, - "minVizHeight": 16, - "minVizWidth": 8, - "namePlacement": "auto", - "orientation": "vertical", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showUnfilled": true, - "sizing": "auto", - "text": {}, - "valueMode": "color" - }, - "pluginVersion": "11.1.4", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum (irate(container_cpu_usage_seconds_total{origin_prometheus=~\"$origin_prometheus\",container!=\"\",node=~\"^$Node$\"}[2m])) / sum(kube_node_status_allocatable{origin_prometheus=~\"$origin_prometheus\",resource=\"cpu\", unit=\"core\", node=~\"^$Node$\"})", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "CPU Request Rate ", - "refId": "C" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum(kube_pod_container_resource_requests{origin_prometheus=~\"$origin_prometheus\",resource=\"cpu\", unit=\"core\",node=~\"^$Node$\"}) / sum(kube_node_status_allocatable{origin_prometheus=~\"$origin_prometheus\",resource=\"cpu\", unit=\"core\", node=~\"^$Node$\"})", - "instant": true, - "interval": "", - "legendFormat": "CPU total memory ", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum(kube_pod_container_resource_limits{origin_prometheus=~\"$origin_prometheus\",resource=\"cpu\", unit=\"core\",node=~\"^$Node$\"}) / sum(kube_node_status_allocatable{origin_prometheus=~\"$origin_prometheus\",resource=\"cpu\", unit=\"core\", node=~\"^$Node$\"})", - "instant": true, - "interval": "", - "legendFormat": "CPU Nodes ", - "refId": "B" - } - ], - "title": " container CPU proportion ", - "type": "bargauge" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "description": " Memory Request Rate , container POD core , container POD disk ", - "fieldConfig": { - "defaults": { - "mappings": [], - "max": 1000, - "min": 1, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "#EAB839", - "value": 1000 - }, - { - "color": "red", - "value": 2000 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 3, - "x": 8, - "y": 1 - }, - "id": 74, - "options": { - "displayMode": "basic", - "maxVizHeight": 300, - "minVizHeight": 16, - "minVizWidth": 8, - "namePlacement": "auto", - "orientation": "vertical", - "reduceOptions": { - "calcs": [ - "last" - ], - "fields": "", - "values": false - }, - "showUnfilled": true, - "sizing": "auto", - "text": {}, - "valueMode": "color" - }, - "pluginVersion": "11.1.4", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": "count(kube_node_info{origin_prometheus=~\"$origin_prometheus\"})", - "instant": true, - "interval": "", - "legendFormat": " Total Cores ", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": "count(kube_pod_info{origin_prometheus=~\"$origin_prometheus\",created_by_kind!~\"|Job\",node=~\"^$Node$\"})", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "Pod core ", - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum(kube_node_status_allocatable{origin_prometheus=~\"$origin_prometheus\",resource=\"pods\", unit=\"integer\",node=~\"^$Node$\"})", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": " disk Pod", - "refId": "C" - } - ], - "title": " microservice Pod", - "type": "bargauge" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "custom": { - "align": "center", - "cellOptions": { - "type": "auto" - }, - "filterable": false, - "inspect": false - }, - "mappings": [], - "noValue": "0", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": " use " - }, - "properties": [ - { - "id": "custom.width", - "value": 8 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Pod" - }, - "properties": [ - { - "id": "custom.width", - "value": 21 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "SVC" - }, - "properties": [ - { - "id": "custom.width", - "value": 7 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": " usage " - }, - "properties": [ - { - "id": "custom.width", - "value": 4 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": " memory " - }, - "properties": [ - { - "id": "custom.width", - "value": 16 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": " request " - }, - "properties": [ - { - "id": "custom.width", - "value": 33 - } - ] - } - ] - }, - "gridPos": { - "h": 8, - "w": 5, - "x": 11, - "y": 1 - }, - "id": 51, - "options": { - "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [ - { - "desc": true, - "displayName": " use " - } - ] - }, - "pluginVersion": "11.1.4", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": "count(kube_pod_info{origin_prometheus=~\"$origin_prometheus\",node=~\"^$Node$\"}) by (namespace)", - "format": "table", - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": "count(kube_service_info{origin_prometheus=~\"$origin_prometheus\"}) by(namespace)", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "C" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": "count(count(kube_pod_container_info{origin_prometheus=~\"$origin_prometheus\"}) by(container,namespace))by(namespace)", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "D" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": "count(kube_configmap_info{origin_prometheus=~\"$origin_prometheus\"}) by(namespace)", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "configmap", - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": "count(kube_secret_info{origin_prometheus=~\"$origin_prometheus\"}) by(namespace)", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "secret", - "refId": "E" - } - ], - "title": " average memory ", - "transformations": [ - { - "id": "seriesToColumns", - "options": { - "byField": "namespace" - } - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Time 1": true, - "Time 2": true, - "Time 3": true, - "Time 4": true, - "Time 5": true - }, - "indexByName": { - "Time 1": 2, - "Time 2": 4, - "Time 3": 6, - "Value #A": 3, - "Value #C": 5, - "Value #D": 1, - "namespace": 0 - }, - "renameByName": { - "Time 1": "", - "Time 2": "", - "Value #A": "Pod", - "Value #B": " memory ", - "Value #C": "SVC", - "Value #D": " usage ", - "Value #E": " request ", - "namespace": " use " - } - } - } - ], - "type": "table" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 10, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "links": [], - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "binbps" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 8, - "x": 16, - "y": 1 - }, - "id": 32, - "options": { - "legend": { - "calcs": [ - "mean", - "lastNotNull" - ], - "displayMode": "list", - "placement": "bottom", - "showLegend": false, - "width": 200 - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "7.5.11", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum (rate(container_network_receive_bytes_total{origin_prometheus=~\"$origin_prometheus\",node=~\"^$Node$\",namespace=~\"$NameSpace\"}[2m]))*8", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": " inflow ", - "metric": "network", - "refId": "A", - "step": 10 - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum (rate(container_network_transmit_bytes_total{origin_prometheus=~\"$origin_prometheus\",node=~\"^$Node$\",namespace=~\"$NameSpace\"}[2m]))*8", - "instant": false, - "interval": "", - "intervalFactor": 1, - "legendFormat": " status ", - "metric": "network", - "refId": "B", - "step": 10 - } - ], - "title": "$NameSpace: selected nodes ( Associating nodes and namespaces )", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "decimals": 1, - "mappings": [], - "max": 1000000000000, - "min": 1, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "#EAB839", - "value": 800000000000 - }, - { - "color": "red", - "value": 1000000000000 - } - ] - }, - "unit": "bytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 4, - "x": 0, - "y": 5 - }, - "id": 71, - "options": { - "displayMode": "basic", - "maxVizHeight": 300, - "minVizHeight": 16, - "minVizWidth": 8, - "namePlacement": "auto", - "orientation": "vertical", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showUnfilled": true, - "sizing": "auto", - "text": {}, - "valueMode": "color" - }, - "pluginVersion": "11.1.4", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum(kube_node_status_allocatable{origin_prometheus=~\"$origin_prometheus\",resource=\"memory\", unit=\"byte\", node=~\"^$Node$\"})", - "instant": true, - "interval": "", - "legendFormat": " Requests ", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum (container_memory_working_set_bytes{origin_prometheus=~\"$origin_prometheus\",container!=\"\",node=~\"^$Node$\"})", - "instant": true, - "interval": "", - "legendFormat": " Nodes ", - "refId": "C" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum(kube_pod_container_resource_requests{origin_prometheus=~\"$origin_prometheus\",resource=\"memory\", unit=\"byte\",node=~\"^$Node$\"})", - "instant": true, - "interval": "", - "legendFormat": " total disk ", - "refId": "D" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum(kube_pod_container_resource_limits{origin_prometheus=~\"$origin_prometheus\",resource=\"memory\", unit=\"byte\",node=~\"^$Node$\"})", - "instant": true, - "interval": "", - "legendFormat": " limit rate ", - "refId": "B" - } - ], - "title": " Resource comprehensive display ", - "type": "bargauge" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "decimals": 1, - "mappings": [], - "max": 500, - "min": 1, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "#EAB839", - "value": 500 - }, - { - "color": "red", - "value": 1000 - } - ] - }, - "unit": "locale" - }, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 4, - "x": 4, - "y": 5 - }, - "id": 72, - "options": { - "displayMode": "basic", - "maxVizHeight": 300, - "minVizHeight": 16, - "minVizWidth": 8, - "namePlacement": "auto", - "orientation": "vertical", - "reduceOptions": { - "calcs": [ - "last" - ], - "fields": "", - "values": false - }, - "showUnfilled": true, - "sizing": "auto", - "text": {}, - "valueMode": "color" - }, - "pluginVersion": "11.1.4", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum(kube_node_status_allocatable{origin_prometheus=~\"$origin_prometheus\",resource=\"cpu\", unit=\"core\", node=~\"^$Node$\"})", - "instant": true, - "interval": "", - "legendFormat": " usage ", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum (irate(container_cpu_usage_seconds_total{origin_prometheus=~\"$origin_prometheus\",id=\"/\",node=~\"^$Node$\"}[2m]))", - "instant": true, - "interval": "", - "legendFormat": " Nodes ", - "refId": "C" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum(kube_pod_container_resource_requests{origin_prometheus=~\"$origin_prometheus\",resource=\"cpu\", unit=\"core\",node=~\"^$Node$\"})", - "instant": true, - "interval": "", - "legendFormat": " total disk ", - "refId": "D" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum(kube_pod_container_resource_limits{origin_prometheus=~\"$origin_prometheus\",resource=\"cpu\", unit=\"core\",node=~\"^$Node$\"})", - "instant": true, - "interval": "", - "legendFormat": " limit rate ", - "refId": "B" - } - ], - "title": " container CPU node ", - "type": "bargauge" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "decimals": 2, - "mappings": [], - "max": 8000000000000, - "min": 1, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "#EAB839", - "value": 5000000000000 - }, - { - "color": "red", - "value": 10000000000000 - } - ] - }, - "unit": "bytes" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": " Request Rate " - }, - "properties": [ - { - "id": "unit", - "value": "percentunit" - }, - { - "id": "max", - "value": 1 - }, - { - "id": "min", - "value": 0 - }, - { - "id": "thresholds", - "value": { - "mode": "percentage", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "orange", - "value": 80 - }, - { - "color": "red", - "value": 90 - } - ] - } - } - ] - } - ] - }, - "gridPos": { - "h": 4, - "w": 3, - "x": 8, - "y": 5 - }, - "id": 73, - "options": { - "displayMode": "basic", - "maxVizHeight": 300, - "minVizHeight": 16, - "minVizWidth": 8, - "namePlacement": "auto", - "orientation": "vertical", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showUnfilled": true, - "sizing": "auto", - "text": {}, - "valueMode": "color" - }, - "pluginVersion": "11.1.4", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": "sum (container_fs_usage_bytes{origin_prometheus=~\"$origin_prometheus\",device=~\"^/dev/.*$\",id=\"/\",node=~\"^$Node$\"}) / sum (container_fs_limit_bytes{origin_prometheus=~\"$origin_prometheus\",device=~\"^/dev/.*$\",id=\"/\",node=~\"^$Node$\"})", - "instant": true, - "interval": "", - "legendFormat": " Request Rate ", - "refId": "C" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": "sum (container_fs_usage_bytes{origin_prometheus=~\"$origin_prometheus\",device=~\"^/dev/.*$\",id=\"/\",node=~\"^$Node$\"})", - "instant": true, - "interval": "", - "legendFormat": " Nodes ", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": "sum (container_fs_limit_bytes{origin_prometheus=~\"$origin_prometheus\",device=~\"^/dev/.*$\",id=\"/\",node=~\"^$Node$\"})", - "instant": true, - "interval": "", - "legendFormat": " name ", - "refId": "B" - } - ], - "title": " Node memory ratio ", - "type": "bargauge" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "center", - "cellOptions": { - "type": "auto" - }, - "filterable": false, - "inspect": false - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Pod" - }, - "properties": [ - { - "id": "custom.width", - "value": 51 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": " include " - }, - "properties": [ - { - "id": "custom.width", - "value": 51 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "CPU limit ( number )" - }, - "properties": [ - { - "id": "custom.width", - "value": 63 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "CPU total " - }, - "properties": [ - { - "id": "custom.width", - "value": 54 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "CPU total " - }, - "properties": [ - { - "id": "custom.width", - "value": 58 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": " memory request " - }, - "properties": [ - { - "id": "custom.width", - "value": 78 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": " Total Memory " - }, - "properties": [ - { - "id": "custom.width", - "value": 76 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": " Network bandwidth " - }, - "properties": [ - { - "id": "custom.width", - "value": 83 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": " English version " - }, - "properties": [ - { - "id": "custom.width", - "value": 85 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": " container name " - }, - "properties": [ - { - "id": "custom.width", - "value": 84 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": " config %" - }, - "properties": [ - { - "id": "custom.width", - "value": 92 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": " Memory Usage %" - }, - "properties": [ - { - "id": "custom.width", - "value": 63 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": " Network bandwidth %" - }, - "properties": [ - { - "id": "custom.width", - "value": 59 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "CPU limit %" - }, - "properties": [ - { - "id": "custom.width", - "value": 81 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "CPU max %" - }, - "properties": [ - { - "id": "custom.width", - "value": 77 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "CPU total %" - }, - "properties": [ - { - "id": "custom.width", - "value": 59 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": " English version %" - }, - "properties": [ - { - "id": "custom.width", - "value": 72 - } - ] - }, - { - "matcher": { - "id": "byRegexp", - "options": ".*%" - }, - "properties": [ - { - "id": "unit", - "value": "percentunit" - }, - { - "id": "thresholds", - "value": { - "mode": "percentage", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "orange", - "value": 80 - }, - { - "color": "red", - "value": 90 - } - ] - } - }, - { - "id": "custom.cellOptions", - "value": { - "mode": "gradient", - "type": "color-background" - } - } - ] - }, - { - "matcher": { - "id": "byRegexp", - "options": "( memory request | Total Memory | Memory Usage | Network bandwidth | English version | container name )" - }, - "properties": [ - { - "id": "unit", - "value": "bytes" - }, - { - "id": "decimals", - "value": 2 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": " container " - }, - "properties": [ - { - "id": "custom.width", - "value": 96 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": " memory request %" - }, - "properties": [ - { - "id": "custom.width", - "value": 67 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": " Memory Usage " - }, - "properties": [ - { - "id": "custom.width", - "value": 75 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "CPU max " - }, - "properties": [ - { - "id": "custom.width", - "value": 58 - } - ] - }, - { - "matcher": { - "id": "byRegexp", - "options": "(CPU total | Total Memory | container name |Pod disk )" - }, - "properties": [ - { - "id": "custom.cellOptions", - "value": { - "mode": "gradient", - "type": "color-background" - } - }, - { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "blue", - "value": null - } - ] - } - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Pod disk " - }, - "properties": [ - { - "id": "custom.width", - "value": 54 - } - ] - }, - { - "matcher": { - "id": "byRegexp", - "options": "CPU limit \\( number \\)$| memory request $| English version $" - }, - "properties": [ - { - "id": "custom.cellOptions", - "value": { - "type": "color-text" - } - }, - { - "id": "color", - "value": { - "fixedColor": "orange", - "mode": "fixed" - } - } - ] - } - ] - }, - "gridPos": { - "h": 8, - "w": 24, - "x": 0, - "y": 9 - }, - "id": 52, - "options": { - "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [ - { - "desc": true, - "displayName": " English version %" - } - ] - }, - "pluginVersion": "11.1.4", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": "count(kube_pod_info{origin_prometheus=~\"$origin_prometheus\",created_by_kind!~\"|Job\",node=~\"^$Node$\"}) by (node)", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "pod core ", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "kube_node_status_condition{origin_prometheus=~\"$origin_prometheus\",status=\"true\",node=~\"^$Node$\"} == 1", - "format": "table", - "instant": true, - "interval": "", - "legendFormat": " include ", - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum (irate(container_cpu_usage_seconds_total{origin_prometheus=~\"$origin_prometheus\",container!=\"\",node=~\"^$Node$\"}[2m])) by (node)", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "I" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "kube_node_status_allocatable{origin_prometheus=~\"$origin_prometheus\",resource=\"cpu\", unit=\"core\", node=~\"^$Node$\"} - 0", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "C" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum(kube_pod_container_resource_requests{origin_prometheus=~\"$origin_prometheus\",resource=\"cpu\", unit=\"core\",node=~\"^$Node$\"}) by (node)", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "E" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum(kube_pod_container_resource_limits{origin_prometheus=~\"$origin_prometheus\",resource=\"cpu\", unit=\"core\",node=~\"^$Node$\"}) by (node)", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "F" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum (container_memory_working_set_bytes{origin_prometheus=~\"$origin_prometheus\",container!=\"\",node=~\"^$Node$\"}) by (node)", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "J" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum(kube_node_status_allocatable{origin_prometheus=~\"$origin_prometheus\",resource=\"memory\", unit=\"byte\", node=~\"^$Node$\"}) by (node) - 0", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "D" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum(kube_pod_container_resource_requests{origin_prometheus=~\"$origin_prometheus\",resource=\"memory\", unit=\"byte\",node=~\"^$Node$\"}) by (node)", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "G" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum(kube_pod_container_resource_limits{origin_prometheus=~\"$origin_prometheus\",resource=\"memory\", unit=\"byte\",node=~\"^$Node$\"}) by (node)", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "H" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": "sum (container_fs_usage_bytes{origin_prometheus=~\"$origin_prometheus\",device=~\"^/dev/.*$\",id=\"/\",node=~\"^$Node$\"}) by (node)", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "K" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum (container_fs_limit_bytes{origin_prometheus=~\"$origin_prometheus\",device=~\"^/dev/.*$\",id=\"/\",node=~\"^$Node$\"}) by (node)", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "L" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum (container_memory_working_set_bytes{origin_prometheus=~\"$origin_prometheus\",container!=\"\",node=~\"^$Node$\"})by (node) / sum(kube_node_status_allocatable{origin_prometheus=~\"$origin_prometheus\",resource=\"memory\", unit=\"byte\", node=~\"^$Node$\"})by (node)", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": " memory request %", - "refId": "M" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum(kube_pod_container_resource_requests{origin_prometheus=~\"$origin_prometheus\",resource=\"memory\", unit=\"byte\",node=~\"^$Node$\"})by (node) / sum(kube_node_status_allocatable{origin_prometheus=~\"$origin_prometheus\",resource=\"memory\", unit=\"byte\", node=~\"^$Node$\"})by (node)", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": " Memory Usage %", - "refId": "N" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum(kube_pod_container_resource_limits{origin_prometheus=~\"$origin_prometheus\",resource=\"memory\", unit=\"byte\",node=~\"^$Node$\"})by (node) / sum(kube_node_status_allocatable{origin_prometheus=~\"$origin_prometheus\",resource=\"memory\", unit=\"byte\", node=~\"^$Node$\"})by (node)", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": " Network bandwidth %", - "refId": "O" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum (irate(container_cpu_usage_seconds_total{origin_prometheus=~\"$origin_prometheus\",container!=\"\",node=~\"^$Node$\"}[2m]))by (node) / sum(kube_node_status_allocatable{origin_prometheus=~\"$origin_prometheus\",resource=\"cpu\", unit=\"core\", node=~\"^$Node$\"})by (node)", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "CPU limit %", - "refId": "P" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum(kube_pod_container_resource_requests{origin_prometheus=~\"$origin_prometheus\",resource=\"cpu\", unit=\"core\",node=~\"^$Node$\"})by (node) / sum(kube_node_status_allocatable{origin_prometheus=~\"$origin_prometheus\",resource=\"cpu\", unit=\"core\", node=~\"^$Node$\"})by (node)", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "CPU max %", - "refId": "Q" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum(kube_pod_container_resource_limits{origin_prometheus=~\"$origin_prometheus\",resource=\"cpu\", unit=\"core\",node=~\"^$Node$\"})by (node) / sum(kube_node_status_allocatable{origin_prometheus=~\"$origin_prometheus\",resource=\"cpu\", unit=\"core\", node=~\"^$Node$\"})by (node)", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": " Network bandwidth %", - "refId": "R" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": "sum (container_fs_usage_bytes{origin_prometheus=~\"$origin_prometheus\",device=~\"^/dev/.*$\",id=\"/\",node=~\"^$Node$\"})by (node) / sum (container_fs_limit_bytes{origin_prometheus=~\"$origin_prometheus\",device=~\"^/dev/.*$\",id=\"/\",node=~\"^$Node$\"})by (node)", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": " English version %", - "refId": "S" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum(kube_node_status_allocatable{origin_prometheus=~\"$origin_prometheus\",resource=\"pods\", unit=\"integer\",node=~\"^$Node$\"})by (node)", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "Pod disk ", - "refId": "T" - } - ], - "title": "$Node: Node memory details ", - "transformations": [ - { - "id": "merge", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Time": true, - "Time 1": true, - "Time 10": true, - "Time 11": true, - "Time 12": true, - "Time 13": true, - "Time 14": true, - "Time 15": true, - "Time 16": true, - "Time 17": true, - "Time 18": true, - "Time 19": true, - "Time 2": true, - "Time 20": true, - "Time 3": true, - "Time 4": true, - "Time 5": true, - "Time 6": true, - "Time 7": true, - "Time 8": true, - "Time 9": true, - "Value #B": true, - "Value #E": false, - "Value #F": false, - "__name__": true, - "app_kubernetes_io_name": true, - "app_kubernetes_io_name 1": true, - "app_kubernetes_io_name 2": true, - "app_kubernetes_io_name 3": true, - "app_kubernetes_io_version": true, - "app_kubernetes_io_version 1": true, - "app_kubernetes_io_version 2": true, - "app_kubernetes_io_version 3": true, - "condition": false, - "instance": true, - "instance 1": true, - "instance 2": true, - "instance 3": true, - "job": true, - "job 1": true, - "job 2": true, - "job 3": true, - "k8s_namespace": true, - "k8s_namespace 1": true, - "k8s_namespace 2": true, - "k8s_namespace 3": true, - "k8s_sname": true, - "k8s_sname 1": true, - "k8s_sname 2": true, - "k8s_sname 3": true, - "origin_prometheus": true, - "origin_prometheus 1": true, - "origin_prometheus 2": true, - "origin_prometheus 3": true, - "resource": true, - "status": true, - "unit": true - }, - "indexByName": { - "Time": 26, - "Value #A": 3, - "Value #B": 6, - "Value #C": 7, - "Value #D": 14, - "Value #E": 10, - "Value #F": 12, - "Value #G": 17, - "Value #H": 19, - "Value #I": 8, - "Value #J": 15, - "Value #K": 22, - "Value #L": 21, - "Value #M": 16, - "Value #N": 18, - "Value #O": 20, - "Value #P": 9, - "Value #Q": 11, - "Value #R": 13, - "Value #S": 23, - "Value #T": 2, - "__name__": 4, - "app_kubernetes_io_name": 27, - "app_kubernetes_io_version": 28, - "condition": 1, - "instance": 29, - "job": 30, - "k8s_namespace": 31, - "k8s_sname": 32, - "node": 0, - "origin_prometheus": 33, - "resource": 24, - "status": 5, - "unit": 25 - }, - "renameByName": { - "Value #A": "Pod", - "Value #C": "CPU total ", - "Value #D": " Total Memory ", - "Value #E": "CPU max ", - "Value #F": "CPU total ", - "Value #G": " Memory Usage ", - "Value #H": " Network bandwidth ", - "Value #I": "CPU limit ( number )", - "Value #J": " memory request ", - "Value #K": " English version ", - "Value #L": " container name ", - "Value #M": " memory request %", - "Value #N": " Memory Usage %", - "Value #O": " Network bandwidth %", - "Value #P": "CPU limit %", - "Value #Q": "CPU max %", - "Value #R": "CPU total %", - "Value #S": " English version %", - "Value #T": "Pod disk ", - "condition": " include ", - "node": " container " - } - } - }, - { - "id": "filterFieldsByName", - "options": {} - } - ], - "type": "table" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "percent" - }, - "overrides": [ - { - "matcher": { - "id": "byRegexp", - "options": "/ usage .*/" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "#C4162A", - "mode": "fixed" - } - } - ] - } - ] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 0, - "y": 17 - }, - "id": 75, - "options": { - "legend": { - "calcs": [ - "mean", - "lastNotNull", - "max" - ], - "displayMode": "table", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "7.5.11", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum (irate(container_cpu_usage_seconds_total{origin_prometheus=~\"$origin_prometheus\",container!=\"\",node=~\"^$Node$\"}[2m]))by (node) / sum(kube_node_status_allocatable{origin_prometheus=~\"$origin_prometheus\",resource=\"cpu\", unit=\"core\", node=~\"^$Node$\"})by (node)*100", - "format": "time_series", - "hide": false, - "instant": false, - "interval": "", - "legendFormat": "{{node}}", - "refId": "I" - } - ], - "title": "$Node: container CPU receive ", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "percent" - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 8, - "y": 17 - }, - "id": 76, - "options": { - "legend": { - "calcs": [ - "mean", - "lastNotNull", - "max" - ], - "displayMode": "table", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "7.5.11", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum (container_memory_working_set_bytes{origin_prometheus=~\"$origin_prometheus\",container!=\"\",node=~\"^$Node$\"})by (node) / sum(kube_node_status_allocatable{origin_prometheus=~\"$origin_prometheus\",resource=\"memory\", unit=\"byte\", node=~\"^$Node$\"})by (node)*100", - "format": "time_series", - "hide": false, - "instant": false, - "interval": "", - "legendFormat": "{{node}}", - "refId": "I" - } - ], - "title": "$Node: Node Memory Information ", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "links": [], - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "binbps" - }, - "overrides": [] - }, - "gridPos": { - "h": 10, - "w": 8, - "x": 16, - "y": 17 - }, - "id": 78, - "options": { - "legend": { - "calcs": [ - "mean", - "lastNotNull", - "max" - ], - "displayMode": "table", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "desc" - } - }, - "pluginVersion": "7.5.11", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum (irate(container_network_receive_bytes_total{origin_prometheus=~\"$origin_prometheus\",node=~\"^$Node$\"}[2m]))by (node) *8", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": " update :{{node}}", - "metric": "network", - "refId": "A", - "step": 10 - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum (irate(container_network_transmit_bytes_total{origin_prometheus=~\"$origin_prometheus\",node=~\"^$Node$\"}[2m]))by (node) *8", - "instant": false, - "interval": "", - "intervalFactor": 1, - "legendFormat": " restart :{{node}}", - "metric": "network", - "refId": "B", - "step": 10 - } - ], - "title": "$Node: Overall resource overview ", - "type": "timeseries" - }, - { - "collapsed": true, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 27 - }, - "id": 61, - "panels": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "center", - "cellOptions": { - "type": "auto" - }, - "filterable": false - }, - "displayName": "", - "mappings": [], - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "green" - }, - { - "color": "orange", - "value": 70 - }, - { - "color": "red", - "value": 90 - } - ] - }, - "unit": "short" - }, - "overrides": [ - { - "matcher": { - "id": "byRegexp", - "options": ".*%.*" - }, - "properties": [ - { - "id": "unit", - "value": "percent" - }, - { - "id": "custom.cellOptions", - "value": { - "mode": "gradient", - "type": "gauge" - } - } - ] - }, - { - "matcher": { - "id": "byRegexp", - "options": " Requests .*" - }, - "properties": [ - { - "id": "unit", - "value": "bytes" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": " Number of cluster nodes " - }, - "properties": [ - { - "id": "unit", - "value": "bytes" - }, - { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "orange", - "value": 10737418240 - }, - { - "color": "red", - "value": 16106127360 - } - ] - } - }, - { - "id": "custom.cellOptions", - "value": { - "mode": "gradient", - "type": "color-background" - } - }, - { - "id": "custom.width", - "value": 90 - } - ] - }, - { - "matcher": { - "id": "byRegexp", - "options": ".* total " - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "blue", - "mode": "fixed" - } - }, - { - "id": "custom.cellOptions", - "value": { - "mode": "gradient", - "type": "color-background" - } - } - ] - }, - { - "matcher": { - "id": "byName", - "options": " total CPU total " - }, - "properties": [ - { - "id": "custom.width", - "value": 84 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": " Total Disk Usage " - }, - "properties": [ - { - "id": "custom.width", - "value": 77 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": " Selected microservices (RSS) " - }, - "properties": [ - { - "id": "custom.width", - "value": 119 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": " Total memory limit " - }, - "properties": [ - { - "id": "custom.width", - "value": 82 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": " limit amount " - }, - "properties": [ - { - "id": "custom.width", - "value": 69 - }, - { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "orange" - }, - { - "color": "green", - "value": 2 - } - ] - } - }, - { - "id": "custom.cellOptions", - "value": { - "mode": "gradient", - "type": "color-background" - } - } - ] - }, - { - "matcher": { - "id": "byName", - "options": " Resource Details %(RSS)" - }, - "properties": [ - { - "id": "custom.width", - "value": 112 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": " password CPU%( overall 100%)" - }, - "properties": [ - { - "id": "custom.width", - "value": 150 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": " Node Network Overview " - }, - "properties": [ - { - "id": "custom.width", - "value": 100 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": " total CPU selected " - }, - "properties": [ - { - "id": "custom.width", - "value": 82 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": " Resource Details %(WSS)" - }, - "properties": [ - { - "id": "custom.width", - "value": 130 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": " Selected microservices (WSS)" - }, - "properties": [ - { - "id": "custom.width", - "value": 120 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": " average memory " - }, - "properties": [ - { - "id": "custom.width", - "value": 79 - } - ] - }, - { - "matcher": { - "id": "byRegexp", - "options": " Node Network Overview $| Selected microservices \\(WSS\\)$| Selected microservices \\(RSS\\) $" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "orange", - "mode": "fixed" - } - }, - { - "id": "custom.cellOptions", - "value": { - "type": "color-text" - } - } - ] - }, - { - "matcher": { - "id": "byName", - "options": " container number " - }, - "properties": [ - { - "id": "custom.width", - "value": 149 - } - ] - } - ] - }, - "gridPos": { - "h": 8, - "w": 24, - "x": 0, - "y": 2 - }, - "id": 57, - "options": { - "showHeader": true, - "sortBy": [ - { - "desc": true, - "displayName": " container number " - } - ] - }, - "pluginVersion": "7.5.11", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum(irate(container_cpu_usage_seconds_total{origin_prometheus=~\"$origin_prometheus\",container =~\"$Container\",container !=\"\",container!=\"POD\",namespace=~\"$NameSpace\"}[2m])) by (container) / (sum(container_spec_cpu_quota{origin_prometheus=~\"$origin_prometheus\",container =~\"$Container\",container !=\"\",container!=\"POD\",namespace=~\"$NameSpace\"}/100000) by (container)) * 100", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum(irate(container_cpu_usage_seconds_total{origin_prometheus=~\"$origin_prometheus\",container =~\"$Container\",container !=\"\",container!=\"POD\",namespace=~\"$NameSpace\"}[2m])) by (container)", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": " Node Network Overview ", - "refId": "L" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum(kube_pod_container_resource_requests{origin_prometheus=~\"$origin_prometheus\",resource=\"cpu\", unit=\"core\",container =~\"$Container\",container !=\"\",container!=\"POD\",namespace=~\"$NameSpace\"}) by (container)", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum(kube_pod_container_resource_limits{origin_prometheus=~\"$origin_prometheus\",resource=\"cpu\", unit=\"core\",container =~\"$Container\",container !=\"\",container!=\"POD\",namespace=~\"$NameSpace\"}) by (container)", - "format": "table", - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "C" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": "sum (container_memory_working_set_bytes{origin_prometheus=~\"$origin_prometheus\",container =~\"$Container\",container !=\"\",container!=\"POD\",namespace=~\"$NameSpace\"}) by (container)/ sum(container_spec_memory_limit_bytes{origin_prometheus=~\"$origin_prometheus\",container =~\"$Container\",container !=\"\",container!=\"POD\",namespace=~\"$NameSpace\"}) by (container) * 100", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "I" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": "sum (container_memory_working_set_bytes{origin_prometheus=~\"$origin_prometheus\",container =~\"$Container\",container !=\"\",container!=\"POD\",namespace=~\"$NameSpace\"}) by (container)", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "D" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": "sum (container_memory_rss{origin_prometheus=~\"$origin_prometheus\",container =~\"$Container\",container !=\"\",container!=\"POD\",namespace=~\"$NameSpace\"}) by (container)/ sum(container_spec_memory_limit_bytes{origin_prometheus=~\"$origin_prometheus\",container =~\"$Container\",container !=\"\",container!=\"POD\",namespace=~\"$NameSpace\"}) by (container) * 100", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": " Resource Details %(RSS)", - "refId": "H" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": "sum (container_memory_rss{origin_prometheus=~\"$origin_prometheus\",container =~\"$Container\",container !=\"\",container!=\"POD\",namespace=~\"$NameSpace\"}) by (container)", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": " Selected microservices (RSS) ", - "refId": "K" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum(kube_pod_container_resource_requests{origin_prometheus=~\"$origin_prometheus\",resource=\"memory\", unit=\"byte\",container =~\"$Container\",container !=\"\",container!=\"POD\",namespace=~\"$NameSpace\"}) by (container)", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "E" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum(kube_pod_container_resource_limits{origin_prometheus=~\"$origin_prometheus\",resource=\"memory\", unit=\"byte\",container =~\"$Container\",container !=\"\",container!=\"POD\",namespace=~\"$NameSpace\"}) by (container)", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "F" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": "sum(container_fs_usage_bytes{origin_prometheus=~\"$origin_prometheus\",container =~\"$Container\",container !=\"\",container!=\"POD\",namespace=~\"$NameSpace\"}) by (container)", - "format": "table", - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "J" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "count(kube_pod_container_info{origin_prometheus=~\"$origin_prometheus\",container =~\"$Container\",container !=\"\",container!=\"POD\",namespace=~\"$NameSpace\"}) by(container,namespace) - 0", - "format": "table", - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "G" - } - ], - "title": " usage ( container number ) namespace ", - "transformations": [ - { - "id": "merge", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Time": true, - "Time 1": true, - "Time 10": true, - "Time 11": true, - "Time 12": true, - "Time 2": true, - "Time 3": true, - "Time 4": true, - "Time 5": true, - "Time 6": true, - "Time 7": true, - "Time 8": true, - "Time 9": true - }, - "indexByName": { - "Time 1": 2, - "Time 10": 20, - "Time 11": 22, - "Time 12": 24, - "Time 2": 4, - "Time 3": 6, - "Time 4": 8, - "Time 5": 10, - "Time 6": 12, - "Time 7": 14, - "Time 8": 16, - "Time 9": 18, - "Value #A": 3, - "Value #B": 7, - "Value #C": 9, - "Value #D": 13, - "Value #E": 19, - "Value #F": 21, - "Value #G": 25, - "Value #H": 15, - "Value #I": 11, - "Value #J": 23, - "Value #K": 17, - "Value #L": 5, - "container": 1, - "namespace": 0 - }, - "renameByName": { - "Time 1": "", - "Value #A": " password CPU%( overall 100%)", - "Value #B": " total CPU selected ", - "Value #C": " total CPU total ", - "Value #D": " Selected microservices (WSS)", - "Value #E": " Total memory limit ", - "Value #F": " Total Disk Usage ", - "Value #G": " limit amount ", - "Value #H": " Resource Details %(RSS)", - "Value #I": " Resource Details %(WSS)", - "Value #J": " Number of cluster nodes ", - "Value #K": " Selected microservices (RSS) ", - "Value #L": " Node Network Overview ", - "container": " container number ", - "namespace": " average memory " - } - } - }, - { - "id": "filterFieldsByName", - "options": {} - } - ], - "type": "table" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "decimals": 3, - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 0, - "fillGradient": 0, - "grid": {}, - "gridPos": { - "h": 9, - "w": 8, - "x": 0, - "y": 10 - }, - "height": "", - "hiddenSeries": false, - "id": 24, - "isNew": true, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "hideEmpty": false, - "hideZero": false, - "max": true, - "min": true, - "rightSide": false, - "show": true, - "sort": "current", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.5.11", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": "sum(rate(container_cpu_usage_seconds_total{origin_prometheus=~\"$origin_prometheus\",container =~\"$Container\",container !=\"\",container!=\"POD\",namespace=~\"$NameSpace\"}[2m])) by (container) / (sum(container_spec_cpu_quota{origin_prometheus=~\"$origin_prometheus\",container =~\"$Container\",container !=\"\",container!=\"POD\",namespace=~\"$NameSpace\"}/100000) by (container)) * 100", - "hide": false, - "instant": false, - "interval": "", - "intervalFactor": 1, - "legendFormat": "{{ container}}", - "metric": "container_cpu", - "refId": "A", - "step": 10 - } - ], - "thresholds": [], - "timeRegions": [], - "title": " usage ( container number ) password CPU Request Rate ( overall 100%)", - "tooltip": { - "msResolution": true, - "shared": true, - "sort": 2, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:5607", - "format": "percent", - "label": "", - "logBase": 1, - "show": true - }, - { - "$$hashKey": "object:5608", - "format": "short", - "logBase": 1, - "show": false - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "decimals": 2, - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 0, - "fillGradient": 0, - "grid": {}, - "gridPos": { - "h": 9, - "w": 8, - "x": 8, - "y": 10 - }, - "hiddenSeries": false, - "id": 59, - "isNew": true, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": true, - "min": true, - "rightSide": false, - "show": true, - "sort": "current", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.5.11", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": "sum (container_memory_working_set_bytes{origin_prometheus=~\"$origin_prometheus\",container =~\"$Container\",container !=\"\",container!=\"POD\",namespace=~\"$NameSpace\"}) by (container)/ sum(container_spec_memory_limit_bytes{origin_prometheus=~\"$origin_prometheus\",container =~\"$Container\",container !=\"\",container!=\"POD\",namespace=~\"$NameSpace\"}) by (container) * 100", - "interval": "", - "intervalFactor": 1, - "legendFormat": "WSS:{{ container }}", - "metric": "container_memory_usage:sort_desc", - "refId": "A", - "step": 10 - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": "sum (container_memory_rss{origin_prometheus=~\"$origin_prometheus\",container =~\"$Container\",container !=\"\",container!=\"POD\",namespace=~\"$NameSpace\"}) by (container)/ sum(container_spec_memory_limit_bytes{origin_prometheus=~\"$origin_prometheus\",container =~\"$Container\",container !=\"\",container!=\"POD\",namespace=~\"$NameSpace\"}) by (container) * 100", - "interval": "", - "intervalFactor": 1, - "legendFormat": "RSS:{{ container }}", - "metric": "container_memory_usage:sort_desc", - "refId": "B", - "step": 10 - } - ], - "thresholds": [], - "timeRegions": [], - "title": " usage ( container number ) Microservice resource details ", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 2, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:5686", - "format": "percent", - "logBase": 1, - "show": true - }, - { - "$$hashKey": "object:5687", - "format": "short", - "logBase": 1, - "show": false - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": { - " restart :wholion-lbs": "green", - " update :wholion-lbs": "purple" - }, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "decimals": 2, - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 0, - "fillGradient": 0, - "grid": {}, - "gridPos": { - "h": 9, - "w": 8, - "x": 16, - "y": 10 - }, - "hiddenSeries": false, - "id": 16, - "isNew": true, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": true, - "min": false, - "rightSide": false, - "show": true, - "sort": "current", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.5.11", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum(sum(irate(container_network_receive_bytes_total{origin_prometheus=~\"$origin_prometheus\",image!=\"\",name=~\"^k8s_.*\",node=~\"^$Node$\",namespace=~\"$NameSpace\",pod=~\".*$Container.*\"}[2m])) by (pod)* on(pod) group_right kube_pod_container_info) by(container) *8", - "hide": false, - "interval": "", - "intervalFactor": 1, - "legendFormat": " update :{{ container }}", - "metric": "network", - "refId": "A", - "step": 10 - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum(sum(irate(container_network_transmit_bytes_total{origin_prometheus=~\"$origin_prometheus\",image!=\"\",name=~\"^k8s_.*\",node=~\"^$Node$\",namespace=~\"$NameSpace\",pod=~\".*$Container.*\"}[2m])) by (pod)* on(pod) group_right kube_pod_container_info) by(container) *8", - "interval": "", - "intervalFactor": 1, - "legendFormat": " restart :{{ container }}", - "metric": "network", - "refId": "B", - "step": 10 - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": "sum (rate (container_network_receive_bytes_total{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",image!=\"\",name=~\"^k8s_.*\",node=~\"^$Node$\",namespace=~\"$NameSpace\",pod=~\".*$Container.*\"}[2m])) by (pod)", - "hide": true, - "interval": "", - "intervalFactor": 1, - "legendFormat": "-> {{ pod }}", - "metric": "network", - "refId": "C", - "step": 10 - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": "- sum (rate (container_network_transmit_bytes_total{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",image!=\"\",name=~\"^k8s_.*\",node=~\"^$Node$\",namespace=~\"$NameSpace\",pod=~\".*$Container.*\"}[2m])) by (pod)", - "hide": true, - "interval": "", - "intervalFactor": 1, - "legendFormat": "<- {{ pod }}", - "metric": "network", - "refId": "D", - "step": 10 - } - ], - "thresholds": [], - "timeRegions": [], - "title": " usage ( container number ) Container memory usage ( Memory Usage )", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 2, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:8106", - "format": "binbps", - "logBase": 1, - "show": true - }, - { - "$$hashKey": "object:8107", - "format": "short", - "logBase": 1, - "show": false - } - ], - "yaxis": { - "align": false - } - } - ], - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "refId": "A" - } - ], - "title": " usage ( container number ) Memory Requirements : Associated nodes :【$Container】", - "type": "row" - }, - { - "collapsed": true, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 28 - }, - "id": 49, - "panels": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "center", - "cellOptions": { - "type": "auto" - }, - "filterable": false - }, - "displayName": "", - "mappings": [], - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "green" - }, - { - "color": "#EAB839", - "value": 80 - }, - { - "color": "red", - "value": 90 - } - ] - }, - "unit": "short" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "CPU%( overall 100%)" - }, - "properties": [ - { - "id": "custom.width", - "value": 140 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": " average memory " - }, - "properties": [ - { - "id": "custom.width", - "value": 78 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Pod core count " - }, - "properties": [ - { - "id": "custom.width", - "value": 136 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": " core usage " - }, - "properties": [ - { - "id": "custom.width", - "value": 71 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "CPU selected " - }, - "properties": [ - { - "id": "custom.width", - "value": 68 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "CPU total " - }, - "properties": [ - { - "id": "custom.width", - "value": 65 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "WSS%" - }, - "properties": [ - { - "id": "custom.width", - "value": 129 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "WSS" - }, - "properties": [ - { - "id": "custom.width", - "value": 73 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "RSS%" - }, - "properties": [ - { - "id": "custom.width", - "value": 132 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "RSS" - }, - "properties": [ - { - "id": "custom.width", - "value": 68 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": " resource statistics " - }, - "properties": [ - { - "id": "custom.width", - "value": 69 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": " Network bandwidth " - }, - "properties": [ - { - "id": "custom.width", - "value": 71 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": " send " - }, - "properties": [ - { - "id": "custom.width", - "value": 67 - }, - { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "#EAB839", - "value": 1 - }, - { - "color": "red", - "value": 3 - } - ] - } - }, - { - "id": "custom.cellOptions", - "value": { - "mode": "gradient", - "type": "color-background" - } - } - ] - }, - { - "matcher": { - "id": "byName", - "options": " demand " - }, - "properties": [ - { - "id": "custom.width", - "value": 71 - }, - { - "id": "unit", - "value": "bytes" - }, - { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "#EAB839", - "value": 10737418240 - }, - { - "color": "red", - "value": 16106127360 - } - ] - } - }, - { - "id": "custom.cellOptions", - "value": { - "mode": "gradient", - "type": "color-background" - } - } - ] - }, - { - "matcher": { - "id": "byRegexp", - "options": ".*%.*" - }, - "properties": [ - { - "id": "unit", - "value": "percent" - }, - { - "id": "custom.cellOptions", - "value": { - "mode": "gradient", - "type": "gauge" - } - } - ] - }, - { - "matcher": { - "id": "byRegexp", - "options": " config .*|WSS$|RSS$" - }, - "properties": [ - { - "id": "unit", - "value": "bytes" - } - ] - }, - { - "matcher": { - "id": "byRegexp", - "options": ".* total " - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "blue", - "mode": "fixed" - } - }, - { - "id": "custom.cellOptions", - "value": { - "mode": "gradient", - "type": "color-background" - } - } - ] - }, - { - "matcher": { - "id": "byName", - "options": " container " - }, - "properties": [ - { - "id": "custom.width", - "value": 87 - } - ] - }, - { - "matcher": { - "id": "byRegexp", - "options": " core usage $|WSS$|RSS$" - }, - "properties": [ - { - "id": "custom.cellOptions", - "value": { - "type": "color-text" - } - }, - { - "id": "color", - "value": { - "fixedColor": "orange", - "mode": "fixed" - } - } - ] - }, - { - "matcher": { - "id": "byName", - "options": " container number " - }, - "properties": [ - { - "id": "custom.width", - "value": 116 - } - ] - } - ] - }, - "gridPos": { - "h": 8, - "w": 24, - "x": 0, - "y": 3 - }, - "id": 47, - "options": { - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "7.5.11", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum(irate(container_cpu_usage_seconds_total{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",container =~\"$Container\",container !=\"\",container!=\"POD\",node=~\"^$Node$\",namespace=~\"$NameSpace\"}[2m])) by (container, pod,node,namespace) / (sum(container_spec_cpu_quota{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",container =~\"$Container\",container !=\"\",container!=\"POD\",node=~\"^$Node$\",namespace=~\"$NameSpace\"}/100000) by (container, pod,node,namespace)) * 100", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum(irate(container_cpu_usage_seconds_total{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",container =~\"$Container\",container !=\"\",container!=\"POD\",node=~\"^$Node$\",namespace=~\"$NameSpace\"}[2m])) by (container, pod,node,namespace)", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "CPU disk usage ", - "refId": "Q" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum(kube_pod_container_resource_requests{origin_prometheus=~\"$origin_prometheus\",resource=\"cpu\", unit=\"core\",pod=~\"$Pod\",container =~\"$Container\",node=~\"^$Node$\",namespace=~\"$NameSpace\"}) by (container,pod,node,namespace)", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum(kube_pod_container_resource_limits{origin_prometheus=~\"$origin_prometheus\",resource=\"cpu\", unit=\"core\",pod=~\"$Pod\",container =~\"$Container\",node=~\"^$Node$\",namespace=~\"$NameSpace\"}) by (container,pod,node,namespace)", - "format": "table", - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "C" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum (container_memory_working_set_bytes{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",container =~\"$Container\",container !=\"\",container!=\"POD\",node=~\"^$Node$\",namespace=~\"$NameSpace\"}) by (container, pod,node,namespace)/ sum(container_spec_memory_limit_bytes{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",container =~\"$Container\",container !=\"\",container!=\"POD\",node=~\"^$Node$\",namespace=~\"$NameSpace\"}) by (container, pod,node,namespace) * 100", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "wss%", - "refId": "I" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum (container_memory_working_set_bytes{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",container =~\"$Container\",container !=\"\",container!=\"POD\",node=~\"^$Node$\",namespace=~\"$NameSpace\"}) by (container, pod,node,namespace)", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "wss", - "refId": "D" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum (container_memory_rss{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",container =~\"$Container\",container !=\"\",container!=\"POD\",node=~\"^$Node$\",namespace=~\"$NameSpace\"}) by (container, pod,node,namespace)/ sum(container_spec_memory_limit_bytes{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",container =~\"$Container\",container !=\"\",container!=\"POD\",node=~\"^$Node$\",namespace=~\"$NameSpace\"}) by (container, pod,node,namespace) * 100", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "rss%", - "refId": "L" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum (container_memory_rss{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",container =~\"$Container\",container !=\"\",container!=\"POD\",node=~\"^$Node$\",namespace=~\"$NameSpace\"}) by (container, pod,node,namespace)", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "rss", - "refId": "K" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum(kube_pod_container_resource_requests{origin_prometheus=~\"$origin_prometheus\",resource=\"memory\", unit=\"byte\",pod=~\"$Pod\",container =~\"$Container\",node=~\"^$Node$\",namespace=~\"$NameSpace\"}) by (container,pod,node,namespace)", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "E" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum(kube_pod_container_resource_limits{origin_prometheus=~\"$origin_prometheus\",resource=\"memory\", unit=\"byte\",pod=~\"$Pod\",container =~\"$Container\",node=~\"^$Node$\",namespace=~\"$NameSpace\"}) by (container,pod,node,namespace)", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "F" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum(container_fs_usage_bytes{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",container =~\"$Container\",container !=\"\",container!=\"POD\",node=~\"^$Node$\",namespace=~\"$NameSpace\"}) by (container,pod,node,namespace)", - "format": "table", - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "J" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "kube_pod_container_status_restarts_total{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",container =~\"$Container\",container !=\"\",container!=\"POD\",namespace=~\"$NameSpace\"} * on (pod) group_left(node) kube_pod_info{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",node=~\"^$Node$\",namespace=~\"$NameSpace\"}", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "H" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "cass_jvm_heap{service=~\"$Container\"} * on (pod_ip) group_right(service) kube_pod_info{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",namespace=~\"$NameSpace\"}", - "format": "table", - "hide": true, - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "M" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "cass_jvm_heap_max{service=~\"$Container\"} * on (pod_ip) group_right(service) kube_pod_info{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",namespace=~\"$NameSpace\"}", - "format": "table", - "hide": true, - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "N" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": "cass_jvm_noheap{service=~\"$Container\"} * on (pod_ip) group_right(service) kube_pod_info{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",namespace=~\"$NameSpace\"}", - "format": "table", - "hide": true, - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "O" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": "cass_jvm_noheap_max{service=~\"$Container\"} * on (pod_ip) group_right(service) kube_pod_info{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",namespace=~\"$NameSpace\"}", - "format": "table", - "hide": true, - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "P" - } - ], - "title": "$Node:Pod Memory Limit ( Memory Usage )", - "transformations": [ - { - "id": "merge", - "options": {} - }, - { - "id": "organize", - "options": { - "excludeByName": { - "Time": true, - "Time 1": true, - "Time 10": true, - "Time 11": true, - "Time 12": true, - "Time 13": true, - "Time 2": true, - "Time 3": true, - "Time 4": true, - "Time 5": true, - "Time 6": true, - "Time 7": true, - "Time 8": true, - "Time 9": true, - "Value #G": true, - "__name__": true, - "app_kubernetes_io_name": true, - "app_kubernetes_io_name 1": true, - "app_kubernetes_io_name 2": true, - "app_kubernetes_io_version": true, - "app_kubernetes_io_version 1": true, - "app_kubernetes_io_version 2": true, - "container 1": true, - "container 10": true, - "container 11": true, - "container 12": true, - "container 2": true, - "container 3": true, - "container 4": true, - "container 5": true, - "container 6": true, - "container 7": true, - "container 8": true, - "container 9": true, - "created_by_kind": true, - "created_by_name": true, - "host_ip": true, - "instance": true, - "instance 1": true, - "instance 2": true, - "job": true, - "job 1": true, - "job 2": true, - "k8s_namespace": true, - "k8s_namespace 1": true, - "k8s_namespace 2": true, - "k8s_sname": true, - "k8s_sname 1": true, - "k8s_sname 2": true, - "namespace": false, - "namespace 1": true, - "namespace 10": true, - "namespace 11": true, - "namespace 12": false, - "namespace 2": true, - "namespace 3": true, - "namespace 4": true, - "namespace 5": true, - "namespace 6": true, - "namespace 7": true, - "namespace 8": true, - "namespace 9": true, - "node 1": true, - "node 10": true, - "node 11": false, - "node 12": true, - "node 2": true, - "node 3": true, - "node 4": true, - "node 5": true, - "node 6": true, - "node 7": true, - "node 8": true, - "node 9": true, - "origin_prometheus": true, - "origin_prometheus 1": true, - "origin_prometheus 2": true, - "phase": true, - "pod_ip": true, - "priority_class": true, - "uid": true - }, - "indexByName": { - "Time": 23, - "Value #A": 4, - "Value #B": 6, - "Value #C": 7, - "Value #D": 9, - "Value #E": 12, - "Value #F": 13, - "Value #H": 22, - "Value #I": 8, - "Value #J": 14, - "Value #K": 11, - "Value #L": 10, - "Value #Q": 5, - "app_kubernetes_io_name": 15, - "app_kubernetes_io_version": 16, - "container": 2, - "instance": 17, - "job": 18, - "k8s_namespace": 19, - "k8s_sname": 20, - "namespace": 1, - "node": 0, - "origin_prometheus": 21, - "pod": 3 - }, - "renameByName": { - "Value #A": "CPU%( overall 100%)", - "Value #B": "CPU selected ", - "Value #C": "CPU total ", - "Value #D": "WSS", - "Value #E": " resource statistics ", - "Value #F": " Network bandwidth ", - "Value #H": " send ", - "Value #I": "WSS%", - "Value #J": " demand ", - "Value #K": "RSS", - "Value #L": "RSS%", - "Value #Q": " core usage ", - "container": " container number ", - "namespace": " average memory ", - "namespace 1": "", - "namespace 12": " average memory ", - "node": " container ", - "node 1": "", - "node 11": " container ", - "pod": "Pod core count ", - "priority_class": "" - } - } - }, - { - "id": "filterFieldsByName", - "options": { - "include": { - "names": [ - " container ", - " average memory ", - "Pod core count ", - "CPU%( overall 100%)", - " core usage ", - "CPU selected ", - "CPU total ", - "WSS%", - "WSS", - "RSS%", - "RSS", - " resource statistics ", - " Network bandwidth ", - " demand ", - " send ", - " container number " - ] - } - } - } - ], - "type": "table" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "decimals": 2, - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 0, - "fillGradient": 0, - "grid": {}, - "gridPos": { - "h": 9, - "w": 8, - "x": 0, - "y": 11 - }, - "height": "", - "hiddenSeries": false, - "id": 58, - "isNew": true, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "hideEmpty": false, - "hideZero": false, - "max": true, - "min": false, - "rightSide": false, - "show": true, - "sort": "current", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.5.11", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum(irate(container_cpu_usage_seconds_total{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",container =~\"$Container\",container !=\"\",container!=\"POD\",node=~\"^$Node$\",namespace=~\"$NameSpace\"}[2m])) by (container, pod) / (sum(container_spec_cpu_quota{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",container =~\"$Container\",container !=\"\",container!=\"POD\",node=~\"^$Node$\",namespace=~\"$NameSpace\"}/100000) by (container, pod)) * 100", - "hide": false, - "instant": false, - "interval": "", - "intervalFactor": 1, - "legendFormat": "{{ pod }}", - "metric": "container_cpu", - "refId": "A", - "step": 10 - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Pod upper limit CPU Request Rate ( overall 100% Memory Usage )", - "tooltip": { - "msResolution": true, - "shared": true, - "sort": 2, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:5607", - "format": "percent", - "label": "", - "logBase": 1, - "show": true - }, - { - "$$hashKey": "object:5608", - "format": "short", - "logBase": 1, - "show": false - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "decimals": 2, - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 0, - "fillGradient": 0, - "grid": {}, - "gridPos": { - "h": 9, - "w": 8, - "x": 8, - "y": 11 - }, - "hiddenSeries": false, - "id": 27, - "isNew": true, - "legend": { - "alignAsTable": true, - "avg": false, - "current": true, - "max": true, - "min": false, - "rightSide": false, - "show": true, - "sort": "current", - "sortDesc": false, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 2, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.5.11", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum (container_memory_working_set_bytes{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",container =~\"$Container\",container !=\"\",container!=\"POD\",node=~\"^$Node$\",namespace=~\"$NameSpace\"}) by (container, pod)/ sum(container_spec_memory_limit_bytes{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",container =~\"$Container\",container !=\"\",container!=\"POD\",node=~\"^$Node$\",namespace=~\"$NameSpace\"}) by (container, pod) * 100", - "interval": "", - "intervalFactor": 1, - "legendFormat": "WSS:{{ pod }}", - "metric": "container_memory_usage:sort_desc", - "refId": "A", - "step": 10 - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum (container_memory_rss{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",container =~\"$Container\",container !=\"\",container!=\"POD\",node=~\"^$Node$\",namespace=~\"$NameSpace\"}) by (container, pod)/ sum(container_spec_memory_limit_bytes{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",container =~\"$Container\",container !=\"\",container!=\"POD\",node=~\"^$Node$\",namespace=~\"$NameSpace\"}) by (container, pod) * 100", - "interval": "", - "intervalFactor": 1, - "legendFormat": "RSS:{{ pod }}", - "metric": "container_memory_usage:sort_desc", - "refId": "B", - "step": 10 - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "(cass_jvm_heap{service=~\"$Container\"} * on (pod_ip) group_right(service) kube_pod_info{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",namespace=~\"$NameSpace\"}) / (cass_jvm_heap_max{service=~\"$Container\"} * on (pod_ip) group_right(service) kube_pod_info{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",namespace=~\"$NameSpace\"}) * 100", - "instant": false, - "interval": "", - "intervalFactor": 1, - "legendFormat": "Heap:{{ pod }}", - "metric": "container_memory_usage:sort_desc", - "refId": "C", - "step": 10 - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Pod View more dashboards ( Memory Usage )", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 2, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:5686", - "format": "percent", - "logBase": 1, - "max": "100", - "show": true - }, - { - "$$hashKey": "object:5687", - "format": "short", - "logBase": 1, - "show": false - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": { - " restart :wholion-lbs": "green", - " update :wholion-lbs": "purple" - }, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "decimals": 2, - "editable": true, - "error": false, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 0, - "fillGradient": 0, - "grid": {}, - "gridPos": { - "h": 9, - "w": 8, - "x": 16, - "y": 11 - }, - "hiddenSeries": false, - "id": 77, - "isNew": true, - "legend": { - "alignAsTable": true, - "avg": true, - "current": true, - "max": true, - "min": false, - "rightSide": false, - "show": true, - "sort": "current", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "7.5.11", - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum(sum(irate(container_network_receive_bytes_total{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",image!=\"\",name=~\"^k8s_.*\",node=~\"^$Node$\",namespace=~\"$NameSpace\",pod=~\".*$Container.*\"}[2m])) by (pod)* on(pod) group_right kube_pod_container_info) by(pod) *8", - "hide": false, - "interval": "", - "intervalFactor": 1, - "legendFormat": " update :{{ pod}}", - "metric": "network", - "refId": "A", - "step": 10 - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "exemplar": true, - "expr": "sum(sum(irate(container_network_transmit_bytes_total{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",image!=\"\",name=~\"^k8s_.*\",node=~\"^$Node$\",namespace=~\"$NameSpace\",pod=~\".*$Container.*\"}[2m])) by (pod)* on(pod) group_right kube_pod_container_info) by(pod) *8", - "interval": "", - "intervalFactor": 1, - "legendFormat": " restart :{{ pod}}", - "metric": "network", - "refId": "B", - "step": 10 - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": "sum (rate (container_network_receive_bytes_total{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",image!=\"\",name=~\"^k8s_.*\",node=~\"^$Node$\",namespace=~\"$NameSpace\",pod=~\".*$Container.*\"}[2m])) by (pod)", - "hide": true, - "interval": "", - "intervalFactor": 1, - "legendFormat": "-> {{ pod }}", - "metric": "network", - "refId": "C", - "step": 10 - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "expr": "- sum (rate (container_network_transmit_bytes_total{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",image!=\"\",name=~\"^k8s_.*\",node=~\"^$Node$\",namespace=~\"$NameSpace\",pod=~\".*$Container.*\"}[2m])) by (pod)", - "hide": true, - "interval": "", - "intervalFactor": 1, - "legendFormat": "<- {{ pod }}", - "metric": "network", - "refId": "D", - "step": 10 - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Pod Container memory usage ( Memory Usage )", - "tooltip": { - "msResolution": false, - "shared": true, - "sort": 2, - "value_type": "cumulative" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:8106", - "format": "binbps", - "logBase": 1, - "show": true - }, - { - "$$hashKey": "object:8107", - "format": "short", - "logBase": 1, - "show": false - } - ], - "yaxis": { - "align": false - } - } - ], - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "refId": "A" - } - ], - "title": "Pod Memory Requirements : space Pod:【$Pod】", - "type": "row" - } - ], - "refresh": "", - "schemaVersion": 39, - "tags": [ - "StarsL.cn", - "Prometheus", - "Kubernetes" - ], - "templating": { - "list": [ - { - "allValue": "", - "current": { - "isNone": true, - "selected": true, - "text": "None", - "value": "" - }, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "definition": "label_values(origin_prometheus)", - "hide": 0, - "includeAll": false, - "label": "K8S", - "multi": false, - "name": "origin_prometheus", - "options": [], - "query": { - "query": "label_values(origin_prometheus)", - "refId": "Prometheus-origin_prometheus-Variable-Query" - }, - "refresh": 2, - "regex": "", - "skipUrlSync": false, - "sort": 5, - "tagValuesQuery": "", - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "allValue": "", - "current": { - "selected": false, - "text": "All", - "value": "$__all" - }, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "definition": "label_values(kube_node_info{origin_prometheus=~\"$origin_prometheus\"},node)", - "hide": 0, - "includeAll": true, - "label": " container ", - "multi": false, - "name": "Node", - "options": [], - "query": { - "query": "label_values(kube_node_info{origin_prometheus=~\"$origin_prometheus\"},node)", - "refId": "Prometheus-Node-Variable-Query" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 5, - "tagValuesQuery": "", - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "allValue": "", - "current": { - "selected": false, - "text": "All", - "value": "$__all" - }, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "definition": "label_values(kube_namespace_labels{origin_prometheus=~\"$origin_prometheus\"},namespace)", - "hide": 0, - "includeAll": true, - "label": " average memory ", - "multi": false, - "name": "NameSpace", - "options": [], - "query": { - "query": "label_values(kube_namespace_labels{origin_prometheus=~\"$origin_prometheus\"},namespace)", - "refId": "Prometheus-NameSpace-Variable-Query" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 5, - "tagValuesQuery": "", - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "allValue": ".*", - "current": { - "selected": false, - "text": "All", - "value": "$__all" - }, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "definition": "label_values(kube_pod_container_info{origin_prometheus=~\"$origin_prometheus\",namespace=~\"$NameSpace\"},container)", - "hide": 0, - "includeAll": true, - "label": " usage ( container number )", - "multi": false, - "name": "Container", - "options": [], - "query": { - "query": "label_values(kube_pod_container_info{origin_prometheus=~\"$origin_prometheus\",namespace=~\"$NameSpace\"},container)", - "refId": "Prometheus-Container-Variable-Query" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 5, - "tagValuesQuery": "", - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "allValue": ".*", - "current": { - "selected": false, - "text": "All", - "value": "$__all" - }, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "definition": "label_values(kube_pod_container_info{origin_prometheus=~\"$origin_prometheus\",namespace=~\"$NameSpace\",container=~\"$Container\"},pod)", - "hide": 0, - "includeAll": true, - "label": "Pod", - "multi": false, - "name": "Pod", - "options": [], - "query": { - "query": "label_values(kube_pod_container_info{origin_prometheus=~\"$origin_prometheus\",namespace=~\"$NameSpace\",container=~\"$Container\"},pod)", - "refId": "Prometheus-Pod-Variable-Query" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 5, - "tagValuesQuery": "", - "tagsQuery": "", - "type": "query", - "useTags": false - } - ] - }, - "time": { - "from": "now-30m", - "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": "1 K8S for Prometheus Dashboard 20211010 EN", - "uid": "PwMJtdvnz", - "version": 1, - "weekStart": "" - } -`}} ---- -apiVersion: v1 -kind: ConfigMap -metadata: - name: lgtm-k8s-volume-information - namespace: otel-lgtm-stack - labels: - grafana_dashboard: "1" - annotations: - grafana_folder: "common" -data: - k8s-volume-information.json: |- -{{` - { - "__inputs": [ - { - "name": "DS_OPENSHIFT_PROMETHEUS", - "label": "openshift-prometheus", - "description": "", - "type": "datasource", - "pluginId": "prometheus", - "pluginName": "Prometheus" - } - ], - "__requires": [ - { - "type": "panel", - "id": "alertlist", - "name": "Alert List", - "version": "" - }, - { - "type": "grafana", - "id": "grafana", - "name": "Grafana", - "version": "6.5.2" - }, - { - "type": "panel", - "id": "graph", - "name": "Graph", - "version": "" - }, - { - "type": "datasource", - "id": "prometheus", - "name": "Prometheus", - "version": "1.0.0" - }, - { - "type": "panel", - "id": "singlestat", - "name": "Singlestat", - "version": "" - }, - { - "type": "panel", - "id": "table", - "name": "Table", - "version": "" - } - ], - "description": "Dashboard of Kubernetes / OpenShift volume information at cluster level as exported by Prometheus connected to Kubernetes / OpenShift.", - "editable": true, - "gnetId": 11454, - "graphTooltip": 1, - "id": null, - "iteration": 1577045029184, - "links": [], - "panels": [ - { - "collapsed": false, - "datasource": "${DS_OPENSHIFT_PROMETHEUS}", - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 0 - }, - "id": 43, - "panels": [], - "title": "Current Alerts", - "type": "row" - }, - { - "cacheTimeout": null, - "colorBackground": true, - "colorPrefix": false, - "colorValue": false, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": "$DS_OPENSHIFT_PROMETHEUS", - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 3, - "w": 7, - "x": 0, - "y": 1 - }, - "id": 30, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "options": {}, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false, - "ymax": null, - "ymin": null - }, - "tableColumn": "", - "targets": [ - { - "expr": "(\n count (\n (kubelet_volume_stats_available_bytes {namespace=~\"(openshift-.*|kube-.*|default|logging)\"})\n and\n (predict_linear(kubelet_volume_stats_available_bytes {namespace=~\"(openshift-.*|kube-.*|default|logging)\"}[1d], 7 * 24 * 60 * 60) < 0)\n )\n)\nor\nvector(0)", - "instant": false, - "intervalFactor": 1, - "legendFormat": "alerts", - "refId": "A" - } - ], - "thresholds": "1,1", - "timeFrom": null, - "timeShift": null, - "title": "Infrastructure Namespace Volumes Full in Week Based on Daily Use Rate", - "type": "singlestat", - "valueFontSize": "200%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" - }, - { - "cacheTimeout": null, - "colorBackground": true, - "colorPrefix": false, - "colorValue": false, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": "$DS_OPENSHIFT_PROMETHEUS", - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 3, - "w": 7, - "x": 7, - "y": 1 - }, - "id": 34, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "options": {}, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false, - "ymax": null, - "ymin": null - }, - "tableColumn": "", - "targets": [ - { - "expr": "(\n count (\n (\n (kubelet_volume_stats_available_bytes {namespace!~\"(openshift-.*|kube-.*|default|logging)\"})\n )\n and\n (predict_linear(kubelet_volume_stats_available_bytes[1d], 7 * 24 * 60 * 60) < 0)\n )\n)\nor\nvector(0)", - "instant": false, - "intervalFactor": 1, - "legendFormat": "alerts", - "refId": "A" - } - ], - "thresholds": "1,1", - "timeFrom": null, - "timeShift": null, - "title": "User Namespace Volumes Full in Week Based on Daily Use Rate", - "type": "singlestat", - "valueFontSize": "200%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" - }, - { - "dashboardFilter": "", - "dashboardTags": [], - "datasource": "$DS_OPENSHIFT_PROMETHEUS", - "folderId": null, - "gridPos": { - "h": 6, - "w": 10, - "x": 14, - "y": 1 - }, - "id": 29, - "limit": 10, - "nameFilter": "", - "onlyAlertsOnDashboard": true, - "options": {}, - "show": "current", - "sortOrder": 1, - "stateFilter": [], - "timeFrom": null, - "timeShift": null, - "title": "Dashboard Alerts", - "type": "alertlist" - }, - { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": true, - "colors": [ - "#299c46", - "#FF9830", - "#FF9830" - ], - "datasource": "$DS_OPENSHIFT_PROMETHEUS", - "decimals": 0, - "editable": false, - "error": false, - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 3, - "w": 7, - "x": 0, - "y": 4 - }, - "id": 12, - "interval": null, - "isNew": false, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "options": {}, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "span": 0, - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "lineColor": "rgb(31, 120, 193)" - }, - "tableColumn": "", - "targets": [ - { - "expr": "count (max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_used_bytes ) and (max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_used_bytes )) / (max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_capacity_bytes )) >= ($pvc_percent_used_warning_threshold / 100)) or vector (0)", - "format": "time_series", - "instant": true, - "refId": "A" - } - ], - "thresholds": "1,1", - "title": "Running PVCs Above % Used Warning Threshold", - "type": "singlestat", - "valueFontSize": "200%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" - }, - { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": true, - "colors": [ - "#299c46", - "#FF9830", - "#FF9830" - ], - "datasource": "$DS_OPENSHIFT_PROMETHEUS", - "decimals": 0, - "editable": false, - "error": false, - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 3, - "w": 7, - "x": 7, - "y": 4 - }, - "id": 6, - "interval": null, - "isNew": false, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "options": {}, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "span": 0, - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "lineColor": "rgb(31, 120, 193)" - }, - "tableColumn": "", - "targets": [ - { - "expr": "(max (sum by (exported_namespace) (pv_collector_unbound_pvc_count))) or (vector(0))", - "format": "table", - "instant": true, - "refId": "A" - } - ], - "thresholds": "1,1", - "title": "Unbound PVCs", - "type": "singlestat", - "valueFontSize": "200%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" - }, - { - "collapsed": true, - "datasource": "$DS_OPENSHIFT_PROMETHEUS", - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 7 - }, - "id": 32, - "panels": [ - { - "cacheTimeout": null, - "columns": [ - { - "text": "Avg", - "value": "avg" - } - ], - "datasource": "$DS_OPENSHIFT_PROMETHEUS", - "fontSize": "100%", - "gridPos": { - "h": 14, - "w": 7, - "x": 0, - "y": 2 - }, - "id": 38, - "links": [], - "options": {}, - "pageSize": null, - "showHeader": true, - "sort": { - "col": 0, - "desc": true - }, - "styles": [ - { - "alias": "Available", - "colorMode": "row", - "colors": [ - "rgba(50, 172, 45, 0.97)", - "rgba(237, 129, 40, 0.89)", - "rgba(245, 54, 54, 0.9)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 2, - "mappingType": 1, - "pattern": "Value", - "thresholds": [ - "0", - "0" - ], - "type": "number", - "unit": "bytes" - }, - { - "alias": "Namespace", - "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, - "mappingType": 1, - "pattern": "namespace", - "thresholds": [], - "type": "string", - "unit": "short" - }, - { - "alias": "PVC", - "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, - "mappingType": 1, - "pattern": "persistentvolumeclaim", - "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)" - ], - "decimals": 2, - "pattern": "/.*/", - "thresholds": [], - "type": "hidden", - "unit": "short" - } - ], - "targets": [ - { - "expr": "(\n (\n (kubelet_volume_stats_available_bytes {namespace=~\"(openshift-.*|kube-.*|default|logging)\"} ) \n and\n (predict_linear(kubelet_volume_stats_available_bytes {namespace=~\"(openshift-.*|kube-.*|default|logging)\"}[1w], 7 * 24 * 60 * 60) < 0)\n )\n)", - "format": "table", - "instant": true, - "intervalFactor": 1, - "legendFormat": "", - "refId": "A" - } - ], - "timeFrom": null, - "timeShift": null, - "title": "Infrastructure Namespace Volumes Full in Week Based on Daily Use Rate - Current", - "transform": "table", - "type": "table" - }, - { - "alert": { - "alertRuleTags": {}, - "conditions": [ - { - "evaluator": { - "params": [ - 0 - ], - "type": "gt" - }, - "operator": { - "type": "and" - }, - "query": { - "params": [ - "A", - "1h", - "now" - ] - }, - "reducer": { - "params": [], - "type": "avg" - }, - "type": "query" - } - ], - "executionErrorState": "alerting", - "for": "24h", - "frequency": "1h", - "handler": 1, - "name": "Infrastructure Namespace Volumes Full in Week Based on Daily Use Rate Alert", - "noDataState": "ok", - "notifications": [] - }, - "aliasColors": {}, - "bars": true, - "cacheTimeout": null, - "dashLength": 10, - "dashes": false, - "fill": 10, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 17, - "x": 7, - "y": 2 - }, - "hiddenSeries": false, - "id": 45, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "rightSide": false, - "show": true, - "total": false, - "values": false - }, - "lines": false, - "linewidth": 2, - "links": [], - "nullPointMode": "null as zero", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": true, - "steppedLine": true, - "targets": [ - { - "expr": "(\n (\n ((kubelet_volume_stats_used_bytes {namespace=~\"(openshift-.*|kube-.*|default|logging)\"} ) * 0) + 1\n and\n (predict_linear(kubelet_volume_stats_available_bytes {namespace=~\"(openshift-.*|kube-.*|default|logging)\"}[1d], 7 * 24 * 60 * 60) < 0)\n )\n)", - "instant": false, - "intervalFactor": 1, - "legendFormat": "{{namespace}} ({{persistentvolumeclaim}})", - "refId": "A" - } - ], - "thresholds": [ - { - "colorMode": "critical", - "fill": true, - "line": true, - "op": "gt", - "value": 0 - } - ], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Infrastructure Namespace Volumes Full in Week Based on Daily Use Rate - Alert History", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "decimals": 0, - "format": "short", - "label": "# of Alerts", - "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, - "cacheTimeout": null, - "dashLength": 10, - "dashes": false, - "datasource": "$DS_OPENSHIFT_PROMETHEUS", - "fill": 0, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 17, - "x": 7, - "y": 9 - }, - "hiddenSeries": false, - "id": 27, - "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", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "(\n (predict_linear(kubelet_volume_stats_available_bytes {namespace=~\"(openshift-.*|kube-.*|default|logging)\"}[1d], 7 * 24 * 60 * 60) < 0)\n)", - "format": "time_series", - "hide": false, - "instant": false, - "intervalFactor": 1, - "legendFormat": "{{namespace}} ({{persistentvolumeclaim}})", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Infrastructure Namespace Volumes Full in Week Based on Daily Use Rate - Predicted Available Space History", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "decimals": 0, - "format": "bytes", - "label": "1 Week Predicted Available Space", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "bytes", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "cacheTimeout": null, - "columns": [ - { - "text": "Avg", - "value": "avg" - } - ], - "datasource": "$DS_OPENSHIFT_PROMETHEUS", - "fontSize": "100%", - "gridPos": { - "h": 13, - "w": 7, - "x": 0, - "y": 16 - }, - "id": 39, - "links": [], - "options": {}, - "pageSize": null, - "showHeader": true, - "sort": { - "col": 0, - "desc": true - }, - "styles": [ - { - "alias": "Available", - "colorMode": "row", - "colors": [ - "rgba(50, 172, 45, 0.97)", - "rgba(237, 129, 40, 0.89)", - "rgba(245, 54, 54, 0.9)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 2, - "mappingType": 1, - "pattern": "Value", - "thresholds": [ - "0", - "0" - ], - "type": "number", - "unit": "bytes" - }, - { - "alias": "Namespace", - "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, - "mappingType": 1, - "pattern": "namespace", - "thresholds": [], - "type": "string", - "unit": "short" - }, - { - "alias": "PVC", - "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, - "mappingType": 1, - "pattern": "persistentvolumeclaim", - "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)" - ], - "decimals": 2, - "pattern": "/.*/", - "thresholds": [], - "type": "hidden", - "unit": "short" - } - ], - "targets": [ - { - "expr": "(\n (\n (\n (kubelet_volume_stats_used_bytes {namespace!~\"(openshift-.*|kube-.*|default|logging)\"})\n )\n and\n (predict_linear(kubelet_volume_stats_available_bytes[1d], 7 * 24 * 60 * 60) < 0)\n )\n)", - "format": "table", - "instant": true, - "intervalFactor": 1, - "legendFormat": "", - "refId": "A" - } - ], - "timeFrom": null, - "timeShift": null, - "title": "User Namespace Volumes Full in Week Based on Daily Use Rate - Current", - "transform": "table", - "type": "table" - }, - { - "alert": { - "alertRuleTags": {}, - "conditions": [ - { - "evaluator": { - "params": [ - 0 - ], - "type": "gt" - }, - "operator": { - "type": "and" - }, - "query": { - "params": [ - "A", - "1h", - "now" - ] - }, - "reducer": { - "params": [], - "type": "avg" - }, - "type": "query" - } - ], - "executionErrorState": "alerting", - "for": "24h", - "frequency": "1h", - "handler": 1, - "name": "User Namespace Volumes Full in Week Based on Daily Use Rate Alert", - "noDataState": "ok", - "notifications": [] - }, - "aliasColors": {}, - "bars": true, - "cacheTimeout": null, - "dashLength": 10, - "dashes": false, - "fill": 10, - "fillGradient": 0, - "gridPos": { - "h": 6, - "w": 17, - "x": 7, - "y": 16 - }, - "hiddenSeries": false, - "id": 40, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "rightSide": false, - "show": true, - "total": false, - "values": false - }, - "lines": false, - "linewidth": 1, - "links": [], - "nullPointMode": "null as zero", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": true, - "steppedLine": true, - "targets": [ - { - "expr": "(\n (\n (\n (\n (kubelet_volume_stats_used_bytes {namespace!~\"(openshift-.*|kube-.*|default|logging)\"})\n )\n * 0 + 1\n )\n and\n (predict_linear(kubelet_volume_stats_available_bytes[1d], 7 * 24 * 60 * 60) < 0)\n )\n)", - "instant": false, - "intervalFactor": 1, - "legendFormat": "{{namespace}} ({{persistentvolumeclaim}})", - "refId": "A" - } - ], - "thresholds": [ - { - "colorMode": "critical", - "fill": true, - "line": true, - "op": "gt", - "value": 0 - } - ], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "User Namespace Volumes Full in Week Based on Daily Use Rate - Alert History", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "decimals": 0, - "format": "short", - "label": "# of Alerts", - "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, - "cacheTimeout": null, - "dashLength": 10, - "dashes": false, - "datasource": "$DS_OPENSHIFT_PROMETHEUS", - "fill": 0, - "fillGradient": 0, - "gridPos": { - "h": 7, - "w": 17, - "x": 7, - "y": 22 - }, - "hiddenSeries": false, - "id": 46, - "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", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "(\n (predict_linear(kubelet_volume_stats_available_bytes {namespace!~\"(openshift-.*|kube-.*|default|logging)\"}[1d], 7 * 24 * 60 * 60) < 0)\n)", - "format": "time_series", - "hide": false, - "instant": false, - "intervalFactor": 1, - "legendFormat": "{{namespace}} ({{persistentvolumeclaim}})", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "User Namespace Volumes Full in Week Based on Daily Use Rate - Predicted Available Space History", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "decimals": 0, - "format": "bytes", - "label": "1 Week Predicted Available Space", - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "bytes", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "columns": [], - "datasource": "$DS_OPENSHIFT_PROMETHEUS", - "editable": false, - "error": false, - "fontSize": "100%", - "gridPos": { - "h": 6, - "w": 7, - "x": 0, - "y": 29 - }, - "id": 9, - "isNew": false, - "options": {}, - "pageSize": null, - "scroll": false, - "showHeader": true, - "sort": { - "col": 16, - "desc": true - }, - "span": 0, - "styles": [ - { - "alias": "Used", - "colorMode": "row", - "colors": [ - "#73BF69", - "#FF9830", - "#FF9830" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "pattern": "Value #A", - "thresholds": [ - "0", - "0" - ], - "type": "number", - "unit": "bytes" - }, - { - "alias": "Capacity", - "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", - "pattern": "Value #B", - "thresholds": [], - "type": "number", - "unit": "bytes" - }, - { - "alias": "Free", - "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", - "pattern": "Value #C", - "thresholds": [], - "type": "number", - "unit": "bytes" - }, - { - "alias": "% Used", - "colors": [ - "rgba(50, 172, 45, 0.97)", - "rgba(237, 129, 40, 0.89)", - "rgba(245, 54, 54, 0.9)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 2, - "pattern": "Value #D", - "thresholds": [ - "($pvc_percent_used_warning_threshold / 100)", - ".9" - ], - "type": "number", - "unit": "percentunit" - }, - { - "alias": "StorageClass", - "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": "storageclass", - "thresholds": [], - "type": "string", - "unit": "short" - }, - { - "alias": "PV", - "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": "volumename", - "thresholds": [], - "type": "string", - "unit": "short" - }, - { - "alias": "Namespace", - "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": "namespace", - "thresholds": [], - "type": "string", - "unit": "short" - }, - { - "alias": "PVC", - "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": "persistentvolumeclaim", - "thresholds": [], - "type": "string", - "unit": "short" - }, - { - "alias": "Volume Stats Exist?", - "colorMode": "value", - "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": [ - "1", - "1" - ], - "type": "string", - "unit": "short" - }, - { - "alias": "", - "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": "/.*/", - "thresholds": [], - "type": "hidden", - "unit": "short" - } - ], - "targets": [ - { - "expr": "(kube_persistentvolumeclaim_info) and ((max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_used_bytes )) / (max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_capacity_bytes )) >= ($pvc_percent_used_warning_threshold / 100))", - "format": "table", - "instant": true, - "refId": "E" - }, - { - "expr": "(max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_used_bytes)) and ((max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_used_bytes )) / (max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_capacity_bytes )) >= ($pvc_percent_used_warning_threshold / 100))", - "format": "table", - "instant": true, - "intervalFactor": 1, - "refId": "A" - }, - { - "expr": "(max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_capacity_bytes )) and ((max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_used_bytes )) / (max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_capacity_bytes )) >= ($pvc_percent_used_warning_threshold / 100))", - "format": "table", - "instant": true, - "refId": "B" - }, - { - "expr": "(max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_available_bytes )) and ((max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_used_bytes )) / (max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_capacity_bytes )) >= ($pvc_percent_used_warning_threshold / 100))", - "format": "table", - "instant": true, - "refId": "C" - }, - { - "expr": "(max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_used_bytes )) / (max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_capacity_bytes )) >= ($pvc_percent_used_warning_threshold / 100)", - "format": "table", - "instant": true, - "refId": "D" - } - ], - "title": "Running PVCs Above % Used Warning Threshold Stats - Current", - "transform": "table", - "type": "table" - }, - { - "aliasColors": {}, - "bars": true, - "cacheTimeout": null, - "dashLength": 10, - "dashes": false, - "datasource": "$DS_OPENSHIFT_PROMETHEUS", - "fill": 5, - "fillGradient": 0, - "gridPos": { - "h": 6, - "w": 17, - "x": 7, - "y": 29 - }, - "hiddenSeries": false, - "id": 41, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": false, - "linewidth": 1, - "links": [], - "nullPointMode": "null as zero", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": true, - "steppedLine": true, - "targets": [ - { - "expr": "(\n ((max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_used_bytes )) * 0 +1)\n and\n (\n (max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_used_bytes )) / (max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_capacity_bytes ))\n ) >= ($pvc_percent_used_warning_threshold / 100)\n)", - "format": "time_series", - "instant": false, - "intervalFactor": 1, - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Running PVCs Above % Used Warning Threshold - History", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "decimals": 0, - "format": "short", - "label": "# of Alerts", - "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 - } - } - ], - "title": "Alert Details", - "type": "row" - }, - { - "collapsed": true, - "datasource": "$DS_OPENSHIFT_PROMETHEUS", - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 8 - }, - "id": 20, - "panels": [ - { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": "$DS_OPENSHIFT_PROMETHEUS", - "decimals": 0, - "editable": false, - "error": false, - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 4, - "w": 2, - "x": 0, - "y": 3 - }, - "id": 4, - "interval": null, - "isNew": false, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "options": {}, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "span": 0, - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "lineColor": "rgb(31, 120, 193)" - }, - "tableColumn": "", - "targets": [ - { - "expr": "(sum (pv_collector_bound_pvc_count)) or vector(0)", - "format": "table", - "instant": true, - "refId": "A" - } - ], - "thresholds": "", - "title": "Bound PVCs", - "type": "singlestat", - "valueFontSize": "200%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "current" - }, - { - "columns": [], - "datasource": "$DS_OPENSHIFT_PROMETHEUS", - "editable": false, - "error": false, - "fontSize": "100%", - "gridPos": { - "h": 25, - "w": 24, - "x": 0, - "y": 7 - }, - "id": 10, - "isNew": false, - "links": [ - { - "includeVars": false, - "title": "OpenShift Container Storage (OCS) 3.11: Operations Guide: 10.1. Available Metrics for File Storage and Block Storage", - "type": "", - "url": "https://access.redhat.com/documentation/en-us/red_hat_openshift_container_storage/3.11/html/operations_guide/enable_vol_metrics#file_vol_metrics" - } - ], - "options": {}, - "pageSize": null, - "scroll": false, - "showHeader": true, - "sort": { - "col": 16, - "desc": true - }, - "span": 0, - "styles": [ - { - "alias": "Used", - "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", - "pattern": "Value #A", - "thresholds": [], - "type": "number", - "unit": "bytes" - }, - { - "alias": "Capacity", - "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", - "pattern": "Value #B", - "thresholds": [], - "type": "number", - "unit": "bytes" - }, - { - "alias": "Free", - "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", - "pattern": "Value #C", - "thresholds": [], - "type": "number", - "unit": "bytes" - }, - { - "alias": "% Used", - "colorMode": "cell", - "colors": [ - "rgba(50, 172, 45, 0.97)", - "rgba(237, 129, 40, 0.89)", - "rgba(245, 54, 54, 0.9)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 2, - "pattern": "Value #D", - "thresholds": [ - ".8", - ".9" - ], - "type": "number", - "unit": "percentunit" - }, - { - "alias": "StorageClass", - "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": "storageclass", - "thresholds": [], - "type": "string", - "unit": "short" - }, - { - "alias": "PV", - "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": "volumename", - "thresholds": [], - "type": "string", - "unit": "short" - }, - { - "alias": "Namespace", - "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": "namespace", - "thresholds": [], - "type": "string", - "unit": "short" - }, - { - "alias": "PVC", - "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": "persistentvolumeclaim", - "thresholds": [], - "type": "string", - "unit": "short" - }, - { - "alias": "Volume Stats Exist?", - "colorMode": "value", - "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": [ - "1", - "1" - ], - "type": "string", - "unit": "short" - }, - { - "alias": "", - "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": "/.*/", - "thresholds": [], - "type": "hidden", - "unit": "short" - } - ], - "targets": [ - { - "expr": "kube_persistentvolumeclaim_info", - "format": "table", - "instant": true, - "refId": "E" - }, - { - "expr": "(1-max by (persistentvolumeclaim, namespace) (kube_persistentvolumeclaim_info ) ) unless (max by (namespace, persistentvolumeclaim) (kubelet_volume_stats_used_bytes )) or ((max by (persistentvolumeclaim, namespace) (kube_persistentvolumeclaim_info ) ) and (max by (namespace, persistentvolumeclaim) (kubelet_volume_stats_used_bytes )))", - "format": "table", - "instant": true, - "refId": "F" - }, - { - "expr": "max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_used_bytes)", - "format": "table", - "instant": true, - "intervalFactor": 1, - "refId": "A" - }, - { - "expr": "max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_capacity_bytes )", - "format": "table", - "instant": true, - "refId": "B" - }, - { - "expr": "max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_available_bytes )", - "format": "table", - "instant": true, - "refId": "C" - }, - { - "expr": "(max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_used_bytes )) / (max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_capacity_bytes ))", - "format": "table", - "instant": true, - "refId": "D" - } - ], - "title": "PVC Stats", - "transform": "table", - "type": "table" - } - ], - "title": "Stats", - "type": "row" - }, - { - "collapsed": true, - "datasource": "$DS_OPENSHIFT_PROMETHEUS", - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 9 - }, - "id": 22, - "panels": [ - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "$DS_OPENSHIFT_PROMETHEUS", - "description": "WARNING: Any PVCs that are not bound to a running pod will not show up in this state.", - "editable": false, - "error": false, - "fill": 0, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 24, - "x": 0, - "y": 4 - }, - "hiddenSeries": false, - "id": 15, - "isNew": false, - "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, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "span": 0, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "(max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_used_bytes ))", - "instant": false, - "intervalFactor": 1, - "legendFormat": "{{namespace}} ({{persistentvolumeclaim}})", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "All Running PVCs Used Bytes", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "format": "", - "logBase": 0, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "bytes", - "logBase": 1, - "show": true - }, - { - "format": "bytes", - "logBase": 1, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "$DS_OPENSHIFT_PROMETHEUS", - "description": "WARNING: Any PVCs that are not bound to a running pod will not show up in this state.", - "editable": false, - "error": false, - "fill": 0, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 24, - "x": 0, - "y": 12 - }, - "hiddenSeries": false, - "id": 14, - "isNew": false, - "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, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "span": 0, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "(max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_used_bytes )) / (max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_capacity_bytes )) * 100", - "intervalFactor": 1, - "legendFormat": "{{namespace}} ({{persistentvolumeclaim}})", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Running PVCs % Used", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "format": "", - "logBase": 0, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "percent", - "logBase": 1, - "max": 100, - "min": 0, - "show": true - }, - { - "format": "bytes", - "logBase": 1, - "show": false - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - } - ], - "title": "Use", - "type": "row" - }, - { - "collapsed": true, - "datasource": "$DS_OPENSHIFT_PROMETHEUS", - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 10 - }, - "id": 24, - "panels": [ - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "$DS_OPENSHIFT_PROMETHEUS", - "description": "WARNING: Any PVCs that are not bound to a running pod will not show up in this state.", - "fill": 0, - "fillGradient": 0, - "gridPos": { - "h": 6, - "w": 24, - "x": 0, - "y": 5 - }, - "hiddenSeries": false, - "id": 17, - "legend": { - "alignAsTable": true, - "avg": false, - "current": true, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "rate(kubelet_volume_stats_used_bytes [1h])", - "format": "time_series", - "instant": false, - "intervalFactor": 1, - "legendFormat": "{{namespace}} ({{persistentvolumeclaim}})", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Hourly Volume Use Rate", - "tooltip": { - "shared": true, - "sort": 1, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "decimals": null, - "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": "$DS_OPENSHIFT_PROMETHEUS", - "description": "WARNING: Any PVCs that are not bound to a running pod will not show up in this state.", - "fill": 0, - "fillGradient": 0, - "gridPos": { - "h": 6, - "w": 24, - "x": 0, - "y": 11 - }, - "hiddenSeries": false, - "id": 18, - "legend": { - "alignAsTable": true, - "avg": false, - "current": true, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "rate(kubelet_volume_stats_used_bytes [1d])", - "format": "time_series", - "instant": false, - "intervalFactor": 1, - "legendFormat": "{{namespace}} ({{persistentvolumeclaim}})", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Daily Volume Use Rate", - "tooltip": { - "shared": true, - "sort": 1, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "decimals": null, - "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": "$DS_OPENSHIFT_PROMETHEUS", - "description": "WARNING: Any PVCs that are not bound to a running pod will not show up in this state.", - "fill": 0, - "fillGradient": 0, - "gridPos": { - "h": 6, - "w": 24, - "x": 0, - "y": 17 - }, - "hiddenSeries": false, - "hideTimeOverride": false, - "id": 25, - "interval": "", - "legend": { - "alignAsTable": true, - "avg": false, - "current": true, - "max": false, - "min": false, - "rightSide": true, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "rate(kubelet_volume_stats_used_bytes [1w])", - "format": "time_series", - "instant": false, - "intervalFactor": 1, - "legendFormat": "{{namespace}} ({{persistentvolumeclaim}})", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "Weekly Volume Use Rate", - "tooltip": { - "shared": true, - "sort": 1, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "decimals": null, - "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 - } - } - ], - "title": "Use Rate", - "type": "row" - } - ], - "schemaVersion": 21, - "style": "dark", - "tags": [ - "openshift", - "k8s", - "storage" - ], - "templating": { - "list": [ - { - "allFormat": "", - "allValue": "", - "current": { - "text": "openshift-prometheus", - "value": "openshift-prometheus" - }, - "datasource": null, - "hide": 0, - "includeAll": false, - "label": "Datasource", - "multi": false, - "multiFormat": "", - "name": "DS_OPENSHIFT_PROMETHEUS", - "options": [], - "query": "prometheus", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "datasource" - }, - { - "allFormat": "", - "allValue": "", - "current": { - "selected": false, - "text": "80", - "value": "80" - }, - "datasource": null, - "hide": 0, - "includeAll": false, - "label": "PVC % Used Warning Threshold", - "multi": false, - "multiFormat": "", - "name": "pvc_percent_used_warning_threshold", - "options": [ - { - "selected": false, - "text": "80", - "value": "80" - } - ], - "query": "80", - "refresh": false, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "textbox" - } - ] - }, - "time": { - "from": "now-2d", - "to": "now" - }, - "timepicker": { - "refresh_intervals": [ - "5s", - "10s", - "30s", - "1m", - "5m", - "15m", - "30m", - "1h", - "2h", - "1d" - ], - "time_options": null - }, - "timezone": "", - "title": "K8s / Storage / Volumes / Cluster" - } -`}} diff --git a/sources/otel-lgtm-stack/templates/dashboards-gpu.yaml b/sources/otel-lgtm-stack/templates/dashboards-gpu.yaml deleted file mode 100644 index 46b0e68e..00000000 --- a/sources/otel-lgtm-stack/templates/dashboards-gpu.yaml +++ /dev/null @@ -1,1106 +0,0 @@ ---- -apiVersion: v1 -kind: ConfigMap -metadata: - name: lgtm-amd-gpu-dashboard - namespace: otel-lgtm-stack - labels: - grafana_dashboard: "1" - annotations: - grafana_folder: "common" -data: - amd-gpu-dashboard.json: |- -{{` - { - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": { - "type": "grafana", - "uid": "-- Grafana --" - }, - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "type": "dashboard" - } - ] - }, - "editable": true, - "fiscalYearStartMonth": 0, - "graphTooltip": 0, - "id": 1, - "links": [], - "panels": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "gridPos": { - "h": 6, - "w": 4, - "x": 0, - "y": 0 - }, - "id": 10, - "options": { - "code": { - "language": "plaintext", - "showLineNumbers": false, - "showMiniMap": false - }, - "content": "**GPU MODEL**\n## ${gpu_model}\n\n**GPU S/N**\n## ${gpu_serial_number}", - "mode": "markdown" - }, - "pluginVersion": "11.1.4", - "type": "text" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "watt" - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 5, - "x": 4, - "y": 0 - }, - "id": 6, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "/^gpu_power_usage$/", - "values": false - }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "11.1.4", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "disableTextWrap": false, - "editorMode": "builder", - "exemplar": false, - "expr": "gpu_power_usage{gpu_uuid=~\"$gpu\", job=\"$scope\"}", - "format": "time_series", - "fullMetaSearch": false, - "hide": false, - "includeNullMetadata": true, - "instant": true, - "legendFormat": "gpu_power_usage", - "range": false, - "refId": "gpu_power_usage", - "useBackend": false - } - ], - "title": "Power Usage (W)", - "transformations": [ - { - "id": "merge", - "options": {} - }, - { - "id": "reduce", - "options": { - "includeTimeField": false, - "mode": "reduceFields", - "reducers": [ - "mean" - ] - } - } - ], - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 5, - "x": 9, - "y": 0 - }, - "id": 4, - "options": { - "minVizHeight": 75, - "minVizWidth": 75, - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "sizing": "auto" - }, - "pluginVersion": "11.1.4", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "disableTextWrap": false, - "editorMode": "builder", - "exemplar": false, - "expr": "gpu_used_vram{gpu_uuid=~\"$gpu\", job=\"$scope\"} / on(gpu_uuid) gpu_total_vram{gpu_uuid=~\"$gpu\", job=\"$scope\"}", - "format": "time_series", - "fullMetaSearch": false, - "hide": false, - "includeNullMetadata": true, - "instant": true, - "legendFormat": "gpu_vram_utilization", - "range": false, - "refId": "gpu_used_vram", - "useBackend": false - } - ], - "title": "Memory Utilization %", - "transformations": [ - { - "id": "joinByField", - "options": { - "byField": "Time", - "mode": "outer" - } - }, - { - "id": "reduce", - "options": { - "reducers": [ - "mean" - ] - } - } - ], - "type": "gauge" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 5, - "x": 14, - "y": 0 - }, - "id": 12, - "options": { - "minVizHeight": 75, - "minVizWidth": 75, - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "/^gpu_gfx_activity$/", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "sizing": "auto" - }, - "pluginVersion": "11.1.4", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "disableTextWrap": false, - "editorMode": "builder", - "exemplar": false, - "expr": "gpu_gfx_activity{gpu_uuid=~\"$gpu\", job=\"$scope\"}", - "format": "time_series", - "fullMetaSearch": false, - "hide": false, - "includeNullMetadata": true, - "instant": true, - "legendFormat": "gpu_gfx_activity", - "range": false, - "refId": "gpu_gfx_activity", - "useBackend": false - } - ], - "title": "GPU Utilization %", - "transformations": [ - { - "id": "merge", - "options": {} - }, - { - "id": "reduce", - "options": { - "includeTimeField": false, - "mode": "reduceFields", - "reducers": [ - "mean" - ] - } - } - ], - "type": "gauge" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "celsius" - }, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 5, - "x": 19, - "y": 0 - }, - "id": 9, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "11.1.4", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "disableTextWrap": false, - "editorMode": "builder", - "exemplar": false, - "expr": "gpu_edge_temperature{gpu_uuid=~\"$gpu\", job=\"$scope\"}", - "format": "time_series", - "fullMetaSearch": false, - "hide": false, - "includeNullMetadata": true, - "instant": true, - "legendFormat": "gpu_edge_temperature", - "range": false, - "refId": "gpu_edge_temperature", - "useBackend": false - } - ], - "title": "GPU Temperature °C", - "transformations": [ - { - "id": "merge", - "options": {} - }, - { - "id": "reduce", - "options": { - "includeTimeField": false, - "labelsToFields": false, - "mode": "seriesToRows", - "reducers": [ - "mean" - ] - } - } - ], - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 5, - "x": 4, - "y": 3 - }, - "id": 13, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "auto", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "/^gpu_used_vram$/", - "values": false - }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "11.1.4", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "disableTextWrap": false, - "editorMode": "builder", - "exemplar": false, - "expr": "gpu_used_vram{gpu_uuid=~\"$gpu\", job=\"$scope\"}", - "format": "time_series", - "fullMetaSearch": false, - "hide": false, - "includeNullMetadata": true, - "instant": true, - "legendFormat": "gpu_used_vram", - "range": false, - "refId": "gpu_used_vram", - "useBackend": false - } - ], - "title": "VRAM Usage (MB)", - "transformations": [ - { - "id": "merge", - "options": {} - }, - { - "id": "reduce", - "options": { - "includeTimeField": false, - "mode": "reduceFields", - "reducers": [ - "mean" - ] - } - } - ], - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 8, - "x": 0, - "y": 6 - }, - "id": 3, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "disableTextWrap": false, - "editorMode": "builder", - "exemplar": false, - "expr": "gpu_gfx_activity{gpu_uuid=~\"$gpu\", job=\"$scope\"}", - "format": "time_series", - "fullMetaSearch": false, - "includeNullMetadata": true, - "instant": false, - "legendFormat": "{{gpu_uuid}}", - "range": true, - "refId": "gpu_gfx_activity", - "useBackend": false - } - ], - "title": "GPU Utilization %", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "axisSoftMax": 1, - "axisSoftMin": 0, - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 8, - "x": 8, - "y": 6 - }, - "id": 2, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "disableTextWrap": false, - "editorMode": "builder", - "exemplar": false, - "expr": "gpu_used_vram{gpu_uuid=~\"$gpu\", job=\"$scope\"} / on(gpu_uuid) gpu_total_vram{gpu_uuid=~\"$gpu\", job=\"$scope\"}", - "format": "time_series", - "fullMetaSearch": false, - "includeNullMetadata": true, - "instant": false, - "legendFormat": "__auto", - "range": true, - "refId": "gpu_used_vram", - "useBackend": false - } - ], - "title": "Memory Utilization %", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "celsius" - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 8, - "x": 16, - "y": 6 - }, - "id": 11, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "disableTextWrap": false, - "editorMode": "builder", - "exemplar": false, - "expr": "gpu_edge_temperature{gpu_uuid=~\"$gpu\", job=\"$scope\"}", - "format": "time_series", - "fullMetaSearch": false, - "includeNullMetadata": true, - "instant": false, - "legendFormat": "{{gpu_uuid}}", - "range": true, - "refId": "gpu_edge_temperature", - "useBackend": false - } - ], - "title": "GPU Temperature °C", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "custom": { - "align": "auto", - "cellOptions": { - "type": "auto", - "wrapText": false - }, - "filterable": true, - "inspect": false - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 24, - "x": 0, - "y": 13 - }, - "id": 14, - "options": { - "cellHeight": "sm", - "footer": { - "countRows": false, - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true - }, - "pluginVersion": "11.1.4", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "disableTextWrap": false, - "editorMode": "builder", - "expr": "{gpu_uuid=~\"$gpu\", job=\"$scope\"}", - "format": "table", - "fullMetaSearch": false, - "hide": false, - "includeNullMetadata": true, - "instant": false, - "legendFormat": "__auto", - "range": true, - "refId": "A", - "useBackend": false - } - ], - "title": "Raw data", - "type": "table" - } - ], - "schemaVersion": 39, - "tags": [], - "templating": { - "list": [ - { - "current": { - "selected": false, - "text": "kubernetes-pods", - "value": "kubernetes-pods" - }, - "description": "Filter variable for job scope", - "hide": 0, - "includeAll": false, - "label": "Scope", - "multi": false, - "name": "scope", - "options": [ - { - "selected": true, - "text": "kubernetes-pods", - "value": "kubernetes-pods" - }, - { - "selected": false, - "text": "kubernetes-service-endpoints", - "value": "kubernetes-service-endpoints" - } - ], - "query": "kubernetes-pods,kubernetes-service-endpoints", - "queryValue": "", - "skipUrlSync": false, - "type": "custom" - }, - { - "current": { - "selected": false, - "text": "atlpkuc4app06", - "value": "atlpkuc4app06" - }, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "definition": "label_values(node)", - "hide": 0, - "includeAll": false, - "label": "Node", - "multi": false, - "name": "node", - "options": [], - "query": { - "qryType": 1, - "query": "label_values(node)", - "refId": "PrometheusVariableQueryEditor-VariableQuery" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": true, - "text": "All", - "value": "$__all" - }, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "definition": "label_values({node=\"$node\"},gpu_uuid)", - "hide": 0, - "includeAll": true, - "label": "GPU", - "multi": false, - "name": "gpu", - "options": [], - "query": { - "qryType": 1, - "query": "label_values({node=\"$node\"},gpu_uuid)", - "refId": "PrometheusVariableQueryEditor-VariableQuery" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "isNone": true, - "selected": false, - "text": "None", - "value": "" - }, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "definition": "label_values({gpu_uuid=\"$gpu\"},amd_com_gpu_family)", - "hide": 2, - "includeAll": false, - "label": "GPU Family", - "multi": false, - "name": "gpu_family", - "options": [], - "query": { - "qryType": 1, - "query": "label_values({gpu_uuid=\"$gpu\"},amd_com_gpu_family)", - "refId": "PrometheusVariableQueryEditor-VariableQuery" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": true, - "text": [ - "102-D65210-00" - ], - "value": [ - "102-D65210-00" - ] - }, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "definition": "label_values({gpu_uuid=~\"$gpu\"},card_model)", - "hide": 2, - "includeAll": false, - "label": "GPU Model", - "multi": true, - "name": "gpu_model", - "options": [], - "query": { - "qryType": 1, - "query": "label_values({gpu_uuid=~\"$gpu\"},card_model)", - "refId": "PrometheusVariableQueryEditor-VariableQuery" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - }, - { - "current": { - "selected": true, - "text": [ - "692324000620" - ], - "value": [ - "692324000620" - ] - }, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "definition": "label_values({gpu_uuid=~\"$gpu\"},serial_number)", - "hide": 2, - "includeAll": false, - "label": "GPU Serial Number", - "multi": true, - "name": "gpu_serial_number", - "options": [], - "query": { - "qryType": 1, - "query": "label_values({gpu_uuid=~\"$gpu\"},serial_number)", - "refId": "PrometheusVariableQueryEditor-VariableQuery" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "type": "query" - } - ] - }, - "time": { - "from": "now-1h", - "to": "now" - }, - "timepicker": {}, - "timezone": "browser", - "title": "AMD GPU Metrics", - "uid": "ee6sumbzuzl6oc", - "version": 25, - "weekStart": "" - } -`}} diff --git a/sources/otel-lgtm-stack/templates/dashboards-minio.yaml b/sources/otel-lgtm-stack/templates/dashboards-minio.yaml deleted file mode 100644 index dcdd5690..00000000 --- a/sources/otel-lgtm-stack/templates/dashboards-minio.yaml +++ /dev/null @@ -1,663 +0,0 @@ ---- -{{- /* -This template contains Grafana dashboard JSON with Prometheus template expressions like {{job}}. -We use the 'raw' block to prevent Helm from interpreting these as Helm templates. -*/ -}} -apiVersion: v1 -kind: ConfigMap -metadata: - name: lgtm-minio-dashboard - namespace: otel-lgtm-stack - labels: - grafana_dashboard: "1" - annotations: - grafana_folder: "common" -data: - lgtm-minio-dashboard.json: | -{{` - { - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": { - "type": "grafana", - "uid": "-- Grafana --" - }, - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "type": "dashboard" - } - ] - }, - "editable": true, - "fiscalYearStartMonth": 0, - "graphTooltip": 0, - "id": 11, - "links": [], - "panels": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "fieldMinMax": false, - "mappings": [], - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "green" - }, - { - "color": "dark-red", - "value": 20 - }, - { - "color": "#EAB839", - "value": 30 - }, - { - "color": "green", - "value": 40 - } - ] - }, - "unit": "percent" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 6, - "x": 0, - "y": 0 - }, - "id": 7, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "11.6.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "editorMode": "code", - "expr": "(minio_cluster_capacity_usable_free_bytes{job=\"minio-cluster-metrics\"} / minio_cluster_capacity_usable_total_bytes{job=\"minio-cluster-metrics\"}) * 100", - "instant": false, - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "Cluster Free Capacity (%)", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "description": "Total bytes on a drive", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - } - ] - }, - "unit": "bytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 6, - "x": 6, - "y": 0 - }, - "id": 1, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "11.6.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "disableTextWrap": false, - "editorMode": "code", - "expr": "minio_node_drive_total_bytes{job=\"minio-resource-metrics\"}", - "fullMetaSearch": false, - "includeNullMetadata": true, - "instant": false, - "legendFormat": "__auto", - "range": true, - "refId": "A", - "useBackend": false - } - ], - "title": "Drive Total Bytes", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "description": "Used bytes on a drive", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - } - ] - }, - "unit": "bytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 6, - "x": 12, - "y": 0 - }, - "id": 2, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "11.6.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "editorMode": "code", - "expr": "minio_node_drive_used_bytes{job=\"minio-resource-metrics\"}", - "instant": false, - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "Drive Used Bytes", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "description": "Total number of buckets in the cluster", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - } - ] - }, - "unit": "buckets" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 6, - "x": 18, - "y": 0 - }, - "id": 5, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "11.6.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "editorMode": "code", - "expr": "minio_cluster_bucket_total{job=\"minio-cluster-metrics\"}", - "instant": false, - "legendFormat": "{{job}}", - "range": true, - "refId": "A" - } - ], - "title": "Total Number of Buckets", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "description": "Total bucket size in bytes", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - } - ] - }, - "unit": "bytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 6, - "x": 0, - "y": 9 - }, - "id": 3, - "options": { - "minVizHeight": 75, - "minVizWidth": 75, - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "sizing": "auto" - }, - "pluginVersion": "11.6.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "editorMode": "code", - "expr": "minio_bucket_usage_total_bytes{}", - "instant": false, - "legendFormat": "{{bucket}}", - "range": true, - "refId": "A" - } - ], - "title": "minio_bucket_usage_total_bytes", - "type": "gauge" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "barWidthFactor": 0.6, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "bytes" - }, - "overrides": [ - { - "__systemRef": "hideSeriesFrom", - "matcher": { - "id": "byNames", - "options": { - "mode": "exclude", - "names": [ - "default-bucket" - ], - "prefix": "All except:", - "readOnly": true - } - }, - "properties": [ - { - "id": "custom.hideFrom", - "value": { - "legend": false, - "tooltip": false, - "viz": true - } - } - ] - } - ] - }, - "gridPos": { - "h": 8, - "w": 6, - "x": 6, - "y": 9 - }, - "id": 4, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "hideZeros": false, - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "11.6.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "editorMode": "code", - "expr": "increase(minio_bucket_usage_total_bytes[10m])\n", - "instant": false, - "legendFormat": "{{bucket}}", - "range": true, - "refId": "A" - } - ], - "title": "MinIO Bucket Growth Rate", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "barWidthFactor": 0.6, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 3, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "bytes" - }, - "overrides": [ - { - "__systemRef": "hideSeriesFrom", - "matcher": { - "id": "byNames", - "options": { - "mode": "exclude", - "names": [ - "{__name__=\"minio_bucket_usage_total_bytes\", bucket=\"default-bucket\", instance=\"minio.minio-tenant-default.svc.cluster.local:80\", job=\"minio-bucket-metrics\", server=\"127.0.0.1:9000\", service_instance_id=\"minio.minio-tenant-default.svc.cluster.local:80\", service_name=\"minio-bucket-metrics\"}" - ], - "prefix": "All except:", - "readOnly": true - } - }, - "properties": [ - { - "id": "custom.hideFrom", - "value": { - "legend": false, - "tooltip": false, - "viz": true - } - } - ] - } - ] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 9 - }, - "id": 8, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "hideZeros": false, - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "11.6.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "editorMode": "code", - "expr": "minio_bucket_usage_total_bytes{}", - "instant": false, - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "Bucket Usage Bytes", - "type": "timeseries" - } - ], - "preload": false, - "schemaVersion": 41, - "tags": [], - "templating": { - "list": [] - }, - "time": { - "from": "now-12h", - "to": "now" - }, - "timepicker": { - "refresh_intervals": [ - "5s", - "10s", - "30s", - "1m", - "5m", - "15m", - "30m", - "1h", - "2h", - "1d", - "7d" - ] - }, - "timezone": "browser", - "title": "MinIO simple dashboard", - "uid": "minioSimple", - "version": 5 - } -`}} From 991d34266e865bf733ce11b38c3adaaa0424a411 Mon Sep 17 00:00:00 2001 From: woojae-siloai Date: Wed, 10 Dec 2025 21:56:15 +0200 Subject: [PATCH 05/27] fix: 1st phase of lgtm helm templates --- .../templates/dashboards-default.yaml | 7077 +++++++++++++++++ .../templates/dashboards-gpu.yaml | 1106 +++ .../templates/dashboards-minio.yaml | 657 ++ 3 files changed, 8840 insertions(+) create mode 100644 sources/otel-lgtm-stack/templates/dashboards-default.yaml create mode 100644 sources/otel-lgtm-stack/templates/dashboards-gpu.yaml create mode 100644 sources/otel-lgtm-stack/templates/dashboards-minio.yaml diff --git a/sources/otel-lgtm-stack/templates/dashboards-default.yaml b/sources/otel-lgtm-stack/templates/dashboards-default.yaml new file mode 100644 index 00000000..5f814e55 --- /dev/null +++ b/sources/otel-lgtm-stack/templates/dashboards-default.yaml @@ -0,0 +1,7077 @@ +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: lgtm-k8s-nodes-overview + namespace: otel-lgtm-stack + labels: + grafana_dashboard: "1" + annotations: + grafana_folder: "common" +data: + k8s-nodes-overview.json: |- +{{` + { + "annotations": { + "list": [ + { + "$$hashKey": "object:247", + "builtIn": 1, + "datasource": { + "type": "datasource", + "uid": "grafana" + }, + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "target": { + "limit": 100, + "matchAny": false, + "tags": [], + "type": "dashboard" + }, + "type": "dashboard" + } + ] + }, + "description": "【 resource overview 】2021.10.10 detail ,kubernetes Node information details ! outflow K8S Node resource overview 、 Network bandwidth per second 、Pod Resource details K8S Network overview , Optimizing important metrics display 。https://github.com/starsliao/Prometheus", + "editable": true, + "fiscalYearStartMonth": 0, + "gnetId": 15661, + "graphTooltip": 0, + "id": 1, + "links": [ + { + "icon": "bolt", + "tags": [], + "targetBlank": true, + "title": "Update", + "tooltip": " Update current dashboard ", + "type": "link", + "url": "https://grafana.com/dashboards/13105" + }, + { + "$$hashKey": "object:831", + "icon": "question", + "tags": [ + "node_exporter" + ], + "targetBlank": true, + "title": "GitHub", + "tooltip": " Overall memory usage ", + "type": "link", + "url": "https://github.com/starsliao/Prometheus" + }, + { + "$$hashKey": "object:1091", + "asDropdown": true, + "icon": "external link", + "tags": [], + "targetBlank": true, + "type": "dashboards" + } + ], + "panels": [ + { + "collapsed": false, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 54, + "panels": [], + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "refId": "A" + } + ], + "title": " Node Storage Information : Number of cores used :【$Node】", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "decimals": 1, + "mappings": [], + "max": 1, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "rgba(50, 172, 45, 0.97)", + "value": null + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 0.8 + }, + { + "color": "rgba(245, 54, 54, 0.9)", + "value": 0.99 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 4, + "x": 0, + "y": 1 + }, + "id": 44, + "options": { + "displayMode": "basic", + "maxVizHeight": 300, + "minVizHeight": 16, + "minVizWidth": 8, + "namePlacement": "auto", + "orientation": "vertical", + "reduceOptions": { + "calcs": [ + "last" + ], + "fields": "", + "values": false + }, + "showUnfilled": true, + "sizing": "auto", + "text": {}, + "valueMode": "color" + }, + "pluginVersion": "11.1.4", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum(container_memory_working_set_bytes{origin_prometheus=~\"$origin_prometheus\",container!=\"\",node=~\"^$Node$\"}) / sum(kube_node_status_allocatable{origin_prometheus=~\"$origin_prometheus\",resource=\"memory\", unit=\"byte\", node=~\"^$Node$\"})", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": " Memory Limit Rate ", + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum(kube_pod_container_resource_requests{origin_prometheus=~\"$origin_prometheus\",resource=\"memory\", unit=\"byte\",node=~\"^$Node$\"}) / sum(kube_node_status_allocatable{origin_prometheus=~\"$origin_prometheus\",resource=\"memory\", unit=\"byte\", node=~\"^$Node$\"})", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": " Total memory usage ", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum(kube_pod_container_resource_limits{origin_prometheus=~\"$origin_prometheus\",resource=\"memory\", unit=\"byte\",node=~\"^$Node$\"}) / sum(kube_node_status_allocatable{origin_prometheus=~\"$origin_prometheus\",resource=\"memory\", unit=\"byte\", node=~\"^$Node$\"})", + "hide": false, + "instant": true, + "interval": "10s", + "intervalFactor": 1, + "legendFormat": " Total Memory Demand ", + "refId": "B", + "step": 10 + } + ], + "title": " Overall core usage ", + "type": "bargauge" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "decimals": 1, + "mappings": [], + "max": 1, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "rgba(50, 172, 45, 0.97)", + "value": null + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 0.8 + }, + { + "color": "rgba(245, 54, 54, 0.9)", + "value": 0.99 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 4, + "x": 4, + "y": 1 + }, + "id": 45, + "options": { + "displayMode": "basic", + "maxVizHeight": 300, + "minVizHeight": 16, + "minVizWidth": 8, + "namePlacement": "auto", + "orientation": "vertical", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showUnfilled": true, + "sizing": "auto", + "text": {}, + "valueMode": "color" + }, + "pluginVersion": "11.1.4", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum (irate(container_cpu_usage_seconds_total{origin_prometheus=~\"$origin_prometheus\",container!=\"\",node=~\"^$Node$\"}[2m])) / sum(kube_node_status_allocatable{origin_prometheus=~\"$origin_prometheus\",resource=\"cpu\", unit=\"core\", node=~\"^$Node$\"})", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "CPU Request Rate ", + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum(kube_pod_container_resource_requests{origin_prometheus=~\"$origin_prometheus\",resource=\"cpu\", unit=\"core\",node=~\"^$Node$\"}) / sum(kube_node_status_allocatable{origin_prometheus=~\"$origin_prometheus\",resource=\"cpu\", unit=\"core\", node=~\"^$Node$\"})", + "instant": true, + "interval": "", + "legendFormat": "CPU total memory ", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum(kube_pod_container_resource_limits{origin_prometheus=~\"$origin_prometheus\",resource=\"cpu\", unit=\"core\",node=~\"^$Node$\"}) / sum(kube_node_status_allocatable{origin_prometheus=~\"$origin_prometheus\",resource=\"cpu\", unit=\"core\", node=~\"^$Node$\"})", + "instant": true, + "interval": "", + "legendFormat": "CPU Nodes ", + "refId": "B" + } + ], + "title": " container CPU proportion ", + "type": "bargauge" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "description": " Memory Request Rate , container POD core , container POD disk ", + "fieldConfig": { + "defaults": { + "mappings": [], + "max": 1000, + "min": 1, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "#EAB839", + "value": 1000 + }, + { + "color": "red", + "value": 2000 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 3, + "x": 8, + "y": 1 + }, + "id": 74, + "options": { + "displayMode": "basic", + "maxVizHeight": 300, + "minVizHeight": 16, + "minVizWidth": 8, + "namePlacement": "auto", + "orientation": "vertical", + "reduceOptions": { + "calcs": [ + "last" + ], + "fields": "", + "values": false + }, + "showUnfilled": true, + "sizing": "auto", + "text": {}, + "valueMode": "color" + }, + "pluginVersion": "11.1.4", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "count(kube_node_info{origin_prometheus=~\"$origin_prometheus\"})", + "instant": true, + "interval": "", + "legendFormat": " Total Cores ", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "count(kube_pod_info{origin_prometheus=~\"$origin_prometheus\",created_by_kind!~\"|Job\",node=~\"^$Node$\"})", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "Pod core ", + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum(kube_node_status_allocatable{origin_prometheus=~\"$origin_prometheus\",resource=\"pods\", unit=\"integer\",node=~\"^$Node$\"})", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": " disk Pod", + "refId": "C" + } + ], + "title": " microservice Pod", + "type": "bargauge" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "custom": { + "align": "center", + "cellOptions": { + "type": "auto" + }, + "filterable": false, + "inspect": false + }, + "mappings": [], + "noValue": "0", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": " use " + }, + "properties": [ + { + "id": "custom.width", + "value": 8 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Pod" + }, + "properties": [ + { + "id": "custom.width", + "value": 21 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "SVC" + }, + "properties": [ + { + "id": "custom.width", + "value": 7 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": " usage " + }, + "properties": [ + { + "id": "custom.width", + "value": 4 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": " memory " + }, + "properties": [ + { + "id": "custom.width", + "value": 16 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": " request " + }, + "properties": [ + { + "id": "custom.width", + "value": 33 + } + ] + } + ] + }, + "gridPos": { + "h": 8, + "w": 5, + "x": 11, + "y": 1 + }, + "id": 51, + "options": { + "cellHeight": "sm", + "footer": { + "countRows": false, + "fields": "", + "reducer": [ + "sum" + ], + "show": false + }, + "showHeader": true, + "sortBy": [ + { + "desc": true, + "displayName": " use " + } + ] + }, + "pluginVersion": "11.1.4", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "count(kube_pod_info{origin_prometheus=~\"$origin_prometheus\",node=~\"^$Node$\"}) by (namespace)", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "count(kube_service_info{origin_prometheus=~\"$origin_prometheus\"}) by(namespace)", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "count(count(kube_pod_container_info{origin_prometheus=~\"$origin_prometheus\"}) by(container,namespace))by(namespace)", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "D" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "count(kube_configmap_info{origin_prometheus=~\"$origin_prometheus\"}) by(namespace)", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "configmap", + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "count(kube_secret_info{origin_prometheus=~\"$origin_prometheus\"}) by(namespace)", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "secret", + "refId": "E" + } + ], + "title": " average memory ", + "transformations": [ + { + "id": "seriesToColumns", + "options": { + "byField": "namespace" + } + }, + { + "id": "organize", + "options": { + "excludeByName": { + "Time 1": true, + "Time 2": true, + "Time 3": true, + "Time 4": true, + "Time 5": true + }, + "indexByName": { + "Time 1": 2, + "Time 2": 4, + "Time 3": 6, + "Value #A": 3, + "Value #C": 5, + "Value #D": 1, + "namespace": 0 + }, + "renameByName": { + "Time 1": "", + "Time 2": "", + "Value #A": "Pod", + "Value #B": " memory ", + "Value #C": "SVC", + "Value #D": " usage ", + "Value #E": " request ", + "namespace": " use " + } + } + } + ], + "type": "table" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "binbps" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 8, + "x": 16, + "y": 1 + }, + "id": 32, + "options": { + "legend": { + "calcs": [ + "mean", + "lastNotNull" + ], + "displayMode": "list", + "placement": "bottom", + "showLegend": false, + "width": 200 + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "7.5.11", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum (rate(container_network_receive_bytes_total{origin_prometheus=~\"$origin_prometheus\",node=~\"^$Node$\",namespace=~\"$NameSpace\"}[2m]))*8", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": " inflow ", + "metric": "network", + "refId": "A", + "step": 10 + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum (rate(container_network_transmit_bytes_total{origin_prometheus=~\"$origin_prometheus\",node=~\"^$Node$\",namespace=~\"$NameSpace\"}[2m]))*8", + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": " status ", + "metric": "network", + "refId": "B", + "step": 10 + } + ], + "title": "$NameSpace: selected nodes ( Associating nodes and namespaces )", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "decimals": 1, + "mappings": [], + "max": 1000000000000, + "min": 1, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "#EAB839", + "value": 800000000000 + }, + { + "color": "red", + "value": 1000000000000 + } + ] + }, + "unit": "bytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 4, + "x": 0, + "y": 5 + }, + "id": 71, + "options": { + "displayMode": "basic", + "maxVizHeight": 300, + "minVizHeight": 16, + "minVizWidth": 8, + "namePlacement": "auto", + "orientation": "vertical", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showUnfilled": true, + "sizing": "auto", + "text": {}, + "valueMode": "color" + }, + "pluginVersion": "11.1.4", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum(kube_node_status_allocatable{origin_prometheus=~\"$origin_prometheus\",resource=\"memory\", unit=\"byte\", node=~\"^$Node$\"})", + "instant": true, + "interval": "", + "legendFormat": " Requests ", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum (container_memory_working_set_bytes{origin_prometheus=~\"$origin_prometheus\",container!=\"\",node=~\"^$Node$\"})", + "instant": true, + "interval": "", + "legendFormat": " Nodes ", + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum(kube_pod_container_resource_requests{origin_prometheus=~\"$origin_prometheus\",resource=\"memory\", unit=\"byte\",node=~\"^$Node$\"})", + "instant": true, + "interval": "", + "legendFormat": " total disk ", + "refId": "D" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum(kube_pod_container_resource_limits{origin_prometheus=~\"$origin_prometheus\",resource=\"memory\", unit=\"byte\",node=~\"^$Node$\"})", + "instant": true, + "interval": "", + "legendFormat": " limit rate ", + "refId": "B" + } + ], + "title": " Resource comprehensive display ", + "type": "bargauge" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "decimals": 1, + "mappings": [], + "max": 500, + "min": 1, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "#EAB839", + "value": 500 + }, + { + "color": "red", + "value": 1000 + } + ] + }, + "unit": "locale" + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 4, + "x": 4, + "y": 5 + }, + "id": 72, + "options": { + "displayMode": "basic", + "maxVizHeight": 300, + "minVizHeight": 16, + "minVizWidth": 8, + "namePlacement": "auto", + "orientation": "vertical", + "reduceOptions": { + "calcs": [ + "last" + ], + "fields": "", + "values": false + }, + "showUnfilled": true, + "sizing": "auto", + "text": {}, + "valueMode": "color" + }, + "pluginVersion": "11.1.4", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum(kube_node_status_allocatable{origin_prometheus=~\"$origin_prometheus\",resource=\"cpu\", unit=\"core\", node=~\"^$Node$\"})", + "instant": true, + "interval": "", + "legendFormat": " usage ", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum (irate(container_cpu_usage_seconds_total{origin_prometheus=~\"$origin_prometheus\",id=\"/\",node=~\"^$Node$\"}[2m]))", + "instant": true, + "interval": "", + "legendFormat": " Nodes ", + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum(kube_pod_container_resource_requests{origin_prometheus=~\"$origin_prometheus\",resource=\"cpu\", unit=\"core\",node=~\"^$Node$\"})", + "instant": true, + "interval": "", + "legendFormat": " total disk ", + "refId": "D" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum(kube_pod_container_resource_limits{origin_prometheus=~\"$origin_prometheus\",resource=\"cpu\", unit=\"core\",node=~\"^$Node$\"})", + "instant": true, + "interval": "", + "legendFormat": " limit rate ", + "refId": "B" + } + ], + "title": " container CPU node ", + "type": "bargauge" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "decimals": 2, + "mappings": [], + "max": 8000000000000, + "min": 1, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "#EAB839", + "value": 5000000000000 + }, + { + "color": "red", + "value": 10000000000000 + } + ] + }, + "unit": "bytes" + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": " Request Rate " + }, + "properties": [ + { + "id": "unit", + "value": "percentunit" + }, + { + "id": "max", + "value": 1 + }, + { + "id": "min", + "value": 0 + }, + { + "id": "thresholds", + "value": { + "mode": "percentage", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "orange", + "value": 80 + }, + { + "color": "red", + "value": 90 + } + ] + } + } + ] + } + ] + }, + "gridPos": { + "h": 4, + "w": 3, + "x": 8, + "y": 5 + }, + "id": 73, + "options": { + "displayMode": "basic", + "maxVizHeight": 300, + "minVizHeight": 16, + "minVizWidth": 8, + "namePlacement": "auto", + "orientation": "vertical", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showUnfilled": true, + "sizing": "auto", + "text": {}, + "valueMode": "color" + }, + "pluginVersion": "11.1.4", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "sum (container_fs_usage_bytes{origin_prometheus=~\"$origin_prometheus\",device=~\"^/dev/.*$\",id=\"/\",node=~\"^$Node$\"}) / sum (container_fs_limit_bytes{origin_prometheus=~\"$origin_prometheus\",device=~\"^/dev/.*$\",id=\"/\",node=~\"^$Node$\"})", + "instant": true, + "interval": "", + "legendFormat": " Request Rate ", + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "sum (container_fs_usage_bytes{origin_prometheus=~\"$origin_prometheus\",device=~\"^/dev/.*$\",id=\"/\",node=~\"^$Node$\"})", + "instant": true, + "interval": "", + "legendFormat": " Nodes ", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "sum (container_fs_limit_bytes{origin_prometheus=~\"$origin_prometheus\",device=~\"^/dev/.*$\",id=\"/\",node=~\"^$Node$\"})", + "instant": true, + "interval": "", + "legendFormat": " name ", + "refId": "B" + } + ], + "title": " Node memory ratio ", + "type": "bargauge" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "custom": { + "align": "center", + "cellOptions": { + "type": "auto" + }, + "filterable": false, + "inspect": false + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Pod" + }, + "properties": [ + { + "id": "custom.width", + "value": 51 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": " include " + }, + "properties": [ + { + "id": "custom.width", + "value": 51 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "CPU limit ( number )" + }, + "properties": [ + { + "id": "custom.width", + "value": 63 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "CPU total " + }, + "properties": [ + { + "id": "custom.width", + "value": 54 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "CPU total " + }, + "properties": [ + { + "id": "custom.width", + "value": 58 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": " memory request " + }, + "properties": [ + { + "id": "custom.width", + "value": 78 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": " Total Memory " + }, + "properties": [ + { + "id": "custom.width", + "value": 76 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": " Network bandwidth " + }, + "properties": [ + { + "id": "custom.width", + "value": 83 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": " English version " + }, + "properties": [ + { + "id": "custom.width", + "value": 85 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": " container name " + }, + "properties": [ + { + "id": "custom.width", + "value": 84 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": " config %" + }, + "properties": [ + { + "id": "custom.width", + "value": 92 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": " Memory Usage %" + }, + "properties": [ + { + "id": "custom.width", + "value": 63 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": " Network bandwidth %" + }, + "properties": [ + { + "id": "custom.width", + "value": 59 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "CPU limit %" + }, + "properties": [ + { + "id": "custom.width", + "value": 81 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "CPU max %" + }, + "properties": [ + { + "id": "custom.width", + "value": 77 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "CPU total %" + }, + "properties": [ + { + "id": "custom.width", + "value": 59 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": " English version %" + }, + "properties": [ + { + "id": "custom.width", + "value": 72 + } + ] + }, + { + "matcher": { + "id": "byRegexp", + "options": ".*%" + }, + "properties": [ + { + "id": "unit", + "value": "percentunit" + }, + { + "id": "thresholds", + "value": { + "mode": "percentage", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "orange", + "value": 80 + }, + { + "color": "red", + "value": 90 + } + ] + } + }, + { + "id": "custom.cellOptions", + "value": { + "mode": "gradient", + "type": "color-background" + } + } + ] + }, + { + "matcher": { + "id": "byRegexp", + "options": "( memory request | Total Memory | Memory Usage | Network bandwidth | English version | container name )" + }, + "properties": [ + { + "id": "unit", + "value": "bytes" + }, + { + "id": "decimals", + "value": 2 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": " container " + }, + "properties": [ + { + "id": "custom.width", + "value": 96 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": " memory request %" + }, + "properties": [ + { + "id": "custom.width", + "value": 67 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": " Memory Usage " + }, + "properties": [ + { + "id": "custom.width", + "value": 75 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "CPU max " + }, + "properties": [ + { + "id": "custom.width", + "value": 58 + } + ] + }, + { + "matcher": { + "id": "byRegexp", + "options": "(CPU total | Total Memory | container name |Pod disk )" + }, + "properties": [ + { + "id": "custom.cellOptions", + "value": { + "mode": "gradient", + "type": "color-background" + } + }, + { + "id": "thresholds", + "value": { + "mode": "absolute", + "steps": [ + { + "color": "blue", + "value": null + } + ] + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Pod disk " + }, + "properties": [ + { + "id": "custom.width", + "value": 54 + } + ] + }, + { + "matcher": { + "id": "byRegexp", + "options": "CPU limit \\( number \\)$| memory request $| English version $" + }, + "properties": [ + { + "id": "custom.cellOptions", + "value": { + "type": "color-text" + } + }, + { + "id": "color", + "value": { + "fixedColor": "orange", + "mode": "fixed" + } + } + ] + } + ] + }, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 9 + }, + "id": 52, + "options": { + "cellHeight": "sm", + "footer": { + "countRows": false, + "fields": "", + "reducer": [ + "sum" + ], + "show": false + }, + "showHeader": true, + "sortBy": [ + { + "desc": true, + "displayName": " English version %" + } + ] + }, + "pluginVersion": "11.1.4", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "count(kube_pod_info{origin_prometheus=~\"$origin_prometheus\",created_by_kind!~\"|Job\",node=~\"^$Node$\"}) by (node)", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "pod core ", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "kube_node_status_condition{origin_prometheus=~\"$origin_prometheus\",status=\"true\",node=~\"^$Node$\"} == 1", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": " include ", + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum (irate(container_cpu_usage_seconds_total{origin_prometheus=~\"$origin_prometheus\",container!=\"\",node=~\"^$Node$\"}[2m])) by (node)", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "I" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "kube_node_status_allocatable{origin_prometheus=~\"$origin_prometheus\",resource=\"cpu\", unit=\"core\", node=~\"^$Node$\"} - 0", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum(kube_pod_container_resource_requests{origin_prometheus=~\"$origin_prometheus\",resource=\"cpu\", unit=\"core\",node=~\"^$Node$\"}) by (node)", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "E" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum(kube_pod_container_resource_limits{origin_prometheus=~\"$origin_prometheus\",resource=\"cpu\", unit=\"core\",node=~\"^$Node$\"}) by (node)", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "F" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum (container_memory_working_set_bytes{origin_prometheus=~\"$origin_prometheus\",container!=\"\",node=~\"^$Node$\"}) by (node)", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "J" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum(kube_node_status_allocatable{origin_prometheus=~\"$origin_prometheus\",resource=\"memory\", unit=\"byte\", node=~\"^$Node$\"}) by (node) - 0", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "D" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum(kube_pod_container_resource_requests{origin_prometheus=~\"$origin_prometheus\",resource=\"memory\", unit=\"byte\",node=~\"^$Node$\"}) by (node)", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "G" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum(kube_pod_container_resource_limits{origin_prometheus=~\"$origin_prometheus\",resource=\"memory\", unit=\"byte\",node=~\"^$Node$\"}) by (node)", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "H" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "sum (container_fs_usage_bytes{origin_prometheus=~\"$origin_prometheus\",device=~\"^/dev/.*$\",id=\"/\",node=~\"^$Node$\"}) by (node)", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "K" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum (container_fs_limit_bytes{origin_prometheus=~\"$origin_prometheus\",device=~\"^/dev/.*$\",id=\"/\",node=~\"^$Node$\"}) by (node)", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "L" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum (container_memory_working_set_bytes{origin_prometheus=~\"$origin_prometheus\",container!=\"\",node=~\"^$Node$\"})by (node) / sum(kube_node_status_allocatable{origin_prometheus=~\"$origin_prometheus\",resource=\"memory\", unit=\"byte\", node=~\"^$Node$\"})by (node)", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": " memory request %", + "refId": "M" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum(kube_pod_container_resource_requests{origin_prometheus=~\"$origin_prometheus\",resource=\"memory\", unit=\"byte\",node=~\"^$Node$\"})by (node) / sum(kube_node_status_allocatable{origin_prometheus=~\"$origin_prometheus\",resource=\"memory\", unit=\"byte\", node=~\"^$Node$\"})by (node)", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": " Memory Usage %", + "refId": "N" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum(kube_pod_container_resource_limits{origin_prometheus=~\"$origin_prometheus\",resource=\"memory\", unit=\"byte\",node=~\"^$Node$\"})by (node) / sum(kube_node_status_allocatable{origin_prometheus=~\"$origin_prometheus\",resource=\"memory\", unit=\"byte\", node=~\"^$Node$\"})by (node)", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": " Network bandwidth %", + "refId": "O" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum (irate(container_cpu_usage_seconds_total{origin_prometheus=~\"$origin_prometheus\",container!=\"\",node=~\"^$Node$\"}[2m]))by (node) / sum(kube_node_status_allocatable{origin_prometheus=~\"$origin_prometheus\",resource=\"cpu\", unit=\"core\", node=~\"^$Node$\"})by (node)", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "CPU limit %", + "refId": "P" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum(kube_pod_container_resource_requests{origin_prometheus=~\"$origin_prometheus\",resource=\"cpu\", unit=\"core\",node=~\"^$Node$\"})by (node) / sum(kube_node_status_allocatable{origin_prometheus=~\"$origin_prometheus\",resource=\"cpu\", unit=\"core\", node=~\"^$Node$\"})by (node)", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "CPU max %", + "refId": "Q" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum(kube_pod_container_resource_limits{origin_prometheus=~\"$origin_prometheus\",resource=\"cpu\", unit=\"core\",node=~\"^$Node$\"})by (node) / sum(kube_node_status_allocatable{origin_prometheus=~\"$origin_prometheus\",resource=\"cpu\", unit=\"core\", node=~\"^$Node$\"})by (node)", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": " Network bandwidth %", + "refId": "R" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "sum (container_fs_usage_bytes{origin_prometheus=~\"$origin_prometheus\",device=~\"^/dev/.*$\",id=\"/\",node=~\"^$Node$\"})by (node) / sum (container_fs_limit_bytes{origin_prometheus=~\"$origin_prometheus\",device=~\"^/dev/.*$\",id=\"/\",node=~\"^$Node$\"})by (node)", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": " English version %", + "refId": "S" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum(kube_node_status_allocatable{origin_prometheus=~\"$origin_prometheus\",resource=\"pods\", unit=\"integer\",node=~\"^$Node$\"})by (node)", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "Pod disk ", + "refId": "T" + } + ], + "title": "$Node: Node memory details ", + "transformations": [ + { + "id": "merge", + "options": {} + }, + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true, + "Time 1": true, + "Time 10": true, + "Time 11": true, + "Time 12": true, + "Time 13": true, + "Time 14": true, + "Time 15": true, + "Time 16": true, + "Time 17": true, + "Time 18": true, + "Time 19": true, + "Time 2": true, + "Time 20": true, + "Time 3": true, + "Time 4": true, + "Time 5": true, + "Time 6": true, + "Time 7": true, + "Time 8": true, + "Time 9": true, + "Value #B": true, + "Value #E": false, + "Value #F": false, + "__name__": true, + "app_kubernetes_io_name": true, + "app_kubernetes_io_name 1": true, + "app_kubernetes_io_name 2": true, + "app_kubernetes_io_name 3": true, + "app_kubernetes_io_version": true, + "app_kubernetes_io_version 1": true, + "app_kubernetes_io_version 2": true, + "app_kubernetes_io_version 3": true, + "condition": false, + "instance": true, + "instance 1": true, + "instance 2": true, + "instance 3": true, + "job": true, + "job 1": true, + "job 2": true, + "job 3": true, + "k8s_namespace": true, + "k8s_namespace 1": true, + "k8s_namespace 2": true, + "k8s_namespace 3": true, + "k8s_sname": true, + "k8s_sname 1": true, + "k8s_sname 2": true, + "k8s_sname 3": true, + "origin_prometheus": true, + "origin_prometheus 1": true, + "origin_prometheus 2": true, + "origin_prometheus 3": true, + "resource": true, + "status": true, + "unit": true + }, + "indexByName": { + "Time": 26, + "Value #A": 3, + "Value #B": 6, + "Value #C": 7, + "Value #D": 14, + "Value #E": 10, + "Value #F": 12, + "Value #G": 17, + "Value #H": 19, + "Value #I": 8, + "Value #J": 15, + "Value #K": 22, + "Value #L": 21, + "Value #M": 16, + "Value #N": 18, + "Value #O": 20, + "Value #P": 9, + "Value #Q": 11, + "Value #R": 13, + "Value #S": 23, + "Value #T": 2, + "__name__": 4, + "app_kubernetes_io_name": 27, + "app_kubernetes_io_version": 28, + "condition": 1, + "instance": 29, + "job": 30, + "k8s_namespace": 31, + "k8s_sname": 32, + "node": 0, + "origin_prometheus": 33, + "resource": 24, + "status": 5, + "unit": 25 + }, + "renameByName": { + "Value #A": "Pod", + "Value #C": "CPU total ", + "Value #D": " Total Memory ", + "Value #E": "CPU max ", + "Value #F": "CPU total ", + "Value #G": " Memory Usage ", + "Value #H": " Network bandwidth ", + "Value #I": "CPU limit ( number )", + "Value #J": " memory request ", + "Value #K": " English version ", + "Value #L": " container name ", + "Value #M": " memory request %", + "Value #N": " Memory Usage %", + "Value #O": " Network bandwidth %", + "Value #P": "CPU limit %", + "Value #Q": "CPU max %", + "Value #R": "CPU total %", + "Value #S": " English version %", + "Value #T": "Pod disk ", + "condition": " include ", + "node": " container " + } + } + }, + { + "id": "filterFieldsByName", + "options": {} + } + ], + "type": "table" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percent" + }, + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "/ usage .*/" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "#C4162A", + "mode": "fixed" + } + } + ] + } + ] + }, + "gridPos": { + "h": 10, + "w": 8, + "x": 0, + "y": 17 + }, + "id": 75, + "options": { + "legend": { + "calcs": [ + "mean", + "lastNotNull", + "max" + ], + "displayMode": "table", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "desc" + } + }, + "pluginVersion": "7.5.11", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum (irate(container_cpu_usage_seconds_total{origin_prometheus=~\"$origin_prometheus\",container!=\"\",node=~\"^$Node$\"}[2m]))by (node) / sum(kube_node_status_allocatable{origin_prometheus=~\"$origin_prometheus\",resource=\"cpu\", unit=\"core\", node=~\"^$Node$\"})by (node)*100", + "format": "time_series", + "hide": false, + "instant": false, + "interval": "", + "legendFormat": "{{ "{{" }}node{{ "}}" }}", + "refId": "I" + } + ], + "title": "$Node: container CPU receive ", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percent" + }, + "overrides": [] + }, + "gridPos": { + "h": 10, + "w": 8, + "x": 8, + "y": 17 + }, + "id": 76, + "options": { + "legend": { + "calcs": [ + "mean", + "lastNotNull", + "max" + ], + "displayMode": "table", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "desc" + } + }, + "pluginVersion": "7.5.11", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum (container_memory_working_set_bytes{origin_prometheus=~\"$origin_prometheus\",container!=\"\",node=~\"^$Node$\"})by (node) / sum(kube_node_status_allocatable{origin_prometheus=~\"$origin_prometheus\",resource=\"memory\", unit=\"byte\", node=~\"^$Node$\"})by (node)*100", + "format": "time_series", + "hide": false, + "instant": false, + "interval": "", + "legendFormat": "{{ "{{" }}node{{ "}}" }}", + "refId": "I" + } + ], + "title": "$Node: Node Memory Information ", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "links": [], + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "binbps" + }, + "overrides": [] + }, + "gridPos": { + "h": 10, + "w": 8, + "x": 16, + "y": 17 + }, + "id": 78, + "options": { + "legend": { + "calcs": [ + "mean", + "lastNotNull", + "max" + ], + "displayMode": "table", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "desc" + } + }, + "pluginVersion": "7.5.11", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum (irate(container_network_receive_bytes_total{origin_prometheus=~\"$origin_prometheus\",node=~\"^$Node$\"}[2m]))by (node) *8", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": " update :{{ "{{" }}node{{ "}}" }}", + "metric": "network", + "refId": "A", + "step": 10 + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum (irate(container_network_transmit_bytes_total{origin_prometheus=~\"$origin_prometheus\",node=~\"^$Node$\"}[2m]))by (node) *8", + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": " restart :{{ "{{" }}node{{ "}}" }}", + "metric": "network", + "refId": "B", + "step": 10 + } + ], + "title": "$Node: Overall resource overview ", + "type": "timeseries" + }, + { + "collapsed": true, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 27 + }, + "id": 61, + "panels": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "custom": { + "align": "center", + "cellOptions": { + "type": "auto" + }, + "filterable": false + }, + "displayName": "", + "mappings": [], + "thresholds": { + "mode": "percentage", + "steps": [ + { + "color": "green" + }, + { + "color": "orange", + "value": 70 + }, + { + "color": "red", + "value": 90 + } + ] + }, + "unit": "short" + }, + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": ".*%.*" + }, + "properties": [ + { + "id": "unit", + "value": "percent" + }, + { + "id": "custom.cellOptions", + "value": { + "mode": "gradient", + "type": "gauge" + } + } + ] + }, + { + "matcher": { + "id": "byRegexp", + "options": " Requests .*" + }, + "properties": [ + { + "id": "unit", + "value": "bytes" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": " Number of cluster nodes " + }, + "properties": [ + { + "id": "unit", + "value": "bytes" + }, + { + "id": "thresholds", + "value": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "orange", + "value": 10737418240 + }, + { + "color": "red", + "value": 16106127360 + } + ] + } + }, + { + "id": "custom.cellOptions", + "value": { + "mode": "gradient", + "type": "color-background" + } + }, + { + "id": "custom.width", + "value": 90 + } + ] + }, + { + "matcher": { + "id": "byRegexp", + "options": ".* total " + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "blue", + "mode": "fixed" + } + }, + { + "id": "custom.cellOptions", + "value": { + "mode": "gradient", + "type": "color-background" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": " total CPU total " + }, + "properties": [ + { + "id": "custom.width", + "value": 84 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": " Total Disk Usage " + }, + "properties": [ + { + "id": "custom.width", + "value": 77 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": " Selected microservices (RSS) " + }, + "properties": [ + { + "id": "custom.width", + "value": 119 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": " Total memory limit " + }, + "properties": [ + { + "id": "custom.width", + "value": 82 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": " limit amount " + }, + "properties": [ + { + "id": "custom.width", + "value": 69 + }, + { + "id": "thresholds", + "value": { + "mode": "absolute", + "steps": [ + { + "color": "orange" + }, + { + "color": "green", + "value": 2 + } + ] + } + }, + { + "id": "custom.cellOptions", + "value": { + "mode": "gradient", + "type": "color-background" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": " Resource Details %(RSS)" + }, + "properties": [ + { + "id": "custom.width", + "value": 112 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": " password CPU%( overall 100%)" + }, + "properties": [ + { + "id": "custom.width", + "value": 150 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": " Node Network Overview " + }, + "properties": [ + { + "id": "custom.width", + "value": 100 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": " total CPU selected " + }, + "properties": [ + { + "id": "custom.width", + "value": 82 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": " Resource Details %(WSS)" + }, + "properties": [ + { + "id": "custom.width", + "value": 130 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": " Selected microservices (WSS)" + }, + "properties": [ + { + "id": "custom.width", + "value": 120 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": " average memory " + }, + "properties": [ + { + "id": "custom.width", + "value": 79 + } + ] + }, + { + "matcher": { + "id": "byRegexp", + "options": " Node Network Overview $| Selected microservices \\(WSS\\)$| Selected microservices \\(RSS\\) $" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "orange", + "mode": "fixed" + } + }, + { + "id": "custom.cellOptions", + "value": { + "type": "color-text" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": " container number " + }, + "properties": [ + { + "id": "custom.width", + "value": 149 + } + ] + } + ] + }, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 2 + }, + "id": 57, + "options": { + "showHeader": true, + "sortBy": [ + { + "desc": true, + "displayName": " container number " + } + ] + }, + "pluginVersion": "7.5.11", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum(irate(container_cpu_usage_seconds_total{origin_prometheus=~\"$origin_prometheus\",container =~\"$Container\",container !=\"\",container!=\"POD\",namespace=~\"$NameSpace\"}[2m])) by (container) / (sum(container_spec_cpu_quota{origin_prometheus=~\"$origin_prometheus\",container =~\"$Container\",container !=\"\",container!=\"POD\",namespace=~\"$NameSpace\"}/100000) by (container)) * 100", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum(irate(container_cpu_usage_seconds_total{origin_prometheus=~\"$origin_prometheus\",container =~\"$Container\",container !=\"\",container!=\"POD\",namespace=~\"$NameSpace\"}[2m])) by (container)", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": " Node Network Overview ", + "refId": "L" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum(kube_pod_container_resource_requests{origin_prometheus=~\"$origin_prometheus\",resource=\"cpu\", unit=\"core\",container =~\"$Container\",container !=\"\",container!=\"POD\",namespace=~\"$NameSpace\"}) by (container)", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum(kube_pod_container_resource_limits{origin_prometheus=~\"$origin_prometheus\",resource=\"cpu\", unit=\"core\",container =~\"$Container\",container !=\"\",container!=\"POD\",namespace=~\"$NameSpace\"}) by (container)", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "sum (container_memory_working_set_bytes{origin_prometheus=~\"$origin_prometheus\",container =~\"$Container\",container !=\"\",container!=\"POD\",namespace=~\"$NameSpace\"}) by (container)/ sum(container_spec_memory_limit_bytes{origin_prometheus=~\"$origin_prometheus\",container =~\"$Container\",container !=\"\",container!=\"POD\",namespace=~\"$NameSpace\"}) by (container) * 100", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "I" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "sum (container_memory_working_set_bytes{origin_prometheus=~\"$origin_prometheus\",container =~\"$Container\",container !=\"\",container!=\"POD\",namespace=~\"$NameSpace\"}) by (container)", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "D" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "sum (container_memory_rss{origin_prometheus=~\"$origin_prometheus\",container =~\"$Container\",container !=\"\",container!=\"POD\",namespace=~\"$NameSpace\"}) by (container)/ sum(container_spec_memory_limit_bytes{origin_prometheus=~\"$origin_prometheus\",container =~\"$Container\",container !=\"\",container!=\"POD\",namespace=~\"$NameSpace\"}) by (container) * 100", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": " Resource Details %(RSS)", + "refId": "H" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "sum (container_memory_rss{origin_prometheus=~\"$origin_prometheus\",container =~\"$Container\",container !=\"\",container!=\"POD\",namespace=~\"$NameSpace\"}) by (container)", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": " Selected microservices (RSS) ", + "refId": "K" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum(kube_pod_container_resource_requests{origin_prometheus=~\"$origin_prometheus\",resource=\"memory\", unit=\"byte\",container =~\"$Container\",container !=\"\",container!=\"POD\",namespace=~\"$NameSpace\"}) by (container)", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "E" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum(kube_pod_container_resource_limits{origin_prometheus=~\"$origin_prometheus\",resource=\"memory\", unit=\"byte\",container =~\"$Container\",container !=\"\",container!=\"POD\",namespace=~\"$NameSpace\"}) by (container)", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "F" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "sum(container_fs_usage_bytes{origin_prometheus=~\"$origin_prometheus\",container =~\"$Container\",container !=\"\",container!=\"POD\",namespace=~\"$NameSpace\"}) by (container)", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "J" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "count(kube_pod_container_info{origin_prometheus=~\"$origin_prometheus\",container =~\"$Container\",container !=\"\",container!=\"POD\",namespace=~\"$NameSpace\"}) by(container,namespace) - 0", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "G" + } + ], + "title": " usage ( container number ) namespace ", + "transformations": [ + { + "id": "merge", + "options": {} + }, + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true, + "Time 1": true, + "Time 10": true, + "Time 11": true, + "Time 12": true, + "Time 2": true, + "Time 3": true, + "Time 4": true, + "Time 5": true, + "Time 6": true, + "Time 7": true, + "Time 8": true, + "Time 9": true + }, + "indexByName": { + "Time 1": 2, + "Time 10": 20, + "Time 11": 22, + "Time 12": 24, + "Time 2": 4, + "Time 3": 6, + "Time 4": 8, + "Time 5": 10, + "Time 6": 12, + "Time 7": 14, + "Time 8": 16, + "Time 9": 18, + "Value #A": 3, + "Value #B": 7, + "Value #C": 9, + "Value #D": 13, + "Value #E": 19, + "Value #F": 21, + "Value #G": 25, + "Value #H": 15, + "Value #I": 11, + "Value #J": 23, + "Value #K": 17, + "Value #L": 5, + "container": 1, + "namespace": 0 + }, + "renameByName": { + "Time 1": "", + "Value #A": " password CPU%( overall 100%)", + "Value #B": " total CPU selected ", + "Value #C": " total CPU total ", + "Value #D": " Selected microservices (WSS)", + "Value #E": " Total memory limit ", + "Value #F": " Total Disk Usage ", + "Value #G": " limit amount ", + "Value #H": " Resource Details %(RSS)", + "Value #I": " Resource Details %(WSS)", + "Value #J": " Number of cluster nodes ", + "Value #K": " Selected microservices (RSS) ", + "Value #L": " Node Network Overview ", + "container": " container number ", + "namespace": " average memory " + } + } + }, + { + "id": "filterFieldsByName", + "options": {} + } + ], + "type": "table" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "decimals": 3, + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 9, + "w": 8, + "x": 0, + "y": 10 + }, + "height": "", + "hiddenSeries": false, + "id": 24, + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "hideEmpty": false, + "hideZero": false, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "sort": "current", + "sortDesc": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.5.11", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "sum(rate(container_cpu_usage_seconds_total{origin_prometheus=~\"$origin_prometheus\",container =~\"$Container\",container !=\"\",container!=\"POD\",namespace=~\"$NameSpace\"}[2m])) by (container) / (sum(container_spec_cpu_quota{origin_prometheus=~\"$origin_prometheus\",container =~\"$Container\",container !=\"\",container!=\"POD\",namespace=~\"$NameSpace\"}/100000) by (container)) * 100", + "hide": false, + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{ "{{" }} container{{ "}}" }}", + "metric": "container_cpu", + "refId": "A", + "step": 10 + } + ], + "thresholds": [], + "timeRegions": [], + "title": " usage ( container number ) password CPU Request Rate ( overall 100%)", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:5607", + "format": "percent", + "label": "", + "logBase": 1, + "show": true + }, + { + "$$hashKey": "object:5608", + "format": "short", + "logBase": 1, + "show": false + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "decimals": 2, + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 9, + "w": 8, + "x": 8, + "y": 10 + }, + "hiddenSeries": false, + "id": 59, + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "sort": "current", + "sortDesc": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.5.11", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "sum (container_memory_working_set_bytes{origin_prometheus=~\"$origin_prometheus\",container =~\"$Container\",container !=\"\",container!=\"POD\",namespace=~\"$NameSpace\"}) by (container)/ sum(container_spec_memory_limit_bytes{origin_prometheus=~\"$origin_prometheus\",container =~\"$Container\",container !=\"\",container!=\"POD\",namespace=~\"$NameSpace\"}) by (container) * 100", + "interval": "", + "intervalFactor": 1, + "legendFormat": "WSS:{{ "{{" }} container{{ "}}" }}", + "metric": "container_memory_usage:sort_desc", + "refId": "A", + "step": 10 + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "sum (container_memory_rss{origin_prometheus=~\"$origin_prometheus\",container =~\"$Container\",container !=\"\",container!=\"POD\",namespace=~\"$NameSpace\"}) by (container)/ sum(container_spec_memory_limit_bytes{origin_prometheus=~\"$origin_prometheus\",container =~\"$Container\",container !=\"\",container!=\"POD\",namespace=~\"$NameSpace\"}) by (container) * 100", + "interval": "", + "intervalFactor": 1, + "legendFormat": "RSS:{{ "{{" }} container{{ "}}" }}", + "metric": "container_memory_usage:sort_desc", + "refId": "B", + "step": 10 + } + ], + "thresholds": [], + "timeRegions": [], + "title": " usage ( container number ) Microservice resource details ", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 2, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:5686", + "format": "percent", + "logBase": 1, + "show": true + }, + { + "$$hashKey": "object:5687", + "format": "short", + "logBase": 1, + "show": false + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": { + " restart :wholion-lbs": "green", + " update :wholion-lbs": "purple" + }, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "decimals": 2, + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 9, + "w": 8, + "x": 16, + "y": 10 + }, + "hiddenSeries": false, + "id": 16, + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": false, + "rightSide": false, + "show": true, + "sort": "current", + "sortDesc": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.5.11", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum(sum(irate(container_network_receive_bytes_total{origin_prometheus=~\"$origin_prometheus\",image!=\"\",name=~\"^k8s_.*\",node=~\"^$Node$\",namespace=~\"$NameSpace\",pod=~\".*$Container.*\"}[2m])) by (pod)* on(pod) group_right kube_pod_container_info) by(container) *8", + "hide": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": " update :{{ "{{" }} container{{ "}}" }}", + "metric": "network", + "refId": "A", + "step": 10 + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum(sum(irate(container_network_transmit_bytes_total{origin_prometheus=~\"$origin_prometheus\",image!=\"\",name=~\"^k8s_.*\",node=~\"^$Node$\",namespace=~\"$NameSpace\",pod=~\".*$Container.*\"}[2m])) by (pod)* on(pod) group_right kube_pod_container_info) by(container) *8", + "interval": "", + "intervalFactor": 1, + "legendFormat": " restart :{{ "{{" }} container{{ "}}" }}", + "metric": "network", + "refId": "B", + "step": 10 + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "sum (rate (container_network_receive_bytes_total{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",image!=\"\",name=~\"^k8s_.*\",node=~\"^$Node$\",namespace=~\"$NameSpace\",pod=~\".*$Container.*\"}[2m])) by (pod)", + "hide": true, + "interval": "", + "intervalFactor": 1, + "legendFormat": "-> {{ "{{" }} pod{{ "}}" }}", + "metric": "network", + "refId": "C", + "step": 10 + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "- sum (rate (container_network_transmit_bytes_total{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",image!=\"\",name=~\"^k8s_.*\",node=~\"^$Node$\",namespace=~\"$NameSpace\",pod=~\".*$Container.*\"}[2m])) by (pod)", + "hide": true, + "interval": "", + "intervalFactor": 1, + "legendFormat": "<- {{ "{{" }} pod{{ "}}" }}", + "metric": "network", + "refId": "D", + "step": 10 + } + ], + "thresholds": [], + "timeRegions": [], + "title": " usage ( container number ) Container memory usage ( Memory Usage )", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 2, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:8106", + "format": "binbps", + "logBase": 1, + "show": true + }, + { + "$$hashKey": "object:8107", + "format": "short", + "logBase": 1, + "show": false + } + ], + "yaxis": { + "align": false + } + } + ], + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "refId": "A" + } + ], + "title": " usage ( container number ) Memory Requirements : Associated nodes :【$Container】", + "type": "row" + }, + { + "collapsed": true, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 28 + }, + "id": 49, + "panels": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "custom": { + "align": "center", + "cellOptions": { + "type": "auto" + }, + "filterable": false + }, + "displayName": "", + "mappings": [], + "thresholds": { + "mode": "percentage", + "steps": [ + { + "color": "green" + }, + { + "color": "#EAB839", + "value": 80 + }, + { + "color": "red", + "value": 90 + } + ] + }, + "unit": "short" + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "CPU%( overall 100%)" + }, + "properties": [ + { + "id": "custom.width", + "value": 140 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": " average memory " + }, + "properties": [ + { + "id": "custom.width", + "value": 78 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Pod core count " + }, + "properties": [ + { + "id": "custom.width", + "value": 136 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": " core usage " + }, + "properties": [ + { + "id": "custom.width", + "value": 71 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "CPU selected " + }, + "properties": [ + { + "id": "custom.width", + "value": 68 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "CPU total " + }, + "properties": [ + { + "id": "custom.width", + "value": 65 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "WSS%" + }, + "properties": [ + { + "id": "custom.width", + "value": 129 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "WSS" + }, + "properties": [ + { + "id": "custom.width", + "value": 73 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "RSS%" + }, + "properties": [ + { + "id": "custom.width", + "value": 132 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "RSS" + }, + "properties": [ + { + "id": "custom.width", + "value": 68 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": " resource statistics " + }, + "properties": [ + { + "id": "custom.width", + "value": 69 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": " Network bandwidth " + }, + "properties": [ + { + "id": "custom.width", + "value": 71 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": " send " + }, + "properties": [ + { + "id": "custom.width", + "value": 67 + }, + { + "id": "thresholds", + "value": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "#EAB839", + "value": 1 + }, + { + "color": "red", + "value": 3 + } + ] + } + }, + { + "id": "custom.cellOptions", + "value": { + "mode": "gradient", + "type": "color-background" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": " demand " + }, + "properties": [ + { + "id": "custom.width", + "value": 71 + }, + { + "id": "unit", + "value": "bytes" + }, + { + "id": "thresholds", + "value": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "#EAB839", + "value": 10737418240 + }, + { + "color": "red", + "value": 16106127360 + } + ] + } + }, + { + "id": "custom.cellOptions", + "value": { + "mode": "gradient", + "type": "color-background" + } + } + ] + }, + { + "matcher": { + "id": "byRegexp", + "options": ".*%.*" + }, + "properties": [ + { + "id": "unit", + "value": "percent" + }, + { + "id": "custom.cellOptions", + "value": { + "mode": "gradient", + "type": "gauge" + } + } + ] + }, + { + "matcher": { + "id": "byRegexp", + "options": " config .*|WSS$|RSS$" + }, + "properties": [ + { + "id": "unit", + "value": "bytes" + } + ] + }, + { + "matcher": { + "id": "byRegexp", + "options": ".* total " + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "blue", + "mode": "fixed" + } + }, + { + "id": "custom.cellOptions", + "value": { + "mode": "gradient", + "type": "color-background" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": " container " + }, + "properties": [ + { + "id": "custom.width", + "value": 87 + } + ] + }, + { + "matcher": { + "id": "byRegexp", + "options": " core usage $|WSS$|RSS$" + }, + "properties": [ + { + "id": "custom.cellOptions", + "value": { + "type": "color-text" + } + }, + { + "id": "color", + "value": { + "fixedColor": "orange", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": " container number " + }, + "properties": [ + { + "id": "custom.width", + "value": 116 + } + ] + } + ] + }, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 3 + }, + "id": 47, + "options": { + "showHeader": true, + "sortBy": [] + }, + "pluginVersion": "7.5.11", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum(irate(container_cpu_usage_seconds_total{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",container =~\"$Container\",container !=\"\",container!=\"POD\",node=~\"^$Node$\",namespace=~\"$NameSpace\"}[2m])) by (container, pod,node,namespace) / (sum(container_spec_cpu_quota{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",container =~\"$Container\",container !=\"\",container!=\"POD\",node=~\"^$Node$\",namespace=~\"$NameSpace\"}/100000) by (container, pod,node,namespace)) * 100", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum(irate(container_cpu_usage_seconds_total{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",container =~\"$Container\",container !=\"\",container!=\"POD\",node=~\"^$Node$\",namespace=~\"$NameSpace\"}[2m])) by (container, pod,node,namespace)", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "CPU disk usage ", + "refId": "Q" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum(kube_pod_container_resource_requests{origin_prometheus=~\"$origin_prometheus\",resource=\"cpu\", unit=\"core\",pod=~\"$Pod\",container =~\"$Container\",node=~\"^$Node$\",namespace=~\"$NameSpace\"}) by (container,pod,node,namespace)", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum(kube_pod_container_resource_limits{origin_prometheus=~\"$origin_prometheus\",resource=\"cpu\", unit=\"core\",pod=~\"$Pod\",container =~\"$Container\",node=~\"^$Node$\",namespace=~\"$NameSpace\"}) by (container,pod,node,namespace)", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum (container_memory_working_set_bytes{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",container =~\"$Container\",container !=\"\",container!=\"POD\",node=~\"^$Node$\",namespace=~\"$NameSpace\"}) by (container, pod,node,namespace)/ sum(container_spec_memory_limit_bytes{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",container =~\"$Container\",container !=\"\",container!=\"POD\",node=~\"^$Node$\",namespace=~\"$NameSpace\"}) by (container, pod,node,namespace) * 100", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "wss%", + "refId": "I" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum (container_memory_working_set_bytes{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",container =~\"$Container\",container !=\"\",container!=\"POD\",node=~\"^$Node$\",namespace=~\"$NameSpace\"}) by (container, pod,node,namespace)", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "wss", + "refId": "D" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum (container_memory_rss{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",container =~\"$Container\",container !=\"\",container!=\"POD\",node=~\"^$Node$\",namespace=~\"$NameSpace\"}) by (container, pod,node,namespace)/ sum(container_spec_memory_limit_bytes{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",container =~\"$Container\",container !=\"\",container!=\"POD\",node=~\"^$Node$\",namespace=~\"$NameSpace\"}) by (container, pod,node,namespace) * 100", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "rss%", + "refId": "L" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum (container_memory_rss{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",container =~\"$Container\",container !=\"\",container!=\"POD\",node=~\"^$Node$\",namespace=~\"$NameSpace\"}) by (container, pod,node,namespace)", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "rss", + "refId": "K" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum(kube_pod_container_resource_requests{origin_prometheus=~\"$origin_prometheus\",resource=\"memory\", unit=\"byte\",pod=~\"$Pod\",container =~\"$Container\",node=~\"^$Node$\",namespace=~\"$NameSpace\"}) by (container,pod,node,namespace)", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "E" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum(kube_pod_container_resource_limits{origin_prometheus=~\"$origin_prometheus\",resource=\"memory\", unit=\"byte\",pod=~\"$Pod\",container =~\"$Container\",node=~\"^$Node$\",namespace=~\"$NameSpace\"}) by (container,pod,node,namespace)", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "F" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum(container_fs_usage_bytes{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",container =~\"$Container\",container !=\"\",container!=\"POD\",node=~\"^$Node$\",namespace=~\"$NameSpace\"}) by (container,pod,node,namespace)", + "format": "table", + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "J" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "kube_pod_container_status_restarts_total{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",container =~\"$Container\",container !=\"\",container!=\"POD\",namespace=~\"$NameSpace\"} * on (pod) group_left(node) kube_pod_info{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",node=~\"^$Node$\",namespace=~\"$NameSpace\"}", + "format": "table", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "H" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "cass_jvm_heap{service=~\"$Container\"} * on (pod_ip) group_right(service) kube_pod_info{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",namespace=~\"$NameSpace\"}", + "format": "table", + "hide": true, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "M" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "cass_jvm_heap_max{service=~\"$Container\"} * on (pod_ip) group_right(service) kube_pod_info{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",namespace=~\"$NameSpace\"}", + "format": "table", + "hide": true, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "N" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "cass_jvm_noheap{service=~\"$Container\"} * on (pod_ip) group_right(service) kube_pod_info{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",namespace=~\"$NameSpace\"}", + "format": "table", + "hide": true, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "O" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "cass_jvm_noheap_max{service=~\"$Container\"} * on (pod_ip) group_right(service) kube_pod_info{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",namespace=~\"$NameSpace\"}", + "format": "table", + "hide": true, + "instant": true, + "interval": "", + "legendFormat": "", + "refId": "P" + } + ], + "title": "$Node:Pod Memory Limit ( Memory Usage )", + "transformations": [ + { + "id": "merge", + "options": {} + }, + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true, + "Time 1": true, + "Time 10": true, + "Time 11": true, + "Time 12": true, + "Time 13": true, + "Time 2": true, + "Time 3": true, + "Time 4": true, + "Time 5": true, + "Time 6": true, + "Time 7": true, + "Time 8": true, + "Time 9": true, + "Value #G": true, + "__name__": true, + "app_kubernetes_io_name": true, + "app_kubernetes_io_name 1": true, + "app_kubernetes_io_name 2": true, + "app_kubernetes_io_version": true, + "app_kubernetes_io_version 1": true, + "app_kubernetes_io_version 2": true, + "container 1": true, + "container 10": true, + "container 11": true, + "container 12": true, + "container 2": true, + "container 3": true, + "container 4": true, + "container 5": true, + "container 6": true, + "container 7": true, + "container 8": true, + "container 9": true, + "created_by_kind": true, + "created_by_name": true, + "host_ip": true, + "instance": true, + "instance 1": true, + "instance 2": true, + "job": true, + "job 1": true, + "job 2": true, + "k8s_namespace": true, + "k8s_namespace 1": true, + "k8s_namespace 2": true, + "k8s_sname": true, + "k8s_sname 1": true, + "k8s_sname 2": true, + "namespace": false, + "namespace 1": true, + "namespace 10": true, + "namespace 11": true, + "namespace 12": false, + "namespace 2": true, + "namespace 3": true, + "namespace 4": true, + "namespace 5": true, + "namespace 6": true, + "namespace 7": true, + "namespace 8": true, + "namespace 9": true, + "node 1": true, + "node 10": true, + "node 11": false, + "node 12": true, + "node 2": true, + "node 3": true, + "node 4": true, + "node 5": true, + "node 6": true, + "node 7": true, + "node 8": true, + "node 9": true, + "origin_prometheus": true, + "origin_prometheus 1": true, + "origin_prometheus 2": true, + "phase": true, + "pod_ip": true, + "priority_class": true, + "uid": true + }, + "indexByName": { + "Time": 23, + "Value #A": 4, + "Value #B": 6, + "Value #C": 7, + "Value #D": 9, + "Value #E": 12, + "Value #F": 13, + "Value #H": 22, + "Value #I": 8, + "Value #J": 14, + "Value #K": 11, + "Value #L": 10, + "Value #Q": 5, + "app_kubernetes_io_name": 15, + "app_kubernetes_io_version": 16, + "container": 2, + "instance": 17, + "job": 18, + "k8s_namespace": 19, + "k8s_sname": 20, + "namespace": 1, + "node": 0, + "origin_prometheus": 21, + "pod": 3 + }, + "renameByName": { + "Value #A": "CPU%( overall 100%)", + "Value #B": "CPU selected ", + "Value #C": "CPU total ", + "Value #D": "WSS", + "Value #E": " resource statistics ", + "Value #F": " Network bandwidth ", + "Value #H": " send ", + "Value #I": "WSS%", + "Value #J": " demand ", + "Value #K": "RSS", + "Value #L": "RSS%", + "Value #Q": " core usage ", + "container": " container number ", + "namespace": " average memory ", + "namespace 1": "", + "namespace 12": " average memory ", + "node": " container ", + "node 1": "", + "node 11": " container ", + "pod": "Pod core count ", + "priority_class": "" + } + } + }, + { + "id": "filterFieldsByName", + "options": { + "include": { + "names": [ + " container ", + " average memory ", + "Pod core count ", + "CPU%( overall 100%)", + " core usage ", + "CPU selected ", + "CPU total ", + "WSS%", + "WSS", + "RSS%", + "RSS", + " resource statistics ", + " Network bandwidth ", + " demand ", + " send ", + " container number " + ] + } + } + } + ], + "type": "table" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "decimals": 2, + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 9, + "w": 8, + "x": 0, + "y": 11 + }, + "height": "", + "hiddenSeries": false, + "id": 58, + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "hideEmpty": false, + "hideZero": false, + "max": true, + "min": false, + "rightSide": false, + "show": true, + "sort": "current", + "sortDesc": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.5.11", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum(irate(container_cpu_usage_seconds_total{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",container =~\"$Container\",container !=\"\",container!=\"POD\",node=~\"^$Node$\",namespace=~\"$NameSpace\"}[2m])) by (container, pod) / (sum(container_spec_cpu_quota{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",container =~\"$Container\",container !=\"\",container!=\"POD\",node=~\"^$Node$\",namespace=~\"$NameSpace\"}/100000) by (container, pod)) * 100", + "hide": false, + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{ "{{" }} pod{{ "}}" }}", + "metric": "container_cpu", + "refId": "A", + "step": 10 + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Pod upper limit CPU Request Rate ( overall 100% Memory Usage )", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:5607", + "format": "percent", + "label": "", + "logBase": 1, + "show": true + }, + { + "$$hashKey": "object:5608", + "format": "short", + "logBase": 1, + "show": false + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "decimals": 2, + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 9, + "w": 8, + "x": 8, + "y": 11 + }, + "hiddenSeries": false, + "id": 27, + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": false, + "current": true, + "max": true, + "min": false, + "rightSide": false, + "show": true, + "sort": "current", + "sortDesc": false, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.5.11", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum (container_memory_working_set_bytes{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",container =~\"$Container\",container !=\"\",container!=\"POD\",node=~\"^$Node$\",namespace=~\"$NameSpace\"}) by (container, pod)/ sum(container_spec_memory_limit_bytes{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",container =~\"$Container\",container !=\"\",container!=\"POD\",node=~\"^$Node$\",namespace=~\"$NameSpace\"}) by (container, pod) * 100", + "interval": "", + "intervalFactor": 1, + "legendFormat": "WSS:{{ "{{" }} pod{{ "}}" }}", + "metric": "container_memory_usage:sort_desc", + "refId": "A", + "step": 10 + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum (container_memory_rss{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",container =~\"$Container\",container !=\"\",container!=\"POD\",node=~\"^$Node$\",namespace=~\"$NameSpace\"}) by (container, pod)/ sum(container_spec_memory_limit_bytes{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",container =~\"$Container\",container !=\"\",container!=\"POD\",node=~\"^$Node$\",namespace=~\"$NameSpace\"}) by (container, pod) * 100", + "interval": "", + "intervalFactor": 1, + "legendFormat": "RSS:{{ "{{" }} pod{{ "}}" }}", + "metric": "container_memory_usage:sort_desc", + "refId": "B", + "step": 10 + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "(cass_jvm_heap{service=~\"$Container\"} * on (pod_ip) group_right(service) kube_pod_info{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",namespace=~\"$NameSpace\"}) / (cass_jvm_heap_max{service=~\"$Container\"} * on (pod_ip) group_right(service) kube_pod_info{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",namespace=~\"$NameSpace\"}) * 100", + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "Heap:{{ "{{" }} pod{{ "}}" }}", + "metric": "container_memory_usage:sort_desc", + "refId": "C", + "step": 10 + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Pod View more dashboards ( Memory Usage )", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 2, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:5686", + "format": "percent", + "logBase": 1, + "max": "100", + "show": true + }, + { + "$$hashKey": "object:5687", + "format": "short", + "logBase": 1, + "show": false + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": { + " restart :wholion-lbs": "green", + " update :wholion-lbs": "purple" + }, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "decimals": 2, + "editable": true, + "error": false, + "fieldConfig": { + "defaults": { + "links": [] + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 9, + "w": 8, + "x": 16, + "y": 11 + }, + "hiddenSeries": false, + "id": 77, + "isNew": true, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": false, + "rightSide": false, + "show": true, + "sort": "current", + "sortDesc": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "7.5.11", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum(sum(irate(container_network_receive_bytes_total{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",image!=\"\",name=~\"^k8s_.*\",node=~\"^$Node$\",namespace=~\"$NameSpace\",pod=~\".*$Container.*\"}[2m])) by (pod)* on(pod) group_right kube_pod_container_info) by(pod) *8", + "hide": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": " update :{{ "{{" }} pod{{ "}}" }}", + "metric": "network", + "refId": "A", + "step": 10 + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "exemplar": true, + "expr": "sum(sum(irate(container_network_transmit_bytes_total{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",image!=\"\",name=~\"^k8s_.*\",node=~\"^$Node$\",namespace=~\"$NameSpace\",pod=~\".*$Container.*\"}[2m])) by (pod)* on(pod) group_right kube_pod_container_info) by(pod) *8", + "interval": "", + "intervalFactor": 1, + "legendFormat": " restart :{{ "{{" }} pod{{ "}}" }}", + "metric": "network", + "refId": "B", + "step": 10 + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "sum (rate (container_network_receive_bytes_total{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",image!=\"\",name=~\"^k8s_.*\",node=~\"^$Node$\",namespace=~\"$NameSpace\",pod=~\".*$Container.*\"}[2m])) by (pod)", + "hide": true, + "interval": "", + "intervalFactor": 1, + "legendFormat": "-> {{ "{{" }} pod{{ "}}" }}", + "metric": "network", + "refId": "C", + "step": 10 + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "expr": "- sum (rate (container_network_transmit_bytes_total{origin_prometheus=~\"$origin_prometheus\",pod=~\"$Pod\",image!=\"\",name=~\"^k8s_.*\",node=~\"^$Node$\",namespace=~\"$NameSpace\",pod=~\".*$Container.*\"}[2m])) by (pod)", + "hide": true, + "interval": "", + "intervalFactor": 1, + "legendFormat": "<- {{ "{{" }} pod{{ "}}" }}", + "metric": "network", + "refId": "D", + "step": 10 + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Pod Container memory usage ( Memory Usage )", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 2, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "$$hashKey": "object:8106", + "format": "binbps", + "logBase": 1, + "show": true + }, + { + "$$hashKey": "object:8107", + "format": "short", + "logBase": 1, + "show": false + } + ], + "yaxis": { + "align": false + } + } + ], + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "refId": "A" + } + ], + "title": "Pod Memory Requirements : space Pod:【$Pod】", + "type": "row" + } + ], + "refresh": "", + "schemaVersion": 39, + "tags": [ + "StarsL.cn", + "Prometheus", + "Kubernetes" + ], + "templating": { + "list": [ + { + "allValue": "", + "current": { + "isNone": true, + "selected": true, + "text": "None", + "value": "" + }, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "definition": "label_values(origin_prometheus)", + "hide": 0, + "includeAll": false, + "label": "K8S", + "multi": false, + "name": "origin_prometheus", + "options": [], + "query": { + "query": "label_values(origin_prometheus)", + "refId": "Prometheus-origin_prometheus-Variable-Query" + }, + "refresh": 2, + "regex": "", + "skipUrlSync": false, + "sort": 5, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": "", + "current": { + "selected": false, + "text": "All", + "value": "$__all" + }, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "definition": "label_values(kube_node_info{origin_prometheus=~\"$origin_prometheus\"},node)", + "hide": 0, + "includeAll": true, + "label": " container ", + "multi": false, + "name": "Node", + "options": [], + "query": { + "query": "label_values(kube_node_info{origin_prometheus=~\"$origin_prometheus\"},node)", + "refId": "Prometheus-Node-Variable-Query" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 5, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": "", + "current": { + "selected": false, + "text": "All", + "value": "$__all" + }, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "definition": "label_values(kube_namespace_labels{origin_prometheus=~\"$origin_prometheus\"},namespace)", + "hide": 0, + "includeAll": true, + "label": " average memory ", + "multi": false, + "name": "NameSpace", + "options": [], + "query": { + "query": "label_values(kube_namespace_labels{origin_prometheus=~\"$origin_prometheus\"},namespace)", + "refId": "Prometheus-NameSpace-Variable-Query" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 5, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": ".*", + "current": { + "selected": false, + "text": "All", + "value": "$__all" + }, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "definition": "label_values(kube_pod_container_info{origin_prometheus=~\"$origin_prometheus\",namespace=~\"$NameSpace\"},container)", + "hide": 0, + "includeAll": true, + "label": " usage ( container number )", + "multi": false, + "name": "Container", + "options": [], + "query": { + "query": "label_values(kube_pod_container_info{origin_prometheus=~\"$origin_prometheus\",namespace=~\"$NameSpace\"},container)", + "refId": "Prometheus-Container-Variable-Query" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 5, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "allValue": ".*", + "current": { + "selected": false, + "text": "All", + "value": "$__all" + }, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "definition": "label_values(kube_pod_container_info{origin_prometheus=~\"$origin_prometheus\",namespace=~\"$NameSpace\",container=~\"$Container\"},pod)", + "hide": 0, + "includeAll": true, + "label": "Pod", + "multi": false, + "name": "Pod", + "options": [], + "query": { + "query": "label_values(kube_pod_container_info{origin_prometheus=~\"$origin_prometheus\",namespace=~\"$NameSpace\",container=~\"$Container\"},pod)", + "refId": "Prometheus-Pod-Variable-Query" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 5, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false + } + ] + }, + "time": { + "from": "now-30m", + "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": "1 K8S for Prometheus Dashboard 20211010 EN", + "uid": "PwMJtdvnz", + "version": 1, + "weekStart": "" + } +`}} +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: lgtm-k8s-volume-information + namespace: otel-lgtm-stack + labels: + grafana_dashboard: "1" + annotations: + grafana_folder: "common" +data: + k8s-volume-information.json: |- +{{` + { + "__inputs": [ + { + "name": "DS_OPENSHIFT_PROMETHEUS", + "label": "openshift-prometheus", + "description": "", + "type": "datasource", + "pluginId": "prometheus", + "pluginName": "Prometheus" + } + ], + "__requires": [ + { + "type": "panel", + "id": "alertlist", + "name": "Alert List", + "version": "" + }, + { + "type": "grafana", + "id": "grafana", + "name": "Grafana", + "version": "6.5.2" + }, + { + "type": "panel", + "id": "graph", + "name": "Graph", + "version": "" + }, + { + "type": "datasource", + "id": "prometheus", + "name": "Prometheus", + "version": "1.0.0" + }, + { + "type": "panel", + "id": "singlestat", + "name": "Singlestat", + "version": "" + }, + { + "type": "panel", + "id": "table", + "name": "Table", + "version": "" + } + ], + "description": "Dashboard of Kubernetes / OpenShift volume information at cluster level as exported by Prometheus connected to Kubernetes / OpenShift.", + "editable": true, + "gnetId": 11454, + "graphTooltip": 1, + "id": null, + "iteration": 1577045029184, + "links": [], + "panels": [ + { + "collapsed": false, + "datasource": "${DS_OPENSHIFT_PROMETHEUS}", + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 43, + "panels": [], + "title": "Current Alerts", + "type": "row" + }, + { + "cacheTimeout": null, + "colorBackground": true, + "colorPrefix": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "$DS_OPENSHIFT_PROMETHEUS", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 3, + "w": 7, + "x": 0, + "y": 1 + }, + "id": 30, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "options": {}, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false, + "ymax": null, + "ymin": null + }, + "tableColumn": "", + "targets": [ + { + "expr": "(\n count (\n (kubelet_volume_stats_available_bytes {namespace=~\"(openshift-.*|kube-.*|default|logging)\"})\n and\n (predict_linear(kubelet_volume_stats_available_bytes {namespace=~\"(openshift-.*|kube-.*|default|logging)\"}[1d], 7 * 24 * 60 * 60) < 0)\n )\n)\nor\nvector(0)", + "instant": false, + "intervalFactor": 1, + "legendFormat": "alerts", + "refId": "A" + } + ], + "thresholds": "1,1", + "timeFrom": null, + "timeShift": null, + "title": "Infrastructure Namespace Volumes Full in Week Based on Daily Use Rate", + "type": "singlestat", + "valueFontSize": "200%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": true, + "colorPrefix": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "$DS_OPENSHIFT_PROMETHEUS", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 3, + "w": 7, + "x": 7, + "y": 1 + }, + "id": 34, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "options": {}, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false, + "ymax": null, + "ymin": null + }, + "tableColumn": "", + "targets": [ + { + "expr": "(\n count (\n (\n (kubelet_volume_stats_available_bytes {namespace!~\"(openshift-.*|kube-.*|default|logging)\"})\n )\n and\n (predict_linear(kubelet_volume_stats_available_bytes[1d], 7 * 24 * 60 * 60) < 0)\n )\n)\nor\nvector(0)", + "instant": false, + "intervalFactor": 1, + "legendFormat": "alerts", + "refId": "A" + } + ], + "thresholds": "1,1", + "timeFrom": null, + "timeShift": null, + "title": "User Namespace Volumes Full in Week Based on Daily Use Rate", + "type": "singlestat", + "valueFontSize": "200%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "dashboardFilter": "", + "dashboardTags": [], + "datasource": "$DS_OPENSHIFT_PROMETHEUS", + "folderId": null, + "gridPos": { + "h": 6, + "w": 10, + "x": 14, + "y": 1 + }, + "id": 29, + "limit": 10, + "nameFilter": "", + "onlyAlertsOnDashboard": true, + "options": {}, + "show": "current", + "sortOrder": 1, + "stateFilter": [], + "timeFrom": null, + "timeShift": null, + "title": "Dashboard Alerts", + "type": "alertlist" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "#FF9830", + "#FF9830" + ], + "datasource": "$DS_OPENSHIFT_PROMETHEUS", + "decimals": 0, + "editable": false, + "error": false, + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 3, + "w": 7, + "x": 0, + "y": 4 + }, + "id": 12, + "interval": null, + "isNew": false, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "options": {}, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "span": 0, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "lineColor": "rgb(31, 120, 193)" + }, + "tableColumn": "", + "targets": [ + { + "expr": "count (max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_used_bytes ) and (max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_used_bytes )) / (max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_capacity_bytes )) >= ($pvc_percent_used_warning_threshold / 100)) or vector (0)", + "format": "time_series", + "instant": true, + "refId": "A" + } + ], + "thresholds": "1,1", + "title": "Running PVCs Above % Used Warning Threshold", + "type": "singlestat", + "valueFontSize": "200%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": true, + "colors": [ + "#299c46", + "#FF9830", + "#FF9830" + ], + "datasource": "$DS_OPENSHIFT_PROMETHEUS", + "decimals": 0, + "editable": false, + "error": false, + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 3, + "w": 7, + "x": 7, + "y": 4 + }, + "id": 6, + "interval": null, + "isNew": false, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "options": {}, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "span": 0, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "lineColor": "rgb(31, 120, 193)" + }, + "tableColumn": "", + "targets": [ + { + "expr": "(max (sum by (exported_namespace) (pv_collector_unbound_pvc_count))) or (vector(0))", + "format": "table", + "instant": true, + "refId": "A" + } + ], + "thresholds": "1,1", + "title": "Unbound PVCs", + "type": "singlestat", + "valueFontSize": "200%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "collapsed": true, + "datasource": "$DS_OPENSHIFT_PROMETHEUS", + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 7 + }, + "id": 32, + "panels": [ + { + "cacheTimeout": null, + "columns": [ + { + "text": "Avg", + "value": "avg" + } + ], + "datasource": "$DS_OPENSHIFT_PROMETHEUS", + "fontSize": "100%", + "gridPos": { + "h": 14, + "w": 7, + "x": 0, + "y": 2 + }, + "id": 38, + "links": [], + "options": {}, + "pageSize": null, + "showHeader": true, + "sort": { + "col": 0, + "desc": true + }, + "styles": [ + { + "alias": "Available", + "colorMode": "row", + "colors": [ + "rgba(50, 172, 45, 0.97)", + "rgba(237, 129, 40, 0.89)", + "rgba(245, 54, 54, 0.9)" + ], + "dateFormat": "YYYY-MM-DD HH:mm:ss", + "decimals": 2, + "mappingType": 1, + "pattern": "Value", + "thresholds": [ + "0", + "0" + ], + "type": "number", + "unit": "bytes" + }, + { + "alias": "Namespace", + "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, + "mappingType": 1, + "pattern": "namespace", + "thresholds": [], + "type": "string", + "unit": "short" + }, + { + "alias": "PVC", + "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, + "mappingType": 1, + "pattern": "persistentvolumeclaim", + "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)" + ], + "decimals": 2, + "pattern": "/.*/", + "thresholds": [], + "type": "hidden", + "unit": "short" + } + ], + "targets": [ + { + "expr": "(\n (\n (kubelet_volume_stats_available_bytes {namespace=~\"(openshift-.*|kube-.*|default|logging)\"} ) \n and\n (predict_linear(kubelet_volume_stats_available_bytes {namespace=~\"(openshift-.*|kube-.*|default|logging)\"}[1w], 7 * 24 * 60 * 60) < 0)\n )\n)", + "format": "table", + "instant": true, + "intervalFactor": 1, + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Infrastructure Namespace Volumes Full in Week Based on Daily Use Rate - Current", + "transform": "table", + "type": "table" + }, + { + "alert": { + "alertRuleTags": {}, + "conditions": [ + { + "evaluator": { + "params": [ + 0 + ], + "type": "gt" + }, + "operator": { + "type": "and" + }, + "query": { + "params": [ + "A", + "1h", + "now" + ] + }, + "reducer": { + "params": [], + "type": "avg" + }, + "type": "query" + } + ], + "executionErrorState": "alerting", + "for": "24h", + "frequency": "1h", + "handler": 1, + "name": "Infrastructure Namespace Volumes Full in Week Based on Daily Use Rate Alert", + "noDataState": "ok", + "notifications": [] + }, + "aliasColors": {}, + "bars": true, + "cacheTimeout": null, + "dashLength": 10, + "dashes": false, + "fill": 10, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 17, + "x": 7, + "y": 2 + }, + "hiddenSeries": false, + "id": 45, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "rightSide": false, + "show": true, + "total": false, + "values": false + }, + "lines": false, + "linewidth": 2, + "links": [], + "nullPointMode": "null as zero", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": true, + "steppedLine": true, + "targets": [ + { + "expr": "(\n (\n ((kubelet_volume_stats_used_bytes {namespace=~\"(openshift-.*|kube-.*|default|logging)\"} ) * 0) + 1\n and\n (predict_linear(kubelet_volume_stats_available_bytes {namespace=~\"(openshift-.*|kube-.*|default|logging)\"}[1d], 7 * 24 * 60 * 60) < 0)\n )\n)", + "instant": false, + "intervalFactor": 1, + "legendFormat": "{{ "{{" }}namespace{{ "}}" }} ({{ "{{" }}persistentvolumeclaim{{ "}}" }})", + "refId": "A" + } + ], + "thresholds": [ + { + "colorMode": "critical", + "fill": true, + "line": true, + "op": "gt", + "value": 0 + } + ], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Infrastructure Namespace Volumes Full in Week Based on Daily Use Rate - Alert History", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "decimals": 0, + "format": "short", + "label": "# of Alerts", + "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, + "cacheTimeout": null, + "dashLength": 10, + "dashes": false, + "datasource": "$DS_OPENSHIFT_PROMETHEUS", + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 17, + "x": 7, + "y": 9 + }, + "hiddenSeries": false, + "id": 27, + "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", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "(\n (predict_linear(kubelet_volume_stats_available_bytes {namespace=~\"(openshift-.*|kube-.*|default|logging)\"}[1d], 7 * 24 * 60 * 60) < 0)\n)", + "format": "time_series", + "hide": false, + "instant": false, + "intervalFactor": 1, + "legendFormat": "{{ "{{" }}namespace{{ "}}" }} ({{ "{{" }}persistentvolumeclaim{{ "}}" }})", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Infrastructure Namespace Volumes Full in Week Based on Daily Use Rate - Predicted Available Space History", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "decimals": 0, + "format": "bytes", + "label": "1 Week Predicted Available Space", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "bytes", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "cacheTimeout": null, + "columns": [ + { + "text": "Avg", + "value": "avg" + } + ], + "datasource": "$DS_OPENSHIFT_PROMETHEUS", + "fontSize": "100%", + "gridPos": { + "h": 13, + "w": 7, + "x": 0, + "y": 16 + }, + "id": 39, + "links": [], + "options": {}, + "pageSize": null, + "showHeader": true, + "sort": { + "col": 0, + "desc": true + }, + "styles": [ + { + "alias": "Available", + "colorMode": "row", + "colors": [ + "rgba(50, 172, 45, 0.97)", + "rgba(237, 129, 40, 0.89)", + "rgba(245, 54, 54, 0.9)" + ], + "dateFormat": "YYYY-MM-DD HH:mm:ss", + "decimals": 2, + "mappingType": 1, + "pattern": "Value", + "thresholds": [ + "0", + "0" + ], + "type": "number", + "unit": "bytes" + }, + { + "alias": "Namespace", + "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, + "mappingType": 1, + "pattern": "namespace", + "thresholds": [], + "type": "string", + "unit": "short" + }, + { + "alias": "PVC", + "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, + "mappingType": 1, + "pattern": "persistentvolumeclaim", + "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)" + ], + "decimals": 2, + "pattern": "/.*/", + "thresholds": [], + "type": "hidden", + "unit": "short" + } + ], + "targets": [ + { + "expr": "(\n (\n (\n (kubelet_volume_stats_used_bytes {namespace!~\"(openshift-.*|kube-.*|default|logging)\"})\n )\n and\n (predict_linear(kubelet_volume_stats_available_bytes[1d], 7 * 24 * 60 * 60) < 0)\n )\n)", + "format": "table", + "instant": true, + "intervalFactor": 1, + "legendFormat": "", + "refId": "A" + } + ], + "timeFrom": null, + "timeShift": null, + "title": "User Namespace Volumes Full in Week Based on Daily Use Rate - Current", + "transform": "table", + "type": "table" + }, + { + "alert": { + "alertRuleTags": {}, + "conditions": [ + { + "evaluator": { + "params": [ + 0 + ], + "type": "gt" + }, + "operator": { + "type": "and" + }, + "query": { + "params": [ + "A", + "1h", + "now" + ] + }, + "reducer": { + "params": [], + "type": "avg" + }, + "type": "query" + } + ], + "executionErrorState": "alerting", + "for": "24h", + "frequency": "1h", + "handler": 1, + "name": "User Namespace Volumes Full in Week Based on Daily Use Rate Alert", + "noDataState": "ok", + "notifications": [] + }, + "aliasColors": {}, + "bars": true, + "cacheTimeout": null, + "dashLength": 10, + "dashes": false, + "fill": 10, + "fillGradient": 0, + "gridPos": { + "h": 6, + "w": 17, + "x": 7, + "y": 16 + }, + "hiddenSeries": false, + "id": 40, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "rightSide": false, + "show": true, + "total": false, + "values": false + }, + "lines": false, + "linewidth": 1, + "links": [], + "nullPointMode": "null as zero", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": true, + "steppedLine": true, + "targets": [ + { + "expr": "(\n (\n (\n (\n (kubelet_volume_stats_used_bytes {namespace!~\"(openshift-.*|kube-.*|default|logging)\"})\n )\n * 0 + 1\n )\n and\n (predict_linear(kubelet_volume_stats_available_bytes[1d], 7 * 24 * 60 * 60) < 0)\n )\n)", + "instant": false, + "intervalFactor": 1, + "legendFormat": "{{ "{{" }}namespace{{ "}}" }} ({{ "{{" }}persistentvolumeclaim{{ "}}" }})", + "refId": "A" + } + ], + "thresholds": [ + { + "colorMode": "critical", + "fill": true, + "line": true, + "op": "gt", + "value": 0 + } + ], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "User Namespace Volumes Full in Week Based on Daily Use Rate - Alert History", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "decimals": 0, + "format": "short", + "label": "# of Alerts", + "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, + "cacheTimeout": null, + "dashLength": 10, + "dashes": false, + "datasource": "$DS_OPENSHIFT_PROMETHEUS", + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 17, + "x": 7, + "y": 22 + }, + "hiddenSeries": false, + "id": 46, + "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", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "(\n (predict_linear(kubelet_volume_stats_available_bytes {namespace!~\"(openshift-.*|kube-.*|default|logging)\"}[1d], 7 * 24 * 60 * 60) < 0)\n)", + "format": "time_series", + "hide": false, + "instant": false, + "intervalFactor": 1, + "legendFormat": "{{ "{{" }}namespace{{ "}}" }} ({{ "{{" }}persistentvolumeclaim{{ "}}" }})", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "User Namespace Volumes Full in Week Based on Daily Use Rate - Predicted Available Space History", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "decimals": 0, + "format": "bytes", + "label": "1 Week Predicted Available Space", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "bytes", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "columns": [], + "datasource": "$DS_OPENSHIFT_PROMETHEUS", + "editable": false, + "error": false, + "fontSize": "100%", + "gridPos": { + "h": 6, + "w": 7, + "x": 0, + "y": 29 + }, + "id": 9, + "isNew": false, + "options": {}, + "pageSize": null, + "scroll": false, + "showHeader": true, + "sort": { + "col": 16, + "desc": true + }, + "span": 0, + "styles": [ + { + "alias": "Used", + "colorMode": "row", + "colors": [ + "#73BF69", + "#FF9830", + "#FF9830" + ], + "dateFormat": "YYYY-MM-DD HH:mm:ss", + "pattern": "Value #A", + "thresholds": [ + "0", + "0" + ], + "type": "number", + "unit": "bytes" + }, + { + "alias": "Capacity", + "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", + "pattern": "Value #B", + "thresholds": [], + "type": "number", + "unit": "bytes" + }, + { + "alias": "Free", + "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", + "pattern": "Value #C", + "thresholds": [], + "type": "number", + "unit": "bytes" + }, + { + "alias": "% Used", + "colors": [ + "rgba(50, 172, 45, 0.97)", + "rgba(237, 129, 40, 0.89)", + "rgba(245, 54, 54, 0.9)" + ], + "dateFormat": "YYYY-MM-DD HH:mm:ss", + "decimals": 2, + "pattern": "Value #D", + "thresholds": [ + "($pvc_percent_used_warning_threshold / 100)", + ".9" + ], + "type": "number", + "unit": "percentunit" + }, + { + "alias": "StorageClass", + "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": "storageclass", + "thresholds": [], + "type": "string", + "unit": "short" + }, + { + "alias": "PV", + "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": "volumename", + "thresholds": [], + "type": "string", + "unit": "short" + }, + { + "alias": "Namespace", + "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": "namespace", + "thresholds": [], + "type": "string", + "unit": "short" + }, + { + "alias": "PVC", + "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": "persistentvolumeclaim", + "thresholds": [], + "type": "string", + "unit": "short" + }, + { + "alias": "Volume Stats Exist?", + "colorMode": "value", + "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": [ + "1", + "1" + ], + "type": "string", + "unit": "short" + }, + { + "alias": "", + "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": "/.*/", + "thresholds": [], + "type": "hidden", + "unit": "short" + } + ], + "targets": [ + { + "expr": "(kube_persistentvolumeclaim_info) and ((max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_used_bytes )) / (max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_capacity_bytes )) >= ($pvc_percent_used_warning_threshold / 100))", + "format": "table", + "instant": true, + "refId": "E" + }, + { + "expr": "(max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_used_bytes)) and ((max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_used_bytes )) / (max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_capacity_bytes )) >= ($pvc_percent_used_warning_threshold / 100))", + "format": "table", + "instant": true, + "intervalFactor": 1, + "refId": "A" + }, + { + "expr": "(max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_capacity_bytes )) and ((max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_used_bytes )) / (max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_capacity_bytes )) >= ($pvc_percent_used_warning_threshold / 100))", + "format": "table", + "instant": true, + "refId": "B" + }, + { + "expr": "(max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_available_bytes )) and ((max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_used_bytes )) / (max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_capacity_bytes )) >= ($pvc_percent_used_warning_threshold / 100))", + "format": "table", + "instant": true, + "refId": "C" + }, + { + "expr": "(max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_used_bytes )) / (max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_capacity_bytes )) >= ($pvc_percent_used_warning_threshold / 100)", + "format": "table", + "instant": true, + "refId": "D" + } + ], + "title": "Running PVCs Above % Used Warning Threshold Stats - Current", + "transform": "table", + "type": "table" + }, + { + "aliasColors": {}, + "bars": true, + "cacheTimeout": null, + "dashLength": 10, + "dashes": false, + "datasource": "$DS_OPENSHIFT_PROMETHEUS", + "fill": 5, + "fillGradient": 0, + "gridPos": { + "h": 6, + "w": 17, + "x": 7, + "y": 29 + }, + "hiddenSeries": false, + "id": 41, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": false, + "total": false, + "values": false + }, + "lines": false, + "linewidth": 1, + "links": [], + "nullPointMode": "null as zero", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": true, + "steppedLine": true, + "targets": [ + { + "expr": "(\n ((max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_used_bytes )) * 0 +1)\n and\n (\n (max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_used_bytes )) / (max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_capacity_bytes ))\n ) >= ($pvc_percent_used_warning_threshold / 100)\n)", + "format": "time_series", + "instant": false, + "intervalFactor": 1, + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Running PVCs Above % Used Warning Threshold - History", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "decimals": 0, + "format": "short", + "label": "# of Alerts", + "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 + } + } + ], + "title": "Alert Details", + "type": "row" + }, + { + "collapsed": true, + "datasource": "$DS_OPENSHIFT_PROMETHEUS", + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 8 + }, + "id": 20, + "panels": [ + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "$DS_OPENSHIFT_PROMETHEUS", + "decimals": 0, + "editable": false, + "error": false, + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 4, + "w": 2, + "x": 0, + "y": 3 + }, + "id": 4, + "interval": null, + "isNew": false, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "options": {}, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "span": 0, + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "lineColor": "rgb(31, 120, 193)" + }, + "tableColumn": "", + "targets": [ + { + "expr": "(sum (pv_collector_bound_pvc_count)) or vector(0)", + "format": "table", + "instant": true, + "refId": "A" + } + ], + "thresholds": "", + "title": "Bound PVCs", + "type": "singlestat", + "valueFontSize": "200%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "current" + }, + { + "columns": [], + "datasource": "$DS_OPENSHIFT_PROMETHEUS", + "editable": false, + "error": false, + "fontSize": "100%", + "gridPos": { + "h": 25, + "w": 24, + "x": 0, + "y": 7 + }, + "id": 10, + "isNew": false, + "links": [ + { + "includeVars": false, + "title": "OpenShift Container Storage (OCS) 3.11: Operations Guide: 10.1. Available Metrics for File Storage and Block Storage", + "type": "", + "url": "https://access.redhat.com/documentation/en-us/red_hat_openshift_container_storage/3.11/html/operations_guide/enable_vol_metrics#file_vol_metrics" + } + ], + "options": {}, + "pageSize": null, + "scroll": false, + "showHeader": true, + "sort": { + "col": 16, + "desc": true + }, + "span": 0, + "styles": [ + { + "alias": "Used", + "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", + "pattern": "Value #A", + "thresholds": [], + "type": "number", + "unit": "bytes" + }, + { + "alias": "Capacity", + "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", + "pattern": "Value #B", + "thresholds": [], + "type": "number", + "unit": "bytes" + }, + { + "alias": "Free", + "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", + "pattern": "Value #C", + "thresholds": [], + "type": "number", + "unit": "bytes" + }, + { + "alias": "% Used", + "colorMode": "cell", + "colors": [ + "rgba(50, 172, 45, 0.97)", + "rgba(237, 129, 40, 0.89)", + "rgba(245, 54, 54, 0.9)" + ], + "dateFormat": "YYYY-MM-DD HH:mm:ss", + "decimals": 2, + "pattern": "Value #D", + "thresholds": [ + ".8", + ".9" + ], + "type": "number", + "unit": "percentunit" + }, + { + "alias": "StorageClass", + "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": "storageclass", + "thresholds": [], + "type": "string", + "unit": "short" + }, + { + "alias": "PV", + "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": "volumename", + "thresholds": [], + "type": "string", + "unit": "short" + }, + { + "alias": "Namespace", + "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": "namespace", + "thresholds": [], + "type": "string", + "unit": "short" + }, + { + "alias": "PVC", + "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": "persistentvolumeclaim", + "thresholds": [], + "type": "string", + "unit": "short" + }, + { + "alias": "Volume Stats Exist?", + "colorMode": "value", + "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": [ + "1", + "1" + ], + "type": "string", + "unit": "short" + }, + { + "alias": "", + "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": "/.*/", + "thresholds": [], + "type": "hidden", + "unit": "short" + } + ], + "targets": [ + { + "expr": "kube_persistentvolumeclaim_info", + "format": "table", + "instant": true, + "refId": "E" + }, + { + "expr": "(1-max by (persistentvolumeclaim, namespace) (kube_persistentvolumeclaim_info ) ) unless (max by (namespace, persistentvolumeclaim) (kubelet_volume_stats_used_bytes )) or ((max by (persistentvolumeclaim, namespace) (kube_persistentvolumeclaim_info ) ) and (max by (namespace, persistentvolumeclaim) (kubelet_volume_stats_used_bytes )))", + "format": "table", + "instant": true, + "refId": "F" + }, + { + "expr": "max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_used_bytes)", + "format": "table", + "instant": true, + "intervalFactor": 1, + "refId": "A" + }, + { + "expr": "max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_capacity_bytes )", + "format": "table", + "instant": true, + "refId": "B" + }, + { + "expr": "max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_available_bytes )", + "format": "table", + "instant": true, + "refId": "C" + }, + { + "expr": "(max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_used_bytes )) / (max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_capacity_bytes ))", + "format": "table", + "instant": true, + "refId": "D" + } + ], + "title": "PVC Stats", + "transform": "table", + "type": "table" + } + ], + "title": "Stats", + "type": "row" + }, + { + "collapsed": true, + "datasource": "$DS_OPENSHIFT_PROMETHEUS", + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 9 + }, + "id": 22, + "panels": [ + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "$DS_OPENSHIFT_PROMETHEUS", + "description": "WARNING: Any PVCs that are not bound to a running pod will not show up in this state.", + "editable": false, + "error": false, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 4 + }, + "hiddenSeries": false, + "id": 15, + "isNew": false, + "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, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "span": 0, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "(max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_used_bytes ))", + "instant": false, + "intervalFactor": 1, + "legendFormat": "{{ "{{" }}namespace{{ "}}" }} ({{ "{{" }}persistentvolumeclaim{{ "}}" }})", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "All Running PVCs Used Bytes", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "format": "", + "logBase": 0, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "bytes", + "logBase": 1, + "show": true + }, + { + "format": "bytes", + "logBase": 1, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "$DS_OPENSHIFT_PROMETHEUS", + "description": "WARNING: Any PVCs that are not bound to a running pod will not show up in this state.", + "editable": false, + "error": false, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 12 + }, + "hiddenSeries": false, + "id": 14, + "isNew": false, + "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, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "span": 0, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "(max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_used_bytes )) / (max by (persistentvolumeclaim,namespace) (kubelet_volume_stats_capacity_bytes )) * 100", + "intervalFactor": 1, + "legendFormat": "{{ "{{" }}namespace{{ "}}" }} ({{ "{{" }}persistentvolumeclaim{{ "}}" }})", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Running PVCs % Used", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "format": "", + "logBase": 0, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "percent", + "logBase": 1, + "max": 100, + "min": 0, + "show": true + }, + { + "format": "bytes", + "logBase": 1, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + } + ], + "title": "Use", + "type": "row" + }, + { + "collapsed": true, + "datasource": "$DS_OPENSHIFT_PROMETHEUS", + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 10 + }, + "id": 24, + "panels": [ + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "$DS_OPENSHIFT_PROMETHEUS", + "description": "WARNING: Any PVCs that are not bound to a running pod will not show up in this state.", + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 6, + "w": 24, + "x": 0, + "y": 5 + }, + "hiddenSeries": false, + "id": 17, + "legend": { + "alignAsTable": true, + "avg": false, + "current": true, + "max": false, + "min": false, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(kubelet_volume_stats_used_bytes [1h])", + "format": "time_series", + "instant": false, + "intervalFactor": 1, + "legendFormat": "{{ "{{" }}namespace{{ "}}" }} ({{ "{{" }}persistentvolumeclaim{{ "}}" }})", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Hourly Volume Use Rate", + "tooltip": { + "shared": true, + "sort": 1, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "decimals": null, + "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": "$DS_OPENSHIFT_PROMETHEUS", + "description": "WARNING: Any PVCs that are not bound to a running pod will not show up in this state.", + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 6, + "w": 24, + "x": 0, + "y": 11 + }, + "hiddenSeries": false, + "id": 18, + "legend": { + "alignAsTable": true, + "avg": false, + "current": true, + "max": false, + "min": false, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(kubelet_volume_stats_used_bytes [1d])", + "format": "time_series", + "instant": false, + "intervalFactor": 1, + "legendFormat": "{{ "{{" }}namespace{{ "}}" }} ({{ "{{" }}persistentvolumeclaim{{ "}}" }})", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Daily Volume Use Rate", + "tooltip": { + "shared": true, + "sort": 1, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "decimals": null, + "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": "$DS_OPENSHIFT_PROMETHEUS", + "description": "WARNING: Any PVCs that are not bound to a running pod will not show up in this state.", + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 6, + "w": 24, + "x": 0, + "y": 17 + }, + "hiddenSeries": false, + "hideTimeOverride": false, + "id": 25, + "interval": "", + "legend": { + "alignAsTable": true, + "avg": false, + "current": true, + "max": false, + "min": false, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(kubelet_volume_stats_used_bytes [1w])", + "format": "time_series", + "instant": false, + "intervalFactor": 1, + "legendFormat": "{{ "{{" }}namespace{{ "}}" }} ({{ "{{" }}persistentvolumeclaim{{ "}}" }})", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Weekly Volume Use Rate", + "tooltip": { + "shared": true, + "sort": 1, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "decimals": null, + "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 + } + } + ], + "title": "Use Rate", + "type": "row" + } + ], + "schemaVersion": 21, + "style": "dark", + "tags": [ + "openshift", + "k8s", + "storage" + ], + "templating": { + "list": [ + { + "allFormat": "", + "allValue": "", + "current": { + "text": "openshift-prometheus", + "value": "openshift-prometheus" + }, + "datasource": null, + "hide": 0, + "includeAll": false, + "label": "Datasource", + "multi": false, + "multiFormat": "", + "name": "DS_OPENSHIFT_PROMETHEUS", + "options": [], + "query": "prometheus", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "type": "datasource" + }, + { + "allFormat": "", + "allValue": "", + "current": { + "selected": false, + "text": "80", + "value": "80" + }, + "datasource": null, + "hide": 0, + "includeAll": false, + "label": "PVC % Used Warning Threshold", + "multi": false, + "multiFormat": "", + "name": "pvc_percent_used_warning_threshold", + "options": [ + { + "selected": false, + "text": "80", + "value": "80" + } + ], + "query": "80", + "refresh": false, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "type": "textbox" + } + ] + }, + "time": { + "from": "now-2d", + "to": "now" + }, + "timepicker": { + "refresh_intervals": [ + "5s", + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ], + "time_options": null + }, + "timezone": "", + "title": "K8s / Storage / Volumes / Cluster" + } +`}} diff --git a/sources/otel-lgtm-stack/templates/dashboards-gpu.yaml b/sources/otel-lgtm-stack/templates/dashboards-gpu.yaml new file mode 100644 index 00000000..6a23e470 --- /dev/null +++ b/sources/otel-lgtm-stack/templates/dashboards-gpu.yaml @@ -0,0 +1,1106 @@ +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: lgtm-amd-gpu-dashboard + namespace: otel-lgtm-stack + labels: + grafana_dashboard: "1" + annotations: + grafana_folder: "common" +data: + amd-gpu-dashboard.json: |- +{{` + { + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": { + "type": "grafana", + "uid": "-- Grafana --" + }, + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": 1, + "links": [], + "panels": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "gridPos": { + "h": 6, + "w": 4, + "x": 0, + "y": 0 + }, + "id": 10, + "options": { + "code": { + "language": "plaintext", + "showLineNumbers": false, + "showMiniMap": false + }, + "content": "**GPU MODEL**\n## ${gpu_model}\n\n**GPU S/N**\n## ${gpu_serial_number}", + "mode": "markdown" + }, + "pluginVersion": "11.1.4", + "type": "text" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "watt" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 5, + "x": 4, + "y": 0 + }, + "id": 6, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^gpu_power_usage$/", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "11.1.4", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "disableTextWrap": false, + "editorMode": "builder", + "exemplar": false, + "expr": "gpu_power_usage{gpu_uuid=~\"$gpu\", job=\"$scope\"}", + "format": "time_series", + "fullMetaSearch": false, + "hide": false, + "includeNullMetadata": true, + "instant": true, + "legendFormat": "gpu_power_usage", + "range": false, + "refId": "gpu_power_usage", + "useBackend": false + } + ], + "title": "Power Usage (W)", + "transformations": [ + { + "id": "merge", + "options": {} + }, + { + "id": "reduce", + "options": { + "includeTimeField": false, + "mode": "reduceFields", + "reducers": [ + "mean" + ] + } + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 5, + "x": 9, + "y": 0 + }, + "id": 4, + "options": { + "minVizHeight": 75, + "minVizWidth": 75, + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showThresholdLabels": false, + "showThresholdMarkers": true, + "sizing": "auto" + }, + "pluginVersion": "11.1.4", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "disableTextWrap": false, + "editorMode": "builder", + "exemplar": false, + "expr": "gpu_used_vram{gpu_uuid=~\"$gpu\", job=\"$scope\"} / on(gpu_uuid) gpu_total_vram{gpu_uuid=~\"$gpu\", job=\"$scope\"}", + "format": "time_series", + "fullMetaSearch": false, + "hide": false, + "includeNullMetadata": true, + "instant": true, + "legendFormat": "gpu_vram_utilization", + "range": false, + "refId": "gpu_used_vram", + "useBackend": false + } + ], + "title": "Memory Utilization %", + "transformations": [ + { + "id": "joinByField", + "options": { + "byField": "Time", + "mode": "outer" + } + }, + { + "id": "reduce", + "options": { + "reducers": [ + "mean" + ] + } + } + ], + "type": "gauge" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 5, + "x": 14, + "y": 0 + }, + "id": 12, + "options": { + "minVizHeight": 75, + "minVizWidth": 75, + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^gpu_gfx_activity$/", + "values": false + }, + "showThresholdLabels": false, + "showThresholdMarkers": true, + "sizing": "auto" + }, + "pluginVersion": "11.1.4", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "disableTextWrap": false, + "editorMode": "builder", + "exemplar": false, + "expr": "gpu_gfx_activity{gpu_uuid=~\"$gpu\", job=\"$scope\"}", + "format": "time_series", + "fullMetaSearch": false, + "hide": false, + "includeNullMetadata": true, + "instant": true, + "legendFormat": "gpu_gfx_activity", + "range": false, + "refId": "gpu_gfx_activity", + "useBackend": false + } + ], + "title": "GPU Utilization %", + "transformations": [ + { + "id": "merge", + "options": {} + }, + { + "id": "reduce", + "options": { + "includeTimeField": false, + "mode": "reduceFields", + "reducers": [ + "mean" + ] + } + } + ], + "type": "gauge" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "celsius" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 5, + "x": 19, + "y": 0 + }, + "id": 9, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "11.1.4", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "disableTextWrap": false, + "editorMode": "builder", + "exemplar": false, + "expr": "gpu_edge_temperature{gpu_uuid=~\"$gpu\", job=\"$scope\"}", + "format": "time_series", + "fullMetaSearch": false, + "hide": false, + "includeNullMetadata": true, + "instant": true, + "legendFormat": "gpu_edge_temperature", + "range": false, + "refId": "gpu_edge_temperature", + "useBackend": false + } + ], + "title": "GPU Temperature °C", + "transformations": [ + { + "id": "merge", + "options": {} + }, + { + "id": "reduce", + "options": { + "includeTimeField": false, + "labelsToFields": false, + "mode": "seriesToRows", + "reducers": [ + "mean" + ] + } + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 5, + "x": 4, + "y": 3 + }, + "id": 13, + "options": { + "colorMode": "value", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "/^gpu_used_vram$/", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "11.1.4", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "disableTextWrap": false, + "editorMode": "builder", + "exemplar": false, + "expr": "gpu_used_vram{gpu_uuid=~\"$gpu\", job=\"$scope\"}", + "format": "time_series", + "fullMetaSearch": false, + "hide": false, + "includeNullMetadata": true, + "instant": true, + "legendFormat": "gpu_used_vram", + "range": false, + "refId": "gpu_used_vram", + "useBackend": false + } + ], + "title": "VRAM Usage (MB)", + "transformations": [ + { + "id": "merge", + "options": {} + }, + { + "id": "reduce", + "options": { + "includeTimeField": false, + "mode": "reduceFields", + "reducers": [ + "mean" + ] + } + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 8, + "x": 0, + "y": 6 + }, + "id": 3, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "disableTextWrap": false, + "editorMode": "builder", + "exemplar": false, + "expr": "gpu_gfx_activity{gpu_uuid=~\"$gpu\", job=\"$scope\"}", + "format": "time_series", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": false, + "legendFormat": "{{ "{{" }}gpu_uuid{{ "}}" }}", + "range": true, + "refId": "gpu_gfx_activity", + "useBackend": false + } + ], + "title": "GPU Utilization %", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMax": 1, + "axisSoftMin": 0, + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 8, + "x": 8, + "y": 6 + }, + "id": 2, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "disableTextWrap": false, + "editorMode": "builder", + "exemplar": false, + "expr": "gpu_used_vram{gpu_uuid=~\"$gpu\", job=\"$scope\"} / on(gpu_uuid) gpu_total_vram{gpu_uuid=~\"$gpu\", job=\"$scope\"}", + "format": "time_series", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": false, + "legendFormat": "__auto", + "range": true, + "refId": "gpu_used_vram", + "useBackend": false + } + ], + "title": "Memory Utilization %", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "celsius" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 8, + "x": 16, + "y": 6 + }, + "id": 11, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "disableTextWrap": false, + "editorMode": "builder", + "exemplar": false, + "expr": "gpu_edge_temperature{gpu_uuid=~\"$gpu\", job=\"$scope\"}", + "format": "time_series", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": false, + "legendFormat": "{{ "{{" }}gpu_uuid{{ "}}" }}", + "range": true, + "refId": "gpu_edge_temperature", + "useBackend": false + } + ], + "title": "GPU Temperature °C", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto", + "wrapText": false + }, + "filterable": true, + "inspect": false + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 13 + }, + "id": 14, + "options": { + "cellHeight": "sm", + "footer": { + "countRows": false, + "fields": "", + "reducer": [ + "sum" + ], + "show": false + }, + "showHeader": true + }, + "pluginVersion": "11.1.4", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "disableTextWrap": false, + "editorMode": "builder", + "expr": "{gpu_uuid=~\"$gpu\", job=\"$scope\"}", + "format": "table", + "fullMetaSearch": false, + "hide": false, + "includeNullMetadata": true, + "instant": false, + "legendFormat": "__auto", + "range": true, + "refId": "A", + "useBackend": false + } + ], + "title": "Raw data", + "type": "table" + } + ], + "schemaVersion": 39, + "tags": [], + "templating": { + "list": [ + { + "current": { + "selected": false, + "text": "kubernetes-pods", + "value": "kubernetes-pods" + }, + "description": "Filter variable for job scope", + "hide": 0, + "includeAll": false, + "label": "Scope", + "multi": false, + "name": "scope", + "options": [ + { + "selected": true, + "text": "kubernetes-pods", + "value": "kubernetes-pods" + }, + { + "selected": false, + "text": "kubernetes-service-endpoints", + "value": "kubernetes-service-endpoints" + } + ], + "query": "kubernetes-pods,kubernetes-service-endpoints", + "queryValue": "", + "skipUrlSync": false, + "type": "custom" + }, + { + "current": { + "selected": false, + "text": "atlpkuc4app06", + "value": "atlpkuc4app06" + }, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "definition": "label_values(node)", + "hide": 0, + "includeAll": false, + "label": "Node", + "multi": false, + "name": "node", + "options": [], + "query": { + "qryType": 1, + "query": "label_values(node)", + "refId": "PrometheusVariableQueryEditor-VariableQuery" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "type": "query" + }, + { + "current": { + "selected": true, + "text": "All", + "value": "$__all" + }, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "definition": "label_values({node=\"$node\"},gpu_uuid)", + "hide": 0, + "includeAll": true, + "label": "GPU", + "multi": false, + "name": "gpu", + "options": [], + "query": { + "qryType": 1, + "query": "label_values({node=\"$node\"},gpu_uuid)", + "refId": "PrometheusVariableQueryEditor-VariableQuery" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "type": "query" + }, + { + "current": { + "isNone": true, + "selected": false, + "text": "None", + "value": "" + }, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "definition": "label_values({gpu_uuid=\"$gpu\"},amd_com_gpu_family)", + "hide": 2, + "includeAll": false, + "label": "GPU Family", + "multi": false, + "name": "gpu_family", + "options": [], + "query": { + "qryType": 1, + "query": "label_values({gpu_uuid=\"$gpu\"},amd_com_gpu_family)", + "refId": "PrometheusVariableQueryEditor-VariableQuery" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "type": "query" + }, + { + "current": { + "selected": true, + "text": [ + "102-D65210-00" + ], + "value": [ + "102-D65210-00" + ] + }, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "definition": "label_values({gpu_uuid=~\"$gpu\"},card_model)", + "hide": 2, + "includeAll": false, + "label": "GPU Model", + "multi": true, + "name": "gpu_model", + "options": [], + "query": { + "qryType": 1, + "query": "label_values({gpu_uuid=~\"$gpu\"},card_model)", + "refId": "PrometheusVariableQueryEditor-VariableQuery" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "type": "query" + }, + { + "current": { + "selected": true, + "text": [ + "692324000620" + ], + "value": [ + "692324000620" + ] + }, + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "definition": "label_values({gpu_uuid=~\"$gpu\"},serial_number)", + "hide": 2, + "includeAll": false, + "label": "GPU Serial Number", + "multi": true, + "name": "gpu_serial_number", + "options": [], + "query": { + "qryType": 1, + "query": "label_values({gpu_uuid=~\"$gpu\"},serial_number)", + "refId": "PrometheusVariableQueryEditor-VariableQuery" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "type": "query" + } + ] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": {}, + "timezone": "browser", + "title": "AMD GPU Metrics", + "uid": "ee6sumbzuzl6oc", + "version": 25, + "weekStart": "" + } +`}} diff --git a/sources/otel-lgtm-stack/templates/dashboards-minio.yaml b/sources/otel-lgtm-stack/templates/dashboards-minio.yaml new file mode 100644 index 00000000..33eb05d4 --- /dev/null +++ b/sources/otel-lgtm-stack/templates/dashboards-minio.yaml @@ -0,0 +1,657 @@ +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: lgtm-minio-dashboard + namespace: otel-lgtm-stack + labels: + grafana_dashboard: "1" + annotations: + grafana_folder: "common" +data: + lgtm-minio-dashboard.json: |- + { + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": { + "type": "grafana", + "uid": "-- Grafana --" + }, + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": 11, + "links": [], + "panels": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "fieldMinMax": false, + "mappings": [], + "thresholds": { + "mode": "percentage", + "steps": [ + { + "color": "green" + }, + { + "color": "dark-red", + "value": 20 + }, + { + "color": "#EAB839", + "value": 30 + }, + { + "color": "green", + "value": 40 + } + ] + }, + "unit": "percent" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 6, + "x": 0, + "y": 0 + }, + "id": 7, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "11.6.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "editorMode": "code", + "expr": "(minio_cluster_capacity_usable_free_bytes{job=\"minio-cluster-metrics\"} / minio_cluster_capacity_usable_total_bytes{job=\"minio-cluster-metrics\"}) * 100", + "instant": false, + "legendFormat": "__auto", + "range": true, + "refId": "A" + } + ], + "title": "Cluster Free Capacity (%)", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "description": "Total bytes on a drive", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + }, + "unit": "bytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 6, + "x": 6, + "y": 0 + }, + "id": 1, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "11.6.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "disableTextWrap": false, + "editorMode": "code", + "expr": "minio_node_drive_total_bytes{job=\"minio-resource-metrics\"}", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": false, + "legendFormat": "__auto", + "range": true, + "refId": "A", + "useBackend": false + } + ], + "title": "Drive Total Bytes", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "description": "Used bytes on a drive", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + }, + "unit": "bytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 6, + "x": 12, + "y": 0 + }, + "id": 2, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "11.6.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "editorMode": "code", + "expr": "minio_node_drive_used_bytes{job=\"minio-resource-metrics\"}", + "instant": false, + "legendFormat": "__auto", + "range": true, + "refId": "A" + } + ], + "title": "Drive Used Bytes", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "description": "Total number of buckets in the cluster", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + }, + "unit": "buckets" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 6, + "x": 18, + "y": 0 + }, + "id": 5, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "11.6.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "editorMode": "code", + "expr": "minio_cluster_bucket_total{job=\"minio-cluster-metrics\"}", + "instant": false, + "legendFormat": "{{ "{{" }}job{{ "}}" }}", + "range": true, + "refId": "A" + } + ], + "title": "Total Number of Buckets", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "description": "Total bucket size in bytes", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + } + ] + }, + "unit": "bytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 0, + "y": 9 + }, + "id": 3, + "options": { + "minVizHeight": 75, + "minVizWidth": 75, + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showThresholdLabels": false, + "showThresholdMarkers": true, + "sizing": "auto" + }, + "pluginVersion": "11.6.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "editorMode": "code", + "expr": "minio_bucket_usage_total_bytes{}", + "instant": false, + "legendFormat": "{{ "{{" }}bucket{{ "}}" }}", + "range": true, + "refId": "A" + } + ], + "title": "minio_bucket_usage_total_bytes", + "type": "gauge" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [ + { + "__systemRef": "hideSeriesFrom", + "matcher": { + "id": "byNames", + "options": { + "mode": "exclude", + "names": [ + "default-bucket" + ], + "prefix": "All except:", + "readOnly": true + } + }, + "properties": [ + { + "id": "custom.hideFrom", + "value": { + "legend": false, + "tooltip": false, + "viz": true + } + } + ] + } + ] + }, + "gridPos": { + "h": 8, + "w": 6, + "x": 6, + "y": 9 + }, + "id": 4, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "11.6.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "editorMode": "code", + "expr": "increase(minio_bucket_usage_total_bytes[10m])\n", + "instant": false, + "legendFormat": "{{ "{{" }}bucket{{ "}}" }}", + "range": true, + "refId": "A" + } + ], + "title": "MinIO Bucket Growth Rate", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "decimals": 3, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [ + { + "__systemRef": "hideSeriesFrom", + "matcher": { + "id": "byNames", + "options": { + "mode": "exclude", + "names": [ + "{__name__=\"minio_bucket_usage_total_bytes\", bucket=\"default-bucket\", instance=\"minio.minio-tenant-default.svc.cluster.local:80\", job=\"minio-bucket-metrics\", server=\"127.0.0.1:9000\", service_instance_id=\"minio.minio-tenant-default.svc.cluster.local:80\", service_name=\"minio-bucket-metrics\"}" + ], + "prefix": "All except:", + "readOnly": true + } + }, + "properties": [ + { + "id": "custom.hideFrom", + "value": { + "legend": false, + "tooltip": false, + "viz": true + } + } + ] + } + ] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 9 + }, + "id": 8, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "11.6.0", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "editorMode": "code", + "expr": "minio_bucket_usage_total_bytes{}", + "instant": false, + "legendFormat": "__auto", + "range": true, + "refId": "A" + } + ], + "title": "Bucket Usage Bytes", + "type": "timeseries" + } + ], + "preload": false, + "schemaVersion": 41, + "tags": [], + "templating": { + "list": [] + }, + "time": { + "from": "now-12h", + "to": "now" + }, + "timepicker": { + "refresh_intervals": [ + "5s", + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d", + "7d" + ] + }, + "timezone": "browser", + "title": "MinIO simple dashboard", + "uid": "minioSimple", + "version": 5 + } From 3ec222fda4eb1ba43082929c896b5321da134c7f Mon Sep 17 00:00:00 2001 From: woojae-siloai Date: Wed, 10 Dec 2025 22:08:49 +0200 Subject: [PATCH 06/27] fix: 1st phase of lgtm helm templates --- sources/otel-lgtm-stack/templates/dashboards-default.yaml | 4 ---- sources/otel-lgtm-stack/templates/dashboards-gpu.yaml | 2 -- 2 files changed, 6 deletions(-) diff --git a/sources/otel-lgtm-stack/templates/dashboards-default.yaml b/sources/otel-lgtm-stack/templates/dashboards-default.yaml index 5f814e55..1668e48d 100644 --- a/sources/otel-lgtm-stack/templates/dashboards-default.yaml +++ b/sources/otel-lgtm-stack/templates/dashboards-default.yaml @@ -10,7 +10,6 @@ metadata: grafana_folder: "common" data: k8s-nodes-overview.json: |- -{{` { "annotations": { "list": [ @@ -4720,7 +4719,6 @@ data: "version": 1, "weekStart": "" } -`}} --- apiVersion: v1 kind: ConfigMap @@ -4733,7 +4731,6 @@ metadata: grafana_folder: "common" data: k8s-volume-information.json: |- -{{` { "__inputs": [ { @@ -7074,4 +7071,3 @@ data: "timezone": "", "title": "K8s / Storage / Volumes / Cluster" } -`}} diff --git a/sources/otel-lgtm-stack/templates/dashboards-gpu.yaml b/sources/otel-lgtm-stack/templates/dashboards-gpu.yaml index 6a23e470..00a31c59 100644 --- a/sources/otel-lgtm-stack/templates/dashboards-gpu.yaml +++ b/sources/otel-lgtm-stack/templates/dashboards-gpu.yaml @@ -10,7 +10,6 @@ metadata: grafana_folder: "common" data: amd-gpu-dashboard.json: |- -{{` { "annotations": { "list": [ @@ -1103,4 +1102,3 @@ data: "version": 25, "weekStart": "" } -`}} From 12f8f1408839dc32e1a30dd45808b7ff15c3602d Mon Sep 17 00:00:00 2001 From: woojae-siloai Date: Thu, 11 Dec 2025 10:54:37 +0200 Subject: [PATCH 07/27] fix: 2nd phase of lgtm helm templates --- .../templates/chrony-node-exporter.yaml | 2 +- .../otel-lgtm-stack/templates/collectors.yaml | 66 +++++++++---------- .../templates/dashboards-default.yaml | 4 +- .../templates/dashboards-gpu.yaml | 2 +- .../templates/dashboards-minio.yaml | 2 +- .../templates/kube-state-metrics.yaml | 12 ++-- .../otel-lgtm-stack/templates/lgtm-stack.yaml | 52 +++++++-------- .../templates/node-exporter.yaml | 10 +-- sources/otel-lgtm-stack/values.yaml | 65 +++++++++++++----- 9 files changed, 125 insertions(+), 90 deletions(-) diff --git a/sources/otel-lgtm-stack/templates/chrony-node-exporter.yaml b/sources/otel-lgtm-stack/templates/chrony-node-exporter.yaml index 8c41f314..0fc39412 100644 --- a/sources/otel-lgtm-stack/templates/chrony-node-exporter.yaml +++ b/sources/otel-lgtm-stack/templates/chrony-node-exporter.yaml @@ -2,7 +2,7 @@ apiVersion: apps/v1 kind: DaemonSet metadata: name: nodeexporter-chrony-exporter - namespace: otel-lgtm-stack + namespace: {{ .Values.namespace }} labels: app: chrony-exporter spec: diff --git a/sources/otel-lgtm-stack/templates/collectors.yaml b/sources/otel-lgtm-stack/templates/collectors.yaml index 5ff24192..c355e48e 100644 --- a/sources/otel-lgtm-stack/templates/collectors.yaml +++ b/sources/otel-lgtm-stack/templates/collectors.yaml @@ -3,7 +3,7 @@ apiVersion: v1 kind: ServiceAccount metadata: name: otel-collector - namespace: otel-lgtm-stack + namespace: {{ .Values.namespace }} --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole @@ -100,14 +100,14 @@ roleRef: subjects: - kind: ServiceAccount name: otel-collector - namespace: otel-lgtm-stack + namespace: {{ .Values.namespace }} --- # Source: openobserve-collector/templates/instrumentation-dotnet.yaml apiVersion: opentelemetry.io/v1alpha1 kind: Instrumentation metadata: name: lgtm-dotnet - namespace: otel-lgtm-stack + namespace: {{ .Values.namespace }} spec: exporter: endpoint: http://lgtm.lgtm-stack.svc.cluster.local:4318 ### @@ -129,7 +129,7 @@ apiVersion: opentelemetry.io/v1alpha1 kind: Instrumentation metadata: name: lgtm-go - namespace: otel-lgtm-stack + namespace: {{ .Values.namespace }} spec: go: # image: ghcr.io/openobserve/opentelemetry-go-instrumentation/autoinstrumentation-go:v0.7.0-alpha-5 @@ -148,7 +148,7 @@ apiVersion: opentelemetry.io/v1alpha1 kind: Instrumentation metadata: name: lgtm-java - namespace: otel-lgtm-stack + namespace: {{ .Values.namespace }} spec: exporter: endpoint: http://lgtm.lgtm-stack.svc.cluster.local:4318 ### @@ -170,7 +170,7 @@ apiVersion: opentelemetry.io/v1alpha1 kind: Instrumentation metadata: name: lgtm-nodejs - namespace: otel-lgtm-stack + namespace: {{ .Values.namespace }} spec: exporter: endpoint: http://lgtm.lgtm-stack.svc.cluster.local:4318 ### @@ -186,7 +186,7 @@ apiVersion: opentelemetry.io/v1alpha1 kind: Instrumentation metadata: name: lgtm-python - namespace: otel-lgtm-stack + namespace: {{ .Values.namespace }} spec: exporter: endpoint: http://lgtm.lgtm-stack.svc.cluster.local:4318 ### @@ -211,7 +211,7 @@ apiVersion: opentelemetry.io/v1beta1 kind: OpenTelemetryCollector metadata: name: otel-collector-logs - namespace: otel-lgtm-stack + namespace: {{ .Values.namespace }} spec: mode: daemonset serviceAccount: otel-collector @@ -231,11 +231,11 @@ spec: prometheus.io/port: "8888" resources: limits: - cpu: '1' - memory: 2Gi + cpu: {{ .Values.collectors.resources.logs.limits.cpu }} + memory: {{ .Values.collectors.resources.logs.limits.memory }} requests: - cpu: 200m - memory: 400Mi + cpu: {{ .Values.collectors.resources.logs.requests.cpu }} + memory: {{ .Values.collectors.resources.logs.requests.memory }} securityContext: #### privileged: true runAsUser: 0 #### @@ -444,7 +444,7 @@ apiVersion: opentelemetry.io/v1beta1 kind: OpenTelemetryCollector metadata: name: otel-collector-logs-events - namespace: otel-lgtm-stack + namespace: {{ .Values.namespace }} spec: image: ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib:0.113.0 mode: deployment @@ -558,7 +558,7 @@ apiVersion: opentelemetry.io/v1beta1 kind: OpenTelemetryCollector metadata: name: otel-collector-metrics-k8s - namespace: otel-lgtm-stack + namespace: {{ .Values.namespace }} spec: mode: deployment serviceAccount: otel-collector @@ -569,11 +569,11 @@ spec: prometheus.io/port: "8888" resources: limits: - cpu: '2' - memory: 8Gi + cpu: {{ .Values.collectors.resources.metrics.limits.cpu }} + memory: {{ .Values.collectors.resources.metrics.limits.memory }} requests: - cpu: 500m - memory: 1Gi + cpu: {{ .Values.collectors.resources.metrics.requests.cpu }} + memory: {{ .Values.collectors.resources.metrics.requests.memory }} config: receivers: prometheus: @@ -910,7 +910,7 @@ apiVersion: opentelemetry.io/v1beta1 kind: OpenTelemetryCollector metadata: name: otel-collector-metrics-rest - namespace: otel-lgtm-stack + namespace: {{ .Values.namespace }} spec: image: ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib:0.113.0 mode: deployment @@ -920,11 +920,11 @@ spec: replicas: 1 resources: limits: - cpu: "2" - memory: 8Gi + cpu: {{ .Values.collectors.resources.metrics.limits.cpu }} + memory: {{ .Values.collectors.resources.metrics.limits.memory }} requests: - cpu: 500m - memory: 1Gi + cpu: {{ .Values.collectors.resources.metrics.requests.cpu }} + memory: {{ .Values.collectors.resources.metrics.requests.memory }} serviceAccount: otel-collector config: exporters: @@ -1043,7 +1043,7 @@ apiVersion: opentelemetry.io/v1beta1 kind: OpenTelemetryCollector metadata: name: otel-collector-metrics-chrony - namespace: otel-lgtm-stack + namespace: {{ .Values.namespace }} spec: image: ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib:0.113.0 mode: deployment @@ -1053,11 +1053,11 @@ spec: replicas: 1 resources: limits: - cpu: "2" - memory: 8Gi + cpu: {{ .Values.collectors.resources.metrics.limits.cpu }} + memory: {{ .Values.collectors.resources.metrics.limits.memory }} requests: - cpu: 500m - memory: 1Gi + cpu: {{ .Values.collectors.resources.metrics.requests.cpu }} + memory: {{ .Values.collectors.resources.metrics.requests.memory }} serviceAccount: otel-collector config: exporters: @@ -1114,7 +1114,7 @@ apiVersion: opentelemetry.io/v1beta1 kind: OpenTelemetryCollector metadata: name: otel-collector-metrics-airm - namespace: otel-lgtm-stack + namespace: {{ .Values.namespace }} spec: image: ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib:0.113.0 mode: deployment @@ -1124,11 +1124,11 @@ spec: replicas: 1 resources: limits: - cpu: "2" - memory: 8Gi + cpu: {{ .Values.collectors.resources.metrics.limits.cpu }} + memory: {{ .Values.collectors.resources.metrics.limits.memory }} requests: - cpu: 500m - memory: 1Gi + cpu: {{ .Values.collectors.resources.metrics.requests.cpu }} + memory: {{ .Values.collectors.resources.metrics.requests.memory }} serviceAccount: otel-collector config: exporters: diff --git a/sources/otel-lgtm-stack/templates/dashboards-default.yaml b/sources/otel-lgtm-stack/templates/dashboards-default.yaml index 1668e48d..ba9a31b0 100644 --- a/sources/otel-lgtm-stack/templates/dashboards-default.yaml +++ b/sources/otel-lgtm-stack/templates/dashboards-default.yaml @@ -3,7 +3,7 @@ apiVersion: v1 kind: ConfigMap metadata: name: lgtm-k8s-nodes-overview - namespace: otel-lgtm-stack + namespace: {{ .Values.namespace }} labels: grafana_dashboard: "1" annotations: @@ -4724,7 +4724,7 @@ apiVersion: v1 kind: ConfigMap metadata: name: lgtm-k8s-volume-information - namespace: otel-lgtm-stack + namespace: {{ .Values.namespace }} labels: grafana_dashboard: "1" annotations: diff --git a/sources/otel-lgtm-stack/templates/dashboards-gpu.yaml b/sources/otel-lgtm-stack/templates/dashboards-gpu.yaml index 00a31c59..826be987 100644 --- a/sources/otel-lgtm-stack/templates/dashboards-gpu.yaml +++ b/sources/otel-lgtm-stack/templates/dashboards-gpu.yaml @@ -3,7 +3,7 @@ apiVersion: v1 kind: ConfigMap metadata: name: lgtm-amd-gpu-dashboard - namespace: otel-lgtm-stack + namespace: {{ .Values.namespace }} labels: grafana_dashboard: "1" annotations: diff --git a/sources/otel-lgtm-stack/templates/dashboards-minio.yaml b/sources/otel-lgtm-stack/templates/dashboards-minio.yaml index 33eb05d4..93ffca89 100644 --- a/sources/otel-lgtm-stack/templates/dashboards-minio.yaml +++ b/sources/otel-lgtm-stack/templates/dashboards-minio.yaml @@ -3,7 +3,7 @@ apiVersion: v1 kind: ConfigMap metadata: name: lgtm-minio-dashboard - namespace: otel-lgtm-stack + namespace: {{ .Values.namespace }} labels: grafana_dashboard: "1" annotations: diff --git a/sources/otel-lgtm-stack/templates/kube-state-metrics.yaml b/sources/otel-lgtm-stack/templates/kube-state-metrics.yaml index d481f9dc..c5085b0d 100644 --- a/sources/otel-lgtm-stack/templates/kube-state-metrics.yaml +++ b/sources/otel-lgtm-stack/templates/kube-state-metrics.yaml @@ -13,7 +13,7 @@ metadata: app.kubernetes.io/instance: my-kube-state-metrics app.kubernetes.io/version: "2.15.0" name: my-kube-state-metrics - namespace: otel-lgtm-stack + namespace: {{ .Values.namespace }} --- # Source: kube-state-metrics/templates/role.yaml apiVersion: rbac.authorization.k8s.io/v1 @@ -190,14 +190,14 @@ roleRef: subjects: - kind: ServiceAccount name: my-kube-state-metrics - namespace: otel-lgtm-stack + namespace: {{ .Values.namespace }} --- # Source: kube-state-metrics/templates/service.yaml apiVersion: v1 kind: Service metadata: name: my-kube-state-metrics - namespace: otel-lgtm-stack + namespace: {{ .Values.namespace }} labels: helm.sh/chart: kube-state-metrics-5.30.0 app.kubernetes.io/managed-by: Helm @@ -213,8 +213,8 @@ spec: ports: - name: "http" protocol: TCP - port: 8080 - targetPort: 8080 + port: {{ .Values.services.kubeStateMetrics.http }} + targetPort: {{ .Values.services.kubeStateMetrics.http }} selector: app.kubernetes.io/name: kube-state-metrics @@ -225,7 +225,7 @@ apiVersion: apps/v1 kind: Deployment metadata: name: my-kube-state-metrics - namespace: otel-lgtm-stack + namespace: {{ .Values.namespace }} labels: helm.sh/chart: kube-state-metrics-5.30.0 app.kubernetes.io/managed-by: Helm diff --git a/sources/otel-lgtm-stack/templates/lgtm-stack.yaml b/sources/otel-lgtm-stack/templates/lgtm-stack.yaml index f1ee5508..5a4cefc4 100644 --- a/sources/otel-lgtm-stack/templates/lgtm-stack.yaml +++ b/sources/otel-lgtm-stack/templates/lgtm-stack.yaml @@ -4,79 +4,79 @@ kind: Namespace metadata: labels: pod-security.kubernetes.io/enforce: privileged - name: otel-lgtm-stack + name: {{ .Values.namespace }} --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: tempo-pvc - namespace: otel-lgtm-stack + namespace: {{ .Values.namespace }} spec: storageClassName: default accessModes: - ReadWriteOnce resources: requests: - storage: 50Gi + storage: {{ .Values.lgtm.storage.tempo }} --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: loki-data-pvc - namespace: otel-lgtm-stack + namespace: {{ .Values.namespace }} spec: storageClassName: default accessModes: - ReadWriteOnce resources: requests: - storage: 50Gi + storage: {{ .Values.lgtm.storage.loki }} --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: loki-storage-pvc - namespace: otel-lgtm-stack + namespace: {{ .Values.namespace }} spec: storageClassName: default accessModes: - ReadWriteOnce resources: requests: - storage: 50Gi + storage: {{ .Values.lgtm.storage.extra }} --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: grafana-pvc - namespace: otel-lgtm-stack + namespace: {{ .Values.namespace }} spec: storageClassName: default accessModes: - ReadWriteOnce resources: requests: - storage: 10Gi + storage: {{ .Values.lgtm.storage.grafana }} --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: p8s-pvc - namespace: otel-lgtm-stack + namespace: {{ .Values.namespace }} spec: storageClassName: default accessModes: - ReadWriteOnce resources: requests: - storage: 50Gi + storage: {{ .Values.lgtm.storage.mimir }} --- # Source: grafana/templates/serviceaccount.yaml apiVersion: v1 kind: ServiceAccount metadata: name: grafana-sidecar - namespace: otel-lgtm-stack + namespace: {{ .Values.namespace }} --- # Source: grafana/templates/configmap-dashboard-provider.yaml ###### apiVersion: v1 @@ -84,7 +84,7 @@ kind: ConfigMap metadata: labels: name: grafana-config-dashboards - namespace: otel-lgtm-stack + namespace: {{ .Values.namespace }} data: provider.yaml: |- apiVersion: 1 @@ -117,7 +117,7 @@ metadata: subjects: - kind: ServiceAccount name: grafana-sidecar - namespace: otel-lgtm-stack + namespace: {{ .Values.namespace }} roleRef: kind: ClusterRole name: grafana-sidecar-clusterrole @@ -128,37 +128,37 @@ apiVersion: v1 kind: Service metadata: name: lgtm-stack - namespace: otel-lgtm-stack + namespace: {{ .Values.namespace }} spec: selector: app: lgtm ports: - name: grafana protocol: TCP - port: 3000 - targetPort: 3000 + port: {{ .Values.services.lgtm.grafana }} + targetPort: {{ .Values.services.lgtm.grafana }} - name: otel-grpc protocol: TCP - port: 4317 - targetPort: 4317 + port: {{ .Values.services.lgtm.otelGrpc }} + targetPort: {{ .Values.services.lgtm.otelGrpc }} - name: otel-http protocol: TCP - port: 4318 - targetPort: 4318 + port: {{ .Values.services.lgtm.otelHttp }} + targetPort: {{ .Values.services.lgtm.otelHttp }} - name: prometheus protocol: TCP - port: 9090 - targetPort: 9090 + port: {{ .Values.services.lgtm.prometheus }} + targetPort: {{ .Values.services.lgtm.prometheus }} - name: loki protocol: TCP - port: 3100 - targetPort: 3100 + port: {{ .Values.services.lgtm.loki }} + targetPort: {{ .Values.services.lgtm.loki }} --- apiVersion: apps/v1 kind: Deployment metadata: name: lgtm - namespace: otel-lgtm-stack + namespace: {{ .Values.namespace }} spec: replicas: 1 strategy: diff --git a/sources/otel-lgtm-stack/templates/node-exporter.yaml b/sources/otel-lgtm-stack/templates/node-exporter.yaml index 5ad37339..204511b7 100644 --- a/sources/otel-lgtm-stack/templates/node-exporter.yaml +++ b/sources/otel-lgtm-stack/templates/node-exporter.yaml @@ -4,7 +4,7 @@ apiVersion: v1 kind: ServiceAccount metadata: name: nodeexporter-prometheus-node-exporter - namespace: otel-lgtm-stack + namespace: {{ .Values.namespace }} labels: helm.sh/chart: prometheus-node-exporter-4.44.1 app.kubernetes.io/managed-by: Helm @@ -20,7 +20,7 @@ apiVersion: v1 kind: Service metadata: name: nodeexporter-prometheus-node-exporter - namespace: otel-lgtm-stack + namespace: {{ .Values.namespace }} labels: helm.sh/chart: prometheus-node-exporter-4.44.1 app.kubernetes.io/managed-by: Helm @@ -34,8 +34,8 @@ metadata: spec: type: ClusterIP ports: - - port: 9100 - targetPort: 9100 + - port: {{ .Values.services.nodeExporter.metrics }} + targetPort: {{ .Values.services.nodeExporter.metrics }} protocol: TCP name: metrics selector: @@ -47,7 +47,7 @@ apiVersion: apps/v1 kind: DaemonSet metadata: name: nodeexporter-prometheus-node-exporter - namespace: otel-lgtm-stack + namespace: {{ .Values.namespace }} labels: helm.sh/chart: prometheus-node-exporter-4.44.1 app.kubernetes.io/managed-by: Helm diff --git a/sources/otel-lgtm-stack/values.yaml b/sources/otel-lgtm-stack/values.yaml index 02a41353..482f9ff1 100644 --- a/sources/otel-lgtm-stack/values.yaml +++ b/sources/otel-lgtm-stack/values.yaml @@ -1,30 +1,65 @@ # OpenTelemetry LGTM Stack Configuration -# Basic values.yaml for Phase 0 - minimal structure +# Phase 1: Essential Infrastructure Parameters # Namespace configuration -namespace: otel-lgtm +namespace: otel-lgtm-stack -# LGTM Stack configuration +# LGTM Stack storage configuration lgtm: - # Basic configuration placeholder - enabled: true - -# Collectors configuration + storage: + # Tempo storage for traces + tempo: 50Gi + # Loki storage for logs + loki: 50Gi + # Grafana storage for dashboards/config + grafana: 10Gi + # Mimir/Prometheus storage for metrics + mimir: 50Gi + # Loki additional storage + extra: 50Gi + +# OpenTelemetry Collectors resource configuration collectors: - # Basic configuration placeholder - enabled: true + resources: + # Metrics collector (deployment mode) - original values + metrics: + limits: + memory: 8Gi + cpu: "2" + requests: + memory: 1Gi + cpu: 500m + # Logs collector (daemonset mode) - original conservative values + logs: + limits: + memory: 2Gi + cpu: "1" + requests: + memory: 400Mi # Conservative default + cpu: 200m # Conservative default + +# Service configuration +services: + # Main LGTM stack service ports + lgtm: + grafana: 3000 + otelGrpc: 4317 + otelHttp: 4318 + prometheus: 9090 + loki: 3100 + # Kube state metrics service port + kubeStateMetrics: + http: 8080 + # Node exporter service port + nodeExporter: + metrics: 9100 -# Dashboards configuration +# Component enablement dashboards: - # Basic configuration placeholder enabled: true -# Node exporter configuration nodeExporter: - # Basic configuration placeholder enabled: true -# Kube state metrics configuration kubeStateMetrics: - # Basic configuration placeholder enabled: true \ No newline at end of file From 82277742a622b35f9f16fa9a7d5aaa6a1d75a73f Mon Sep 17 00:00:00 2001 From: woojae-siloai Date: Thu, 11 Dec 2025 12:04:12 +0200 Subject: [PATCH 08/27] fix: 2nd phase of lgtm helm templates --- sources/otel-lgtm-stack/templates/chrony-node-exporter.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources/otel-lgtm-stack/templates/chrony-node-exporter.yaml b/sources/otel-lgtm-stack/templates/chrony-node-exporter.yaml index 0fc39412..8c41f314 100644 --- a/sources/otel-lgtm-stack/templates/chrony-node-exporter.yaml +++ b/sources/otel-lgtm-stack/templates/chrony-node-exporter.yaml @@ -2,7 +2,7 @@ apiVersion: apps/v1 kind: DaemonSet metadata: name: nodeexporter-chrony-exporter - namespace: {{ .Values.namespace }} + namespace: otel-lgtm-stack labels: app: chrony-exporter spec: From cab8c5a695c790561bcb5b48cf5647358de2be83 Mon Sep 17 00:00:00 2001 From: woojae-siloai Date: Thu, 11 Dec 2025 13:08:56 +0200 Subject: [PATCH 09/27] fix: 2nd phase of lgtm helm templates --- .../templates/chrony-node-exporter.yaml | 2 +- .../otel-lgtm-stack/templates/collectors.yaml | 26 +++++++++---------- .../templates/dashboards-default.yaml | 4 +-- .../templates/dashboards-gpu.yaml | 2 +- .../templates/dashboards-minio.yaml | 2 +- .../templates/kube-state-metrics.yaml | 8 +++--- .../otel-lgtm-stack/templates/lgtm-stack.yaml | 22 ++++++++-------- .../templates/node-exporter.yaml | 6 ++--- 8 files changed, 36 insertions(+), 36 deletions(-) diff --git a/sources/otel-lgtm-stack/templates/chrony-node-exporter.yaml b/sources/otel-lgtm-stack/templates/chrony-node-exporter.yaml index 8c41f314..f3d558d9 100644 --- a/sources/otel-lgtm-stack/templates/chrony-node-exporter.yaml +++ b/sources/otel-lgtm-stack/templates/chrony-node-exporter.yaml @@ -2,7 +2,7 @@ apiVersion: apps/v1 kind: DaemonSet metadata: name: nodeexporter-chrony-exporter - namespace: otel-lgtm-stack + namespace: {{ .Release.Namespace }} labels: app: chrony-exporter spec: diff --git a/sources/otel-lgtm-stack/templates/collectors.yaml b/sources/otel-lgtm-stack/templates/collectors.yaml index c355e48e..4f4f7e5d 100644 --- a/sources/otel-lgtm-stack/templates/collectors.yaml +++ b/sources/otel-lgtm-stack/templates/collectors.yaml @@ -3,7 +3,7 @@ apiVersion: v1 kind: ServiceAccount metadata: name: otel-collector - namespace: {{ .Values.namespace }} + namespace: {{ .Release.Namespace }} --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole @@ -100,14 +100,14 @@ roleRef: subjects: - kind: ServiceAccount name: otel-collector - namespace: {{ .Values.namespace }} + namespace: {{ .Release.Namespace }} --- # Source: openobserve-collector/templates/instrumentation-dotnet.yaml apiVersion: opentelemetry.io/v1alpha1 kind: Instrumentation metadata: name: lgtm-dotnet - namespace: {{ .Values.namespace }} + namespace: {{ .Release.Namespace }} spec: exporter: endpoint: http://lgtm.lgtm-stack.svc.cluster.local:4318 ### @@ -129,7 +129,7 @@ apiVersion: opentelemetry.io/v1alpha1 kind: Instrumentation metadata: name: lgtm-go - namespace: {{ .Values.namespace }} + namespace: {{ .Release.Namespace }} spec: go: # image: ghcr.io/openobserve/opentelemetry-go-instrumentation/autoinstrumentation-go:v0.7.0-alpha-5 @@ -148,7 +148,7 @@ apiVersion: opentelemetry.io/v1alpha1 kind: Instrumentation metadata: name: lgtm-java - namespace: {{ .Values.namespace }} + namespace: {{ .Release.Namespace }} spec: exporter: endpoint: http://lgtm.lgtm-stack.svc.cluster.local:4318 ### @@ -170,7 +170,7 @@ apiVersion: opentelemetry.io/v1alpha1 kind: Instrumentation metadata: name: lgtm-nodejs - namespace: {{ .Values.namespace }} + namespace: {{ .Release.Namespace }} spec: exporter: endpoint: http://lgtm.lgtm-stack.svc.cluster.local:4318 ### @@ -186,7 +186,7 @@ apiVersion: opentelemetry.io/v1alpha1 kind: Instrumentation metadata: name: lgtm-python - namespace: {{ .Values.namespace }} + namespace: {{ .Release.Namespace }} spec: exporter: endpoint: http://lgtm.lgtm-stack.svc.cluster.local:4318 ### @@ -211,7 +211,7 @@ apiVersion: opentelemetry.io/v1beta1 kind: OpenTelemetryCollector metadata: name: otel-collector-logs - namespace: {{ .Values.namespace }} + namespace: {{ .Release.Namespace }} spec: mode: daemonset serviceAccount: otel-collector @@ -444,7 +444,7 @@ apiVersion: opentelemetry.io/v1beta1 kind: OpenTelemetryCollector metadata: name: otel-collector-logs-events - namespace: {{ .Values.namespace }} + namespace: {{ .Release.Namespace }} spec: image: ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib:0.113.0 mode: deployment @@ -558,7 +558,7 @@ apiVersion: opentelemetry.io/v1beta1 kind: OpenTelemetryCollector metadata: name: otel-collector-metrics-k8s - namespace: {{ .Values.namespace }} + namespace: {{ .Release.Namespace }} spec: mode: deployment serviceAccount: otel-collector @@ -910,7 +910,7 @@ apiVersion: opentelemetry.io/v1beta1 kind: OpenTelemetryCollector metadata: name: otel-collector-metrics-rest - namespace: {{ .Values.namespace }} + namespace: {{ .Release.Namespace }} spec: image: ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib:0.113.0 mode: deployment @@ -1043,7 +1043,7 @@ apiVersion: opentelemetry.io/v1beta1 kind: OpenTelemetryCollector metadata: name: otel-collector-metrics-chrony - namespace: {{ .Values.namespace }} + namespace: {{ .Release.Namespace }} spec: image: ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib:0.113.0 mode: deployment @@ -1114,7 +1114,7 @@ apiVersion: opentelemetry.io/v1beta1 kind: OpenTelemetryCollector metadata: name: otel-collector-metrics-airm - namespace: {{ .Values.namespace }} + namespace: {{ .Release.Namespace }} spec: image: ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib:0.113.0 mode: deployment diff --git a/sources/otel-lgtm-stack/templates/dashboards-default.yaml b/sources/otel-lgtm-stack/templates/dashboards-default.yaml index ba9a31b0..ae4d95ee 100644 --- a/sources/otel-lgtm-stack/templates/dashboards-default.yaml +++ b/sources/otel-lgtm-stack/templates/dashboards-default.yaml @@ -3,7 +3,7 @@ apiVersion: v1 kind: ConfigMap metadata: name: lgtm-k8s-nodes-overview - namespace: {{ .Values.namespace }} + namespace: {{ .Release.Namespace }} labels: grafana_dashboard: "1" annotations: @@ -4724,7 +4724,7 @@ apiVersion: v1 kind: ConfigMap metadata: name: lgtm-k8s-volume-information - namespace: {{ .Values.namespace }} + namespace: {{ .Release.Namespace }} labels: grafana_dashboard: "1" annotations: diff --git a/sources/otel-lgtm-stack/templates/dashboards-gpu.yaml b/sources/otel-lgtm-stack/templates/dashboards-gpu.yaml index 826be987..5f3d3d02 100644 --- a/sources/otel-lgtm-stack/templates/dashboards-gpu.yaml +++ b/sources/otel-lgtm-stack/templates/dashboards-gpu.yaml @@ -3,7 +3,7 @@ apiVersion: v1 kind: ConfigMap metadata: name: lgtm-amd-gpu-dashboard - namespace: {{ .Values.namespace }} + namespace: {{ .Release.Namespace }} labels: grafana_dashboard: "1" annotations: diff --git a/sources/otel-lgtm-stack/templates/dashboards-minio.yaml b/sources/otel-lgtm-stack/templates/dashboards-minio.yaml index 93ffca89..f2957871 100644 --- a/sources/otel-lgtm-stack/templates/dashboards-minio.yaml +++ b/sources/otel-lgtm-stack/templates/dashboards-minio.yaml @@ -3,7 +3,7 @@ apiVersion: v1 kind: ConfigMap metadata: name: lgtm-minio-dashboard - namespace: {{ .Values.namespace }} + namespace: {{ .Release.Namespace }} labels: grafana_dashboard: "1" annotations: diff --git a/sources/otel-lgtm-stack/templates/kube-state-metrics.yaml b/sources/otel-lgtm-stack/templates/kube-state-metrics.yaml index c5085b0d..514d416a 100644 --- a/sources/otel-lgtm-stack/templates/kube-state-metrics.yaml +++ b/sources/otel-lgtm-stack/templates/kube-state-metrics.yaml @@ -13,7 +13,7 @@ metadata: app.kubernetes.io/instance: my-kube-state-metrics app.kubernetes.io/version: "2.15.0" name: my-kube-state-metrics - namespace: {{ .Values.namespace }} + namespace: {{ .Release.Namespace }} --- # Source: kube-state-metrics/templates/role.yaml apiVersion: rbac.authorization.k8s.io/v1 @@ -190,14 +190,14 @@ roleRef: subjects: - kind: ServiceAccount name: my-kube-state-metrics - namespace: {{ .Values.namespace }} + namespace: {{ .Release.Namespace }} --- # Source: kube-state-metrics/templates/service.yaml apiVersion: v1 kind: Service metadata: name: my-kube-state-metrics - namespace: {{ .Values.namespace }} + namespace: {{ .Release.Namespace }} labels: helm.sh/chart: kube-state-metrics-5.30.0 app.kubernetes.io/managed-by: Helm @@ -225,7 +225,7 @@ apiVersion: apps/v1 kind: Deployment metadata: name: my-kube-state-metrics - namespace: {{ .Values.namespace }} + namespace: {{ .Release.Namespace }} labels: helm.sh/chart: kube-state-metrics-5.30.0 app.kubernetes.io/managed-by: Helm diff --git a/sources/otel-lgtm-stack/templates/lgtm-stack.yaml b/sources/otel-lgtm-stack/templates/lgtm-stack.yaml index 5a4cefc4..4f2d9ac8 100644 --- a/sources/otel-lgtm-stack/templates/lgtm-stack.yaml +++ b/sources/otel-lgtm-stack/templates/lgtm-stack.yaml @@ -4,13 +4,13 @@ kind: Namespace metadata: labels: pod-security.kubernetes.io/enforce: privileged - name: {{ .Values.namespace }} + name: {{ .Release.Namespace }} --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: tempo-pvc - namespace: {{ .Values.namespace }} + namespace: {{ .Release.Namespace }} spec: storageClassName: default accessModes: @@ -23,7 +23,7 @@ apiVersion: v1 kind: PersistentVolumeClaim metadata: name: loki-data-pvc - namespace: {{ .Values.namespace }} + namespace: {{ .Release.Namespace }} spec: storageClassName: default accessModes: @@ -36,7 +36,7 @@ apiVersion: v1 kind: PersistentVolumeClaim metadata: name: loki-storage-pvc - namespace: {{ .Values.namespace }} + namespace: {{ .Release.Namespace }} spec: storageClassName: default accessModes: @@ -49,7 +49,7 @@ apiVersion: v1 kind: PersistentVolumeClaim metadata: name: grafana-pvc - namespace: {{ .Values.namespace }} + namespace: {{ .Release.Namespace }} spec: storageClassName: default accessModes: @@ -62,7 +62,7 @@ apiVersion: v1 kind: PersistentVolumeClaim metadata: name: p8s-pvc - namespace: {{ .Values.namespace }} + namespace: {{ .Release.Namespace }} spec: storageClassName: default accessModes: @@ -76,7 +76,7 @@ apiVersion: v1 kind: ServiceAccount metadata: name: grafana-sidecar - namespace: {{ .Values.namespace }} + namespace: {{ .Release.Namespace }} --- # Source: grafana/templates/configmap-dashboard-provider.yaml ###### apiVersion: v1 @@ -84,7 +84,7 @@ kind: ConfigMap metadata: labels: name: grafana-config-dashboards - namespace: {{ .Values.namespace }} + namespace: {{ .Release.Namespace }} data: provider.yaml: |- apiVersion: 1 @@ -117,7 +117,7 @@ metadata: subjects: - kind: ServiceAccount name: grafana-sidecar - namespace: {{ .Values.namespace }} + namespace: {{ .Release.Namespace }} roleRef: kind: ClusterRole name: grafana-sidecar-clusterrole @@ -128,7 +128,7 @@ apiVersion: v1 kind: Service metadata: name: lgtm-stack - namespace: {{ .Values.namespace }} + namespace: {{ .Release.Namespace }} spec: selector: app: lgtm @@ -158,7 +158,7 @@ apiVersion: apps/v1 kind: Deployment metadata: name: lgtm - namespace: {{ .Values.namespace }} + namespace: {{ .Release.Namespace }} spec: replicas: 1 strategy: diff --git a/sources/otel-lgtm-stack/templates/node-exporter.yaml b/sources/otel-lgtm-stack/templates/node-exporter.yaml index 204511b7..42559d1d 100644 --- a/sources/otel-lgtm-stack/templates/node-exporter.yaml +++ b/sources/otel-lgtm-stack/templates/node-exporter.yaml @@ -4,7 +4,7 @@ apiVersion: v1 kind: ServiceAccount metadata: name: nodeexporter-prometheus-node-exporter - namespace: {{ .Values.namespace }} + namespace: {{ .Release.Namespace }} labels: helm.sh/chart: prometheus-node-exporter-4.44.1 app.kubernetes.io/managed-by: Helm @@ -20,7 +20,7 @@ apiVersion: v1 kind: Service metadata: name: nodeexporter-prometheus-node-exporter - namespace: {{ .Values.namespace }} + namespace: {{ .Release.Namespace }} labels: helm.sh/chart: prometheus-node-exporter-4.44.1 app.kubernetes.io/managed-by: Helm @@ -47,7 +47,7 @@ apiVersion: apps/v1 kind: DaemonSet metadata: name: nodeexporter-prometheus-node-exporter - namespace: {{ .Values.namespace }} + namespace: {{ .Release.Namespace }} labels: helm.sh/chart: prometheus-node-exporter-4.44.1 app.kubernetes.io/managed-by: Helm From ad8967e2136b290eabe330ace9ad58279f2eef34 Mon Sep 17 00:00:00 2001 From: woojae-siloai Date: Thu, 11 Dec 2025 13:21:17 +0200 Subject: [PATCH 10/27] fix: 2nd phase of lgtm helm templates --- sources/otel-lgtm-stack/Chart.yaml | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/sources/otel-lgtm-stack/Chart.yaml b/sources/otel-lgtm-stack/Chart.yaml index bf84a496..e64f440e 100644 --- a/sources/otel-lgtm-stack/Chart.yaml +++ b/sources/otel-lgtm-stack/Chart.yaml @@ -1,4 +1,17 @@ apiVersion: v2 name: otel-lgtm-stack description: A Helm chart for OpenTelemetry LGTM (Loki, Grafana, Tempo, Mimir) stack -version: 0.1.0 \ No newline at end of file + +# A chart can be either an 'application' or a 'library' chart. +type: application + +# This is the chart version. This version number should be incremented each time you make changes +# to the chart and its templates, including the app version. +# Versions are expected to follow Semantic Versioning (https://semver.org/) +version: 0.1.0 + +# This is the version number of the application being deployed. This version number should be +# incremented each time you make changes to the application. Versions are not expected to +# follow Semantic Versioning. They should reflect the version the application is using. +# It is recommended to use it with quotes. +appVersion: "1.0.0" \ No newline at end of file From f6326656782569db5268578fa665377158f25ac1 Mon Sep 17 00:00:00 2001 From: woojae-siloai Date: Thu, 11 Dec 2025 13:33:09 +0200 Subject: [PATCH 11/27] fix: 2nd phase of lgtm helm templates --- root/values.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/root/values.yaml b/root/values.yaml index b6a6b58d..7070ffa5 100644 --- a/root/values.yaml +++ b/root/values.yaml @@ -167,8 +167,7 @@ apps: otel-lgtm-stack: path: otel-lgtm-stack namespace: otel-lgtm-stack - directory: - recurse: true + valuesFile: values.yaml syncWave: -2 # Databases cnpg-operator: From 93ed5eb6775423231284f99e1fb815718ddf0dbb Mon Sep 17 00:00:00 2001 From: woojae-siloai Date: Thu, 11 Dec 2025 14:14:32 +0200 Subject: [PATCH 12/27] fix: 2nd phase of lgtm helm templates --- sources/otel-lgtm-stack/templates/chrony-node-exporter.yaml | 4 ++-- sources/otel-lgtm-stack/templates/lgtm-stack.yaml | 6 +++--- sources/otel-lgtm-stack/values.yaml | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/sources/otel-lgtm-stack/templates/chrony-node-exporter.yaml b/sources/otel-lgtm-stack/templates/chrony-node-exporter.yaml index f3d558d9..14057da7 100644 --- a/sources/otel-lgtm-stack/templates/chrony-node-exporter.yaml +++ b/sources/otel-lgtm-stack/templates/chrony-node-exporter.yaml @@ -34,10 +34,10 @@ spec: name: chronyd-socket resources: limits: - cpu: 100m + cpu: "100m" memory: 128Mi requests: - cpu: 50m + cpu: "50m" memory: 64Mi volumes: - name: chronyd-socket diff --git a/sources/otel-lgtm-stack/templates/lgtm-stack.yaml b/sources/otel-lgtm-stack/templates/lgtm-stack.yaml index 4f2d9ac8..eec5bbe1 100644 --- a/sources/otel-lgtm-stack/templates/lgtm-stack.yaml +++ b/sources/otel-lgtm-stack/templates/lgtm-stack.yaml @@ -242,10 +242,10 @@ spec: failureThreshold: 3 resources: requests: - cpu: "500m" - memory: "1024Mi" + cpu: 500m + memory: 1024Mi limits: - memory: "8Gi" + memory: 8Gi # NOTE: By default OpenShift does not allow writing the root directory. # Thats why the data dirs for grafana, prometheus and loki can not be # created and the pod never becomes ready. diff --git a/sources/otel-lgtm-stack/values.yaml b/sources/otel-lgtm-stack/values.yaml index 482f9ff1..0ac7aaca 100644 --- a/sources/otel-lgtm-stack/values.yaml +++ b/sources/otel-lgtm-stack/values.yaml @@ -25,7 +25,7 @@ collectors: metrics: limits: memory: 8Gi - cpu: "2" + cpu: 2 requests: memory: 1Gi cpu: 500m @@ -33,7 +33,7 @@ collectors: logs: limits: memory: 2Gi - cpu: "1" + cpu: 1 requests: memory: 400Mi # Conservative default cpu: 200m # Conservative default From 2842c9a29c8227603b3703d7d7899f71611b1e1a Mon Sep 17 00:00:00 2001 From: woojae-siloai Date: Thu, 11 Dec 2025 14:30:27 +0200 Subject: [PATCH 13/27] fix: 2nd phase of lgtm helm templates --- sources/otel-lgtm-stack/values.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sources/otel-lgtm-stack/values.yaml b/sources/otel-lgtm-stack/values.yaml index 0ac7aaca..57ce6d3d 100644 --- a/sources/otel-lgtm-stack/values.yaml +++ b/sources/otel-lgtm-stack/values.yaml @@ -25,7 +25,7 @@ collectors: metrics: limits: memory: 8Gi - cpu: 2 + cpu: "2" requests: memory: 1Gi cpu: 500m @@ -33,10 +33,10 @@ collectors: logs: limits: memory: 2Gi - cpu: 1 + cpu: "1" requests: memory: 400Mi # Conservative default - cpu: 200m # Conservative default + cpu: 200m # Conservative default # Service configuration services: From 9fc5a98119f55054114b081f5573a1de986be17a Mon Sep 17 00:00:00 2001 From: woojae-siloai Date: Thu, 11 Dec 2025 14:38:25 +0200 Subject: [PATCH 14/27] fix: 2nd phase of lgtm helm templates --- sources/otel-lgtm-stack/values.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/otel-lgtm-stack/values.yaml b/sources/otel-lgtm-stack/values.yaml index 57ce6d3d..0d78cb16 100644 --- a/sources/otel-lgtm-stack/values.yaml +++ b/sources/otel-lgtm-stack/values.yaml @@ -25,7 +25,7 @@ collectors: metrics: limits: memory: 8Gi - cpu: "2" + cpu: 2 requests: memory: 1Gi cpu: 500m @@ -62,4 +62,4 @@ nodeExporter: enabled: true kubeStateMetrics: - enabled: true \ No newline at end of file + enabled: true From 3d404aaae35fb03ac34e48ac2c0a7ae070b5545c Mon Sep 17 00:00:00 2001 From: woojae-siloai Date: Thu, 11 Dec 2025 14:47:24 +0200 Subject: [PATCH 15/27] fix: 2nd phase of lgtm helm templates --- sources/otel-lgtm-stack/values.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/otel-lgtm-stack/values.yaml b/sources/otel-lgtm-stack/values.yaml index 0d78cb16..73d54c41 100644 --- a/sources/otel-lgtm-stack/values.yaml +++ b/sources/otel-lgtm-stack/values.yaml @@ -25,7 +25,7 @@ collectors: metrics: limits: memory: 8Gi - cpu: 2 + cpu: '2' requests: memory: 1Gi cpu: 500m @@ -33,7 +33,7 @@ collectors: logs: limits: memory: 2Gi - cpu: "1" + cpu: '1' requests: memory: 400Mi # Conservative default cpu: 200m # Conservative default From 7068817df85133a08454ee26050fa8558379280c Mon Sep 17 00:00:00 2001 From: woojae-siloai Date: Thu, 11 Dec 2025 14:54:28 +0200 Subject: [PATCH 16/27] fix: 2nd phase of lgtm helm templates --- .../otel-lgtm-stack/templates/collectors.yaml | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/sources/otel-lgtm-stack/templates/collectors.yaml b/sources/otel-lgtm-stack/templates/collectors.yaml index 4f4f7e5d..77a539d0 100644 --- a/sources/otel-lgtm-stack/templates/collectors.yaml +++ b/sources/otel-lgtm-stack/templates/collectors.yaml @@ -231,10 +231,10 @@ spec: prometheus.io/port: "8888" resources: limits: - cpu: {{ .Values.collectors.resources.logs.limits.cpu }} + cpu: {{ .Values.collectors.resources.logs.limits.cpu | quote }} memory: {{ .Values.collectors.resources.logs.limits.memory }} requests: - cpu: {{ .Values.collectors.resources.logs.requests.cpu }} + cpu: {{ .Values.collectors.resources.logs.requests.cpu | quote }} memory: {{ .Values.collectors.resources.logs.requests.memory }} securityContext: #### privileged: true @@ -569,10 +569,10 @@ spec: prometheus.io/port: "8888" resources: limits: - cpu: {{ .Values.collectors.resources.metrics.limits.cpu }} + cpu: {{ .Values.collectors.resources.metrics.limits.cpu | quote }} memory: {{ .Values.collectors.resources.metrics.limits.memory }} requests: - cpu: {{ .Values.collectors.resources.metrics.requests.cpu }} + cpu: {{ .Values.collectors.resources.metrics.requests.cpu | quote }} memory: {{ .Values.collectors.resources.metrics.requests.memory }} config: receivers: @@ -920,10 +920,10 @@ spec: replicas: 1 resources: limits: - cpu: {{ .Values.collectors.resources.metrics.limits.cpu }} + cpu: {{ .Values.collectors.resources.metrics.limits.cpu | quote }} memory: {{ .Values.collectors.resources.metrics.limits.memory }} requests: - cpu: {{ .Values.collectors.resources.metrics.requests.cpu }} + cpu: {{ .Values.collectors.resources.metrics.requests.cpu | quote }} memory: {{ .Values.collectors.resources.metrics.requests.memory }} serviceAccount: otel-collector config: @@ -1053,10 +1053,10 @@ spec: replicas: 1 resources: limits: - cpu: {{ .Values.collectors.resources.metrics.limits.cpu }} + cpu: {{ .Values.collectors.resources.metrics.limits.cpu | quote }} memory: {{ .Values.collectors.resources.metrics.limits.memory }} requests: - cpu: {{ .Values.collectors.resources.metrics.requests.cpu }} + cpu: {{ .Values.collectors.resources.metrics.requests.cpu | quote }} memory: {{ .Values.collectors.resources.metrics.requests.memory }} serviceAccount: otel-collector config: @@ -1124,10 +1124,10 @@ spec: replicas: 1 resources: limits: - cpu: {{ .Values.collectors.resources.metrics.limits.cpu }} + cpu: {{ .Values.collectors.resources.metrics.limits.cpu | quote }} memory: {{ .Values.collectors.resources.metrics.limits.memory }} requests: - cpu: {{ .Values.collectors.resources.metrics.requests.cpu }} + cpu: {{ .Values.collectors.resources.metrics.requests.cpu | quote }} memory: {{ .Values.collectors.resources.metrics.requests.memory }} serviceAccount: otel-collector config: From 9b79d5b90e128736ad278ac0fdd0283769d856fd Mon Sep 17 00:00:00 2001 From: woojae-siloai Date: Thu, 11 Dec 2025 15:10:55 +0200 Subject: [PATCH 17/27] fix: 3rd phase of lgtm helm templates --- ....yaml => collectors-logs-metrics-k8s.yaml} | 492 +----------------- .../templates/collectors-metrics-rest.yaml | 280 ++++++++++ .../collectors-rbac-instrumentation.yaml | 208 ++++++++ 3 files changed, 489 insertions(+), 491 deletions(-) rename sources/otel-lgtm-stack/templates/{collectors.yaml => collectors-logs-metrics-k8s.yaml} (64%) create mode 100644 sources/otel-lgtm-stack/templates/collectors-metrics-rest.yaml create mode 100644 sources/otel-lgtm-stack/templates/collectors-rbac-instrumentation.yaml diff --git a/sources/otel-lgtm-stack/templates/collectors.yaml b/sources/otel-lgtm-stack/templates/collectors-logs-metrics-k8s.yaml similarity index 64% rename from sources/otel-lgtm-stack/templates/collectors.yaml rename to sources/otel-lgtm-stack/templates/collectors-logs-metrics-k8s.yaml index 77a539d0..f317034e 100644 --- a/sources/otel-lgtm-stack/templates/collectors.yaml +++ b/sources/otel-lgtm-stack/templates/collectors-logs-metrics-k8s.yaml @@ -1,212 +1,3 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: otel-collector - namespace: {{ .Release.Namespace }} ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: otel-collector -rules: - - apiGroups: [""] - resources: - - configmaps - - endpoints - - events - - namespaces - - namespaces/status - - nodes - - nodes/spec - - nodes/stats - - nodes/metrics - - nodes/proxy - - persistentvolumes - - persistentvolumeclaims - - pods - - pods/status - - replicationcontrollers - - replicationcontrollers/status - - resourcequotas - - services - verbs: ["get", "list", "watch"] - - apiGroups: ["extensions"] - resources: - - ingresses - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: - - configmaps - verbs: ["get"] - - apiGroups: [""] - resources: - - namespaces - verbs: ["get", "list", "watch"] - # Added permission for non-resource URLs to access metrics endpoints - - nonResourceURLs: - - "/metrics" - - "/metrics/cadvisor" - - "/stats/summary" - - "/api/v1/nodes/*/proxy/metrics" - - "/api/v1/nodes/*/proxy/metrics/cadvisor" - verbs: ["get"] - # Added networking.k8s.io API group for newer Kubernetes versions - - apiGroups: ["networking.k8s.io"] - resources: - - ingresses - verbs: ["get", "list", "watch"] - # Added permission to access custom resource definitions if using any - - apiGroups: ["apiextensions.k8s.io"] - resources: - - customresourcedefinitions - verbs: ["get", "list", "watch"] - # Added events.k8s.io API group for newer Kubernetes events - - apiGroups: ["events.k8s.io"] - resources: - - events - verbs: ["get", "list", "watch"] - - apiGroups: ["monitoring.coreos.com"] - resources: - - servicemonitors - - podmonitors - - probes - - scrapeconfigs - verbs: ["*"] - - apiGroups: ["apps"] - resources: - - daemonsets - - deployments - - replicasets - - statefulset - verbs: ["get", "list", "watch"] - - apiGroups: ["autoscaling"] - resources: - - horizontalpodautoscalers - verbs: ["get", "list", "watch"] - - apiGroups: ["discovery.k8s.io"] - resources: - - endpointslices - verbs: ["get", "list", "watch"] ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: otel-collector -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: otel-collector -subjects: - - kind: ServiceAccount - name: otel-collector - namespace: {{ .Release.Namespace }} ---- -# Source: openobserve-collector/templates/instrumentation-dotnet.yaml -apiVersion: opentelemetry.io/v1alpha1 -kind: Instrumentation -metadata: - name: lgtm-dotnet - namespace: {{ .Release.Namespace }} -spec: - exporter: - endpoint: http://lgtm.lgtm-stack.svc.cluster.local:4318 ### - propagators: - - tracecontext - - baggage - sampler: - type: parentbased_traceidratio - argument: "1" - dotnet: - env: - - name: OTEL_EXPORTER_OTLP_TRACES_PROTOCOL - value: http/protobuf - - name: OTEL_EXPORTER_OTLP_METRICS_PROTOCOL - value: http/protobuf ---- -# Source: openobserve-collector/templates/instrumentation-go.yaml -apiVersion: opentelemetry.io/v1alpha1 -kind: Instrumentation -metadata: - name: lgtm-go - namespace: {{ .Release.Namespace }} -spec: - go: - # image: ghcr.io/openobserve/opentelemetry-go-instrumentation/autoinstrumentation-go:v0.7.0-alpha-5 - image: ghcr.io/open-telemetry/opentelemetry-go-instrumentation/autoinstrumentation-go:v0.19.0-alpha - exporter: - endpoint: http://lgtm.lgtm-stack.svc.cluster.local:4318 ## - propagators: - - tracecontext - - baggage - sampler: - type: parentbased_traceidratio - argument: "1" ---- -# Source: openobserve-collector/templates/instrumentation-java.yaml -apiVersion: opentelemetry.io/v1alpha1 -kind: Instrumentation -metadata: - name: lgtm-java - namespace: {{ .Release.Namespace }} -spec: - exporter: - endpoint: http://lgtm.lgtm-stack.svc.cluster.local:4318 ### - propagators: - - tracecontext - - baggage - sampler: - type: parentbased_traceidratio - argument: "1" - java: - env: - - name: OTEL_EXPORTER_OTLP_TRACES_PROTOCOL - value: http/protobuf - - name: OTEL_EXPORTER_OTLP_METRICS_PROTOCOL - value: http/protobuf ---- -# Source: openobserve-collector/templates/instrumentation-nodejs.yaml -apiVersion: opentelemetry.io/v1alpha1 -kind: Instrumentation -metadata: - name: lgtm-nodejs - namespace: {{ .Release.Namespace }} -spec: - exporter: - endpoint: http://lgtm.lgtm-stack.svc.cluster.local:4318 ### - propagators: - - tracecontext - - baggage - sampler: - type: parentbased_traceidratio - argument: "1" ---- -# Source: openobserve-collector/templates/instrumentation-python.yaml -apiVersion: opentelemetry.io/v1alpha1 -kind: Instrumentation -metadata: - name: lgtm-python - namespace: {{ .Release.Namespace }} -spec: - exporter: - endpoint: http://lgtm.lgtm-stack.svc.cluster.local:4318 ### - propagators: - - tracecontext - - baggage - sampler: - type: parentbased_traceidratio - argument: "1" - python: - env: - - name: OTEL_EXPORTER_OTLP_TRACES_PROTOCOL - value: http/protobuf - - name: OTEL_EXPORTER_OTLP_METRICS_PROTOCOL - value: http/protobuf - - name: OTEL_LOGS_EXPORTER - value: otlp_proto_http - - name: OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED - value: "false" # set to true to enable auto instrumentation for logs ---- apiVersion: opentelemetry.io/v1beta1 kind: OpenTelemetryCollector metadata: @@ -904,285 +695,4 @@ spec: metrics: receivers: [prometheus] processors: [memory_limiter, batch, attributes] - exporters: [otlp] ---- -apiVersion: opentelemetry.io/v1beta1 -kind: OpenTelemetryCollector -metadata: - name: otel-collector-metrics-rest - namespace: {{ .Release.Namespace }} -spec: - image: ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib:0.113.0 - mode: deployment - podAnnotations: - prometheus.io/port: "8888" - prometheus.io/scrape: "true" - replicas: 1 - resources: - limits: - cpu: {{ .Values.collectors.resources.metrics.limits.cpu | quote }} - memory: {{ .Values.collectors.resources.metrics.limits.memory }} - requests: - cpu: {{ .Values.collectors.resources.metrics.requests.cpu | quote }} - memory: {{ .Values.collectors.resources.metrics.requests.memory }} - serviceAccount: otel-collector - config: - exporters: - debug: - verbosity: detailed - otlp: - endpoint: http://lgtm-stack.otel-lgtm-stack.svc.cluster.local:4317 - tls: - insecure: true - processors: - attributes: - actions: - - action: insert - key: k8s_cluster_name - value: cluster-name - batch: - send_batch_size: 2000 - timeout: 10s - memory_limiter: - check_interval: 5s - limit_percentage: 80 - spike_limit_percentage: 25 - receivers: - prometheus: - config: - scrape_configs: - - job_name: otel-collector - scrape_interval: 30s - static_configs: - - targets: - - localhost:8888 - - dns_sd_configs: - - names: - - opencost-prometheus-opencost-exporter.monitoring - port: 9003 - type: A - honor_labels: true - job_name: opencost - metrics_path: /metrics - scheme: http - scrape_interval: 1m - scrape_timeout: 10s - - job_name: gpu-operator-metrics-exporter - kubernetes_sd_configs: - - role: node - metrics_path: /metrics - relabel_configs: - - action: keep - regex: true - source_labels: - - __meta_kubernetes_node_label_feature_node_kubernetes_io_amd_gpu - - regex: (.+) - replacement: $1:32500 - source_labels: - - __meta_kubernetes_node_address_InternalIP - target_label: __address__ - - source_labels: - - __meta_kubernetes_node_name - target_label: hostname - - job_name: minio-cluster-metrics - metrics_path: /minio/v2/metrics/cluster - scheme: http - static_configs: - - targets: - - minio.minio-tenant-default.svc.cluster.local - - job_name: minio-bucket-metrics - metrics_path: /minio/v2/metrics/bucket - scheme: http - static_configs: - - targets: - - minio.minio-tenant-default.svc.cluster.local - - job_name: minio-resource-metrics - metrics_path: /minio/v2/metrics/resource - scheme: http - static_configs: - - targets: - - minio.minio-tenant-default.svc.cluster.local - - job_name: argocd-controller - metrics_path: /metrics - scheme: http - static_configs: - - targets: - - argocd-metrics.argocd.svc.cluster.local:8082 - - job_name: argocd-applicationset - metrics_path: /metrics - scheme: http - static_configs: - - targets: - - argocd-applicationset-controller.argocd.svc.cluster.local:8080 - - job_name: argocd-repo-server - metrics_path: /metrics - scheme: http - static_configs: - - targets: - - argocd-repo-server.argocd.svc.cluster.local:8084 - - job_name: longhorn - metrics_path: /metrics - scheme: http - static_configs: - - targets: - - longhorn-backend.longhorn.svc.cluster.local:9500 - service: - pipelines: - metrics: - exporters: - - otlp - processors: - - memory_limiter - - batch - - attributes - receivers: - - prometheus - ---- -apiVersion: opentelemetry.io/v1beta1 -kind: OpenTelemetryCollector -metadata: - name: otel-collector-metrics-chrony - namespace: {{ .Release.Namespace }} -spec: - image: ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib:0.113.0 - mode: deployment - podAnnotations: - prometheus.io/port: "8888" - prometheus.io/scrape: "true" - replicas: 1 - resources: - limits: - cpu: {{ .Values.collectors.resources.metrics.limits.cpu | quote }} - memory: {{ .Values.collectors.resources.metrics.limits.memory }} - requests: - cpu: {{ .Values.collectors.resources.metrics.requests.cpu | quote }} - memory: {{ .Values.collectors.resources.metrics.requests.memory }} - serviceAccount: otel-collector - config: - exporters: - debug: - verbosity: detailed - otlp: - endpoint: http://lgtm-stack.otel-lgtm-stack.svc.cluster.local:4317 - tls: - insecure: true - processors: - attributes: - actions: - - action: insert - key: k8s_cluster_name - value: cluster-name - batch: - send_batch_size: 2000 - timeout: 10s - memory_limiter: - check_interval: 5s - limit_percentage: 80 - spike_limit_percentage: 25 - receivers: - prometheus: - config: - scrape_configs: - - job_name: chrony-exporter - kubernetes_sd_configs: - - role: pod - relabel_configs: - - source_labels: [__meta_kubernetes_pod_label_app] - regex: chrony-exporter - action: keep - - source_labels: [__meta_kubernetes_pod_ip] - target_label: __address__ - regex: (.*) - replacement: $1:9123 - - source_labels: [__meta_kubernetes_pod_node_name] - target_label: k8s_node_name - service: - pipelines: - metrics: - exporters: - - otlp - processors: - - memory_limiter - - batch - - attributes - receivers: - - prometheus - ---- -apiVersion: opentelemetry.io/v1beta1 -kind: OpenTelemetryCollector -metadata: - name: otel-collector-metrics-airm - namespace: {{ .Release.Namespace }} -spec: - image: ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib:0.113.0 - mode: deployment - podAnnotations: - prometheus.io/port: "8888" - prometheus.io/scrape: "true" - replicas: 1 - resources: - limits: - cpu: {{ .Values.collectors.resources.metrics.limits.cpu | quote }} - memory: {{ .Values.collectors.resources.metrics.limits.memory }} - requests: - cpu: {{ .Values.collectors.resources.metrics.requests.cpu | quote }} - memory: {{ .Values.collectors.resources.metrics.requests.memory }} - serviceAccount: otel-collector - config: - exporters: - debug: - verbosity: detailed - otlp: - endpoint: http://lgtm-stack.otel-lgtm-stack.svc.cluster.local:4317 - tls: - insecure: true - processors: - attributes: - actions: - - action: insert - key: k8s_cluster_name - value: cluster-name - batch: - send_batch_size: 2000 - timeout: 10s - memory_limiter: - check_interval: 5s - limit_percentage: 80 - spike_limit_percentage: 25 - receivers: - prometheus: - config: - scrape_configs: - - job_name: airm-custom-metrics - scrape_interval: 30s - kubernetes_sd_configs: - - role: pod - metrics_path: / - relabel_configs: - - action: keep - source_labels: - - __meta_kubernetes_pod_label_app - regex: airm-api - - regex: (.+) - replacement: $1:9009 - source_labels: - - __meta_kubernetes_node_address_InternalIP - target_label: __address__ - action: replace - - source_labels: - - __meta_kubernetes_node_name - target_label: hostname - - service: - pipelines: - metrics: - exporters: - - otlp - processors: - - memory_limiter - - batch - - attributes - receivers: - - prometheus + exporters: [otlp] \ No newline at end of file diff --git a/sources/otel-lgtm-stack/templates/collectors-metrics-rest.yaml b/sources/otel-lgtm-stack/templates/collectors-metrics-rest.yaml new file mode 100644 index 00000000..9d3a699e --- /dev/null +++ b/sources/otel-lgtm-stack/templates/collectors-metrics-rest.yaml @@ -0,0 +1,280 @@ +apiVersion: opentelemetry.io/v1beta1 +kind: OpenTelemetryCollector +metadata: + name: otel-collector-metrics-rest + namespace: {{ .Release.Namespace }} +spec: + image: ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib:0.113.0 + mode: deployment + podAnnotations: + prometheus.io/port: "8888" + prometheus.io/scrape: "true" + replicas: 1 + resources: + limits: + cpu: {{ .Values.collectors.resources.metrics.limits.cpu | quote }} + memory: {{ .Values.collectors.resources.metrics.limits.memory }} + requests: + cpu: {{ .Values.collectors.resources.metrics.requests.cpu | quote }} + memory: {{ .Values.collectors.resources.metrics.requests.memory }} + serviceAccount: otel-collector + config: + exporters: + debug: + verbosity: detailed + otlp: + endpoint: http://lgtm-stack.otel-lgtm-stack.svc.cluster.local:4317 + tls: + insecure: true + processors: + attributes: + actions: + - action: insert + key: k8s_cluster_name + value: cluster-name + batch: + send_batch_size: 2000 + timeout: 10s + memory_limiter: + check_interval: 5s + limit_percentage: 80 + spike_limit_percentage: 25 + receivers: + prometheus: + config: + scrape_configs: + - job_name: otel-collector + scrape_interval: 30s + static_configs: + - targets: + - localhost:8888 + - dns_sd_configs: + - names: + - opencost-prometheus-opencost-exporter.monitoring + port: 9003 + type: A + honor_labels: true + job_name: opencost + metrics_path: /metrics + scheme: http + scrape_interval: 1m + scrape_timeout: 10s + - job_name: gpu-operator-metrics-exporter + kubernetes_sd_configs: + - role: node + metrics_path: /metrics + relabel_configs: + - action: keep + regex: true + source_labels: + - __meta_kubernetes_node_label_feature_node_kubernetes_io_amd_gpu + - regex: (.+) + replacement: $1:32500 + source_labels: + - __meta_kubernetes_node_address_InternalIP + target_label: __address__ + - source_labels: + - __meta_kubernetes_node_name + target_label: hostname + - job_name: minio-cluster-metrics + metrics_path: /minio/v2/metrics/cluster + scheme: http + static_configs: + - targets: + - minio.minio-tenant-default.svc.cluster.local + - job_name: minio-bucket-metrics + metrics_path: /minio/v2/metrics/bucket + scheme: http + static_configs: + - targets: + - minio.minio-tenant-default.svc.cluster.local + - job_name: minio-resource-metrics + metrics_path: /minio/v2/metrics/resource + scheme: http + static_configs: + - targets: + - minio.minio-tenant-default.svc.cluster.local + - job_name: argocd-controller + metrics_path: /metrics + scheme: http + static_configs: + - targets: + - argocd-metrics.argocd.svc.cluster.local:8082 + - job_name: argocd-applicationset + metrics_path: /metrics + scheme: http + static_configs: + - targets: + - argocd-applicationset-controller.argocd.svc.cluster.local:8080 + - job_name: argocd-repo-server + metrics_path: /metrics + scheme: http + static_configs: + - targets: + - argocd-repo-server.argocd.svc.cluster.local:8084 + - job_name: longhorn + metrics_path: /metrics + scheme: http + static_configs: + - targets: + - longhorn-backend.longhorn.svc.cluster.local:9500 + service: + pipelines: + metrics: + exporters: + - otlp + processors: + - memory_limiter + - batch + - attributes + receivers: + - prometheus + +--- +apiVersion: opentelemetry.io/v1beta1 +kind: OpenTelemetryCollector +metadata: + name: otel-collector-metrics-chrony + namespace: {{ .Release.Namespace }} +spec: + image: ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib:0.113.0 + mode: deployment + podAnnotations: + prometheus.io/port: "8888" + prometheus.io/scrape: "true" + replicas: 1 + resources: + limits: + cpu: {{ .Values.collectors.resources.metrics.limits.cpu | quote }} + memory: {{ .Values.collectors.resources.metrics.limits.memory }} + requests: + cpu: {{ .Values.collectors.resources.metrics.requests.cpu | quote }} + memory: {{ .Values.collectors.resources.metrics.requests.memory }} + serviceAccount: otel-collector + config: + exporters: + debug: + verbosity: detailed + otlp: + endpoint: http://lgtm-stack.otel-lgtm-stack.svc.cluster.local:4317 + tls: + insecure: true + processors: + attributes: + actions: + - action: insert + key: k8s_cluster_name + value: cluster-name + batch: + send_batch_size: 2000 + timeout: 10s + memory_limiter: + check_interval: 5s + limit_percentage: 80 + spike_limit_percentage: 25 + receivers: + prometheus: + config: + scrape_configs: + - job_name: chrony-exporter + kubernetes_sd_configs: + - role: pod + relabel_configs: + - source_labels: [__meta_kubernetes_pod_label_app] + regex: chrony-exporter + action: keep + - source_labels: [__meta_kubernetes_pod_ip] + target_label: __address__ + regex: (.*) + replacement: $1:9123 + - source_labels: [__meta_kubernetes_pod_node_name] + target_label: k8s_node_name + service: + pipelines: + metrics: + exporters: + - otlp + processors: + - memory_limiter + - batch + - attributes + receivers: + - prometheus + +--- +apiVersion: opentelemetry.io/v1beta1 +kind: OpenTelemetryCollector +metadata: + name: otel-collector-metrics-airm + namespace: {{ .Release.Namespace }} +spec: + image: ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib:0.113.0 + mode: deployment + podAnnotations: + prometheus.io/port: "8888" + prometheus.io/scrape: "true" + replicas: 1 + resources: + limits: + cpu: {{ .Values.collectors.resources.metrics.limits.cpu | quote }} + memory: {{ .Values.collectors.resources.metrics.limits.memory }} + requests: + cpu: {{ .Values.collectors.resources.metrics.requests.cpu | quote }} + memory: {{ .Values.collectors.resources.metrics.requests.memory }} + serviceAccount: otel-collector + config: + exporters: + debug: + verbosity: detailed + otlp: + endpoint: http://lgtm-stack.otel-lgtm-stack.svc.cluster.local:4317 + tls: + insecure: true + processors: + attributes: + actions: + - action: insert + key: k8s_cluster_name + value: cluster-name + batch: + send_batch_size: 2000 + timeout: 10s + memory_limiter: + check_interval: 5s + limit_percentage: 80 + spike_limit_percentage: 25 + receivers: + prometheus: + config: + scrape_configs: + - job_name: airm-custom-metrics + scrape_interval: 30s + kubernetes_sd_configs: + - role: pod + metrics_path: / + relabel_configs: + - action: keep + source_labels: + - __meta_kubernetes_pod_label_app + regex: airm-api + - regex: (.+) + replacement: $1:9009 + source_labels: + - __meta_kubernetes_node_address_InternalIP + target_label: __address__ + action: replace + - source_labels: + - __meta_kubernetes_node_name + target_label: hostname + + service: + pipelines: + metrics: + exporters: + - otlp + processors: + - memory_limiter + - batch + - attributes + receivers: + - prometheus \ No newline at end of file diff --git a/sources/otel-lgtm-stack/templates/collectors-rbac-instrumentation.yaml b/sources/otel-lgtm-stack/templates/collectors-rbac-instrumentation.yaml new file mode 100644 index 00000000..3701e07d --- /dev/null +++ b/sources/otel-lgtm-stack/templates/collectors-rbac-instrumentation.yaml @@ -0,0 +1,208 @@ +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: otel-collector + namespace: {{ .Release.Namespace }} +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: otel-collector +rules: + - apiGroups: [""] + resources: + - configmaps + - endpoints + - events + - namespaces + - namespaces/status + - nodes + - nodes/spec + - nodes/stats + - nodes/metrics + - nodes/proxy + - persistentvolumes + - persistentvolumeclaims + - pods + - pods/status + - replicationcontrollers + - replicationcontrollers/status + - resourcequotas + - services + verbs: ["get", "list", "watch"] + - apiGroups: ["extensions"] + resources: + - ingresses + verbs: ["get", "list", "watch"] + - apiGroups: [""] + resources: + - configmaps + verbs: ["get"] + - apiGroups: [""] + resources: + - namespaces + verbs: ["get", "list", "watch"] + # Added permission for non-resource URLs to access metrics endpoints + - nonResourceURLs: + - "/metrics" + - "/metrics/cadvisor" + - "/stats/summary" + - "/api/v1/nodes/*/proxy/metrics" + - "/api/v1/nodes/*/proxy/metrics/cadvisor" + verbs: ["get"] + # Added networking.k8s.io API group for newer Kubernetes versions + - apiGroups: ["networking.k8s.io"] + resources: + - ingresses + verbs: ["get", "list", "watch"] + # Added permission to access custom resource definitions if using any + - apiGroups: ["apiextensions.k8s.io"] + resources: + - customresourcedefinitions + verbs: ["get", "list", "watch"] + # Added events.k8s.io API group for newer Kubernetes events + - apiGroups: ["events.k8s.io"] + resources: + - events + verbs: ["get", "list", "watch"] + - apiGroups: ["monitoring.coreos.com"] + resources: + - servicemonitors + - podmonitors + - probes + - scrapeconfigs + verbs: ["*"] + - apiGroups: ["apps"] + resources: + - daemonsets + - deployments + - replicasets + - statefulset + verbs: ["get", "list", "watch"] + - apiGroups: ["autoscaling"] + resources: + - horizontalpodautoscalers + verbs: ["get", "list", "watch"] + - apiGroups: ["discovery.k8s.io"] + resources: + - endpointslices + verbs: ["get", "list", "watch"] +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: otel-collector +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: otel-collector +subjects: + - kind: ServiceAccount + name: otel-collector + namespace: {{ .Release.Namespace }} +--- +# Source: openobserve-collector/templates/instrumentation-dotnet.yaml +apiVersion: opentelemetry.io/v1alpha1 +kind: Instrumentation +metadata: + name: lgtm-dotnet + namespace: {{ .Release.Namespace }} +spec: + exporter: + endpoint: http://lgtm.lgtm-stack.svc.cluster.local:4318 ### + propagators: + - tracecontext + - baggage + sampler: + type: parentbased_traceidratio + argument: "1" + dotnet: + env: + - name: OTEL_EXPORTER_OTLP_TRACES_PROTOCOL + value: http/protobuf + - name: OTEL_EXPORTER_OTLP_METRICS_PROTOCOL + value: http/protobuf +--- +# Source: openobserve-collector/templates/instrumentation-go.yaml +apiVersion: opentelemetry.io/v1alpha1 +kind: Instrumentation +metadata: + name: lgtm-go + namespace: {{ .Release.Namespace }} +spec: + go: + # image: ghcr.io/openobserve/opentelemetry-go-instrumentation/autoinstrumentation-go:v0.7.0-alpha-5 + image: ghcr.io/open-telemetry/opentelemetry-go-instrumentation/autoinstrumentation-go:v0.19.0-alpha + exporter: + endpoint: http://lgtm.lgtm-stack.svc.cluster.local:4318 ## + propagators: + - tracecontext + - baggage + sampler: + type: parentbased_traceidratio + argument: "1" +--- +# Source: openobserve-collector/templates/instrumentation-java.yaml +apiVersion: opentelemetry.io/v1alpha1 +kind: Instrumentation +metadata: + name: lgtm-java + namespace: {{ .Release.Namespace }} +spec: + exporter: + endpoint: http://lgtm.lgtm-stack.svc.cluster.local:4318 ### + propagators: + - tracecontext + - baggage + sampler: + type: parentbased_traceidratio + argument: "1" + java: + env: + - name: OTEL_EXPORTER_OTLP_TRACES_PROTOCOL + value: http/protobuf + - name: OTEL_EXPORTER_OTLP_METRICS_PROTOCOL + value: http/protobuf +--- +# Source: openobserve-collector/templates/instrumentation-nodejs.yaml +apiVersion: opentelemetry.io/v1alpha1 +kind: Instrumentation +metadata: + name: lgtm-nodejs + namespace: {{ .Release.Namespace }} +spec: + exporter: + endpoint: http://lgtm.lgtm-stack.svc.cluster.local:4318 ### + propagators: + - tracecontext + - baggage + sampler: + type: parentbased_traceidratio + argument: "1" +--- +# Source: openobserve-collector/templates/instrumentation-python.yaml +apiVersion: opentelemetry.io/v1alpha1 +kind: Instrumentation +metadata: + name: lgtm-python + namespace: {{ .Release.Namespace }} +spec: + exporter: + endpoint: http://lgtm.lgtm-stack.svc.cluster.local:4318 ### + propagators: + - tracecontext + - baggage + sampler: + type: parentbased_traceidratio + argument: "1" + python: + env: + - name: OTEL_EXPORTER_OTLP_TRACES_PROTOCOL + value: http/protobuf + - name: OTEL_EXPORTER_OTLP_METRICS_PROTOCOL + value: http/protobuf + - name: OTEL_LOGS_EXPORTER + value: otlp_proto_http + - name: OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED + value: "false" # set to true to enable auto instrumentation for logs \ No newline at end of file From de062bd4f7d15e8d1b9858178004489b3e033bca Mon Sep 17 00:00:00 2001 From: woojae-siloai Date: Thu, 11 Dec 2025 15:35:44 +0200 Subject: [PATCH 18/27] fix: 3rd phase of lgtm helm templates --- root/values.yaml | 5 +- .../collectors-logs-metrics-k8s.yaml | 4 +- .../templates/collectors-metrics-rest.yaml | 6 +- sources/otel-lgtm-stack/values.yaml | 4 ++ sources/otel-lgtm-stack/values_cf.yaml | 66 +++++++++++++++++++ 5 files changed, 79 insertions(+), 6 deletions(-) create mode 100644 sources/otel-lgtm-stack/values_cf.yaml diff --git a/root/values.yaml b/root/values.yaml index 7070ffa5..45aeeaf9 100644 --- a/root/values.yaml +++ b/root/values.yaml @@ -167,7 +167,10 @@ apps: otel-lgtm-stack: path: otel-lgtm-stack namespace: otel-lgtm-stack - valuesFile: values.yaml + valuesFile: ../values_cf.yaml + helmParameters: + - name: cluster.name + value: "{{ .Values.global.domain }}" syncWave: -2 # Databases cnpg-operator: diff --git a/sources/otel-lgtm-stack/templates/collectors-logs-metrics-k8s.yaml b/sources/otel-lgtm-stack/templates/collectors-logs-metrics-k8s.yaml index f317034e..0a23f2c6 100644 --- a/sources/otel-lgtm-stack/templates/collectors-logs-metrics-k8s.yaml +++ b/sources/otel-lgtm-stack/templates/collectors-logs-metrics-k8s.yaml @@ -106,7 +106,7 @@ spec: actions: - key: k8s_cluster_name action: insert - value: "cluster-name" ### value should be updated based on cluster + value: {{ .Values.cluster.name | quote }} transform: ### this adds k8s.cluster.name as a label filter error_mode: ignore log_statements: @@ -679,7 +679,7 @@ spec: actions: - key: k8s_cluster_name action: insert - value: "cluster-name" ### value should be updated based on cluster + value: {{ .Values.cluster.name | quote }} exporters: # Configure your actual backend exporters here diff --git a/sources/otel-lgtm-stack/templates/collectors-metrics-rest.yaml b/sources/otel-lgtm-stack/templates/collectors-metrics-rest.yaml index 9d3a699e..78976467 100644 --- a/sources/otel-lgtm-stack/templates/collectors-metrics-rest.yaml +++ b/sources/otel-lgtm-stack/templates/collectors-metrics-rest.yaml @@ -31,7 +31,7 @@ spec: actions: - action: insert key: k8s_cluster_name - value: cluster-name + value: {{ .Values.cluster.name | quote }} batch: send_batch_size: 2000 timeout: 10s @@ -164,7 +164,7 @@ spec: actions: - action: insert key: k8s_cluster_name - value: cluster-name + value: {{ .Values.cluster.name | quote }} batch: send_batch_size: 2000 timeout: 10s @@ -235,7 +235,7 @@ spec: actions: - action: insert key: k8s_cluster_name - value: cluster-name + value: {{ .Values.cluster.name | quote }} batch: send_batch_size: 2000 timeout: 10s diff --git a/sources/otel-lgtm-stack/values.yaml b/sources/otel-lgtm-stack/values.yaml index 73d54c41..db05734d 100644 --- a/sources/otel-lgtm-stack/values.yaml +++ b/sources/otel-lgtm-stack/values.yaml @@ -1,6 +1,10 @@ # OpenTelemetry LGTM Stack Configuration # Phase 1: Essential Infrastructure Parameters +# Cluster identification +cluster: + name: "cluster-name" # Update this to your actual cluster name + # Namespace configuration namespace: otel-lgtm-stack diff --git a/sources/otel-lgtm-stack/values_cf.yaml b/sources/otel-lgtm-stack/values_cf.yaml new file mode 100644 index 00000000..390a9d77 --- /dev/null +++ b/sources/otel-lgtm-stack/values_cf.yaml @@ -0,0 +1,66 @@ +# Cluster-forge specific configuration for OpenTelemetry LGTM Stack +# This file overrides values.yaml for cluster-forge deployments + +# Cluster identification - will be populated by root/values.yaml helmParameters +cluster: + name: # to be filled by cluster-forge app based on domain + +# Component enablement (cluster-forge defaults) +dashboards: + enabled: true + +nodeExporter: + enabled: true + +kubeStateMetrics: + enabled: true + +# Storage configuration optimized for cluster-forge +lgtm: + storage: + # Tempo storage for traces + tempo: 50Gi + # Loki storage for logs + loki: 50Gi + # Grafana storage for dashboards/config + grafana: 10Gi + # Mimir/Prometheus storage for metrics + mimir: 50Gi + # Loki additional storage + extra: 50Gi + +# Resource configuration optimized for cluster-forge +collectors: + resources: + # Metrics collector (deployment mode) + metrics: + limits: + memory: 8Gi + cpu: '2' + requests: + memory: 1Gi + cpu: 500m + # Logs collector (daemonset mode) + logs: + limits: + memory: 2Gi + cpu: '1' + requests: + memory: 400Mi + cpu: 200m + +# Service configuration +services: + # Main LGTM stack service ports + lgtm: + grafana: 3000 + otelGrpc: 4317 + otelHttp: 4318 + prometheus: 9090 + loki: 3100 + # Kube state metrics service port + kubeStateMetrics: + http: 8080 + # Node exporter service port + nodeExporter: + metrics: 9100 \ No newline at end of file From a3e3548b8f4545c24d9ea0461864e42a266ebcbb Mon Sep 17 00:00:00 2001 From: woojae-siloai Date: Thu, 11 Dec 2025 15:50:14 +0200 Subject: [PATCH 19/27] fix: 3rd phase of lgtm helm templates --- root/values.yaml | 2 +- sources/otel-lgtm-stack/{ => v1.0.7}/Chart.yaml | 0 .../{ => v1.0.7}/templates/chrony-node-exporter.yaml | 0 .../{ => v1.0.7}/templates/collectors-logs-metrics-k8s.yaml | 0 .../{ => v1.0.7}/templates/collectors-metrics-rest.yaml | 0 .../{ => v1.0.7}/templates/collectors-rbac-instrumentation.yaml | 0 .../{ => v1.0.7}/templates/dashboards-default.yaml | 0 .../otel-lgtm-stack/{ => v1.0.7}/templates/dashboards-gpu.yaml | 0 .../{ => v1.0.7}/templates/dashboards-minio.yaml | 0 .../{ => v1.0.7}/templates/kube-state-metrics.yaml | 0 sources/otel-lgtm-stack/{ => v1.0.7}/templates/lgtm-stack.yaml | 0 .../otel-lgtm-stack/{ => v1.0.7}/templates/node-exporter.yaml | 0 sources/otel-lgtm-stack/{ => v1.0.7}/values.yaml | 0 13 files changed, 1 insertion(+), 1 deletion(-) rename sources/otel-lgtm-stack/{ => v1.0.7}/Chart.yaml (100%) rename sources/otel-lgtm-stack/{ => v1.0.7}/templates/chrony-node-exporter.yaml (100%) rename sources/otel-lgtm-stack/{ => v1.0.7}/templates/collectors-logs-metrics-k8s.yaml (100%) rename sources/otel-lgtm-stack/{ => v1.0.7}/templates/collectors-metrics-rest.yaml (100%) rename sources/otel-lgtm-stack/{ => v1.0.7}/templates/collectors-rbac-instrumentation.yaml (100%) rename sources/otel-lgtm-stack/{ => v1.0.7}/templates/dashboards-default.yaml (100%) rename sources/otel-lgtm-stack/{ => v1.0.7}/templates/dashboards-gpu.yaml (100%) rename sources/otel-lgtm-stack/{ => v1.0.7}/templates/dashboards-minio.yaml (100%) rename sources/otel-lgtm-stack/{ => v1.0.7}/templates/kube-state-metrics.yaml (100%) rename sources/otel-lgtm-stack/{ => v1.0.7}/templates/lgtm-stack.yaml (100%) rename sources/otel-lgtm-stack/{ => v1.0.7}/templates/node-exporter.yaml (100%) rename sources/otel-lgtm-stack/{ => v1.0.7}/values.yaml (100%) diff --git a/root/values.yaml b/root/values.yaml index 45aeeaf9..4863a38a 100644 --- a/root/values.yaml +++ b/root/values.yaml @@ -165,7 +165,7 @@ apps: valuesFile: values.yaml syncWave: -3 otel-lgtm-stack: - path: otel-lgtm-stack + path: otel-lgtm-stack/v1.0.7 namespace: otel-lgtm-stack valuesFile: ../values_cf.yaml helmParameters: diff --git a/sources/otel-lgtm-stack/Chart.yaml b/sources/otel-lgtm-stack/v1.0.7/Chart.yaml similarity index 100% rename from sources/otel-lgtm-stack/Chart.yaml rename to sources/otel-lgtm-stack/v1.0.7/Chart.yaml diff --git a/sources/otel-lgtm-stack/templates/chrony-node-exporter.yaml b/sources/otel-lgtm-stack/v1.0.7/templates/chrony-node-exporter.yaml similarity index 100% rename from sources/otel-lgtm-stack/templates/chrony-node-exporter.yaml rename to sources/otel-lgtm-stack/v1.0.7/templates/chrony-node-exporter.yaml diff --git a/sources/otel-lgtm-stack/templates/collectors-logs-metrics-k8s.yaml b/sources/otel-lgtm-stack/v1.0.7/templates/collectors-logs-metrics-k8s.yaml similarity index 100% rename from sources/otel-lgtm-stack/templates/collectors-logs-metrics-k8s.yaml rename to sources/otel-lgtm-stack/v1.0.7/templates/collectors-logs-metrics-k8s.yaml diff --git a/sources/otel-lgtm-stack/templates/collectors-metrics-rest.yaml b/sources/otel-lgtm-stack/v1.0.7/templates/collectors-metrics-rest.yaml similarity index 100% rename from sources/otel-lgtm-stack/templates/collectors-metrics-rest.yaml rename to sources/otel-lgtm-stack/v1.0.7/templates/collectors-metrics-rest.yaml diff --git a/sources/otel-lgtm-stack/templates/collectors-rbac-instrumentation.yaml b/sources/otel-lgtm-stack/v1.0.7/templates/collectors-rbac-instrumentation.yaml similarity index 100% rename from sources/otel-lgtm-stack/templates/collectors-rbac-instrumentation.yaml rename to sources/otel-lgtm-stack/v1.0.7/templates/collectors-rbac-instrumentation.yaml diff --git a/sources/otel-lgtm-stack/templates/dashboards-default.yaml b/sources/otel-lgtm-stack/v1.0.7/templates/dashboards-default.yaml similarity index 100% rename from sources/otel-lgtm-stack/templates/dashboards-default.yaml rename to sources/otel-lgtm-stack/v1.0.7/templates/dashboards-default.yaml diff --git a/sources/otel-lgtm-stack/templates/dashboards-gpu.yaml b/sources/otel-lgtm-stack/v1.0.7/templates/dashboards-gpu.yaml similarity index 100% rename from sources/otel-lgtm-stack/templates/dashboards-gpu.yaml rename to sources/otel-lgtm-stack/v1.0.7/templates/dashboards-gpu.yaml diff --git a/sources/otel-lgtm-stack/templates/dashboards-minio.yaml b/sources/otel-lgtm-stack/v1.0.7/templates/dashboards-minio.yaml similarity index 100% rename from sources/otel-lgtm-stack/templates/dashboards-minio.yaml rename to sources/otel-lgtm-stack/v1.0.7/templates/dashboards-minio.yaml diff --git a/sources/otel-lgtm-stack/templates/kube-state-metrics.yaml b/sources/otel-lgtm-stack/v1.0.7/templates/kube-state-metrics.yaml similarity index 100% rename from sources/otel-lgtm-stack/templates/kube-state-metrics.yaml rename to sources/otel-lgtm-stack/v1.0.7/templates/kube-state-metrics.yaml diff --git a/sources/otel-lgtm-stack/templates/lgtm-stack.yaml b/sources/otel-lgtm-stack/v1.0.7/templates/lgtm-stack.yaml similarity index 100% rename from sources/otel-lgtm-stack/templates/lgtm-stack.yaml rename to sources/otel-lgtm-stack/v1.0.7/templates/lgtm-stack.yaml diff --git a/sources/otel-lgtm-stack/templates/node-exporter.yaml b/sources/otel-lgtm-stack/v1.0.7/templates/node-exporter.yaml similarity index 100% rename from sources/otel-lgtm-stack/templates/node-exporter.yaml rename to sources/otel-lgtm-stack/v1.0.7/templates/node-exporter.yaml diff --git a/sources/otel-lgtm-stack/values.yaml b/sources/otel-lgtm-stack/v1.0.7/values.yaml similarity index 100% rename from sources/otel-lgtm-stack/values.yaml rename to sources/otel-lgtm-stack/v1.0.7/values.yaml From 1904e77126d16fc97ecfe2ca0888b650ff514f78 Mon Sep 17 00:00:00 2001 From: woojae-siloai Date: Thu, 11 Dec 2025 16:11:38 +0200 Subject: [PATCH 20/27] fix: 3rd phase of lgtm helm templates --- sources/otel-lgtm-stack/README.md | 94 ++++++++++++++++++++----------- 1 file changed, 62 insertions(+), 32 deletions(-) diff --git a/sources/otel-lgtm-stack/README.md b/sources/otel-lgtm-stack/README.md index 9c23301e..d9da3c7b 100644 --- a/sources/otel-lgtm-stack/README.md +++ b/sources/otel-lgtm-stack/README.md @@ -1,56 +1,86 @@ -# Required tools +# OpenTelemetry LGTM Stack + +A comprehensive observability stack providing Logs, Grafana, Tempo, and Mimir (LGTM) for Kubernetes clusters using OpenTelemetry. + +## Required Tools + - cert-manager -- opentelemetry-operator +- opentelemetry-operator - prometheus-crds - node-exporter - kube-state-metrics -# This tool consists of -- otel-collectors for metrics and logs -- otel-lgtm +## This Tool Consists Of + +- **OpenTelemetry Collectors** - Metrics, logs, and events collection +- **LGTM Stack** - Integrated Loki, Grafana, Tempo, Mimir observability platform +- **Auto-instrumentation** - Support for .NET, Go, Java, Node.js, Python applications +- **Kubernetes Monitoring** - Node and cluster-level metrics collection -# How this otel-collector manifests created -There are two otel-collectors for lgtm-stack, otel-collector-metrics and otel-collector-logs +## How This OpenTelemetry Collector Manifests Created +### Metrics Collection +Node-level and cluster-level metrics are collected by dedicated collectors: +- **Node Exporter** and **Kube State Metrics** expose metrics endpoints +- **otel-collector-metrics** pods (deployment) scrape configured endpoints +- Control collection via `scrape_configs` and pod annotations: + - `prometheus.io/scrape: 'true'` + - `prometheus.io/path: '/metrics'` -Node level and cluster level metrics are collected and exposed by "node-exporter" -and "kube-state-metrics", respectively. Otel-collector-metrics pod is a dedicated collector -controlled by deployment to scrape metrics. So "scrape_configs" and -giving annotation like "prometheus.io/scrape: 'true'", prometheus.io/path: '/metrics' to pods -is the key to control what metrics should be scraped. -ref: https://grafana.com/docs/grafana-cloud/monitor-infrastructure/kubernetes-monitoring/configuration/helm-chart-config/otel-collector/ +Reference: [Grafana Kubernetes Monitoring Guide](https://grafana.com/docs/grafana-cloud/monitor-infrastructure/kubernetes-monitoring/configuration/helm-chart-config/otel-collector/) -Node level and cluster level logs are collected by "otel-collector-logs" pods which are -controlled by daemonset to collect logs. +### Logs Collection +- **otel-collector-logs** pods (daemonset) collect container logs cluster-wide +- **otel-collector-logs-events** (deployment) collects Kubernetes events +- Based on modified [openobserve-collector](https://github.com/openobserve/openobserve-collector) manifests -This otel-collector-logs manifest is created from the modification of openobserve-collector manifests. +### Auto-Instrumentation +Pre-configured instrumentation resources for automatic telemetry injection. Applications can enable auto-instrumentation by adding pod annotations. -Current instrumentations are configured to send telemetries to the endpoint of otel-lgtm. -Users/Developers who want to use auto instrumation need to implement by giving an annotation to their pods. +## Source of OTEL-LGTM Stack -# Source of otel-lgtm stack -- https://github.com/grafana/docker-otel-lgtm/tree/main +- **Silogen Fork**: [silogen/docker-otel-lgtm](https://github.com/silogen/docker-otel-lgtm) +- **Upstream**: [grafana/docker-otel-lgtm](https://github.com/grafana/docker-otel-lgtm/tree/main) +- **Version**: v1.0.7 +- **Image**: `ghcr.io/silogen/docker-otel-lgtm:v1.0.7` -# How to access the grafana of lgtm +## How to Access Grafana + +```bash kubectl port-forward -n otel-lgtm-stack service/lgtm-stack 3000:3000 4317:4317 4318:4318 +``` -id/password of grafana: admin/admin +**Default Credentials**: admin/admin -# Simple use case(Log) -1. Login -2. Go to explore -3. Select "Loki" datasource -4. Use label filters +**Access URLs**: +- Grafana: http://localhost:3000 +- OTLP gRPC: http://localhost:4317 +- OTLP HTTP: http://localhost:4318 -# Disclaimer -[docker-otel-lgtm](https://github.com/grafana/docker-otel-lgtm/tree/main/docker) is added Cluster-Forge for development, demo, and testing. The only changed part is as follows at "otelcol-config.yaml" to make a custom image. We don't manage/develop this. -``` +### Simple Log Exploration +1. Login to Grafana +2. Navigate to **Explore** +3. Select **Loki** datasource +4. Use label filters to query logs + +## Architecture & Management + +**LGTM Stack Image**: We maintain a [silogen/docker-otel-lgtm](https://github.com/silogen/docker-otel-lgtm) fork specifically for managing and updating the LGTM container image. This fork is based on the upstream [grafana/docker-otel-lgtm](https://github.com/grafana/docker-otel-lgtm) project. + +**Kubernetes Resources**: All Kubernetes manifests (OpenTelemetry Collectors, RBAC, instrumentation, etc.) are managed through our custom Helm chart stored in Cluster-Forge, **not** from the upstream docker-otel-lgtm repository. + +**Custom LGTM Image Modifications**: Our fork includes the following changes in `otelcol-config.yaml`: + +```yaml receivers: otlp: protocols: grpc: endpoint: 0.0.0.0:4317 - max_recv_msg_size_mib: 128 <-- added + max_recv_msg_size_mib: 128 # <-- added ``` - +**Scope of Management**: +- 🔧 **Image Management**: Silogen maintains the docker-otel-lgtm fork for LGTM container updates +- 📦 **Resource Management**: All OpenTelemetry collectors, RBAC, and Kubernetes resources are managed via this Cluster-Forge Helm chart +- 🎯 **Integration**: The chart integrates the custom LGTM image with our OpenTelemetry collector architecture \ No newline at end of file From c42764dea9417f3412ef6da8c8bfe617aa564879 Mon Sep 17 00:00:00 2001 From: woojae-siloai Date: Fri, 12 Dec 2025 09:32:48 +0200 Subject: [PATCH 21/27] docs: update components.yaml --- sbom/components.yaml | 3 ++- sources/otel-lgtm-stack/v1.0.7/Chart.yaml | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/sbom/components.yaml b/sbom/components.yaml index 73a77913..f9763323 100644 --- a/sbom/components.yaml +++ b/sbom/components.yaml @@ -79,7 +79,8 @@ components: license: Apache License 2.0 licenseUrl: https://github.com/open-telemetry/opentelemetry-operator/blob/main/LICENSE otel-lgtm-stack: - path: otel-lgtm-stack + path: otel-lgtm-stack/v1.0.7 + valuesFile: ../values_cf.yaml sourceUrl: https://github.com/silogen/docker-otel-lgtm projectUrl: https://github.com/grafana/docker-otel-lgtm license: Apache License 2.0 diff --git a/sources/otel-lgtm-stack/v1.0.7/Chart.yaml b/sources/otel-lgtm-stack/v1.0.7/Chart.yaml index e64f440e..390773b6 100644 --- a/sources/otel-lgtm-stack/v1.0.7/Chart.yaml +++ b/sources/otel-lgtm-stack/v1.0.7/Chart.yaml @@ -8,10 +8,10 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.1.0 +version: 1.0.7 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. # It is recommended to use it with quotes. -appVersion: "1.0.0" \ No newline at end of file +appVersion: "1.0.7" \ No newline at end of file From 3048cd9515e50cb79e0267b314351884a2ad491f Mon Sep 17 00:00:00 2001 From: woojae-siloai Date: Fri, 12 Dec 2025 09:34:28 +0200 Subject: [PATCH 22/27] docs: update README.md --- sources/otel-lgtm-stack/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/otel-lgtm-stack/README.md b/sources/otel-lgtm-stack/README.md index d9da3c7b..73c955f6 100644 --- a/sources/otel-lgtm-stack/README.md +++ b/sources/otel-lgtm-stack/README.md @@ -5,7 +5,7 @@ A comprehensive observability stack providing Logs, Grafana, Tempo, and Mimir (L ## Required Tools - cert-manager -- opentelemetry-operator +- opentelemetry-operator - prometheus-crds - node-exporter - kube-state-metrics @@ -83,4 +83,4 @@ receivers: **Scope of Management**: - 🔧 **Image Management**: Silogen maintains the docker-otel-lgtm fork for LGTM container updates - 📦 **Resource Management**: All OpenTelemetry collectors, RBAC, and Kubernetes resources are managed via this Cluster-Forge Helm chart -- 🎯 **Integration**: The chart integrates the custom LGTM image with our OpenTelemetry collector architecture \ No newline at end of file +- 🎯 **Integration**: The chart integrates the custom LGTM image with our OpenTelemetry collector architecture From 5619aa58063da9c92d3650c2711d0158c84b9e35 Mon Sep 17 00:00:00 2001 From: woojae-siloai Date: Fri, 12 Dec 2025 10:02:37 +0200 Subject: [PATCH 23/27] refactor: update values_cf.yaml --- sources/otel-lgtm-stack/v1.0.7/templates/lgtm-stack.yaml | 6 +++--- sources/otel-lgtm-stack/v1.0.7/values.yaml | 8 ++++++++ sources/otel-lgtm-stack/values_cf.yaml | 8 ++++++++ 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/sources/otel-lgtm-stack/v1.0.7/templates/lgtm-stack.yaml b/sources/otel-lgtm-stack/v1.0.7/templates/lgtm-stack.yaml index eec5bbe1..f42e8c26 100644 --- a/sources/otel-lgtm-stack/v1.0.7/templates/lgtm-stack.yaml +++ b/sources/otel-lgtm-stack/v1.0.7/templates/lgtm-stack.yaml @@ -242,10 +242,10 @@ spec: failureThreshold: 3 resources: requests: - cpu: 500m - memory: 1024Mi + cpu: {{ .Values.lgtm.resources.requests.cpu | quote }} + memory: {{ .Values.lgtm.resources.requests.memory | quote }} limits: - memory: 8Gi + memory: {{ .Values.lgtm.resources.limits.memory | quote }} # NOTE: By default OpenShift does not allow writing the root directory. # Thats why the data dirs for grafana, prometheus and loki can not be # created and the pod never becomes ready. diff --git a/sources/otel-lgtm-stack/v1.0.7/values.yaml b/sources/otel-lgtm-stack/v1.0.7/values.yaml index db05734d..6ea2fd2e 100644 --- a/sources/otel-lgtm-stack/v1.0.7/values.yaml +++ b/sources/otel-lgtm-stack/v1.0.7/values.yaml @@ -21,6 +21,14 @@ lgtm: mimir: 50Gi # Loki additional storage extra: 50Gi + + # LGTM stack main deployment resources + resources: + limits: + memory: 8Gi + requests: + memory: 2Gi + cpu: '1' # OpenTelemetry Collectors resource configuration collectors: diff --git a/sources/otel-lgtm-stack/values_cf.yaml b/sources/otel-lgtm-stack/values_cf.yaml index 390a9d77..7a238b4c 100644 --- a/sources/otel-lgtm-stack/values_cf.yaml +++ b/sources/otel-lgtm-stack/values_cf.yaml @@ -29,6 +29,14 @@ lgtm: # Loki additional storage extra: 50Gi + # LGTM stack main deployment resources + resources: + limits: + memory: 8Gi + requests: + memory: 2Gi + cpu: '1' + # Resource configuration optimized for cluster-forge collectors: resources: From 87dcb16f13d621eae60008d3b24958817d1d2faa Mon Sep 17 00:00:00 2001 From: woojae-siloai Date: Fri, 12 Dec 2025 13:31:00 +0200 Subject: [PATCH 24/27] refactor: revert root/values_dev.yaml --- root/values_dev.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/root/values_dev.yaml b/root/values_dev.yaml index 3709678a..02819547 100644 --- a/root/values_dev.yaml +++ b/root/values_dev.yaml @@ -1,13 +1,13 @@ clusterForge: repoUrl: "https://github.com/silogen/cluster-forge.git" - targetRevision: 551_lgtm_stack_to_helm_charts # feature-branch name to be provided by developer + targetRevision: # feature-branch name to be provided by developer valuesFile: values_dev.yaml externalValues: enabled: false global: - domain: plat-dev-3.silogen.ai # to be provided by developer + domain: # to be provided by developer enabledApps: - argocd From 06e9a12f4186c2841b29dc008629f595505f5e2c Mon Sep 17 00:00:00 2001 From: woojae-siloai Date: Thu, 8 Jan 2026 15:14:48 +0200 Subject: [PATCH 25/27] fix: update values_dev.yaml --- root/values_dev.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/root/values_dev.yaml b/root/values_dev.yaml index 28c9496c..b514d608 100644 --- a/root/values_dev.yaml +++ b/root/values_dev.yaml @@ -1,13 +1,13 @@ clusterForge: repoUrl: "https://github.com/silogen/cluster-forge.git" - targetRevision: # feature-branch name to be provided by developer + targetRevision: 551_lgtm_stack_to_helm_charts # feature-branch name to be provided by developer valuesFile: values_dev.yaml externalValues: enabled: false global: - domain: # to be provided by developer + domain: plat-dev-3.silogen.ai # to be provided by developer enabledApps: - argocd From 090e656f286197e1cfd69425d2c0deeea0b7ea43 Mon Sep 17 00:00:00 2001 From: woojae-siloai Date: Thu, 8 Jan 2026 15:48:00 +0200 Subject: [PATCH 26/27] fix: rollback values_dev.yaml --- root/values_dev.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/root/values_dev.yaml b/root/values_dev.yaml index b514d608..28c9496c 100644 --- a/root/values_dev.yaml +++ b/root/values_dev.yaml @@ -1,13 +1,13 @@ clusterForge: repoUrl: "https://github.com/silogen/cluster-forge.git" - targetRevision: 551_lgtm_stack_to_helm_charts # feature-branch name to be provided by developer + targetRevision: # feature-branch name to be provided by developer valuesFile: values_dev.yaml externalValues: enabled: false global: - domain: plat-dev-3.silogen.ai # to be provided by developer + domain: # to be provided by developer enabledApps: - argocd From 0ca36fce99aba4e8dc3c88e390d7db9d8998b91d Mon Sep 17 00:00:00 2001 From: woojae-siloai Date: Thu, 8 Jan 2026 15:51:02 +0200 Subject: [PATCH 27/27] fix: update conponents.yaml --- sbom/components.yaml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/sbom/components.yaml b/sbom/components.yaml index d3dfba56..0de74ce3 100644 --- a/sbom/components.yaml +++ b/sbom/components.yaml @@ -188,10 +188,16 @@ components: projectUrl: https://github.com/minio/operator license: GNU Affero General Public License v3.0 licenseUrl: https://github.com/minio/operator/blob/master/LICENSE + aim-cluster-model-source: # This will be part of kaiwo-crds in near future + path: aim-cluster-model-source + sourceUrl: https://github.com/silogen/kaiwo/releases/download/v0.2.0-rc11/crds.yaml + projectUrl: https://github.com/silogen/kaiwo/ + license: MIT License + licenseUrl: https://github.com/silogen/kaiwo/blob/main/LICENSE kaiwo-crds: path: kaiwo-crds/v0.2.0-rc11 sourceUrl: https://github.com/silogen/kaiwo/releases/download/v0.2.0-rc11/crds.yaml - projectUrl: //github.com/silogen/kaiwo/ + projectUrl: https://github.com/silogen/kaiwo/ license: MIT License licenseUrl: https://github.com/silogen/kaiwo/blob/main/LICENSE kaiwo: