grasys blog

kube-prometheus-stackのダッシュボードをGoogle Cloud Managed Service for Prometheusで使用する

こんにちは、大島です。

prometheus-community/kube-prometheus-stackにはGrafanaダッシュボードやその他諸々がプレインストールされています。
今回はそのプレインストールされているGrafanaダッシュボードをGoogle Cloud Managed Service for Prometheus(以下GMP)で使用したいと思います。
単純に持ってくるだけではメトリクスが表示されないので少し調整をします。

GKE: v1.27.6

HelmChart
kube-prometheus-stack-52.1.0
grafana-7.0.110.1.5

最終的に見れるダッシュボード

  • AlertManager / Overview
  • Grafana Overview
  • Kubernetes / Compute Resources / Multi-Cluster
  • Kubernetes / Compute Resourcees / Cluster
  • Kubernetes / Compute Resources / Namespace (Pods)
  • Kubernetes / Compute Resources / Namespace (Workloads)
  • Kubernetes / Compute Resources / Node (Pods)
  • Kubernetes / Compute Resources / Pod
  • Kubernetes / Compute Resources / Workload
  • Kubernetes / Kubelet
  • Kubernetes / Networking / Cluster
  • Kubernetes / Networking / Namespace (Pods)
  • Kubernetes / Networking / Namespace (Workloads)
  • Kubernetes / Networking / Pod
  • Kubernetes / Networking / Workload
  • Kubernetes / Persistent Volumes
  • Node Exporter / Nodes
  • Node Exporter / USE Method / Cluster
  • Node Exporter / USE Method / Node

見れないダッシュボード

  • CoreDNS
  • Kubernetes / API server
  • Kubernetes / Controller Manager
  • Kubernetes / Proxy
  • Kubernetes / Scheduler
  • Prometheus / Overview
  • etcd

未検証のダッシュボード

  • Node Exporter / MacOS

構築

GKEクラスターとノードを一つ作成しました。

$ k get node
NAME                                                  STATUS   ROLES    AGE   VERSION
gke-oshima-test-clust-oshima-test-app-dba68b7e-9x1b   Ready    <none>   19m   v1.27.6-gke.1506000

GMPリソースを確認

GKE バージョン 1.27 以降を実行しているのでマネージド コレクションがデフォルトで有効になっています。
参考:マネージド コレクションを有効にする: GKE

gmp-publicとgmp-system名前空間があります。

$ k get ns
NAME              STATUS   AGE
default           Active   24m
gmp-public        Active   23m
gmp-system        Active   23m
kube-node-lease   Active   24m
kube-public       Active   24m
kube-system       Active   24m

gmp-system名前空間にマネージドコレクターがデプロイされていることが確認できます。

$ kubectl get po -n gmp-system
NAME                              READY   STATUS    RESTARTS      AGE
alertmanager-0                    2/2     Running   0             14h
collector-lq2jh                   2/2     Running   0             14h
gmp-operator-7df56b4478-t9drd     1/1     Running   0             14h
rule-evaluator-5b47d58dc6-xxgvl   2/2     Running   3 (14h ago)   14h

OperatorConfigというCRDが作成されています。
後ほどこのconfigの設定を変更します。

$ kubectl get operatorconfig -n gmp-public
NAME     AGE
config   14h

GMPのフロントエンドUIをデプロイ

参考:フロントエンド UI をデプロイする

gmp-monitoring名前空間を作成しました。

kubectl create ns gmp-monitoring

curl https://raw.githubusercontent.com/GoogleCloudPlatform/prometheus-engine/v0.7.4/examples/frontend.yaml |
sed 's/\$PROJECT_ID/<ご自身のproject id>/' |
kubectl apply -n gmp-monitoring -f -

kube-state-metricsとnode-exporterをデプロイ

kube-prometheus-stackではプレインストールされている、kube-state-metricsとnode-exporterをデプロイします。

