3.6.4.2. DevWorkspace Operator のモニタリング
DevWorkspace Operator が公開するメトリクスを処理するために、モニタリングスタックの例を設定できます。
3.6.4.2.1. Prometheus による DevWorkspace Operator メトリクスの収集
Prometheus を使用して、DevWorkspace Operator に関するメトリクスを収集、保存、および照会するには、以下を実行します。
前提条件
-
devworkspace-controller-metricsサービスは、ポート8443でメトリクスを公開している。これはデフォルトで事前設定されています。 -
devworkspace-webhookserverサービスは、ポート9443でメトリクスを公開している。これはデフォルトで事前設定されています。 -
Prometheus 2.26.0 以降が動作している。Prometheus コンソールは、ポート
9090で実行されており、対応するサービスがあります。Prometheus を初めて実行するための手順 について参照してください。
手順
ClusterRoleBinding を作成して、Prometheus に関連付けられた ServiceAccount を devworkspace-controller-metrics-reader ClusterRole にバインドします。モニターリングスタックのサンプル では、使用される ServiceAccount の名前は
prometheusです。注記DevWorkspace メトリクスへのアクセスはロールベースアクセスコントロール (RBAC) で保護されているため、ClusterRoleBinding がないとアクセスできません。
例3.31 clusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: devworkspace-controller-metrics-binding subjects: - kind: ServiceAccount name: prometheus namespace: monitoring roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: devworkspace-controller-metrics-readerPrometheus は、
devworkspace-controller-metricsサービスが公開するポート8443と、devworkspace-webhookserverサービスが公開するポート9443からメトリクスを収集するように設定します。注記モニターリングスタックのサンプル では、空の設定で
prometheus-configConfigMap がすでに作成されています。Prometheus 設定の詳細を指定するには、ConfigMap のdataフィールドを編集します。例3.32 Prometheus の設定
apiVersion: v1 kind: ConfigMap metadata: name: prometheus-config namespace: monitoring data: prometheus.yml: |- global: scrape_interval: 5s 1 evaluation_interval: 5s 2 scrape_configs: 3 - job_name: 'DevWorkspace' scheme: https authorization: type: Bearer credentials_file: '/var/run/secrets/kubernetes.io/serviceaccount/token' tls_config: insecure_skip_verify: true static_configs: - targets: ['devworkspace-controller-metrics.<DWO_project>:8443'] 4 - job_name: 'DevWorkspace webhooks' scheme: https authorization: type: Bearer credentials_file: '/var/run/secrets/kubernetes.io/serviceaccount/token' tls_config: insecure_skip_verify: true static_configs: - targets: ['devworkspace-webhookserver.<DWO_project>:9443'] 5- 1
- ターゲットが収集されるレート。
- 2
- 記録およびアラートルールを再チェックするレート。
- 3
- Prometheus が監視するリソースデフォルトの設定では、2 つのジョブ (
DevWorkspaceおよびDevWorkspace webhooks) が、devworkspace-controller-metricsサービスおよびdevworkspace-webhookserverサービスによって公開された時系列データを収集します。 - 4
- ポート
8443からのメトリクスのスクレイプターゲット。<DWO_project>を、devworkspace-controller-metricsServiceが置かれているプロジェクトに置き換えます。 - 5
- ポート
9443からのメトリクスのスクレイプターゲット。<DWO_project>を、devworkspace-webhookserverServiceが置かれているプロジェクトに置き換えます。
PrometheusDeployment をスケールダウンおよびスケールアップし、直前の手順で更新された ConfigMap を読み取ります。$ oc scale --replicas=0 deployment/prometheus -n monitoring && oc scale --replicas=1 deployment/prometheus -n monitoring
検証
ポート転送を使用して、ローカルで
Prometheusサービスにアクセスします。$ oc port-forward svc/prometheus 9090:9090 -n monitoring
-
localhost:9090/targetsでターゲットエンドポイントを表示して、すべてのターゲットが稼働していることを確認します。 Prometheus コンソールを使用して、メトリクスを表示および照会します。
-
localhost:9090/metricsでメトリクスを表示します。 localhost:9090/graphからメトリクスをクエリーします。詳細は、Using the expression browser を参照してください。
-