第2章 Amazon Web Services (AWS) 上の Red Hat Developer Hub の監視とログ記録
リアルタイム監視には Amazon CloudWatch を使用し、包括的なロギングには Amazon Prometheus を使用するように Red Hat Developer Hub を設定できます。これは、Amazon Web Services (AWS) インフラストラクチャーで Developer Hub をホストする場合に便利です。
2.1. Amazon Prometheus によるモニタリング
包括的なロギングのために Amazon Prometheus を使用するように Red Hat Developer Hub を設定できます。Amazon Prometheus は、特定の Pod アノテーションを持つ Pod からデータを抽出します。
2.1.1. 前提条件
- Elastic Kubernetes Service (EKS) クラスター用に Prometheus を設定した。
- Prometheus ワークスペース用の Amazon マネージドサービスを作成した。
- Developer Hub メトリクスをインポートするように Prometheus を設定した。
- 作成されたワークスペースに Prometheus メトリクスを取り込んだ。
2.1.2. Red Hat Developer Hub Operator を使用して Amazon Prometheus でモニタリングするアノテーションの設定
Amazon Prometheus へのログ記録を有効にするには、Red Hat Developer Hub Operator を使用して必要な Pod アノテーションを設定できます。
手順
Red Hat Developer Hub Operator の管理者として、次のようにデフォルト設定を編集して Prometheus アノテーションを追加します。
Update OPERATOR_NS accordingly OPERATOR_NS=rhdh-operator kubectl edit configmap backstage-default-config -n "${OPERATOR_NS}"
# Update OPERATOR_NS accordingly $ OPERATOR_NS=rhdh-operator $ kubectl edit configmap backstage-default-config -n "${OPERATOR_NS}"
Copy to Clipboard Copied! config map で
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
などの関連メトリクスを監視します。
2.1.3. Red Hat Developer Hub Helm チャートを使用して Amazon Prometheus でモニタリングするアノテーションの設定
Amazon Prometheus へのログ記録を有効にするには、Red Hat Developer Hub Helm チャートを使用して必要な Pod アノテーションを設定できます。
手順
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!
検証
スクレイピングが機能するかどうかを確認するには、以下の手順を実行します。
次のように、
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
などの関連メトリクスを監視します。