インフラストラクチャのダッシュボード
1)なぜそれを必要とします
クラスタやネットワークからデータベースやキューまで、ステートの1つの画像。
Fast RCAとpost-mortems:大量のメトリクス↔ログ↔トレース。
サービスとプラットフォームによるSLO:可用性とレイテンシを制御します。
FinOpsの透明性:サービス、テナント、環境によるボリューム/コスト。
コンプライアンス/セキュリティ:パッチ/脆弱性、アクセス、異常のステータス。
方法論:ゴールデンシグナル(レイテンシー、トラフィック、エラー、彩度)、リクエストのRED(レート、エラー、期間)、リソースの使用(使用率、彩度、エラー)。
2)良いダッシュボードの原則
Actionable-Eachパネルは「次に何をすべきか」に応答します。
階層:概要→ドメイン→ディープダイブ→raw。
テンプレート/変数:'cluster'、 'namespace'、 'service'、 'tenant'、 'env'。
ユニフォームユニット:レイテンシ、%,RPS、 ops/sec、バイトのms。
一貫したタイムピッカー:デフォルト1-6時間、速いプリセット5m/15m/24h。
ドリルダウン:パネルからログ(Loki/ELK)とトラック(Tempo/Jaeger)へ。
所有者:所有者はダッシュボード、SLO、 runbook、電話での連絡先に表示されます。
3)フォルダ構造と役割
00_Overview-プラットフォームのハイレベルな概要。
10_Kubernetes-クラスタ、ノード、ワークロード、HPA/VPA、コンテナ。
20_Network_Edge-Ingress/Envoy/Nginx、 LB、 DNS、 CDN、 WAF。
30_Storage_DB-PostgreSQL/MySQL、 Redis、 Kafka/RabbitMQ、オブジェクトストレージ。
40_CICD_Runner-パイプライン、エージェント、アーティファクト、レジストリ。
50_Security_Compliance-脆弱性、パッチ、RBAC、監査イベント。
60_FinOps_Cost-サービス/テナント/クラスター、処分あたりのコスト。
99_Runbooks-指示とSLOカードへのリンク。
役割:プラットフォームSRE(フルアクセス)、サービスオーナー(独自のスペース)、セキュリティ/コンプライアンス、ファイナンス/FinOps、ビューのみ。
4)プラットフォームの概要ダッシュボード(ランディング)
目標:すべてが順番にあるかどうかを理解する≤ 30秒で。
推奨パネル:- SLOプラットフォーム(API可用性エッジ):ターゲット値、実際、エラーの時代、バーンレート。
- 主要なエントリポイントによるp50/p95/p99レイテンシ。
- 4xx/5xxエラーとリグレッションのトップエンドポイント。
- リソース飽和(CPU、 RAM、ネットワーク、ディスク)-クラスタ別p95。
- インシデント/アラート(アクティブ)および最近のリリース。
- 週によって費用/時間(おおよその)および傾向。
変数テンプレート:'env'、 'region'、 'cluster'、 'tenant'。
5) Kubernetes: クラスターとワークショップ
主なグループ:1.クラスタ/ノード
CPU/メモリ廃棄、圧力(メモリ/cpu)、 IOディスク、inode。
サブシステム:kube-api、 etcd、コントローラ;kubeletの健康。
2.Vorkloads(ヴォークロード)
RPS/RPM、レイテンシp95、エラーレート、再起動、スロットリング、OOMKills。
HPAターゲットと実際の指標。
3.クラスタ内のネットワークパス
eBPF/Netflow:トップトーカー、ドロップ、再送信。
4.イベントK8s
Warning/FailedScheduling/BackOffを評価します。
PromQLの例:promql
API (5xx) errors by sum by (service) (rate (http_requests_total{status=~"5"..}[5m]))
Latency p95 histogram_quantile (0. 95, sum by (le, service) (rate(http_request_duration_seconds_bucket[5m])))
Throttling CPU контейнеров sum by (namespace, pod) (rate(container_cpu_cfs_throttled_seconds_total[5m]))
6)端、格子およびDNS
パネル:- Ingress/Envoy/Nginx: RPS、 p95、 4xx/5xx、 upstream_errors、 active_conns。
- LB/Anycast:ゾーン別トラフィックの配布、フェイルオーバーイベント。
- DNS:解像度レイテンシ、NXDOMAIN/SERVFAILレート、ヒット比キャッシュ。
- CDN/WAF:ルール、異常トラフィック(ボット/スクラッパー)によってブロックされます。
promql sum(rate(nginx_http_requests_total[5m])) by (status)
7)データベースとストレージ
PostgreSQL/MySQL: qps、 latency、 lock wait、 replication lag、 backup/failures。
Redis:ヒット比、立ち退き、メモリ、遅いコマンド。
Kafka/RabbitMQ:消費者グループによる遅延、リバランス、Unackedメッセージ。
オブジェクトストレージ:クエリ、エラー、出力、lat p95。
promql
Replication lag in seconds max by (replica) (pg_replication_lag_seconds)
Slow Queries> 1s rate (pg_stat_activity_longqueries_total[5m])
カフカ(例):
promql
Lag by group max by (topic, group) (kafka_consumergroup_lag)
8) CI/CDおよびアーティファクト
パイプラインの概要:成功/ランタイム、ランナーキュー。
展開の正常性:バージョン、カナリア/ブルーグリーンのステータス、ウォームアップタイム。
イメージレジスタ:サイズ、最後のプッシュ'と、処分。
promql
Rate (ci_pipeline_success_total[1h] )/rate (ci_pipeline_total[1h]) success rate
9)安全性とコンプライアンス
パッチと脆弱性:重要なCVEを持つノード/イメージの割合、平均「パッチする時間」。
RBACと秘密:アクセスの試み、秘密へのアクセスに失敗しました。
監査イベント:重要なコンポーネントの入力/変更、ドリフト。
WAF/DLP/PIIリビジョン:ルールロック、マスキングエラー。
10)ログとトレイル: エンドツーエンドレビュー
ログからのエラーの要約(Loki/ELK):トップ例外、新しい署名。
ボタン「フィルタでログに移動」(LogQL/ESクエリ)。
トレース:トップスロースパン、トレース・コンテキストのないリクエストの割合。
{app="api", level="error"} = "NullReference"
{app="nginx"} json status="5.." count_over_time([5m])
11) FinOps: 費用および処分
サービス/テナント/クラスター(請求/輸出業者による)によるコスト。
ホット/コールドノード:アイドルリソース、右サイジング推奨(CPU/MEM)。
データ出力、L7要求、およびそのコスト。
ダイナミクス:週/月、予測。
- cost_per_rps、 cost_per_request、 storage_cost_gb_day、 idle_cost。
- 効率係数:'RPS/$'または'SLO-minutes/$'。
12) SLO、バグおよびバーンレート
各ドメインダッシュボードのSLOカード:目標、期間、エラー(予算)。
バーンレートアラート(2つの速度:高速/遅い)。
promql
Bad budget: 5xx as a fraction of sum (rate (http_requests_total{status=~"5"..}[5m])) traffic
/
sum(rate(http_requests_total[5m]))
Burn-rate (fast channel ~ 1h)
(
sum(rate(http_requests_total{status=~"5.."}[1m])) /
sum(rate(http_requests_total[1m]))
) / (1 - SLO) > 14. 4
13)可視化基準
パネルタイプ:シリーズのタイムシリーズ、KPIのスタット、トップNのテーブル、レイテンシのヒートマップ。
凡例と単位:必須;短縮されたラベル、SIフォーマット。
カラーゾーン:SLO/しきい値(ユニフォーム)による緑/黄色/赤。
パネルの説明:私たちが測定するもの、ソース、runbookリンク、所有者。
14)パネルテンプレート(クイックスタート)
(A) APIの概要
KPI: 'RPS'、 'p95'、 '5xx%'、 'error_budget_remaining'。
エラー/レイテンシーによるトップエンドポイント。
'trace_id=$trace'ログのドリルダウン。
(B)ノードの健全性
CPU/メモリ/ディスク/ネットワーク-ノード別p95、 「hot」のリスト。
圧力、スロットリング、パッケージの低下。
(C) DB健康
TPS、レイテンシp95、ロック、レプリケーションラグ、遅いクエリ。
バックアップステータス/最新の成功。
(D)カフカラグ
グループ別のラグ、消費率対生産、リバランス。
(E)コスト&Util
サービスによるコスト/時間、アイドル%、右サイジングのヒント、予測。
15)変数および札(推薦されたセット)
'env' (prod/stage/dev)
'region'/'az'
'cluster'
'namespace'/'service'/'workload'
'tenant'
'component' (edge/db/cache/queue)
'version' (release/git_sha)
16)アラートおよびインシデント管理との統合
Alertmanager/Graphanaのルールは、目的のダッシュボードと既に置換された変数へのリンクで警告します。
SLO基準でP1/P2し、オンコールに自動割り当てます。
グラフ上のリリース/インシデントの注釈。
17)ダッシュボードの品質: チェックリスト
- 所有者と連絡先。
- SLO/しきい値がドキュメント化されています。
- 変数が動作し、クエリのサイズを制限します。
- ユニットと凡例を持つすべてのパネル。
- ログ/トラックにドリルダウンします。
- パネルは2-3「スクリーン」に合います(キロメートルごとのスクロールなしで)。
- 応答時間≤ 2-3秒(キャッシュ、ダウンサンプル)。
- デッドパネルや劣化したメトリックはありません。
18)ダッシュボード自体のパフォーマンスとコスト
重い集計のためのダウンサンプリング/記録ルール。
キャッシュ(query-frontend/repeater)と範囲/ステップ制限。
テストハンガー:典型的なダッシュボードリクエストのためにTSDB/クラスタにロードします。
ラベルの消毒(低いカーディナリティ)、ワイルドカードの放棄。
19)実施計画(反復)
1.週1:ランディング+K8s/Edgeレビュー、基本的なSLO、所有者。
2.第2週:DB/キュー、ログとトレースの統合(ドリルダウン)、バーンレートのアラート。
3.第3週:FinOpsダッシュボード、右サイジングの推奨事項、コストレポート。
4.週4+:セキュリティ/コンプライアンス、SLOカード自動生成、ダッシュボード回帰テスト。
20) ミニFAQ
ダッシュボードはいくつ必要ですか?
少なくとも1レビュー+ドメインあたり1レビュー(K8s、エッジ、DB、キュー、CI/CD、セキュリティ、コスト)。あとは成熟度です。
より重要なのは、メトリクスやログですか?
症状とSLOのメトリック、原因のログ。'trace_id'と一貫したラベルをバンドルします。
パネルに「溺れないように」するには?
階層、明示的な所有者、メートルの衛生、定期的なレビューと「死んだ」パネルの削除。
合計
インフラストラクチャダッシュボードは「美しいグラフ」ではなく、管理ツールです。SLO制御、高速RCA、意識的なFinOpsです。変数、視覚パターン、および所有者を標準化する。ログ/トラックへのドリルダウンを提供し、バーンレートのアラートを自動化します。これにより、プラットフォーム全体のレベルで予測可能性、反応速度、コストの透明性が得られます。