参考:Kube 状態指標をインストールする

参考:Node Exporter をインストールする

この時点でkube-state-metricsとnode-exporterのメトリクスが取れているか確認してみます。

NAMESPACE=gmp-monitoring

kubectl port-forward -n $NAMESPACE svc/frontend 9090

Grafanaをデプロイ

helm repo add grafana https://grafana.github.io/helm-charts
helm repo update
$ helm repo list
NAME                    URL
grafana                 https://grafana.github.io/helm-charts

私はこちらのvalues.yamlを使用しました。
sidecar.dashboards.enabled=truesidecar.datasources.enabled=trueにすることで、それぞれConfigMapでデプロイすることができます。

persistence:
  type: pvc
  enabled: false
sidecar:
  dashboards:
    enabled: true
  datasources:
    enabled: true
NAMESPACE=gmp-monitoring

helm install grafana -n $NAMESPACE grafana/grafana -f values.yaml
$ kubectl get cm -n gmp-monitoring
NAME                        DATA   AGE
grafana                     1      4m50s
grafana-config-dashboards   1      4m50s
kube-root-ca.crt            1      86m

kube-prometheus-stackをデプロイ

目的はConfigMapを取得することなのでvalues.yamlはデフォルトのままでも問題ありません。

prometheus-communityのHelmリポジトリを追加します。

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
$ helm repo list
NAME                    URL
prometheus-community    https://prometheus-community.github.io/helm-charts

私はこちらのvalues.yamlファイルを使いました。

# Alertmanagerは今回使わないのでデプロイしない
alertmanager:
  enabled: false

pstack名前空間にkube-prometheus-stackをデプロイします。

NAMESPACE=pstack
RELEASE_NAME=pstack

helm install $RELEASE_NAME prometheus-community/kube-prometheus-stack -n $NAMESPACE --create-namespace -f values.yaml

先ほどvalues.yamlでAlertmanagerを除外したので、Alertmanager以外がデプロイされています

# kubectl get po -n pstack
NAME                                                   READY   STATUS    RESTARTS   AGE
prometheus-pstack-kube-prometheus-sta-prometheus-0     2/2     Running   0          2m1s
pstack-grafana-7d46677fb4-mhncm                        3/3     Running   0          2m7s
pstack-kube-prometheus-sta-operator-7d74458df8-7jhvx   1/1     Running   0          2m7s
pstack-kube-state-metrics-5d8d89f5dd-sxdt4             1/1     Running   0          2m7s
pstack-prometheus-node-exporter-hl7ks                  1/1     Running   0          2m7s

kube-prometheus-stackからConfigMapsを持ってくる

ConfigMapを確認します。

$ kubectl get cm -n pstack
NAME                                                           DATA   AGE
kube-root-ca.crt                                               1      3m16s
prometheus-pstack-kube-prometheus-sta-prometheus-rulefiles-0   29     2m59s
pstack-grafana                                                 1      3m6s
pstack-grafana-config-dashboards                               1      3m6s
pstack-kube-prometheus-sta-alertmanager-overview               1      3m6s
pstack-kube-prometheus-sta-apiserver                           1      3m6s
pstack-kube-prometheus-sta-cluster-total                       1      3m6s
pstack-kube-prometheus-sta-controller-manager                  1      3m6s
pstack-kube-prometheus-sta-etcd                                1      3m6s
pstack-kube-prometheus-sta-grafana-datasource                  1      3m6s
pstack-kube-prometheus-sta-grafana-overview                    1      3m6s
pstack-kube-prometheus-sta-k8s-coredns                         1      3m6s
pstack-kube-prometheus-sta-k8s-resources-cluster               1      3m6s
pstack-kube-prometheus-sta-k8s-resources-multicluster          1      3m6s
pstack-kube-prometheus-sta-k8s-resources-namespace             1      3m6s
pstack-kube-prometheus-sta-k8s-resources-node                  1      3m6s
pstack-kube-prometheus-sta-k8s-resources-pod                   1      3m6s
pstack-kube-prometheus-sta-k8s-resources-workload              1      3m6s
pstack-kube-prometheus-sta-k8s-resources-workloads-namespace   1      3m6s
pstack-kube-prometheus-sta-kubelet                             1      3m6s
pstack-kube-prometheus-sta-namespace-by-pod                    1      3m6s
pstack-kube-prometheus-sta-namespace-by-workload               1      3m6s
pstack-kube-prometheus-sta-node-cluster-rsrc-use               1      3m6s
pstack-kube-prometheus-sta-node-rsrc-use                       1      3m6s
pstack-kube-prometheus-sta-nodes                               1      3m6s
pstack-kube-prometheus-sta-nodes-darwin                        1      3m6s
pstack-kube-prometheus-sta-persistentvolumesusage              1      3m6s
pstack-kube-prometheus-sta-pod-total                           1      3m6s
pstack-kube-prometheus-sta-prometheus                          1      3m6s
pstack-kube-prometheus-sta-proxy                               1      3m6s
pstack-kube-prometheus-sta-scheduler                           1      3m6s
pstack-kube-prometheus-sta-workload-total                      1      3m6s

