第2章 Red Hat Developer Hub の Amazon Web Services (AWS) によるモニタリングおよびロギング
Red Hat Developer Hub では、Amazon Web Services (AWS) の統合により、モニタリングおよびロギングが容易になります。リアルタイム監視のための Amazon CloudWatch や、包括的なログ記録のための Amazon Prometheus などの機能を使用すると、AWS インフラストラクチャーでホストされている Developer Hub アプリケーションの信頼性、スケーラビリティー、およびコンプライアンスを確保できます。
この統合により、Red Hat エコシステム内でアプリケーションを監視、診断、改良できるようになり、開発と運用のプロセスが改善されます。
2.1. Amazon Prometheus によるモニタリング
Red Hat Developer Hub は、実行中のアプリケーションに関連する Prometheus メトリクスを提供します。EKS クラスターで Prometheus を有効化またはデプロイする方法の詳細は、Amazon ドキュメントの Prometheus metrics を参照してください。
Amazon Prometheus を使用して Developer Hub を監視するには、Prometheus ワークスペース用の Amazon マネージドサービスを作成し、Developer Hub Prometheus メトリクスの取り込みを設定する必要があります。詳細は、Amazon ドキュメントの Create a workspace セクションおよび Ingest Prometheus metrics to the workspace セクションを参照してください。
作成したワークスペースに Prometheus メトリクスを取り込んだら、特定の Pod アノテーションに基づいて、Pod からデータを抽出するためのメトリクススクレイピングを設定できます。
2.1.1. モニタリング用のアノテーションの設定
Helm デプロイメントと Operator がサポートするデプロイメントの両方で監視用のアノテーションを設定できます。
- Helm のデプロイメント
backstage Pod に監視用のアノテーションを付けるには、
values.yaml
ファイルを次のように更新します。upstream: backstage: # --- TRUNCATED --- podAnnotations: prometheus.io/scrape: 'true' prometheus.io/path: '/metrics' prometheus.io/port: '9464' prometheus.io/scheme: 'http'
upstream: backstage: # --- TRUNCATED --- podAnnotations: prometheus.io/scrape: 'true' prometheus.io/path: '/metrics' prometheus.io/port: '9464' prometheus.io/scheme: 'http'
Copy to Clipboard Copied! - Operator がサポートするデプロイメント
手順
Operator の管理者として、デフォルト設定を編集して、次のように Prometheus アノテーションを追加します。
Update OPERATOR_NS accordingly
# Update OPERATOR_NS accordingly OPERATOR_NS=rhdh-operator kubectl edit configmap backstage-default-config -n "${OPERATOR_NS}"
Copy to Clipboard Copied! ConfigMap で
deployment.yaml
キーを見つけて、次のようにアノテーションをspec.template.metadata.annotations
フィールドに追加します。deployment.yaml: |- apiVersion: apps/v1 kind: Deployment # --- truncated --- spec: template: # --- truncated --- metadata: labels: rhdh.redhat.com/app: # placeholder for 'backstage-<cr-name>' # --- truncated --- annotations: prometheus.io/scrape: 'true' prometheus.io/path: '/metrics' prometheus.io/port: '9464' prometheus.io/scheme: 'http' # --- truncated ---
deployment.yaml: |- apiVersion: apps/v1 kind: Deployment # --- truncated --- spec: template: # --- truncated --- metadata: labels: rhdh.redhat.com/app: # placeholder for 'backstage-<cr-name>' # --- truncated --- annotations: prometheus.io/scrape: 'true' prometheus.io/path: '/metrics' prometheus.io/port: '9464' prometheus.io/scheme: 'http' # --- truncated ---
Copy to Clipboard Copied! - 変更を保存します。
検証
スクレイピングが機能するかどうかを確認するには、以下の手順を実行します。
次のように、
kubectl
を使用して Prometheus コンソールをローカルマシンにポート転送します。kubectl --namespace=prometheus port-forward deploy/prometheus-server 9090
kubectl --namespace=prometheus port-forward deploy/prometheus-server 9090
Copy to Clipboard Copied! -
Web ブラウザーを開いて
http://localhost:9090
に移動し、Prometheus コンソールにアクセスします。 -
process_cpu_user_seconds_total
などの関連メトリクスを監視します。