This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.5.11. Prometheus による組み込みモニタリングの設定
以下では、Prometheus Operator を使用して Operator SDK いよって提供されるビルトインされたモニタリングサポートについて説明し、Operator 作成者がどのように使用できるかについて詳しく説明します。
5.11.1. Prometheus Operator のサポート リンクのコピーリンクがクリップボードにコピーされました!
Prometheus はオープンソースのシステムモニタリングおよびアラートツールキットです。Prometheus Operator は、 OpenShift Container Platform などの Kubernetes ベースのクラスターで実行される Prometheus クラスターを作成し、設定し、管理します。
ヘルパー関数は、デフォルトで Operator SDK に存在し、Prometheus Operator がデプロイされているクラスターで使用できるように生成された Go ベースの Operator にメトリックを自動的にセットアップします。
5.11.2. カスタムメトリクスの公開 リンクのコピーリンクがクリップボードにコピーされました!
Operator の作成者は、controller-runtime/pkg/metrics
ライブラリーのグローバル Prometheus レジストリーを使用してカスタムメトリックを公開できます。
前提条件
- Operator SDK を使用して生成される Go ベースの Operator
- Prometheus Operator (デフォルトで OpenShift Container Platform クラスターにデプロイされます)
手順
Operator SDK プロジェクトで、
config/default/kustomization.yaml
ファイルの次の行のコメントを解除します。../prometheus
../prometheus
Copy to Clipboard Copied! Toggle word wrap Toggle overflow カスタムコントローラークラスを作成して、Operator からの追加のメトリックを公開します。次の例では、
widgets
とwidget Failures
コレクターをグローバル変数として宣言してコントローラーのパッケージのinit()
関数に登録します。例5.6
controllers/memcached_controller_test_metrics.go
ファイルCopy to Clipboard Copied! Toggle word wrap Toggle overflow main
コントローラークラスの調整ループの任意の部分から、これらのコレクターに記録し、これをもとにメトリックのビジネスロジックを決定します。例5.7
controllers/memcached_controller.go
ファイルCopy to Clipboard Copied! Toggle word wrap Toggle overflow Operator をビルドし、プッシュします。
make docker-build docker-push IMG=<registry>/<user>/<image_name>:<tag>
$ make docker-build docker-push IMG=<registry>/<user>/<image_name>:<tag>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Operator をデプロイします。
make deploy IMG=<registry>/<user>/<image_name>:<tag>
$ make deploy IMG=<registry>/<user>/<image_name>:<tag>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ロールおよびロールバインディング定義を作成して、Operator のサービスモニターが OpenShift Container Platform クラスターの Prometheus インスタンスによってスクレイプされるようにします。
サービスアカウントに namespace のメトリックをスクレイプする権限が指定されるように、ロールを割り当てる必要があります。
例5.8
config/prometheus/role.yaml
ロールCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例5.9
config/prometheus/rolebinding.yaml
ロールバインディングCopy to Clipboard Copied! Toggle word wrap Toggle overflow デプロイされた Operator にロールとロールバインディングを適用します。
oc apply -f config/prometheus/role.yaml
$ oc apply -f config/prometheus/role.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc apply -f config/prometheus/rolebinding.yaml
$ oc apply -f config/prometheus/rolebinding.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow スクレイプするネームスペースのラベルを設定します。これにより、そのネームスペースの OpenShift クラスターモニターリングが有効になります。
oc label namespace <operator_namespace> openshift.io/cluster-monitoring="true"
$ oc label namespace <operator_namespace> openshift.io/cluster-monitoring="true"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
-
OpenShift Container Platform Web コンソールでメトリックを照会および表示します。カスタムコントローラークラスで設定された名前 (
widgets_total
やwidget_failures_total
など) を使用できます。