次の4つはgmp-monitoringへのデプロイ時に使わないのでそれ以外をファイルに落とします。

  • kube-root-ca.crt
  • prometheus-pstack-kube-prometheus-sta-prometheus-rulefiles-0
  • pstack-grafana
  • pstack-grafana-config-dashboards
NAMESPACE=pstack
DIR=./pstack

for cm in `k get cm -n $NAMESPACE| awk 'NR>5{print $1}'`; do kubectl get cm $cm -n $NAMESPACE -oyaml>$DIR/$cm.yaml; done
$ ls pstack
pstack-kube-prometheus-sta-alertmanager-overview.yaml
pstack-kube-prometheus-sta-apiserver.yaml
pstack-kube-prometheus-sta-cluster-total.yaml
pstack-kube-prometheus-sta-controller-manager.yaml
pstack-kube-prometheus-sta-etcd.yaml
pstack-kube-prometheus-sta-grafana-datasource.yaml
pstack-kube-prometheus-sta-grafana-overview.yaml
pstack-kube-prometheus-sta-k8s-coredns.yaml
pstack-kube-prometheus-sta-k8s-resources-cluster.yaml
pstack-kube-prometheus-sta-k8s-resources-multicluster.yaml
pstack-kube-prometheus-sta-k8s-resources-namespace.yaml
pstack-kube-prometheus-sta-k8s-resources-node.yaml
pstack-kube-prometheus-sta-k8s-resources-pod.yaml
pstack-kube-prometheus-sta-k8s-resources-workloads-namespace.yaml
pstack-kube-prometheus-sta-k8s-resources-workload.yaml
pstack-kube-prometheus-sta-kubelet.yaml
pstack-kube-prometheus-sta-namespace-by-pod.yaml
pstack-kube-prometheus-sta-namespace-by-workload.yaml
pstack-kube-prometheus-sta-node-cluster-rsrc-use.yaml
pstack-kube-prometheus-sta-node-rsrc-use.yaml
pstack-kube-prometheus-sta-nodes-darwin.yaml
pstack-kube-prometheus-sta-nodes.yaml
pstack-kube-prometheus-sta-persistentvolumesusage.yaml
pstack-kube-prometheus-sta-pod-total.yaml
pstack-kube-prometheus-sta-prometheus.yaml
pstack-kube-prometheus-sta-proxy.yaml
pstack-kube-prometheus-sta-scheduler.yaml
pstack-kube-prometheus-sta-workload-total.yaml

$ ls pstack | wc -l
28

kube-prometheus-stackからRecordingRulesを持ってくる

PrometheusRuleを確認します。

