GH GambleHub

インフラストラクチャのダッシュボード

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:ルール、異常トラフィック(ボット/スクラッパー)によってブロックされます。
例(Nginx):
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。

PostgreSQL(例):
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クエリ)。
トレース:トップスロースパン、トレース・コンテキストのないリクエストの割合。

LogQLの例:

{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の例(「5xx or p95> threshold」というエラー):
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
💡 'SLO'とマルチウィンドウ、マルチバーン係数を置き換えます。

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です。変数、視覚パターン、および所有者を標準化する。ログ/トラックへのドリルダウンを提供し、バーンレートのアラートを自動化します。これにより、プラットフォーム全体のレベルで予測可能性、反応速度、コストの透明性が得られます。

Contact

お問い合わせ

ご質問やサポートが必要な場合はお気軽にご連絡ください。いつでもお手伝いします!

Telegram
@Gamble_GC
統合を開始

Email は 必須。Telegram または WhatsApp は 任意

お名前 任意
Email 任意
件名 任意
メッセージ 任意
Telegram 任意
@
Telegram を入力いただいた場合、Email に加えてそちらにもご連絡します。
WhatsApp 任意
形式:+国番号と電話番号(例:+81XXXXXXXXX)。

ボタンを押すことで、データ処理に同意したものとみなされます。