はじめに
自作アプリをおうちk8sで動かしているのですが、実際におうちk8sを動かしているのはラズベリーパイ上なので、ラズベリーパイのパフォーマンス状態はきになります。
そこで、今回はNode Exporterを実装することで、ラズベリーパイのパフォーマンス状態をGrafanaに表示するところまで確認してみます。
各種実装
grafana
grafana周り設定をします。
以下のようにファイルを新たに追加しました。
grafana/
├── charts
│ └── grafana-dashboards
│ ├── Chart.yaml
│ ├── dashboards
│ │ ├── node-metrics.json ## ★ここにファイル追加
│ │ ・・・
│ └── templates
│ ├── dashboard-node-metrics.yaml ## ★ここにファイル追加
│ ・・・
├── grafana-value.yaml
├── helmfile.yaml
├── loki-value.yaml
└── promtail-values.yamldashboard-node-metrics.yamlは以下のように記載します。
apiVersion: v1
kind: ConfigMap
metadata:
name: grafana-dashboard-node-metrics
labels:
grafana_dashboard: "1"
data:
node-metrics.json: |
{{ .Files.Get "dashboards/node-metrics.json" | nindent 4 }}node-metrics.jsonをConfigMap の data.node-metrics.json として埋め込んでいます。
prometheusディレクトリを作成し、以下の2つのファイルを配置しています。
├── prometheus
├── helmfile.yaml
└── prometheus.yamlhelmfile.yamlにprometheus-communityの記載をします。
helmfile.yamlの中身は以下のようになります。
repositories:
- name: prometheus-community
url: https://prometheus-community.github.io/helm-charts
releases:
- name: prometheus
namespace: monitoring
chart: prometheus-community/prometheus
values:
- ./prometheus.yamlprometheus.yamlの中身は以下のようになります。
alertmanager:
enabled: false
kube-state-metrics:
enabled: false
prometheus-pushgateway:
enabled: false- alertmanager.enabled: false
- 現状ではAlertmanagerを作らない設定にしています。
- AlertmanagerはメールやSlackなどへの通知などをしてくれます。
- kube-state-metrics.enabled: false
- 現状ではkube-state-metricsを作らない設定にしています。
- kube-state-metricsはDeployment、Node、Job など Kubernetes オブジェクトの状態をメトリクス化してくれます。
- prometheus-pushgateway.enabled: false
- 現状ではPushgatewayを作らない設定にしています。
- Pushgatewayはバッチ処理などがPrometheusにpullされる代わりに、push(送信)されたメトリクスを一時的に置いておくサーバーです。
今回はとりあえず、Node exporterが動くところまでの検証までなので、ここら辺の検証はそのうち実施したいと思っています。
victoriametrics関連の追記
vmagent-values.yamlに以下のハイライトのところを追加で記載します。
config:
global:
scrape_interval: 30s
scrape_configs:
・・・【略】・・・
- job_name: node-exporter
metrics_path: /metrics
static_configs:
- targets:
- prometheus-prometheus-node-exporter.monitoring.svc.cluster.local:9100dashboardで確認
Grananaのdashboadで確認すると、以下のようにNode Exporterから送られた、CPU使用量、メモリ使用量、Load Averageが確認できました。

最後に
今回は、ラズパイの負荷状況を可視化することができました。
今度、Alartmanagerや他の設定もしておきます。