$ kubectl get prometheusrules -n pstack
NAME                                                              AGE
pstack-kube-prometheus-sta-alertmanager.rules                     14h
pstack-kube-prometheus-sta-config-reloaders                       14h
pstack-kube-prometheus-sta-etcd                                   14h
pstack-kube-prometheus-sta-general.rules                          14h
pstack-kube-prometheus-sta-k8s.rules                              14h
pstack-kube-prometheus-sta-kube-apiserver-availability.rules      14h
pstack-kube-prometheus-sta-kube-apiserver-burnrate.rules          14h
pstack-kube-prometheus-sta-kube-apiserver-histogram.rules         14h
pstack-kube-prometheus-sta-kube-apiserver-slos                    14h
pstack-kube-prometheus-sta-kube-prometheus-general.rules          14h
pstack-kube-prometheus-sta-kube-prometheus-node-recording.rules   14h
pstack-kube-prometheus-sta-kube-scheduler.rules                   14h
pstack-kube-prometheus-sta-kube-state-metrics                     14h
pstack-kube-prometheus-sta-kubelet.rules                          14h
pstack-kube-prometheus-sta-kubernetes-apps                        14h
pstack-kube-prometheus-sta-kubernetes-resources                   14h
pstack-kube-prometheus-sta-kubernetes-storage                     14h
pstack-kube-prometheus-sta-kubernetes-system                      14h
pstack-kube-prometheus-sta-kubernetes-system-apiserver            14h
pstack-kube-prometheus-sta-kubernetes-system-controller-manager   14h
pstack-kube-prometheus-sta-kubernetes-system-kube-proxy           14h
pstack-kube-prometheus-sta-kubernetes-system-kubelet              14h
pstack-kube-prometheus-sta-kubernetes-system-scheduler            14h
pstack-kube-prometheus-sta-node-exporter                          14h
pstack-kube-prometheus-sta-node-exporter.rules                    14h
pstack-kube-prometheus-sta-node-network                           14h
pstack-kube-prometheus-sta-node.rules                             14h
pstack-kube-prometheus-sta-prometheus                             14h
pstack-kube-prometheus-sta-prometheus-operator                    14h

欲しいものはRecordingRuleなので.rulesのものだけで良いのですが、全てファイルに落としてしまいました。

NAMESPACE=pstack
DIR=prometheusrules

for pr in `k get prometheusrules -n $NAMESPACE| awk 'NR>1{print $1}'`; do kubectl get prometheusrules $pr -n $NAMESPACE -oyaml>$DIR/$pr.yaml; done
$ ls prometheusrules/
pstack-kube-prometheus-sta-alertmanager.rules.yaml
pstack-kube-prometheus-sta-config-reloaders.yaml
pstack-kube-prometheus-sta-etcd.yaml
pstack-kube-prometheus-sta-general.rules.yaml
pstack-kube-prometheus-sta-k8s.rules.yaml
pstack-kube-prometheus-sta-kube-apiserver-availability.rules.yaml
pstack-kube-prometheus-sta-kube-apiserver-burnrate.rules.yaml
pstack-kube-prometheus-sta-kube-apiserver-histogram.rules.yaml
pstack-kube-prometheus-sta-kube-apiserver-slos.yaml
pstack-kube-prometheus-sta-kubelet.rules.yaml
pstack-kube-prometheus-sta-kube-prometheus-general.rules.yaml
pstack-kube-prometheus-sta-kube-prometheus-node-recording.rules.yaml
pstack-kube-prometheus-sta-kubernetes-apps.yaml
pstack-kube-prometheus-sta-kubernetes-resources.yaml
pstack-kube-prometheus-sta-kubernetes-storage.yaml
pstack-kube-prometheus-sta-kubernetes-system-apiserver.yaml
pstack-kube-prometheus-sta-kubernetes-system-controller-manager.yaml
pstack-kube-prometheus-sta-kubernetes-system-kubelet.yaml
pstack-kube-prometheus-sta-kubernetes-system-kube-proxy.yaml
pstack-kube-prometheus-sta-kubernetes-system-scheduler.yaml
pstack-kube-prometheus-sta-kubernetes-system.yaml
pstack-kube-prometheus-sta-kube-scheduler.rules.yaml
pstack-kube-prometheus-sta-kube-state-metrics.yaml
pstack-kube-prometheus-sta-node-exporter.rules.yaml
pstack-kube-prometheus-sta-node-exporter.yaml
pstack-kube-prometheus-sta-node-network.yaml
pstack-kube-prometheus-sta-node.rules.yaml
pstack-kube-prometheus-sta-prometheus-operator.yaml
pstack-kube-prometheus-sta-prometheus.yaml

