Verrazzanoのモニタリング・コンポーネントの理解
Verrazzanoメトリック・スタックは、メトリック集計を自動化し、Prometheus、ThanosおよびGrafanaコンポーネントで構成されます。メトリック・ソースは、システム・メトリックおよびアプリケーション・メトリックを公開します。PrometheusおよびThanosコンポーネントはメトリックを取得および格納し、Grafanaはそれをビジュアル化するためのダッシュボードを提供します。
次は、単一クラスタ環境でのメトリック収集を表したものです。
メトリック・ソース
次の項では、VerrazzanoがOAMおよび標準のKubernetesアプリケーションに提供しているメトリック・ソースについて説明します。
OAM
メトリック・ソースは、メトリックを生成し、ポッド内の注釈を使用してKubernetes Prometheusシステムに公開します。メトリックの注釈は、リソース・タイプによって若干異なる場合があります。次に、todo-list
アプリケーション・ポッドで指定されたWebLogic Prometheus関連の構成の例を示します:
$ kubectl describe pod tododomain-adminserver -n todo-list
Annotations: prometheus.io/path: /wls-exporter/metrics
prometheus.io/port: 7001
prometheus.io/scrape: true
CoherenceやHelidonなどの他のリソース・タイプの場合、注釈は次のようになります:
Annotations: verrazzano.io/metricsEnabled: true
verrazzano.io/metricsPath: /metrics
verrazzano.io/metricsPort: 8080
メトリック・ソースによって使用可能になっているメトリックを直接表示するには、ポートをマップしてからパスにアクセスします。
たとえば、前述のメトリック・ソースの場合:
-
メトリックの公開に使用されるポートをマップします。
$ kubectl port-forward tododomain-adminserver 7001:7001 -n todo-list
-
対応するシークレットからメトリック・ソースへのアクセスに使用するユーザー名とパスワードを取得します。
$ kubectl get secret \ --namespace todo-list tododomain-weblogic-credentials \ -o jsonpath={.data.username} | base64 \ --decode; echo $ kubectl get secret \ --namespace todo-list tododomain-weblogic-credentials \ -o jsonpath={.data.password} | base64 \ --decode; echo
-
前のステップで取得したユーザー名とパスワードを使用して、エクスポートしたパスのメトリックにアクセスします。
$ curl -u USERNAME:PASSWORD localhost:7001/wls-exporter/metrics
標準のKubernetesワークロード
Verrazzanoでは、OAMコンポーネントなしでデプロイされたKubernetesワークロードのメトリック・ソースの有効化がサポートされます。Kubernetesワークロードのメトリックを有効化するには、必要に応じてサービス・モニターまたはポッド・モニターを作成する必要があります。
メトリック・トレイトで使用するサービス・モニターにはメトリック収集のためのサービスが必要です。
サービス・モニターおよびポッド・モニターの詳細は、Prometheusオペレータのドキュメントを参照してください。
ワークロードのためにサービス・モニターまたはポッド・モニターを作成する場合は、モニター・リソース上に値がprometheus-operator
のラベルrelease
を含めます。
メトリック収集の検証
ワークロードのメトリックが収集されていることを確認するには、次のステップを実行します。
- Prometheusコンソールにアクセスします。
- コンソールから、ナビゲーション・バーを使用して「Status/Targets」にアクセスします。
- このページには、
<monitor-type>/<workload-namespace>_<workload-name>_<workload-type>
という形式のターゲット名が表示されます。monitor-type
はserviceMonitorまたはpodMonitorです。 - 将来の問合せで使用できるように、ターゲット・ラベルからこのジョブ名をコピーします。
- このターゲットの「State」が
「UP」
になっていることを確認します。 - 次に、ナビゲーション・バーを使用して「Graph」にアクセスします。
- ここでは、コピーしたジョブ名を使用して次の式を作成します:
{job="<job_name>"}
- グラフを使用してこの式を実行し、アプリケーション・メトリックが表示されることを確認します。
メトリック収集を確認できない場合は、ワークロードのサービスを手動で作成する必要がある場合があります。
Prometheusの解決方法の詳細は、「Prometheusのトラブルシューティング」を参照してください。
レガシー・ワークロード
以前のバージョンのVerrazzano (1.3.x以前)のメトリック・ソースであった標準のKubernetesワークロードは、新しいバージョンのVerrazzanoにアップグレードしたときも、引き続きサポートされます。
レガシー・デフォルト・メトリック・テンプレートを使用したワークロードの場合、Verrazzanoはワークロードのネームスペースにサービス・モニターを作成し、メトリックが引き続きスクレイピングされるようにします。サービス・モニターを編集することで、メトリック・ソース構成を継続的に変更できます。
レガシー・カスタム・メトリック・テンプレートを使用したワークロードの場合、VerrazzanoはPrometheusオペレータを構成し、メトリックが引き続きスクレイピングされるようにします。
メトリック・サーバー
- Verrazzanoは、Prometheusオペレータを
verrazzano-monitoring
ネームスペースにインストールします。 - 1つのPrometheusポッドが、Prometheusオペレータによって同じネームスペースに作成されます。
- 公開されているメトリック・ソース・エンドポイントを検出します。
- メトリック・ソースからメトリックをスクレイピングします。
- すべてのメトリックを公開する責任があります。