$ ls prometheusrules/ | wc -l
29

欲しいものは手に入ったので、pstackはuninstallしても大丈夫です。

NAMESPACE=pstack
RELEASE_NAME=pstack

helm uninstall $RELEASE_NAME -n $NAMESPACE

gmpにインポートする

dashboardを編集する

まずはインポートできている状態を目指します。
落としてきたファイルのメタデータを編集します。

before

...
metadata:
  annotations:
    meta.helm.sh/release-name: pstack
    meta.helm.sh/release-namespace: pstack
  creationTimestamp: "2023-10-31T01:21:07Z"
  labels:
    app: kube-prometheus-stack-grafana
    app.kubernetes.io/instance: pstack
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/part-of: kube-prometheus-stack
    app.kubernetes.io/version: 52.1.0
    chart: kube-prometheus-stack-52.1.0
    grafana_dashboard: "1"
    heritage: Helm
    release: pstack
  name: pstack-kube-prometheus-sta-workload-total
  namespace: pstack
  resourceVersion: "395886"
  uid: 090f9713-8d30-4a55-bb34-8791f70bb391

after

...
metadata:
  labels:
    grafana_dashboard: '1'
  name: kube-prometheus-sta-workload-total
  namespace: gmp-monitoring

datasourceを編集する

apiVersion: v1
data:
  datasource.yaml: |-
    apiVersion: 1
    datasources:
    - name: Prometheus
      type: prometheus
      uid: prometheus
      url: http://frontend:9090/
      access: proxy
      isDefault: true
      jsonData:
        httpMethod: POST
        timeInterval: 30s
kind: ConfigMap
metadata:
  labels:
    grafana_datasource: '1'
  name: kube-prometheus-sta-grafana-datasource.yaml
  namespace: gmp-monitoring

この時点でapplyするとgrafanaにアクセスするとダッシュボードおよびデータソースがインポートできていますが、No dataで表示されると思います。

NAMESPACE=gmp-monitoring

k port-forward -n $NAMESPACE svc/grafana 3000:80

PrometheusRuleからClusterRulesを作成する

末尾に.rulesがついているもののみデプロイします。

先ほど全部ファイルに落としてしまったので分けました。ダッシュボード表示のみでしたらrecordディレクトリ配下のファイル群のみで大丈夫です。

.
├── alert
│   ├── kube-prometheus-sta-config-reloaders.yaml
│   ├── kube-prometheus-sta-etcd.yaml
│   ├── kube-prometheus-sta-kube-apiserver-slos.yaml
│   ├── kube-prometheus-sta-kubernetes-apps.yaml
│   ├── kube-prometheus-sta-kubernetes-resources.yaml
│   ├── kube-prometheus-sta-kubernetes-storage.yaml
│   ├── kube-prometheus-sta-kubernetes-system-apiserver.yaml
│   ├── kube-prometheus-sta-kubernetes-system-controller-manager.yaml
│   ├── kube-prometheus-sta-kubernetes-system-kubelet.yaml
│   ├── kube-prometheus-sta-kubernetes-system-kube-proxy.yaml
│   ├── kube-prometheus-sta-kubernetes-system-scheduler.yaml
│   ├── kube-prometheus-sta-kubernetes-system.yaml
│   ├── kube-prometheus-sta-kube-state-metrics.yaml
│   ├── kube-prometheus-sta-node-exporter.yaml
│   ├── kube-prometheus-sta-node-network.yaml
│   ├── kube-prometheus-sta-prometheus-operator.yaml
│   └── kube-prometheus-sta-prometheus.yaml
└── record
    ├── kube-prometheus-sta-alertmanager.rules.yaml
    ├── kube-prometheus-sta-general.rules.yaml
    ├── kube-prometheus-sta-k8s.rules.yaml
    ├── kube-prometheus-sta-kube-apiserver-availability.rules.yaml
    ├── kube-prometheus-sta-kube-apiserver-burnrate.rules.yaml
    ├── kube-prometheus-sta-kube-apiserver-histogram.rules.yaml
    ├── kube-prometheus-sta-kubelet.rules.yaml
    ├── kube-prometheus-sta-kube-prometheus-general.rules.yaml
    ├── kube-prometheus-sta-kube-prometheus-node-recording.rules.yaml
    ├── kube-prometheus-sta-kube-scheduler.rules.yaml
    ├── kube-prometheus-sta-node-exporter.rules.yaml
    └── kube-prometheus-sta-node.rules.yaml

before

apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
  annotations:
    meta.helm.sh/release-name: pstack
    meta.helm.sh/release-namespace: pstack
  creationTimestamp: "2023-10-31T10:52:58Z"
  generation: 1
  labels:
    app: kube-prometheus-stack
    app.kubernetes.io/instance: pstack
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/part-of: kube-prometheus-stack
    app.kubernetes.io/version: 52.1.0
    chart: kube-prometheus-stack-52.1.0
    heritage: Helm
    release: pstack
  name: pstack-kube-prometheus-sta-alertmanager.rules
  namespace: pstack
  resourceVersion: "657348"
  uid: b40fe500-4923-475b-ad9c-7e88b0963487
spec:
  groups:
  - name: alertmanager.rules
    rules:
...

after

apiVersion: monitoring.googleapis.com/v1
kind: ClusterRules
metadata:
  name: kube-prometheus-sta-alertmanager.rules
spec:
  groups:
  - name: alertmanager.rules
    interval: 30s
    rules:
...

ClusterRulesはspec.groups.intervalが必須なので注意です。

設定項目を調整する

kubeletのメトリクスが取得できるようにOperatorConfigに以下を追加します。

...
collection:
  kubeletScraping:
    interval: 30s
...

kube-prometheus-stackとの差分を修正します。

ダッシュボードについて、metrics_path=\"/metrics/cadvisor\"metrics_path=\\"/metrics\\"を削除します。

DIR=gmp-monitoring

for i in `ls $DIR`; do sed -i -z -e 's@,[\n| ]*metrics_path=\\"/metrics/cadvisor\\"@@g' -e 's@,[\n| ]*metrics_path=\\"/metrics\\"@@g' $DIR/$i; done

ファイルを編集したらapplyしてください。

kubectl apply -f $DIR

同じように、ClusterRulesについて、metrics_path="/metrics/cadvisor"metrics_path="/metrics"を削除します。

DIR=clusterrules/record

for i in `ls $DIR`; do sed -i -z -e 's@,[\n| ]*metrics_path="/metrics/cadvisor"@@g' -e 's@,[\n| ]*metrics_path="/metrics"@@g' $DIR/$i; done

ファイルを編集したらapplyしてください。

kubectl apply -f $DIR

この時点で見れるダッシュボード

  • Kubernetes / Compute Resources / Multi-Cluster
  • Kubernetes / Compute Resourcees / Cluster
  • Kubernetes / Compute Resources / Namespace (Pods)
  • Kubernetes / Compute Resources / Namespace (Workloads)
  • Kubernetes / Compute Resources / Node (Pods)
  • Kubernetes / Compute Resources / Pod
  • Kubernetes / Compute Resources / Workload
  • Kubernetes / Kubelet
  • Kubernetes / Networking / Cluster
  • Kubernetes / Networking / Namespace (Pods)
  • Kubernetes / Networking / Namespace (Workloads)
  • Kubernetes / Networking / Pod
  • Kubernetes / Networking / Workload
  • Kubernetes / Persistent Volumes
  • Node Exporter / Nodes
  • Node Exporter / USE Method / Cluster
  • Node Exporter / USE Method / Node

この時点で見れないダッシュボード

  • AlertManager / Overview
  • CoreDNS
  • Grafana Overview
  • Kubernetes / API server
  • Kubernetes / Controller Manager
  • Kubernetes / Proxy
  • Kubernetes / Scheduler
  • Prometheus / Overview
  • etcd

未検証のダッシュボード

  • Node Exporter / MacOS

もう少しだけ見れるようにします

以下のダッシュボードのメトリクスが表示されるようになります。

  • AlertManager / Overview
  • Grafana Overview

PodMonitoringを作成する

Alertmanagerは今回マネージド Alertmanager を使っていますがセルフデプロイされたものでも構いません。

apiVersion: monitoring.googleapis.com/v1
kind: PodMonitoring
metadata:
  namespace: gmp-system
  name: alertmanager
  labels:
    app.kubernetes.io/name: alertmanager
    app.kubernetes.io/part-of: google-cloud-managed-prometheus
spec:
  selector:
    matchLabels:
      app.kubernetes.io/name: alertmanager
  endpoints:
    - port: alertmanager
      interval: 30s

Grafana用のPodMonitoring

apiVersion: monitoring.googleapis.com/v1
kind: PodMonitoring
metadata:
  namespace: gmp-monitoring
  name: grafana
  labels:
    app.kubernetes.io/name: grafana
    app.kubernetes.io/part-of: google-cloud-managed-prometheus
spec:
  selector:
    matchLabels:
      app.kubernetes.io/name: grafana
  endpoints:
    - port: grafana
      interval: 30s

まとめ

見れるダッシュボード

  • AlertManager / Overview
  • Grafana Overview
  • Kubernetes / Compute Resources / Multi-Cluster
  • Kubernetes / Compute Resourcees / Cluster
  • Kubernetes / Compute Resources / Namespace (Pods)
  • Kubernetes / Compute Resources / Namespace (Workloads)
  • Kubernetes / Compute Resources / Node (Pods)
  • Kubernetes / Compute Resources / Pod
  • Kubernetes / Compute Resources / Workload
  • Kubernetes / Kubelet
  • Kubernetes / Networking / Cluster
  • Kubernetes / Networking / Namespace (Pods)
  • Kubernetes / Networking / Namespace (Workloads)
  • Kubernetes / Networking / Pod
  • Kubernetes / Networking / Workload
  • Kubernetes / Persistent Volumes
  • Node Exporter / Nodes
  • Node Exporter / USE Method / Cluster
  • Node Exporter / USE Method / Node

見れないダッシュボード

  • CoreDNS
  • Kubernetes / API server
  • Kubernetes / Controller Manager
  • Kubernetes / Proxy
  • Kubernetes / Scheduler
  • Prometheus / Overview
  • etcd

未検証のダッシュボード

  • Node Exporter / MacOS

見れないダッシュボードのうち、api-server、 kube-proxy、kube-scheduler、controller-managerについては、GKEのCloudMonitoringを有効にしたらメトリクスが取れるんじゃないかと思い、試しました。

メトリクスは取得できるようになるものの、詳細なメトリクスデータは排出されていなかったため、ダッシュボードにはほとんど表示されませんでした。

申し訳ございませんが、MacOSは使っていないので未検証です。

以上です。
最初メトリクスが表示されず悩んだので誰かの助けになれば幸いです。


採用情報
お問い合わせ