Cluster Observability Operator


OpenShift Container Platform 4.16

OpenShift Container Platform での Cluster Observability Operator の設定と使用

Red Hat OpenShift Documentation Team

概要

Cluster Observability Operator を使用して、OpenShift Container Platform で可観測性コンポーネントをデプロイして設定します。

第1章 Cluster Observability Operator リリースノート

Cluster Observability Operator (COO) は、オプションの OpenShift Container Platform Operator です。管理者はこれを使用して、さまざまなサービスやユーザーが使用できるように個別に設定できる、スタンドアロンのモニタリングスタックを作成できます。

COO は、OpenShift Container Platform のビルトインモニタリング機能を補完します。これは、Cluster Monitoring Operator (CMO) で管理されるデフォルトのプラットフォームおよびユーザーワークロードモニタリングスタックと並行してデプロイできます。

これらのリリースノートは、OpenShift Container Platform での Cluster Observability Operator の開発を追跡します。

次の表に、Cluster Observability Operator と OpenShift Container Platform のバージョンに応じて利用可能な機能に関する情報を示します。

Expand
COO のバージョンOCP のバージョン分散トレーシングロギングトラブルシューティングパネルACM アラートインシデント検出

1.1 以降

4.12 - 4.14

1.1 以降

4.15

1.1 以降

4.16 - 4.18

1.2 以降

4.19 以降

1.1. Cluster Observability Operator 1.2.2

Cluster Observability Operator 1.2.2 では、次のアドバイザリーを利用できます。

1.1.1. バグ修正

  • この更新前は、インシデント検出機能のインストールが時折失敗することがありました。現象としては、インシデント検出の UI は表示されるものの、データが含まれていないことなどがあります。さらに、health-analyzer ServiceMonitor リソースが失敗状態になり、tls: failed to verify certificate: x509 というエラーメッセージが表示されます。このリリースでは、インシデント検出機能が正しくインストールされます。(COO-1062)

    バグが発生していた 1.2.1 からアップグレードする場合は、問題を解決するためにモニタリング UI プラグインを再作成する必要があります。

1.1.2. 既知の問題

Cluster Observability Operator 1.2.2 の既知の問題は次のとおりです。

  • バージョン 1.2.2 をインストールする場合、またはバージョン 1.2.0 からアップグレードする場合、モニタリングプラグインの UIPlugin リソースが破損する可能性があります。これは、モニタリング UI プラグインとともに、分散トレーシング、トラブルシューティングパネル、Advance Cluster Management (ACM) をデプロイした場合に発生します。この問題は UI プラグインを再作成することで解決できます。(COO-1051)

    以前に 1.2.1 で問題を解決し、その後 1.2.2 にアップグレードした場合、この問題は再発しません。

1.2. Cluster Observability Operator 1.2.1

Cluster Observability Operator 1.2.1 では、次のアドバイザリーを利用できます。

1.2.1. バグ修正

  • この更新前は、Operator バージョン 1.2 へのアップグレード中に古いバージョンのラベルマッチャーが保持されていました。このため、Perses ダッシュボードが利用できなくなりました。このリリースでは、バージョンラベルが削除され、Perses ダッシュボードが正しく調整されるようになりました。

1.2.2. 既知の問題

Cluster Observability Operator 1.2.1 の既知の問題は次のとおりです。

  • インシデント検出機能のインストールが時折失敗することがあります。現象としては、インシデント検出の UI は表示されるものの、データが含まれていないことなどがあります。さらに、health-analyzer ServiceMonitor リソースが失敗状態になり、tls: failed to verify certificate: x509 というエラーメッセージが表示されます。この問題は、1.2.2 にアップグレードし、モニタリング UI プラグインを再作成することで解決できます。(COO-1062)
  • バージョン 1.2.1 をインストールする場合、またはバージョン 1.2.0 からアップグレードする場合、モニタリングプラグインの UIPlugin リソースが破損する可能性があります。これは、モニタリング UI プラグインとともに、分散トレーシング、トラブルシューティングパネル、Advance Cluster Management (ACM) をデプロイした場合に発生します。この問題は UI プラグインを再作成することで解決できます。(COO-1051)

1.3. Cluster Observability Operator 1.2

Cluster Observability Operator 1.2 では、次のアドバイザリーを利用できます。

1.3.1. 新機能および機能拡張

  • ロギング UI プラグインが、以前サポートされていた ViaQ スキームに加えて、OTEL 形式もサポートするようになりました。(COO-816)
  • モニタリング UI プラグインをインストールすると、Accelerator Perses ダッシュボードがデフォルトでデプロイされます。(COO-942)
  • Korrel8r で、グラフノードごとに複数の結果が表示されるようになりました。(COO-785)
  • インシデント検出パネルで、各インシデントの詳細への直接ナビゲーションがサポートされるようになりました。これにより、Red Hat Advanced Cluster Management (RHACM) 2.14 のインシデント概要機能が有効になりました。(COO-977, ACM-18751)
  • トレースビューに高度なフィルターが追加されました。(COO-979)
  • 分散トレーシング UI プラグインが一般提供 (GA) ステータスになり、Patternfly 4、5、6 をサポートするようになりました。(COO-873)

1.3.2. バグ修正

  • 以前は、ロギング UI プラグインをインストールするための前提条件として LokiStack が必要でした。このリリースでは、LokiStack なしでロギング UI プラグインをインストールできます。(COO-760)
  • 以前は、IncidentsComponent セクションの Silence Alert ボタンでフィールドが事前に入力されず、ボタンを使用できませんでした。このリリースでこの問題が解決されました。(COO-970)

1.3.3. 既知の問題

Cluster Observability Operator 1.2.0 の既知の問題は次のとおりです。

  • COO 1.1.1 から COO 1.2 にアップグレードする場合、Perses ダッシュボードが正しく調整されないため、モニタリング UI プラグインを再インストールする必要があります。(COO-978)

1.4. Cluster Observability Operator 1.1.1

1.4.1. バグ修正

  • 以前は、Cluster Observability Operator 1.0 からアップグレードした後、多くのクラスター上の observability-operator および perses-operator の Pod が、OutOfMemory エラーが原因で CrashLoopBackOff 状態になりました。このリリースでこの問題が解決されました。(COO-784)

1.5. Cluster Observability Operator 1.1

Cluster Observability Operator 1.1 では、次のアドバイザリーを利用できます。

1.5.1. 新機能および機能拡張

  • COO を使用してモニタリング UI プラグインをインストールできるようになりました。(COO-262)
  • Thanos Web エンドポイントの TLS サポートが追加されました。(COO-222)

1.5.2. 既知の問題

Cluster Observability Operator 1.1.0 の既知の問題は次のとおりです。

1.5.3. バグ修正

  • 以前は、ロギング UI プラグインがカスタムの LokiStack 名または namespace の設定をサポートしていませんでした。このリリースでこの問題が解決されました。(COO-332)

1.6. Cluster Observability Operator 1.0

1.6.1. 新機能および機能拡張

  • COO を OpenShift Container Platform プラットフォームの監視に使用できるようになりました。(COO-476)

    • COO Web サーバーの HTTPS サポートを実装します。(COO-480)
    • COO Web サーバーの authn/authz を実装します。(COO-481)
    • COO からメトリクスを収集するように ServiceMonitor リソースを設定します。(COO-482)
    • OLM バンドルに operatorframework.io/cluster-monitoring=true アノテーションを追加します。(COO-483)
    • COO のアラートストラテジーを定義します。(COO-484)
    • アラート用の PrometheusRule を設定します。(COO-485)
  • UIPlugin CR に、サポートレベルのアノテーションが作成時に追加されるようになりました。サポートレベルはプラグインの種類に基づいています。値は DevPreviewTechPreview、または GeneralAvailability です。(COO-318)
  • Prometheus CR で Alertmanager scheme および tlsConfig フィールドを設定できるようになりました。(COO-219)
  • トラブルシューティングパネルの延長テクニカルプレビューで、トレースを Kubernetes リソースと相関させ、ログ、アラート、メトリクス、ネットワークイベントなどの他の観測可能なシグナルと直接相関させるサポートが追加されました。(COO-450)

    • Web コンソールで Observe → Tracing をクリックしてトレースページに移動すると、Tempo インスタンスとテナントを選択できます。プレビュートラブルシューティングパネルは、openshift-tracing / platform インスタンスと platform テナントでのみ機能します。
    • トラブルシューティングパネルは、Administrator パースペクティブで最も効果的に機能します。Developer パースペクティブでは、一部のバックエンド、特にメトリクスとアラート用の Prometheus での認可の問題により、機能が制限されています。これは今後のリリースで対処される予定です。

次の表に、Cluster Observability Operator と OpenShift Container Platform のバージョンに応じて利用可能な機能に関する情報を示します。

Expand
COO のバージョンOCP のバージョン分散トレーシングロギングトラブルシューティングパネル

1.0

4.12 - 4.15

1.0

4.16 以降

1.6.2. CVE

1.6.3. バグ修正

  • 以前は、COO インストールのデフォルトの namespace が openshift-operators でした。このリリースでは、デフォルトの namespace が openshift-cluster-observability-operator に変更されます。(COO-32)
  • 以前は、korrel8r で解析できるものが時系列セレクター式だけでした。このリリースでは、korrel8r は有効な PromQL 式を解析して、相関に使用する時系列セレクターを抽出できるようになりました。(COO-558)
  • 以前は、分散トレーシング UI プラグインから Tempo インスタンスを表示すると、トレースの期間を示す散布図グラフが正しくレンダリングされませんでした。バブルのサイズが大きすぎて、x 軸と y 軸に重なっていました。このリリースでは、グラフが正しくレンダリングされます。(COO-319)

1.7. 以前のテクノロジープレビューリリースで利用可能な機能

次の表に、Cluster Observability Operator と OpenShift Container Platform の以前のバージョンに応じて利用可能な機能に関する情報を示します。

Expand
COO のバージョンOCP のバージョンダッシュボード分散トレーシングロギングトラブルシューティングパネル

0.2.0

4.11

0.3.0 以降、0.4.0 以降

4.11 - 4.15

0.3.0 以降、0.4.0 以降

4.16 以降

1.8. Cluster Observability Operator 0.4.1

Cluster Observability Operator 0.4.1 では、次のアドバイザリーを利用できます。

1.8.1. 新機能および機能拡張

  • Prometheus および Alertmanager の WebTLS を設定できるようになりました。

1.8.2. CVE

1.8.3. バグ修正

  • 以前は、ダッシュボード UI プラグインを削除しても、consoles.operator.openshift.io リソースには console-dashboards-plugin が残っていました。このリリースでこの問題が解決されました。(COO-152)
  • 以前は、Web コンソールに Red Hat COO の正しいアイコンが表示されませんでした。このリリースでこの問題が解決されました。(COO-353)
  • 以前は、Web コンソールから COO をインストールすると、サポートセクションに無効なリンクが含まれていました。このリリースでこの問題が解決されました。(COO-354)
  • 以前は、COO のクラスターサービスバージョン (CSV) は、非公式のドキュメントバージョンにリンクされていました。このリリースでこの問題が解決されました。(COO-356)

1.9. Cluster Observability Operator 0.4.0

Cluster Observability Operator 0.4.0 では、次のアドバイザリーを利用できます。

1.9.1. 新機能および機能拡張

1.9.1.1. トラブルシューティング UI プラグイン
  • トラブルシューティング UI パネルが改善され、特定の開始シグナルを選択して絞り込むことができるようになりました。
  • 深さを選択するオプションにより、Korrel8r クエリーの可視性が向上しました。
  • OpenShift Container Platform バージョン 4.17 以降のユーザーは、アプリケーションランチャー app launcher からトラブルシューティング UI パネルにアクセスできます。または、バージョン 4.16 以降では、Web コンソールで ObserveAlerting をクリックしてアクセスすることもできます。

詳細は、トラブルシューティング UI プラグイン を参照してください。

1.9.1.2. 分散トレーシング UI プラグイン
  • 分散トレーシング UI プラグインが強化され、トレースの探索にガントチャートが利用できるようになりました。

詳細は、分散トレーシング UI プラグイン を参照してください。

1.9.2. バグ修正

  • 以前は、通常のユーザーが Web コンソールの Developer パースペクティブで ObserveLogs をクリックしてアクセスした場合はメトリクスを利用できませんでした。このリリースでこの問題が解決されました。(COO-288)
  • 以前は、トラブルシューティング UI プラグインによって、ネットワーク可観測性に対して誤ったフィルターが使用されていました。このリリースでこの問題が解決されました。(COO-299)
  • 以前は、トラブルシューティング UI プラグインによって、Pod ラベル検索に対して誤った URL が生成されていました。このリリースでこの問題が解決されました。(COO-298)
  • 以前は、分散トレーシング UI プラグインに認可の脆弱性がありました。このリリースでこの問題が解決されました。今後はマルチテナントの TempoStack および TempoMonolithic インスタンスのみを使用することで、分散トレーシング UI プラグインが強化されました。

1.10. Cluster Observability Operator 0.3.2

Cluster Observability Operator 0.3.2 では、次のアドバイザリーを利用できます。

1.10.1. 新機能および機能拡張

  • このリリースでは、MonitoringStack コンポーネントで toleration とノードセレクターを使用できるようになりました。

1.10.2. バグ修正

  • 以前は、ロギング UIPlugin を特定のバージョンの OpenShift Container Platform にインストールすると、ロギング UIPlugin が Available 状態にならず、ロギング Pod が作成されませんでした。このリリースでこの問題が解決されました。(COO-260)

1.11. Cluster Observability Operator 0.3.0

Cluster Observability Operator 0.3.0 では、次のアドバイザリーを利用できます。

1.11.1. 新機能および機能拡張

  • このリリースでは、Cluster Observability Operator は、今後の OpenShift Container Platform 可観測性 Web コンソール UI プラグインと可観測性コンポーネントのバックエンドサポートを追加します。

1.12. Cluster Observability Operator 0.2.0

Cluster Observability Operator 0.2.0 では、次のアドバイザリーを利用できます。

1.12.1. 新機能および機能拡張

  • このリリースでは、Cluster Observability Operator は、OpenShift Container Platform Web コンソールユーザーインターフェイス (UI) の可観測性関連プラグインのインストールと管理をサポートします。(COO-58)

1.13. Cluster Observability Operator 0.1.3

Cluster Observability Operator 0.1.3 では、次のアドバイザリーを利用できます。

1.13.1. バグ修正

  • 以前は、http://<prometheus_url>:9090/graph で Prometheus Web ユーザーインターフェイス (UI) にアクセスしようとすると、Error opening React index.html: open web/ui/static/react/index.html: no such file or directory エラーメッセージが表示されていました。このリリースでは問題が解決され、Prometheus Web UI が正しく表示されるようになりました。(COO-34)

1.14. Cluster Observability Operator 0.1.2

Cluster Observability Operator 0.1.2 では、次のアドバイザリーを利用できます。

1.14.1. CVE

1.14.2. バグ修正

  • 以前は、特定のクラスターサービスバージョン (CSV) アノテーションが COO のメタデータに含まれていませんでした。これらのアノテーションが欠落していたため、COO の一部の特長と機能がパッケージマニフェストまたは OperatorHub ユーザーインターフェイスに表示されませんでした。このリリースで、欠落していたアノテーションが追加され、この問題が解決されました。(COO-11)
  • 以前は、COO の自動更新が機能せず、OperatorHub で新しいバージョンが利用可能であっても、Operator の新しいバージョンで古いバージョンが自動的に置き換えられませんでした。このリリースでこの問題が解決されました。(COO-12)
  • 以前は、Thanos Querier が 127.0.0.1 (localhost) のポート 9090 でネットワークトラフィックのみをリッスンしていたため、Thanos Querier サービスにアクセスしようとすると 502 Bad Gateway エラーが発生しました。このリリースで、Thanos Querier 設定が更新され、コンポーネントがデフォルトポート (10902) でリッスンするようになり、問題が解決されました。この変更の結果、必要に応じて、SSA (Server Side Apply) を使用してポートを変更し、プロキシーチェーンを追加することもできるようになりました。(COO-14)

1.15. Cluster Observability Operator 0.1.1

Cluster Observability Operator 0.1.1 では、次のアドバイザリーを利用できます。

1.15.1. 新機能および機能拡張

このリリースでは、Cluster Observability Operator が更新され、制限されたネットワークまたは非接続環境での Operator のインストールがサポートされるようになりました。

1.16. Cluster Observability Operator 0.1

このリリースでは、Cluster Observability Operator のテクノロジープレビューバージョンが OperatorHub で利用できるようになります。

第2章 Cluster Observability Operator の概要

Cluster Observability Operator (COO) は、高度にカスタマイズ可能なモニタリングスタックを作成し、管理するために設計された OpenShift Container Platform のオプションのコンポーネントです。これにより、クラスター管理者はモニタリングの設定と管理を大幅に自動化でき、デフォルトの OpenShift Container Platform のモニタリングシステムと比べて、各 namespace に対するより詳細でカスタマイズされたビューを提供できます。

COO は、次のモニタリングコンポーネントをデプロイします。

  • Prometheus: リモート書き込みを使用してメトリクスを外部エンドポイントに送信できる高可用性 Prometheus インスタンス。
  • Thanos Querier (オプション): Prometheus インスタンスを中央の場所からクエリーできるようにします。
  • Alertmanager (オプション): さまざまなサービスのアラート設定機能を提供します。
  • UI plugins (オプション): モニタリング、ロギング、分散トレーシング、およびトラブルシューティング用にプラグインで可観測性機能を強化します。
  • Korrel8r (オプション): オープンソースの Korrel8r プロジェクトが提供する可観測性シグナルの相関を提供します。

2.1. デフォルトのモニタリングスタックと比較した COO

COO コンポーネントは、Cluster Monitoring Operator (CMO) でデプロイおよび管理されるデフォルトのクラスター内モニタリングスタックとは独立して機能します。2 つの Operator でデプロイされたモニタリングスタックは競合しません。CMO でデプロイされたデフォルトのプラットフォームモニタリングコンポーネントに加え、COO モニタリングスタックを使用できます。

COO とデフォルトのクラスター内のモニタリングスタックの主な相違点を次の表に示します。

Expand
機能COOデフォルトのモニタリングスタック

スコープおよびインテグレーション

クラスターやワークロードのパフォーマンスを含め、エンタープライズレベルのニーズに対応した包括的なモニタリングと分析を提供します。

ただし、OpenShift Container Platform との直接統合がなく、通常はダッシュボードに外部 Grafana インスタンスが必要です。

クラスター内のコアコンポーネント (API サーバーや etcd など) および OpenShift 固有の namespace に限定されます。

OpenShift Container Platform へのディープインテグレーションがあり、コンソールのダッシュボードやアラート管理が含まれています。

設定とカスタマイズ

データ保持期間、ストレージ方法、収集したデータタイプなど、より広範な設定オプション。

COO は、カスタマイズを強化する Server-Side Apply (SSA) を使用して、カスタムリソース内にある 1 つの設定可能フィールドの所有権をユーザーに委譲できます。

カスタマイズオプションが制限された組み込み設定。

データの保持とストレージ

長期のデータ保持。履歴分析と容量計画をサポートします。

短期間のデータ保持。短期間のモニタリングとリアルタイム検出に焦点を当てています。

2.2. COO を使用する主な利点

COO のデプロイは、デフォルトのモニタリングスタックを使用して達成することが困難なモニタリング要件に対応する際に役立ちます。

2.2.1. 拡張性

  • COO でデプロイされたモニタリングスタックにさらにメトリクスを追加できますが、これをコアプラットフォームモニタリングで行った場合はサポートされません。
  • フェデレーションを介して、コアプラットフォームのモニタリングからクラスター固有のメトリクスを受け取ることができます。
  • COO は、トレンド予測や異常検出などの高度なモニタリングシナリオをサポートします。

2.2.2. マルチテナンシーのサポート

  • ユーザー namespace ごとにモニタリングスタックを作成できます。
  • namespace ごとに複数のスタックをデプロイすることや、複数の namespace に単一のスタックをデプロイすることができます。
  • COO は、異なるチームのアラートとレシーバーの独立した設定を可能にします。

2.2.3. スケーラビリティー

  • 単一クラスターで複数のモニタリングスタックをサポートします。
  • 手動シャーディングを使用した大規模なクラスターのモニタリングを可能にします。
  • メトリクスが単一の Prometheus インスタンスの機能を超えるケースに対応します。

2.2.4. 柔軟性

  • OpenShift Container Platform リリースサイクルから切り離されます。
  • より速いリリースサイクルを実現し、変化する要件へ迅速に対応します。
  • アラートルールを独立して管理します。

2.3. COO のターゲットユーザー

COO は、特に複雑なマルチテナントエンタープライズ環境で、高いカスタマイズ性、スケーラビリティー、および長期のデータ保持が必要なユーザーに適しています。

2.3.1. エンタープライズレベルのユーザーおよび管理者

エンタープライズユーザーには、高度なパフォーマンス分析、長期のデータ保持、トレンド予測、履歴分析など、OpenShift Container Platform クラスターの詳細なモニタリング機能が必要です。これらの機能により、企業はリソースの使用状況をより深く理解し、パフォーマンスの問題を防ぎ、リソースの割り当てを最適化できます。

2.3.2. マルチテナント環境でのオペレーションチーム

マルチテナンシーのサポートにより、COO はさまざまなチームがプロジェクトやアプリケーションのモニタリングビューを設定できるため、柔軟なモニタリングニーズがあるチームに適しています。

2.3.3. 開発およびオペレーションチーム

COO は、詳細なトラブルシューティング、異常検出、開発および運用時のパフォーマンス調整のために、きめ細かなモニタリングとカスタマイズ可能な可観測性ビューを提供します。

2.4. Server-Side Apply を使用した Prometheus リソースのカスタマイズ

Server-Side Apply は、Kubernetes リソースの共同管理を可能にする機能です。コントロールプレーンは、さまざまなユーザーおよびコントローラーが Kubernetes オブジェクト内のフィールドをどのように管理するかを追跡します。フィールドマネージャーの概念を導入し、フィールドの所有権を追跡します。この集中制御により、競合検出および解決が行われ、意図しない上書きのリスクが軽減されます。

Client-Side Apply と比較すると、より宣言的であり、最後に適用された状態ではなく、フィールド管理を追跡します。

Server-Side Apply
リソースの状態を更新することで、削除や再作成を必要とせずに宣言型の設定を管理します。
フィールド管理
ユーザーは、他のフィールドに影響を与えずに、更新するリソースのフィールドを指定できます。
管理対象フィールド
Kubernetes は、メタデータ内の managedFields フィールドでオブジェクトの各フィールドを管理するユーザーに関するメタデータを保存します。
Conflicts
複数のマネージャーが同じフィールドを変更しようとすると、競合が発生します。アプライヤーは、上書きするか、制御を放棄するか、または管理を共有するかを選択できます。
マージストラテジー
Server-Side Apply は、管理しているアクターに基づいてフィールドをマージします。

手順

  1. 次の設定を使用して MonitoringStack リソースを追加します。

    MonitoringStack オブジェクトの例

    apiVersion: monitoring.rhobs/v1alpha1
    kind: MonitoringStack
    metadata:
      labels:
        coo: example
      name: sample-monitoring-stack
      namespace: coo-demo
    spec:
      logLevel: debug
      retention: 1d
      resourceSelector:
        matchLabels:
          app: demo
    Copy to Clipboard Toggle word wrap

  2. sample-monitoring-stack という名前の Prometheus リソースが、coo-demo namespace に生成されます。次のコマンドを実行して、生成された Prometheus リソースの管理対象フィールドを取得します。

    $ oc -n coo-demo get Prometheus.monitoring.rhobs -oyaml --show-managed-fields
    Copy to Clipboard Toggle word wrap

    出力例

    managedFields:
    - apiVersion: monitoring.rhobs/v1
      fieldsType: FieldsV1
      fieldsV1:
        f:metadata:
          f:labels:
            f:app.kubernetes.io/managed-by: {}
            f:app.kubernetes.io/name: {}
            f:app.kubernetes.io/part-of: {}
          f:ownerReferences:
            k:{"uid":"81da0d9a-61aa-4df3-affc-71015bcbde5a"}: {}
        f:spec:
          f:additionalScrapeConfigs: {}
          f:affinity:
            f:podAntiAffinity:
              f:requiredDuringSchedulingIgnoredDuringExecution: {}
          f:alerting:
            f:alertmanagers: {}
          f:arbitraryFSAccessThroughSMs: {}
          f:logLevel: {}
          f:podMetadata:
            f:labels:
              f:app.kubernetes.io/component: {}
              f:app.kubernetes.io/part-of: {}
          f:podMonitorSelector: {}
          f:replicas: {}
          f:resources:
            f:limits:
              f:cpu: {}
              f:memory: {}
            f:requests:
              f:cpu: {}
              f:memory: {}
          f:retention: {}
          f:ruleSelector: {}
          f:rules:
            f:alert: {}
          f:securityContext:
            f:fsGroup: {}
            f:runAsNonRoot: {}
            f:runAsUser: {}
          f:serviceAccountName: {}
          f:serviceMonitorSelector: {}
          f:thanos:
            f:baseImage: {}
            f:resources: {}
            f:version: {}
          f:tsdb: {}
      manager: observability-operator
      operation: Apply
    - apiVersion: monitoring.rhobs/v1
      fieldsType: FieldsV1
      fieldsV1:
        f:status:
          .: {}
          f:availableReplicas: {}
          f:conditions:
            .: {}
            k:{"type":"Available"}:
              .: {}
              f:lastTransitionTime: {}
              f:observedGeneration: {}
              f:status: {}
              f:type: {}
            k:{"type":"Reconciled"}:
              .: {}
              f:lastTransitionTime: {}
              f:observedGeneration: {}
              f:status: {}
              f:type: {}
          f:paused: {}
          f:replicas: {}
          f:shardStatuses:
            .: {}
            k:{"shardID":"0"}:
              .: {}
              f:availableReplicas: {}
              f:replicas: {}
              f:shardID: {}
              f:unavailableReplicas: {}
              f:updatedReplicas: {}
          f:unavailableReplicas: {}
          f:updatedReplicas: {}
      manager: PrometheusOperator
      operation: Update
      subresource: status
    Copy to Clipboard Toggle word wrap

  3. metadata.managedFields 値を確認し、metadataspec の一部のフィールドが MonitoringStack リソースによって管理されていることを確認します。
  4. MonitoringStack リソースで制御されないフィールドを変更します。

    1. MonitoringStack リソースによって設定されていないフィールドである spec.enforcedSampleLimit を変更します。prom-spec-edited.yaml ファイルを作成します。

      prom-spec-edited.yaml

      apiVersion: monitoring.rhobs/v1
      kind: Prometheus
      metadata:
        name: sample-monitoring-stack
        namespace: coo-demo
      spec:
        enforcedSampleLimit: 1000
      Copy to Clipboard Toggle word wrap

    2. 以下のコマンドを実行して YAML を適用します。

      $ oc apply -f ./prom-spec-edited.yaml --server-side
      Copy to Clipboard Toggle word wrap
      注記

      --server-side フラグを使用する必要があります。

    3. 変更された Prometheus オブジェクトを取得し、spec.enforcedSampleLimit を持つ managedFields に、もう 1 つセクションがあることに注意してください。

      $ oc get prometheus -n coo-demo
      Copy to Clipboard Toggle word wrap

      出力例

      managedFields: 
      1
      
      - apiVersion: monitoring.rhobs/v1
        fieldsType: FieldsV1
        fieldsV1:
          f:metadata:
            f:labels:
              f:app.kubernetes.io/managed-by: {}
              f:app.kubernetes.io/name: {}
              f:app.kubernetes.io/part-of: {}
          f:spec:
            f:enforcedSampleLimit: {} 
      2
      
        manager: kubectl
        operation: Apply
      Copy to Clipboard Toggle word wrap

      1
      managedFields
      2
      spec.enforcedSampleLimit
  5. MonitoringStack リソースによって管理されるフィールドを変更します。

    1. 次の YAML 設定を使用して、MonitoringStack リソースによって管理されるフィールドである spec.LogLevel を変更します。

      # changing the logLevel from debug to info
      apiVersion: monitoring.rhobs/v1
      kind: Prometheus
      metadata:
        name: sample-monitoring-stack
        namespace: coo-demo
      spec:
        logLevel: info 
      1
      Copy to Clipboard Toggle word wrap
      1
      spec.logLevel が追加されました。
    2. 以下のコマンドを実行して YAML を適用します。

      $ oc apply -f ./prom-spec-edited.yaml --server-side
      Copy to Clipboard Toggle word wrap

      出力例

      error: Apply failed with 1 conflict: conflict with "observability-operator": .spec.logLevel
      Please review the fields above--they currently have other managers. Here
      are the ways you can resolve this warning:
      * If you intend to manage all of these fields, please re-run the apply
        command with the `--force-conflicts` flag.
      * If you do not intend to manage all of the fields, please edit your
        manifest to remove references to the fields that should keep their
        current managers.
      * You may co-own fields by updating your manifest to match the existing
        value; in this case, you'll become the manager if the other manager(s)
        stop managing the field (remove it from their configuration).
      See https://kubernetes.io/docs/reference/using-api/server-side-apply/#conflicts
      Copy to Clipboard Toggle word wrap

    3. フィールド spec.logLevelobservability-operator によってすでに管理されているため、Server-Side Apply を使用して変更できないことに注意してください。
    4. この変更を強制するには、--force-conflicts フラグを使用します。

      $ oc apply -f ./prom-spec-edited.yaml --server-side --force-conflicts
      Copy to Clipboard Toggle word wrap

      出力例

      prometheus.monitoring.rhobs/sample-monitoring-stack serverside-applied
      Copy to Clipboard Toggle word wrap

      --force-conflicts フラグの場合、このフィールドは強制的に変更できますが、同じフィールドが MonitoringStack リソースでも管理されるため、Observability Operator は変更を検出し、MonitoringStack リソースによって設定された値に戻します。

      注記

      MonitoringStack リソースによって生成される一部の Prometheus フィールドは、logLevel など、MonitoringStack spec スタンザのフィールドの影響を受けます。これらは、MonitoringStack spec を変更することで変更できます。

    5. Prometheus オブジェクトの logLevel を変更するには、次の YAML を適用して MonitoringStack リソースを変更します。

      apiVersion: monitoring.rhobs/v1alpha1
      kind: MonitoringStack
      metadata:
        name: sample-monitoring-stack
        labels:
          coo: example
      spec:
        logLevel: info
      Copy to Clipboard Toggle word wrap
    6. 変更が実行されたことを確認するには、次のコマンドを実行してログレベルをクエリーします。

      $ oc -n coo-demo get Prometheus.monitoring.rhobs -o=jsonpath='{.items[0].spec.logLevel}'
      Copy to Clipboard Toggle word wrap

      出力例

      info
      Copy to Clipboard Toggle word wrap

注記
  1. Operator の新規バージョンが、以前にアクターによって生成および制御されるフィールドを生成する場合、アクターによって設定された値はオーバーライドされます。

    たとえば、MonitoringStack リソースによって生成されないフィールド enforcedSampleLimit を管理しているとします。Observability Operator がアップグレードされ、新しいバージョンの Operator が enforcedSampleLimit の値を生成すると、以前に設定した値がオーバーライドされます。

  2. MonitoringStack リソースによって生成された Prometheus オブジェクトには、モニタリングスタックによって明示的に設定されていないフィールドが含まれる場合があります。これらのフィールドは、デフォルト値があるために表示されます。

第3章 Cluster Observability Operator のインストール

クラスター管理者は、OpenShift Container Platform Web コンソールまたは CLI を使用して、OperatorHub から Cluster Observability Operator (COO) をインストールまたは削除できます。OperatorHub は、クラスター上に Operator をインストールして管理する Operator Lifecycle Manager (OLM) と連動して動作するユーザーインターフェイスです。

3.1. Web コンソールに Cluster Observability Operator のインストール

OpenShift Container Platform Web コンソールを使用して、OperatorHub から Cluster Observability Operator (COO) をインストールします。

前提条件

  • cluster-admin クラスターロールを持つユーザーとしてクラスターにアクセスできる。
  • OpenShift Container Platform Web コンソールにログインしている。

手順

  1. OpenShift Container Platform Web コンソールで、OperatorsOperatorHub をクリックします。
  2. Filter by keyword ボックスに cluster observability operator と入力します。
  3. 結果リストで Cluster Observability Operator をクリックします。
  4. Operator に関する情報を読み、次のインストール設定を指定します。

    • Update channelstable
    • Version1.0.0 以降
    • Installation modeAll namespaces on the cluster (default)
    • Installed NamespaceOperator recommended Namespace: openshift-cluster-observability-operator
    • Enable Operator recommended cluster monitoring on this Namespace を選択します。
    • Update approvalAutomatic
  5. オプション: 要件に合わせてインストール設定を変更できます。たとえば、別の更新チャネルをサブスクライブしたり、Operator の古いリリースバージョンをインストールしたり、Operator の新しいバージョンへの更新に手動の承認を必要とするように選択できます。
  6. Install をクリックします。

検証

  • OperatorsInstalled Operators に移動し、リストに Cluster Observability Operator エントリーが表示されていることを確認します。

3.2. Web コンソールを使用した Cluster Observability Operator のアンインストール

OperatorHub を使用して Cluster Observability Operator (COO) をインストールした場合は、OpenShift Container Platform Web コンソールでそれをアンインストールできます。

前提条件

  • cluster-admin クラスターロールを持つユーザーとしてクラスターにアクセスできる。
  • OpenShift Container Platform Web コンソールにログインしている。

手順

  1. OperatorsInstalled Operators に移動します。
  2. リスト内で Cluster Observability Operator エントリーを見つけます。
  3. このエントリーの kebab をクリックし、Uninstall Operator を選択します。

検証

  • OperatorInstalled Operator に移動し、Cluster Observability Operator エントリーがリストに表示されなくなったことを確認します。

第4章 サービスを監視するための Cluster Observability Operator 設定

Cluster Observability Operator (COO) で管理されるモニタリングスタックを設定することで、サービスのメトリクスを監視できます。

サービスのモニタリングをテストするには、次の手順に従います。

  • サービスエンドポイントを定義するサンプルサービスをデプロイします。
  • COO によるサービスのモニタリング方法を指定する ServiceMonitor オブジェクトを作成します。
  • ServiceMonitor オブジェクトを検出するための MonitoringStack オブジェクトを作成します。

4.1. Cluster Observability Operator のサンプルサービスのデプロイ

この設定では、ユーザー定義の ns1-coo プロジェクトに prometheus-coo-example-app という名前のサンプルサービスをデプロイします。このサービスは、カスタム version メトリクスを公開します。

前提条件

  • cluster-admin クラスターロールを持つユーザーとして、または namespace の管理権限を持つユーザーとして、クラスターにアクセスできる。

手順

  1. prometheus-coo-example-app.yaml という名前の YAML ファイルを作成します。このファイルには、namespace、デプロイメント、およびサービスに関する次の設定の詳細が含まれます。

    apiVersion: v1
    kind: Namespace
    metadata:
      name: ns1-coo
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        app: prometheus-coo-example-app
      name: prometheus-coo-example-app
      namespace: ns1-coo
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: prometheus-coo-example-app
      template:
        metadata:
          labels:
            app: prometheus-coo-example-app
        spec:
          containers:
          - image: ghcr.io/rhobs/prometheus-example-app:0.4.2
            imagePullPolicy: IfNotPresent
            name: prometheus-coo-example-app
    ---
    apiVersion: v1
    kind: Service
    metadata:
      labels:
        app: prometheus-coo-example-app
      name: prometheus-coo-example-app
      namespace: ns1-coo
    spec:
      ports:
      - port: 8080
        protocol: TCP
        targetPort: 8080
        name: web
      selector:
        app: prometheus-coo-example-app
      type: ClusterIP
    Copy to Clipboard Toggle word wrap
  2. ファイルを保存します。
  3. 次のコマンドを実行して、設定をクラスターに適用します。

    $ oc apply -f prometheus-coo-example-app.yaml
    Copy to Clipboard Toggle word wrap
  4. 次のコマンドを実行して出力を確認し、Pod が実行されていることを確認します。

    $ oc -n ns1-coo get pod
    Copy to Clipboard Toggle word wrap

    出力例

    NAME                                      READY     STATUS    RESTARTS   AGE
    prometheus-coo-example-app-0927545cb7-anskj   1/1       Running   0          81m
    Copy to Clipboard Toggle word wrap

4.2. Cluster Observability Operator によるサービスのモニタリング方法の指定

「Cluster Observability Operator のサンプルサービスのデプロイ」セクションで作成したサンプルサービスが公開するメトリクスを使用するには、/metrics エンドポイントからメトリクスを取得するようにモニタリングコンポーネントを設定する必要があります。

この設定は、サービスのモニタリング方法を指定する ServiceMonitor オブジェクト、または Pod のモニタリング方法を指定する PodMonitor オブジェクトを使用して作成できます。ServiceMonitor オブジェクトには Service オブジェクトが必要です。PodMonitor オブジェクトには必要ないため、MonitoringStack オブジェクトは Pod が公開するメトリクスエンドポイントから直接メトリクスを取得できます。

この手順は、ns1-coo namespace に prometheus-coo-example-app という名前のサンプルサービスの ServiceMonitor オブジェクトを作成する方法を示しています。

前提条件

  • cluster-admin クラスターロールを持つユーザーとして、または namespace の管理権限を持つユーザーとして、クラスターにアクセスできる。
  • Cluster Observability Operator がインストールされている。
  • prometheus-coo-example-app サンプルサービスを ns1-coo namespace にデプロイしている。

    注記

    prometheus-example-app サンプルサービスは、TLS 認証をサポートしていません。

手順

  1. 次の ServiceMonitor オブジェクト設定の詳細を含む YAML ファイルを、example-coo-app-service-monitor.yaml という名前で作成します。

    apiVersion: monitoring.rhobs/v1
    kind: ServiceMonitor
    metadata:
      labels:
        k8s-app: prometheus-coo-example-monitor
      name: prometheus-coo-example-monitor
      namespace: ns1-coo
    spec:
      endpoints:
      - interval: 30s
        port: web
        scheme: http
      selector:
        matchLabels:
          app: prometheus-coo-example-app
    Copy to Clipboard Toggle word wrap

    この設定は、prometheus-coo-example-app サンプルサービスが公開するメトリクスデータを収集するために MonitoringStack オブジェクトが参照する ServiceMonitor オブジェクトを定義します。

  2. 次のコマンドを実行して、設定をクラスターに適用します。

    $ oc apply -f example-coo-app-service-monitor.yaml
    Copy to Clipboard Toggle word wrap
  3. 次のコマンドを実行して出力を観察し、ServiceMonitor リソースが作成されたことを確認します。

    $ oc -n ns1-coo get servicemonitors.monitoring.rhobs
    Copy to Clipboard Toggle word wrap

    出力例

    NAME                         AGE
    prometheus-coo-example-monitor   81m
    Copy to Clipboard Toggle word wrap

4.3. Cluster Observability Operator への MonitoringStack オブジェクト作成

ターゲットの prometheus-coo-example-app サービスが公開するメトリクスデータを収集するには、「Cluster Observability Operator におけるサービスのモニター方法の指定」セクションで作成した ServiceMonitor オブジェクトを参照する MonitoringStack オブジェクトを作成します。この MonitoringStack オブジェクトはサービスを検出し、そこから公開されているメトリクスデータを収集できます。

前提条件

  • cluster-admin クラスターロールを持つユーザーとして、または namespace の管理権限を持つユーザーとして、クラスターにアクセスできる。
  • Cluster Observability Operator がインストールされている。
  • prometheus-coo-example-app サンプルサービスを ns1-coo namespace にデプロイしている。
  • ns1-coo namespace に、prometheus-coo-example-monitor という名前の ServiceMonitor オブジェクトを作成している。

手順

  1. MonitoringStack オブジェクト設定の YAML ファイルを作成します。この例では、ファイル名を example-coo-monitoring-stack.yaml にします。
  2. 以下の MonitoringStack オブジェクト設定の詳細を追加します。

    MonitoringStack オブジェクトの例

    apiVersion: monitoring.rhobs/v1alpha1
    kind: MonitoringStack
    metadata:
      name: example-coo-monitoring-stack
      namespace: ns1-coo
    spec:
      logLevel: debug
      retention: 1d
      resourceSelector:
        matchLabels:
          k8s-app: prometheus-coo-example-monitor
    Copy to Clipboard Toggle word wrap

  3. 次のコマンドを実行して、MonitoringStack オブジェクトを適用します。

    $ oc apply -f example-coo-monitoring-stack.yaml
    Copy to Clipboard Toggle word wrap
  4. 次のコマンドを実行し、出力で MonitoringStack オブジェクトが利用可能であることを確認します。

    $ oc -n ns1-coo get monitoringstack
    Copy to Clipboard Toggle word wrap

    出力例

    NAME                         AGE
    example-coo-monitoring-stack   81m
    Copy to Clipboard Toggle word wrap

  5. 以下のコマンドを実行して、Prometheus からアクティブなターゲットに関する情報を取得し、出力をフィルタリングして、app=prometheus-coo-example-app のラベルが付けられたターゲットのみをリスト表示します。これにより、この特定のラベルの付いたターゲットのうち、どれが Prometheus によって検出およびアクティブに監視されるかが検証されます。

    $ oc -n ns1-coo exec -c prometheus prometheus-example-coo-monitoring-stack-0 -- curl -s 'http://localhost:9090/api/v1/targets' | jq '.data.activeTargets[].discoveredLabels | select(.__meta_kubernetes_endpoints_label_app=="prometheus-coo-example-app")'
    Copy to Clipboard Toggle word wrap

    出力例

    {
      "__address__": "10.129.2.25:8080",
      "__meta_kubernetes_endpoint_address_target_kind": "Pod",
      "__meta_kubernetes_endpoint_address_target_name": "prometheus-coo-example-app-5d8cd498c7-9j2gj",
      "__meta_kubernetes_endpoint_node_name": "ci-ln-8tt8vxb-72292-6cxjr-worker-a-wdfnz",
      "__meta_kubernetes_endpoint_port_name": "web",
      "__meta_kubernetes_endpoint_port_protocol": "TCP",
      "__meta_kubernetes_endpoint_ready": "true",
      "__meta_kubernetes_endpoints_annotation_endpoints_kubernetes_io_last_change_trigger_time": "2024-11-05T11:24:09Z",
      "__meta_kubernetes_endpoints_annotationpresent_endpoints_kubernetes_io_last_change_trigger_time": "true",
      "__meta_kubernetes_endpoints_label_app": "prometheus-coo-example-app",
      "__meta_kubernetes_endpoints_labelpresent_app": "true",
      "__meta_kubernetes_endpoints_name": "prometheus-coo-example-app",
      "__meta_kubernetes_namespace": "ns1-coo",
      "__meta_kubernetes_pod_annotation_k8s_ovn_org_pod_networks": "{\"default\":{\"ip_addresses\":[\"10.129.2.25/23\"],\"mac_address\":\"0a:58:0a:81:02:19\",\"gateway_ips\":[\"10.129.2.1\"],\"routes\":[{\"dest\":\"10.128.0.0/14\",\"nextHop\":\"10.129.2.1\"},{\"dest\":\"172.30.0.0/16\",\"nextHop\":\"10.129.2.1\"},{\"dest\":\"100.64.0.0/16\",\"nextHop\":\"10.129.2.1\"}],\"ip_address\":\"10.129.2.25/23\",\"gateway_ip\":\"10.129.2.1\",\"role\":\"primary\"}}",
      "__meta_kubernetes_pod_annotation_k8s_v1_cni_cncf_io_network_status": "[{\n    \"name\": \"ovn-kubernetes\",\n    \"interface\": \"eth0\",\n    \"ips\": [\n        \"10.129.2.25\"\n    ],\n    \"mac\": \"0a:58:0a:81:02:19\",\n    \"default\": true,\n    \"dns\": {}\n}]",
      "__meta_kubernetes_pod_annotation_openshift_io_scc": "restricted-v2",
      "__meta_kubernetes_pod_annotation_seccomp_security_alpha_kubernetes_io_pod": "runtime/default",
      "__meta_kubernetes_pod_annotationpresent_k8s_ovn_org_pod_networks": "true",
      "__meta_kubernetes_pod_annotationpresent_k8s_v1_cni_cncf_io_network_status": "true",
      "__meta_kubernetes_pod_annotationpresent_openshift_io_scc": "true",
      "__meta_kubernetes_pod_annotationpresent_seccomp_security_alpha_kubernetes_io_pod": "true",
      "__meta_kubernetes_pod_controller_kind": "ReplicaSet",
      "__meta_kubernetes_pod_controller_name": "prometheus-coo-example-app-5d8cd498c7",
      "__meta_kubernetes_pod_host_ip": "10.0.128.2",
      "__meta_kubernetes_pod_ip": "10.129.2.25",
      "__meta_kubernetes_pod_label_app": "prometheus-coo-example-app",
      "__meta_kubernetes_pod_label_pod_template_hash": "5d8cd498c7",
      "__meta_kubernetes_pod_labelpresent_app": "true",
      "__meta_kubernetes_pod_labelpresent_pod_template_hash": "true",
      "__meta_kubernetes_pod_name": "prometheus-coo-example-app-5d8cd498c7-9j2gj",
      "__meta_kubernetes_pod_node_name": "ci-ln-8tt8vxb-72292-6cxjr-worker-a-wdfnz",
      "__meta_kubernetes_pod_phase": "Running",
      "__meta_kubernetes_pod_ready": "true",
      "__meta_kubernetes_pod_uid": "054c11b6-9a76-4827-a860-47f3a4596871",
      "__meta_kubernetes_service_label_app": "prometheus-coo-example-app",
      "__meta_kubernetes_service_labelpresent_app": "true",
      "__meta_kubernetes_service_name": "prometheus-coo-example-app",
      "__metrics_path__": "/metrics",
      "__scheme__": "http",
      "__scrape_interval__": "30s",
      "__scrape_timeout__": "10s",
      "job": "serviceMonitor/ns1-coo/prometheus-coo-example-monitor/0"
    }
    Copy to Clipboard Toggle word wrap

    注記

    上記の例では、jq コマンドライン JSON プロセッサー を使用して、便宜上出力をフォーマットします。

4.4. モニタリングスタックの検証

モニタリングスタックが正しく機能していることを確認するには、サンプルサービスにアクセスし、収集したメトリクスを表示します。

前提条件

  • cluster-admin クラスターロールを持つユーザーとして、または namespace の管理権限を持つユーザーとして、クラスターにアクセスできる。
  • Cluster Observability Operator がインストールされている。
  • prometheus-coo-example-app サンプルサービスを ns1-coo namespace にデプロイしている。
  • ns1-coo namespace に、prometheus-coo-example-monitor という名前の ServiceMonitor オブジェクトを作成している。
  • ns1-coo namespace に example-coo-monitoring-stack という名前の MonitoringStack オブジェクトを作成している。

手順

  1. prometheus-coo-example-app サービスのサンプルを公開するためのルートを作成します。ターミナルから、以下のコマンドを実行します。

    $ oc expose svc prometheus-coo-example-app -n ns1-coo
    Copy to Clipboard Toggle word wrap
  2. ブラウザーまたはコマンドラインからルートにアクセスし、メトリクスを生成します。
  3. Prometheus Pod でクエリーを実行し、HTTP 要求メトリクスの合計を返します。

    $ oc -n ns1-coo exec -c prometheus prometheus-example-coo-monitoring-stack-0 -- curl -s 'http://localhost:9090/api/v1/query?query=http_requests_total'
    Copy to Clipboard Toggle word wrap

    出力例 (便宜上 jq を使用したフォーマット)

    {
      "status": "success",
      "data": {
        "resultType": "vector",
        "result": [
          {
            "metric": {
              "__name__": "http_requests_total",
              "code": "200",
              "endpoint": "web",
              "instance": "10.129.2.25:8080",
              "job": "prometheus-coo-example-app",
              "method": "get",
              "namespace": "ns1-coo",
              "pod": "prometheus-coo-example-app-5d8cd498c7-9j2gj",
              "service": "prometheus-coo-example-app"
            },
            "value": [
              1730807483.632,
              "3"
            ]
          },
          {
            "metric": {
              "__name__": "http_requests_total",
              "code": "404",
              "endpoint": "web",
              "instance": "10.129.2.25:8080",
              "job": "prometheus-coo-example-app",
              "method": "get",
              "namespace": "ns1-coo",
              "pod": "prometheus-coo-example-app-5d8cd498c7-9j2gj",
              "service": "prometheus-coo-example-app"
            },
            "value": [
              1730807483.632,
              "0"
            ]
          }
        ]
      }
    }
    Copy to Clipboard Toggle word wrap

4.5. 複数の namespace 内のスクレイプターゲット

複数の namespace でターゲットをスクレイプするには、MonitoringStack オブジェクトに namespace とリソースセレクターを設定します。

前提条件

  • cluster-admin クラスターロールを持つユーザーとして、または namespace の管理権限を持つユーザーとして、クラスターにアクセスできる。
  • Cluster Observability Operator がインストールされている。

手順

  1. 以下の namespace オブジェクトと MonitoringStack YAML ファイルをデプロイします。

    MonitoringStack の例

    apiVersion: v1
    kind: Namespace
    metadata:
      name: ns1-coo
      labels:
        monitoring.rhobs/stack: multi-ns
    ---
    apiVersion: monitoring.rhobs/v1alpha1
    kind: MonitoringStack
    metadata:
      name: example-coo-monitoring-stack
      namespace: ns1-coo
    spec:
      logLevel: debug
      retention: 1d
      resourceSelector:
          matchLabels:
            k8s-app: prometheus-coo-example-monitor
      namespaceSelector:
          matchLabels:
            monitoring.rhobs/stack: multi-ns
    Copy to Clipboard Toggle word wrap

  2. アラートは常に実行中の状態で、namespace ns1-coo にサンプルアプリケーションをデプロイします。

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        app: prometheus-coo-example-app
      name: prometheus-coo-example-app
      namespace: ns1-coo
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: prometheus-coo-example-app
      template:
        metadata:
          labels:
            app: prometheus-coo-example-app
        spec:
          containers:
          - image: ghcr.io/rhobs/prometheus-example-app:0.4.2
            imagePullPolicy: IfNotPresent
            name: prometheus-coo-example-app
    ---
    apiVersion: v1
    kind: Service
    metadata:
      labels:
        app: prometheus-coo-example-app
      name: prometheus-coo-example-app
      namespace: ns1-coo
    spec:
      ports:
      - port: 8080
        protocol: TCP
        targetPort: 8080
        name: web
      selector:
        app: prometheus-coo-example-app
      type: ClusterIP
    ---
    apiVersion: monitoring.rhobs/v1
    kind: ServiceMonitor
    metadata:
      labels:
        k8s-app: prometheus-coo-example-monitor
      name: prometheus-coo-example-monitor
      namespace: ns1-coo
    spec:
      endpoints:
      - interval: 30s
        port: web
        scheme: http
      selector:
        matchLabels:
          app: prometheus-coo-example-app
    ---
    apiVersion: monitoring.rhobs/v1
    kind: PrometheusRule
    metadata:
      name: example-alert
      namespace: ns1-coo
      labels:
        k8s-app: prometheus-coo-example-monitor
    spec:
      groups:
      - name: example
        rules:
        - alert: VersionAlert
          for: 1m
          expr: version{job="prometheus-coo-example-app"} > 0
          labels:
            severity: warning
    Copy to Clipboard Toggle word wrap
  3. monitoring.rhobs/stack: multi-ns のラベルが付けられた別の namespace に、同じサンプルアプリケーションをデプロイします。

    apiVersion: v1
    kind: Namespace
    metadata:
      name: ns2-coo
      labels:
        monitoring.rhobs/stack: multi-ns
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        app: prometheus-coo-example-app
      name: prometheus-coo-example-app
      namespace: ns2-coo
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: prometheus-coo-example-app
      template:
        metadata:
          labels:
            app: prometheus-coo-example-app
        spec:
          containers:
          - image: ghcr.io/rhobs/prometheus-example-app:0.4.2
            imagePullPolicy: IfNotPresent
            name: prometheus-coo-example-app
    ---
    apiVersion: v1
    kind: Service
    metadata:
      labels:
        app: prometheus-coo-example-app
      name: prometheus-coo-example-app
      namespace: ns2-coo
    spec:
      ports:
      - port: 8080
        protocol: TCP
        targetPort: 8080
        name: web
      selector:
        app: prometheus-coo-example-app
      type: ClusterIP
    ---
    apiVersion: monitoring.rhobs/v1
    kind: ServiceMonitor
    metadata:
      labels:
        k8s-app: prometheus-coo-example-monitor
      name: prometheus-coo-example-monitor
      namespace: ns2-coo
    spec:
      endpoints:
      - interval: 30s
        port: web
        scheme: http
      selector:
        matchLabels:
          app: prometheus-coo-example-app
    Copy to Clipboard Toggle word wrap

検証

  1. Prometheus インスタンスが新規ターゲットを追加し、アラートが実行中であることを確認します。port-forward コマンドを使用して、Prometheus または Monitoringstack インスタンスによってデプロイされた Alertmanager ユーザーインターフェイスを公開します。

    Prometheus

    $ oc port-forward -n ns1-coo pod/prometheus-example-coo-monitoring-stack-0 9090
    Copy to Clipboard Toggle word wrap

    Alertmanager

    $ oc port-forward -n ns1-coo pod/alertmanager-example-coo-monitoring-stack-0 9093
    Copy to Clipboard Toggle word wrap

  2. http://localhost:9090/targets または http://localhost:9093/#/alerts を参照して、ターゲットがスクレイピングされ、アラートが実行されていることを確認します。

第5章 可観測性 UI プラグイン

5.1. 可観測性 UI プラグインの概要

Cluster Observability Operator (COO) を使用すると、UI プラグインをインストールおよび管理し、OpenShift Container Platform Web コンソールの監視機能を強化できます。プラグインはデフォルトの機能を拡張し、トラブルシューティング、分散トレーシング、クラスターロギング用の新しい UI 機能を提供します。

5.1.1. モニタリング

モニタリング UI プラグインは、Advance Cluster Management (ACM)パースペクティブに OpenShift Web コンソールに監視関連の UI 機能を追加します。

  • ACM: Cluster Observability Operator (COO) のモニタリングプラグインは、Red Hat Advanced Cluster Management (RHACM) 環境で動作し、ACM に OpenShift Container Platform と同じモニタリング機能を提供します。

詳細は、モニタリング UI プラグイン ページを参照してください。

5.1.2. クラスターロギング

ロギング UI プラグインは、Web コンソールの ObserveLogs ページにロギングデータを表示します。フィルター、クエリー、時間範囲、更新頻度を指定できます。結果には折りたたまれたログのリストが表示されます。リストを展開すると、各ログの詳細情報が表示されます。

詳細は、ロギング UI プラグイン ページを参照してください。

5.1.3. トラブルシューティング

重要

Cluster Observability Operator のトラブルシューティングパネル UI プラグインは、テクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

OpenShift Container Platform バージョン 4.16 以降のトラブルシューティングパネル UI プラグインは、オープンソースの Korrel8r プロジェクトを利用した可観測性シグナル相関付け機能を提供します。ObserveAlerting ページから利用できるトラブルシューティングパネルを使用すると、さまざまなデータストア全体のメトリクス、ログ、アラート、ネットフロー、その他の可観測性シグナルとリソースを簡単に相関付けることができます。OpenShift Container Platform バージョン 4.17 以降のユーザーは、アプリケーションランチャー app launcher からもトラブルシューティング UI パネルにアクセスできます。

Korrel8r の出力は、インタラクティブなノードグラフとして表示されます。ノードをクリックすると、メトリクス、ログ、Pod など、そのノードの詳細情報を含む対応する Web コンソールページに自動的にリダイレクトされます。

詳細は、トラブルシューティング UI プラグイン ページを参照してください。

5.1.4. 分散トレーシング

分散トレーシング UI プラグインは、Web コンソールの ObserveTraces ページにトレース関連の機能を追加するものです。マイクロサービスのフロントエンドからバックエンドまで要求を追跡できるため、分散システムにおけるコードエラーやパフォーマンスのボトルネックを特定するのに役立ちます。クラスターで実行中のサポートされている TempoStack または TempoMonolithic マルチテナントインスタンスを選択し、時間範囲とクエリーを設定してトレースデータを表示できます。

詳細は、分散トレーシング UI プラグイン ページを参照してください。

5.2. モニタリング UI プラグイン

重要

Cluster Observability Operator のモニタリング UI プラグインは、テクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

モニタリング UI プラグインは、OpenShift Web コンソールの Administrator パースペクティブにモニタリング機能を追加します。

  • RHACM: Cluster Observability Operator (COO) のモニタリングプラグインは、Red Hat Advanced Cluster Management (RHACM) 環境で動作し、RHACM に OpenShift Container Platform と同じアラート機能を提供します。このプラグインは、RHACM Alertmanager バックエンドからアラートを取得するように設定できます。これにより、RHACM と OpenShift Container Platform のモニタリングワークフローを連携させることで、シームレスな統合とユーザーエクスペリエンスを実現できます。

5.2.1. Cluster Observability Operator のモニタリング UI プラグインのインストール

モニタリング UI プラグインは、Advance Cluster Management (ACM)パースペクティブに OpenShift Web コンソールに監視関連の UI 機能を追加します。

前提条件

  • cluster-admin クラスターロールを持つユーザーとしてクラスターにアクセスできる。
  • OpenShift Container Platform Web コンソールにログインしている。
  • Cluster Observability Operator がインストールされている。

手順

  1. OpenShift Container Platform Web コンソールで、OperatorInstalled Operator をクリックし、Cluster Observability Operator を選択します。
  2. UI Plugin タブ (タブリストの右端) を選択し、Create UIPlugin を押します。
  3. YAML view を選択し、次の内容を入力して、Create を押します。

    apiVersion: observability.openshift.io/v1alpha1
    kind: UIPlugin
    metadata:
      name: monitoring
    spec:
      type: Monitoring
      monitoring:
        acm: 
    1
    
          enabled: true
          alertmanager:
            url: 'https://alertmanager.open-cluster-management-observability.svc:9095'
          thanosQuerier:
            url: 'https://rbac-query-proxy.open-cluster-management-observability.svc:8443'
    Copy to Clipboard Toggle word wrap
    1
    RHACM 機能を有効にします。Alertmanager および ThanosQuerier サービスエンドポイントを設定する必要があります。

5.3. ロギング UI プラグイン

ロギング UI プラグインは、OpenShift Container Platform Web コンソールの ObserveLogs ページにロギングデータを表示します。フィルター、クエリー、時間範囲、更新頻度を指定すると、結果が折りたたまれたログのリストとして表示されます。リストを展開すると、各ログの詳細情報が表示されます。

OpenShift Container Platform バージョン 4.16 以降にトラブルシューティング UI プラグインもデプロイすると、Korrel8r サービスに接続され、Administration パースペクティブの ObserveLogs ページから、相関 PromQL クエリーを含む ObserveMetrics ページへの直接リンクが追加されます。また、Administration パースペクティブのアラート詳細ページ (ObserveAlerting) から、相関フィルターセットが選択済みの ObserveLogs ページへの See Related Logs リンクが追加されます。

このプラグインの機能は次のように分類されます。

dev-console
Developer パースペクティブにログビューを追加します。
alerts
Web コンソールのアラートを、Loki ルーラーで定義されたログベースのアラートとマージします。アラート詳細ビューにログベースのメトリクスチャートを追加します。
dev-alerts
Web コンソールのアラートを、Loki ルーラーで定義されたログベースのアラートとマージします。Developer パースペクティブのアラート詳細ビューにログベースのメトリクスチャートを追加します。

Cluster Observability Operator (COO) の各バージョンについて、OpenShift Container Platform 各バージョンにおけるこれらの機能のサポート状況を次の表に示します。

Expand
COO のバージョンOCP のバージョン機能

0.3.0 以降

4.12

dev-console

0.3.0 以降

4.13

dev-consolealerts

0.3.0 以降

4.14 以降

dev-consolealertsdev-alerts

5.3.1. Cluster Observability Operator ログ UI プラグインのインストール

前提条件

  • cluster-admin ロールを持つユーザーとしてクラスターにアクセスできる。
  • OpenShift Container Platform Web コンソールにログインしている。
  • Cluster Observability Operator がインストールされている。
  • クラスター内に LokiStack インスタンスがある。

手順

  1. OpenShift Container Platform Web コンソールで、OperatorInstalled Operator をクリックし、Cluster Observability Operator を選択します。
  2. UI Plugin タブ (タブリストの右端) を選択し、Create UIPlugin をクリックします。
  3. YAML view を選択し、次の内容を入力して、Create をクリックします。

    apiVersion: observability.openshift.io/v1alpha1
    kind: UIPlugin
    metadata:
      name: logging
    spec:
      type: Logging
      logging:
        lokiStack:
          name: logging-loki
        logsLimit: 50
        timeout: 30s
        schema: otel 
    1
    Copy to Clipboard Toggle word wrap
    1
    schemaotelviaqselect のいずれかです。値が指定されていない場合、デフォルトは viaq です。select を選択すると、クエリーを実行するときに UI でモードを選択できます。
    注記

    これらはロギング UI プラグインの既知の問題です。詳細は、OU-587 を参照してください。

    • schema 機能は、OpenShift Container Platform 4.15 以降でのみサポートされます。それより前のバージョンの OpenShift Container Platform では、ロギング UI プラグインは viaq 属性のみを使用し、他の値が設定されていても無視します。
    • 管理者以外のユーザーは、Red Hat OpenShift バージョン 5.8 から 6.2 のロギングで otel 属性を使用してログのクエリーを実行することはできません。この問題は、今後のロギングリリースで修正される予定です。(LOG-6589)
    • Red Hat OpenShift バージョン 5.9 のロギングでは、severity_text Otel 属性が設定されていません。

5.4. 分散トレーシング UI プラグイン

分散トレーシング UI プラグインは、OpenShift Web コンソールの ObserveTraces の Administrator パースペクティブにトレース関連の機能を追加するものです。マイクロサービスのフロントエンドからバックエンドまで要求を追跡できるため、分散システムにおけるコードエラーやパフォーマンスのボトルネックを特定するのに役立ちます。

5.4.1. Cluster Observability Operator 分散トレーシング UI プラグインのインストール

前提条件

  • cluster-admin クラスターロールを持つユーザーとしてクラスターにアクセスできる。
  • OpenShift Container Platform Web コンソールにログインしている。
  • Cluster Observability Operator がインストールされている。

手順

  1. OpenShift Container Platform Web コンソールで、OperatorInstalled Operator をクリックし、Cluster Observability Operator を選択します。
  2. UI Plugin タブ (タブリストの右端) を選択し、Create UIPlugin を押します。
  3. YAML view を選択し、次の内容を入力して、Create を押します。

    apiVersion: observability.openshift.io/v1alpha1
    kind: UIPlugin
    metadata:
      name: distributed-tracing
    spec:
      type: DistributedTracing
    Copy to Clipboard Toggle word wrap

5.4.2. Cluster Observability Operator 分散トレーシング UI プラグインの使用

前提条件

  • cluster-admin クラスターロールを持つユーザーとしてクラスターにアクセスできる。
  • OpenShift Container Platform Web コンソールにログインしている。
  • Cluster Observability Operator がインストールされている。
  • Cluster Observability Operator 分散トレーシング UI プラグインがインストールされている。
  • クラスター内に TempoStack または TempoMonolithic マルチテナントインスタンスがある。

手順

  1. OpenShift Container Platform Web コンソールの Administrator パースペクティブで、ObserveTraces をクリックします。
  2. TempoStack または TempoMonolithic マルチテナントインスタンスを選択し、ロードするトレースの時間範囲とクエリーを設定します。

    トレースの開始時刻、期間、スパンの数を示す散布図にトレースが表示されます。散布図の下には、Trace NameSpans の数、Duration などの情報を示すトレースのリストがあります。

  3. トレース名のリンクをクリックします。

    選択したトレースのトレース詳細ページに、トレース内の全スパンのガントチャートが表示されます。スパンを選択して、設定した属性の内訳を表示します。

5.5. トラブルシューティング UI プラグイン

重要

Cluster Observability Operator のトラブルシューティングパネル UI プラグインは、テクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

OpenShift Container Platform バージョン 4.16 以降のトラブルシューティング UI プラグインは、オープンソースの Korrel8r プロジェクトを利用した可観測性シグナル相関付け機能を提供します。ObserveAlerting で利用できるトラブルシューティングパネルを使用すると、さまざまなデータストア全体のメトリクス、ログ、アラート、ネットフロー、その他の可観測性シグナルとリソースを簡単に相関付けることができます。OpenShift Container Platform バージョン 4.17 以降のユーザーは、アプリケーションランチャー app launcher からもトラブルシューティング UI パネルにアクセスできます。

トラブルシューティング UI プラグインをインストールすると、korrel8r という名前の Korrel8r サービスが同じ namespace にデプロイされ、相関エンジンから関連する可観測性シグナルと Kubernetes リソースを特定できるようになります。

Korrel8r の出力は、OpenShift Container Platform Web コンソールにインタラクティブなノードグラフの形式で表示されます。グラフ内のノードはリソースまたはシグナルの種類を表し、エッジは関係を表します。ノードをクリックすると、メトリクス、ログ、Pod など、そのノードの詳細情報を含む対応する Web コンソールページに自動的にリダイレクトされます。

5.5.1. Cluster Observability Operator トラブルシューティング UI プラグインのインストール

前提条件

  • cluster-admin クラスターロールを持つユーザーとしてクラスターにアクセスできる。
  • OpenShift Container Platform Web コンソールにログインしている。
  • Cluster Observability Operator がインストールされている。

手順

  1. OpenShift Container Platform Web コンソールで、OperatorInstalled Operator をクリックし、Cluster Observability Operator を選択します。
  2. UI Plugin タブ (タブリストの右端) を選択し、Create UIPlugin を押します。
  3. YAML view を選択し、次の内容を入力して、Create を押します。

    apiVersion: observability.openshift.io/v1alpha1
    kind: UIPlugin
    metadata:
      name: troubleshooting-panel
    spec:
      type: TroubleshootingPanel
    Copy to Clipboard Toggle word wrap

5.5.2. Cluster Observability Operator トラブルシューティング UI プラグインの使用

前提条件

  • cluster-admin クラスターロールを持つユーザーとして OpenShift Container Platform クラスターにアクセスできる。クラスターのバージョンが 4.17 以降の場合は、アプリケーションランチャー app launcher からトラブルシューティング UI パネルにアクセスできます。
  • OpenShift Container Platform Web コンソールにログインしている。
  • OpenShift Container Platform Logging がインストールされている (相関ログを視覚化する場合)。
  • OpenShift Container Platform Network Observability がインストールされている (相関ネットフローを視覚化する場合)。
  • Cluster Observability Operator がインストールされている。
  • Cluster Observability Operator トラブルシューティング UI プラグインがインストールされている。

    注記

    トラブルシューティングパネルは、クラスターにインストールされている可観測性シグナルストアに依存します。Kubernetes リソース、アラート、およびメトリクスは、OpenShift Container Platform クラスターで常にデフォルトで使用できます。以下に示すその他のシグナルタイプを使用するには、オプションのコンポーネントをインストールする必要があります。

    • ログ: Red Hat Openshift Logging (コレクション) および Red Hat が提供する Loki Operator (ストア)
    • ネットワークイベント: Red Hat が提供する Network Observability (コレクション) と Red Hat が提供する Loki Operator (ストア)

    手順

    1. Web コンソールの Administrator パースペクティブで、ObserveAlerting に移動し、アラートを選択します。アラートに相関項目があると、アラート詳細ページのグラフの上に Troubleshooting Panel リンクが表示されます。

      Troubleshooting Panel リンクをクリックしてパネルを表示します。

    2. パネルは、クエリーの詳細とクエリー結果のトポロジーグラフで構成されています。選択したアラートは、Korrel8r クエリー文字列に変換され、korrel8r サービスに送信されます。結果は、返されたシグナルとリソースを結ぶグラフネットワークとして表示されます。これは、現在のリソースから始まり、開始点から最大 3 ステップ離れた関連オブジェクトを含む 近傍 グラフです。グラフ内のノードをクリックすると、それらのリソースに対応する Web コンソールページに移動します。
    3. トラブルシューティングパネルを使用して、選択したアラートに関連するリソースを見つけることができます。

      注記

      ノードをクリックすると、グラフに表示されているよりも少ない結果が表示される場合があります。これは既知の問題であり、今後のリリースで対処される予定です。

      1. Alert (1): このノードはグラフの開始点です。Web コンソールに表示される KubeContainerWaiting アラートを表します。
      2. Pod (1): このノードは、このアラートに関連付けられた Pod リソースが 1 つあることを示しています。このノードをクリックすると、コンソール検索が開き、関連する Pod が直接表示されます。
      3. Event (2): Pod に関連付けられた Kuberenetes イベントが 2 つあります。このノードをクリックすると、イベントが表示されます。
      4. Logs (74): この Pod には 74 行のログがあります。このノードをクリックすると、ログにアクセスできます。
      5. Metrics (105): Pod に関連付けられたメトリクスが多数あります。
      6. Network (6): 複数のネットワークイベントがあります。これは、Pod がネットワーク経由で通信したことを示しています。グラフ内の残りのノードは、Pod が通信した ServiceDeploymentDaemonSet リソースを表しています。
      7. Focus: このボタンをクリックすると、グラフが更新されます。デフォルトでは、グラフ内のノードをクリックしてもグラフ自体は変わりません。代わりに、メインの Web コンソールページが変更され、ページ上のリンクを使用して他のリソースに移動できるようになります。トラブルシューティングパネル自体は、開いたまま変更されません。トラブルシューティングパネルのグラフを強制的に更新するには、Focus をクリックします。すると、Web コンソールの現在のリソースを開始点として使用して、新しいグラフが描画されます。
      8. Show Query: このボタンをクリックすると、いくつかの実験的な機能が有効になります。

        1. Hide Query をクリックすると、実験的な機能が非表示になります。
        2. グラフの開始点を示すクエリー。グラフの作成に使用される Korrel8r 相関エンジンの一部であるクエリー言語は、実験段階であり、今後変更される可能性があります。Focus ボタンを押すと、メインの Web コンソールウィンドウ内のリソースに合わせてクエリーが更新されます。
        3. Neighbourhood depth は、表示する近傍の数を増減するために使用します。

          注記

          大規模なクラスターで大きな値を設定すると、結果の数が多すぎる場合にクエリーが失敗する可能性があります。

        4. Goal class を選択すると、近傍検索ではなく目標指向型の検索になります。目標指向型の検索では、開始点から目標クラスまでのすべてのパスが表示されます。目標クラスは、リソースまたはシグナルの種類を示します。目標クラス形式は実験的なものであり、変更する可能性があります。現在、次の目標が有効です。

          • k8s:RESOURCE[VERSION.[GROUP]] は、kuberenetes リソースの種類を示します。たとえば、k8s:Podk8s:Deployment.apps.v1 です。
          • alert:alert は、アラートを表します。
          • metric:metric は、メトリクスを表します。
          • netflow:network は、ネットワークの可観測性ネットワークイベントを表します。
          • log:LOG_TYPE は、保存されたログを表します。LOG_TYPE は、applicationinfrastructure、または audit のいずれかである必要があります。

5.5.3. サンプルアラートの作成

トラブルシューティング UI パネルで出発点として使用するアラートをトリガーする場合は、意図的に誤った設定を指定したコンテナーをデプロイできます。

手順

  1. コマンドラインまたは Web コンソールから次の YAML を使用して、システムの namespace に壊れたデプロイメントを作成します。

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: bad-deployment
      namespace: default 
    1
    
    spec:
      selector:
        matchLabels:
          app: bad-deployment
      template:
        metadata:
          labels:
            app: bad-deployment
        spec:
          containers: 
    2
    
          - name: bad-deployment
            image: quay.io/openshift-logging/vector:5.8
    Copy to Clipboard Toggle word wrap
    1
    必要なアラートを発生させるには、デプロイメントがシステムの namespace (default など) に存在する必要があります。
    2
    このコンテナーは、意図的に設定ファイルなしで vector サーバーを起動することを試みます。サーバーはいくつかのメッセージをログに記録し、エラーで終了します。または、不適切に設定した任意のコンテナーをデプロイして、アラートをトリガーすることもできます。
  2. アラートを表示します。

    1. ObserveAlerting に移動し、clear all filters をクリックします。Pending のアラートを表示します。

      重要

      アラートは最初 Pending 状態で表示されます。コンテナーがクラッシュするまで、アラートの発生 (Firing) は開始しません。Pending のアラートを確認できるため、アラートが発生するまで待つ必要はありません。

    2. KubeContainerWaitingKubePodCrashLooping、または KubePodNotReady アラートのいずれかを選択し、リンクをクリックしてトラブルシューティングパネルを開きます。または、パネルがすでに開いている場合は、"Focus" ボタンをクリックしてグラフを更新します。

第6章 モニタリング API リファレンス

リソースタイプは、MonitoringStackThanosQuerier です。

6.1. MonitoringStack

MonitoringStack は、monitoringstacks API のスキーマです。

Expand
名前タイプ説明必須

apiVersion

string

monitoring.rhobs/v1alpha1

true

kind

string

MonitoringStack

true

metadata

object

metadata フィールドのフィールドは、Kubernetes API ドキュメントを参照してください。

true

spec

object

MonitoringStackSpec は、任意の MonitoringStack オブジェクトの仕様です。

true

status

object

MonitoringStackStatus は、MonitoringStack オブジェクトの観測された状態を定義します。常に、クラスターの状態や外から再構築できる必要があります。

false

6.2. MonitoringStack.spec

MonitoringStackSpec は、任意の MonitoringStack オブジェクトの仕様です。

Expand
名前タイプ説明必須

alertmanagerConfig

object

Alertmanager 設定を定義します。

デフォルト: map[disabled:false]

false

logLevel

enum

設定されているコンポーネントのログレベルを設定します。

Enum: debug, info, warn, error

デフォルト: info

false

namespaceSelector

object

MonitoringStack リソースの namespace セレクター。

  • すべてを監視するには、空のマップセレクターに設定します。たとえば、namespaceSelector: {} です。
  • MonitoringStack インスタンスが作成された namespace 内のリソースを監視するには、null に設定します。たとえば、namespaceSelector: です。

false

nodeSelector

map[string]string

MonitoringStack Pod のノードセレクターを定義します。

false

prometheusConfig

object

prometheus 設定を定義します。

デフォルト: map[replicas:2]

false

resourceSelector

object

MonitoringStack リソースのラベルセレクター。

  • すべてを監視するには、空のマップセレクターに設定します。たとえば、resourceSelector: {} です。
  • サービス検出を無効にするには、null に設定します。たとえば、resourceSelector: です。

false

resources

object

MonitoringStack Pod のリソース要求および制限を定義します。

デフォルト: map[limits:map[cpu:500m memory:512Mi] requests:map[cpu:100m memory:256Mi]]

false

retention

string

データを保持する期間。文字列は、正規表現 [0-9]+(ms|s|m|h|d|w|y) (ミリ秒秒分時間日週年) と一致する必要があります。

デフォルト: 120h

false

tolerations

[]object

MonitoringStack Pod の toleration を定義します。

false

6.3. MonitoringStack.spec.alertmanagerConfig

Alertmanager 設定を定義します。

Expand
名前タイプ説明必須

disabled

boolean

Alertmanager のデプロイメントを無効にします。

Default: false

false

webTLSConfig

object

Alertmanager Web サーバーの TLS オプションを設定します。

false

6.4. MonitoringStack.spec.alertmanagerConfig.webTLSConfig

Alertmanager Web サーバーの TLS オプションを設定します。

Expand
名前タイプ説明必須

certificate

object

Web サーバーの TLS パブリック証明書への参照。

true

certificateAuthority

object

Web サーバーの証明書を検証するために使用されるルート認証局への参照。

true

privateKey

object

Web サーバーの TLS 秘密鍵への参照。

true

6.5. MonitoringStack.spec.alertmanagerConfig.webTLSConfig.certificate

Web サーバーの TLS パブリック証明書への参照。

Expand
名前タイプ説明必須

key

string

選択するシークレットのキー。有効な秘密鍵でなければなりません。

true

name

string

選択元となるオブジェクトの namespace 内にあるシークレットの名前。

true

6.6. MonitoringStack.spec.alertmanagerConfig.webTLSConfig.certificateAuthority

Web サーバーの証明書を検証するために使用されるルート認証局への参照。

Expand
名前タイプ説明必須

key

string

選択するシークレットのキー。有効な秘密鍵でなければなりません。

true

name

string

選択元となるオブジェクトの namespace 内にあるシークレットの名前。

true

6.7. MonitoringStack.spec.alertmanagerConfig.webTLSConfig.privateKey

Web サーバーの TLS 秘密鍵への参照。

Expand
名前タイプ説明必須

key

string

選択するシークレットのキー。有効な秘密鍵でなければなりません。

true

name

string

選択元となるオブジェクトの namespace 内にあるシークレットの名前。

true

6.8. MonitoringStack.spec.namespaceSelector

MonitoringStack リソースの namespace セレクター。

  • すべてを監視するには、空のマップセレクターに設定します。たとえば、namespaceSelector: {} です。
  • MonitoringStack インスタンスが作成された namespace 内のリソースを監視するには、null に設定します。たとえば、namespaceSelector: です。
Expand
名前タイプ説明必須

matchExpressions

[]object

matchExpressions はラベルセレクターの要件リストです。要件は AND で結合されます。

false

matchLabels

map[string]string

matchLabels は、{key,value} ペアのマップです。matchLabels マップの 1 つの {key,value} は matchExpressions の要素と同じで、キーフィールドには "key"、演算子には "In"、値配列には "value" のみが含まれます。要件は AND で結合されます。

false

6.9. MonitoringStack.spec.namespaceSelector.matchExpressions[index]

ラベルセレクター要件は、値、キー、およびキーと値を関連付ける Operator を含むセレクターです。

Expand
名前タイプ説明必須

key

string

key は、セレクターの適用先のラベルキーです。

true

operator

string

operator はキーと値のセットの関係を表します。有効な演算子は InNotInExists、および DoesNotExist です。

true

values

[]string

values は文字列値の配列です。Operator が In または NotIn の場合は、values 配列を空白にできません。Operator が Exists または DoesNotExist の場合は、values 配列は空白でなければなりません。この配列は、ストラテジーに基づいたマージパッチの適用中に置き換えられます。

false

6.10. MonitoringStack.spec.prometheusConfig

Prometheus 設定を定義します。

Expand
名前タイプ説明必須

enableOtlpHttpReceiver

boolean

Prometheus が otlp/http'protocol 経由で OpenTelemetry Metrics を受け入れるようにします。デフォルト値は `false です。結果のエンドポイントは /api/v1/otlp/v1/metrics です。

false

enableRemoteWriteReceiver

boolean

Prometheus を Prometheus リモート書き込みプロトコルのレシーバーとして使用できるようにします。デフォルト値は false です。

false

externalLabels

map[string]string

Prometheus の ExternalLabels を定義します。

false

persistentVolumeClaim

object

Prometheus の永続ボリューム要求を定義します。

false

remoteWrite

[]object

Prometheus のリモート書き込みを定義します。

false

replicas

integer

Prometheus デプロイメントにデプロイするレプリカ/Pod の数。

形式: int32

デフォルト: 2

最小値: 0

false

scrapeInterval

string

スクレイプ間隔のデフォルト。

false

webTLSConfig

object

Prometheus Web サーバーの TLS オプションを設定します。

false

6.11. MonitoringStack.spec.prometheusConfig.persistentVolumeClaim

Prometheus の永続ボリューム要求を定義します。

Expand
名前説明必須

accessModes

[]string

accessModes には、ボリュームに割り当てる必要があるアクセスモードが含まれます。詳細は、Kubernetes ドキュメント を参照してください。

false

dataSource

object

dataSource フィールドは、以下のいずれかを指定するために使用できます。

  • 既存の VolumeSnapshot オブジェクト (snapshot.storage.k8s.io/VolumeSnapshot)
  • 既存の PVC (PersistentVolumeClaim)

プロビジョナーまたは外部コントローラーが指定されたデータソースをサポートできる場合、指定されたデータソースのコンテンツに基づいて新規ボリュームが作成されます。

AnyVolumeDataSource フィーチャーゲートが有効になっている場合、dataSource の内容は dataSourceRef にコピーされ、dataSourceRef.namespace が指定されていない場合に dataSourceRef コンテンツが dataSource にコピーされます。namespace が指定されている場合、dataSourceRefdataSource にコピーされません。

false

dataSourceRef

object

dataSourceRef は、空でないボリュームが必要な場合は、ボリュームにデータを取り込むオブジェクトを指定します。これには、空ではない API グループ (コアオブジェクトではない) または PersistentVolumeClaim オブジェクトの任意のオブジェクトを指定できます。

このフィールドが指定されている場合、ボリュームバインディングは、指定されたオブジェクトのタイプが、インストールされているボリュームポピュレーターまたはダイナミックプロビジョナーと一致する場合にのみ成功します。このフィールドは、dataSource フィールドの機能を置き換えるため、両方のフィールドが空でない場合は、同じ値である必要があります。

下位互換性を確保するために、dataSourceRefnamespace が指定されておらず、一方が空でもう一方が空でない場合、両方のフィールド (dataSourcedataSourceRef) が自動的に同じ値に設定されます。dataSourceRefnamespace が指定されている場合、dataSource は同じ値に設定されていないため、空にする必要があります。

dataSourcedataSourceRef には 3 つの重要な違いがあります。

  • dataSource では特定の 2 種類のオブジェクトのみが許可されますが、dataSourceRef ではコア以外のオブジェクトと PersistentVolumeClaim オブジェクトが許可されます。
  • dataSource は使用できない値を無視 (ドロップ) しますが、dataSourceRef はすべての値を保持し、使用できない値が指定された場合はエラーを生成します。
  • dataSource ではローカルオブジェクトのみが使用できますが、dataSourceRef では任意の namespace のオブジェクトを使用できます。

ベータ版: このフィールドを使用するには、AnyVolumeDataSource フィーチャーゲートを有効にする必要があります。

アルファ版: dataSourceRef の namespace フィールドを使用するには、CrossNamespaceVolumeDataSource フィーチャーゲートを有効にする必要があります。

false

resources

object

resources は、ボリュームに必要な最小リソースを表します。

RecoverVolumeExpansionFailure 機能が有効になっている場合、ユーザーは以前の値よりも低いリソース要件を指定できますが、要求のステータスフィールドに記録された容量よりも大きい必要があります。

詳細は、Kubernetes ドキュメント を参照してください。

false

selector

object

selector は、バインドを考慮するボリュームに対するラベルクエリーです。

false

storageClassName

string

storageClassName は、要求に必要な StorageClass の名前です。詳細は、Kubernetes ドキュメント を参照してください。

false

volumeAttributesClassName

string

volumeAttributesClassName は、このクレームで使用される VolumeAttributesClass を設定するために使用できます。

指定すると、CSI ドライバーは、対応する VolumeAttributesClass で定義された属性を使用してボリュームを作成または更新します。これは storageClassName とは異なる目的があり、クレームの作成後に変更できます。空の文字列値は、クレームに VolumeAttributesClass が適用されないことを意味しますが、一度設定すると、このフィールドを空の文字列にリセットすることはできません。

指定されておらず、PersistentVolumeClaim がバインドされていない場合は、persistentvolume コントローラーが存在する場合は、デフォルトの VolumeAttributesClass が設定されます。volumeAttributesClass によって参照されるリソースが存在しない場合は、そのようなリソースが存在するまで、この PersistentVolumeClaim は、modifyVolumeStatus フィールドに反映されるように、Pending 状態に設定されます。

詳細は、Kubernetes ドキュメント を参照してください。

ベータ版: このフィールドを使用するには、VolumeAttributesClass フィーチャーゲートを有効にする必要があります (デフォルトではオフ)。

false

volumeMode

string

volumeMode は、要求に必要なボリュームのタイプを定義します。Filesystem の値は、要求仕様に含まれていない場合に暗示されます。

false

volumeName

string

volumeName は、この要求をサポートする PersistentVolume へのバインディング参照です。

false

6.12. MonitoringStack.spec.prometheusConfig.persistentVolumeClaim.dataSource

dataSource フィールドは、以下のいずれかを指定するために使用できます。

  • 既存の VolumeSnapshot オブジェクト (snapshot.storage.k8s.io/VolumeSnapshot)
  • 既存の PVC (PersistentVolumeClaim)

プロビジョナーまたは外部コントローラーが指定されたデータソースをサポートできる場合、指定されたデータソースのコンテンツに基づいて新規ボリュームが作成されます。AnyVolumeDataSource フィーチャーゲートが有効になっている場合、dataSource の内容は dataSourceRef にコピーされ、dataSourceRef.namespace が指定されていない場合に dataSourceRef コンテンツが dataSource にコピーされます。namespace が指定されている場合、dataSourceRefdataSource にコピーされません。

Expand
名前説明必須

kind

string

kind は参照されているリソースのタイプです。

true

name

string

name は、参照されているリソースの名前です。

true

apiGroup

string

apiGroup は参照されているリソースのグループです。apiGroup が指定されていない場合は、指定の kind をコア API グループに設定する必要があります。他のサードパーティータイプには、apiGroup が必要です。

false

6.13. MonitoringStack.spec.prometheusConfig.persistentVolumeClaim.dataSourceRef

dataSourceRef は、空でないボリュームが必要な場合は、ボリュームにデータを取り込むオブジェクトを指定します。これには、空ではない API グループ (コアオブジェクトではない) または PersistentVolumeClaim オブジェクトの任意のオブジェクトを指定できます。このフィールドが指定されている場合、ボリュームバインディングは、指定されたオブジェクトのタイプが、インストールされているボリュームポピュレーターまたはダイナミックプロビジョナーと一致する場合にのみ成功します。

このフィールドは、dataSource フィールドの機能を置き換えるため、両方のフィールドが空でない場合は、同じ値である必要があります。下位互換性を確保するために、dataSourceRefnamespace が指定されておらず、一方が空でもう一方が空でない場合、両方のフィールド (dataSourcedataSourceRef) が自動的に同じ値に設定されます。dataSourceRefnamespace が指定されている場合、dataSource は同じ値に設定されていないため、空にする必要があります。

dataSourcedataSourceRef には 3 つの重要な違いがあります。

  • dataSource では特定の 2 種類のオブジェクトのみが許可されますが、dataSourceRef ではコア以外のオブジェクトと PersistentVolumeClaim オブジェクトが許可されます。
  • dataSource は使用できない値を無視 (ドロップ) しますが、dataSourceRef はすべての値を保持し、使用できない値が指定された場合はエラーを生成します。
  • dataSource ではローカルオブジェクトのみが使用できますが、dataSourceRef では任意の namespace のオブジェクトを使用できます。

ベータ版: このフィールドを使用するには、AnyVolumeDataSource フィーチャーゲートを有効にする必要があります。

アルファ版: dataSourceRef の namespace フィールドを使用するには、CrossNamespaceVolumeDataSource フィーチャーゲートを有効にする必要があります。

Expand
名前説明必須

kind

string

kind は参照されているリソースのタイプです。

true

name

string

name は、参照されているリソースの名前です。

true

apiGroup

string

apiGroup は参照されているリソースのグループです。

apiGroup が指定されていない場合は、指定の kind をコア API グループに設定する必要があります。他のサードパーティータイプには、apiGroup が必要です。

false

namespace

string

namespace は、参照されているリソースの namespace です。

namespace が指定されている場合は、その namespace の所有者が参照を受け入れることができるように、参照された namespace に gateway.networking.k8s.io/ReferenceGrant オブジェクトが必要であることに注意してください。詳細は、ReferenceGrant ドキュメントを参照してください。

アルファ版: このフィールドでは、CrossNamespaceVolumeDataSource フィーチャーゲートを有効にする必要があります。

false

6.14. MonitoringStack.spec.prometheusConfig.persistentVolumeClaim.resources

resources は、ボリュームに必要な最小リソースを表します。

RecoverVolumeExpansionFailure 機能が有効になっている場合、ユーザーは以前の値よりも低いリソース要件を指定できますが、要求のステータスフィールドに記録された容量よりも大きい必要があります。

詳細は、Kubernetes ドキュメント を参照してください。

Expand
名前説明必須

limits

map[string]int or string

Limits は、許可されるコンピュートリソースの最大量を示します。

詳細は、Kubernetes ドキュメント を参照してください。

false

requests

map[string]int or string

Requests は、必要なコンピュートリソースの最小量を示します。

コンテナーで Requests が省略される場合、明示的に指定される場合にデフォルトで Limits に設定されます。指定しない場合は、実装定義の値に設定されます。RequestsLimits を超えることはできません。

詳細は、Kubernetes ドキュメント を参照してください。

false

6.15. MonitoringStack.spec.prometheusConfig.persistentVolumeClaim.selector

selector は、バインドを考慮するボリュームに対するラベルクエリーです。

Expand
名前説明必須

matchExpressions

[]object

matchExpressions はラベルセレクターの要件リストです。要件は AND で結合されます。

false

matchLabels

map[string]string

matchLabels は、{key,value} ペアのマップです。

matchLabels マップの 1 つの {key,value} は matchExpressions の要素と同じで、キーフィールドには "key"、演算子には "In"、値配列には "value" のみが含まれます。要件は AND で結合されます。

false

6.16. MonitoringStack.spec.prometheusConfig.persistentVolumeClaim.selector.matchExpressions[index]

ラベルセレクター要件は、値、キー、およびキーと値を関連付ける Operator を含むセレクターです。

Expand
名前説明必須

key

string

key は、セレクターの適用先のラベルキーです。

true

operator

string

operator はキーと値のセットの関係を表します。有効な演算子は InNotInExists、および DoesNotExist です。

true

values

[]string

values は文字列値の配列です。

Operator が In または NotIn の場合は、values 配列を空白にできません。Operator が Exists または DoesNotExist の場合は、values 配列は空白でなければなりません。この配列は、ストラテジーに基づいたマージパッチの適用中に置き換えられます。

false

6.17. MonitoringStack.spec.prometheusConfig.remoteWrite[index]

RemoteWriteSpec は、Prometheus からリモートエンドポイントにサンプルを書き込むための設定を定義します。

Expand
名前説明必須

url

string

サンプルの送信先のエンドポイントの URL。

true

authorization

object

URL の認可セクション。

  • Prometheus v2.26.0 以降が必要です。
  • sigv4basicAuthoauth2azureAd と同時に設定することはできません。

false

azureAd

object

URL の AzureAD。

  • Prometheus 2.45.0 以降が必要です。
  • authorizationbasicAuthoauth2sigv4 と同時に設定することはできません。

false

basicAuth

object

URL の BasicAuth 設定。

  • sigv4authorizationoauth2azureAd と同時に設定することはできません。

false

bearerToken

string

警告: トークン値がクリアテキストで表示されるため、このフィールドは使用しないでください。authorization の使用を優先してください。

非推奨: 今後のリリースで削除される予定です。

false

bearerTokenFile

string

URL のベアラートークンを読み取るファイル。

非推奨: 今後のリリースで削除される予定です。authorization の使用を優先してください。

false

enableHTTP2

boolean

HTTP2 を有効にするかどうか。

false

followRedirects

boolean

HTTP リクエストが HTTP 3xx リダイレクトに従うかどうかを設定します。

Prometheus v2.26.0 以降が必要です。

false

headers

map[string]string

各リモート書き込み要求とともに送信されるカスタム HTTP ヘッダー。Prometheus 自体によって設定されたヘッダーは上書きできないことに注意してください。

Prometheus v2.25.0 以降が必要です。

false

messageVersion

enum

エンドポイントに書き込むときに使用するリモート書き込みメッセージのバージョン。

  • Version1.0 は、Remote Write 1.0 で導入された prometheus .WriteRequest protobuf メッセージに対応しています。* Version2.0 は、Remote Write 2.0 で導入された io.prometheus.write.v2.Request protobuf メッセージに対応しています。
  • Version2.0 を選択すると、スクレイピングしたメトリクスのメタデータを WAL に追加するように、Prometheus が自動的に設定されます。
  • このフィールドを設定する前に、サポートされるメッセージバージョンについて、リモートストレージプロバイダーに問い合わせてください。
  • Prometheus v2.54.0 以降が必要です。

Enum: V1.0, V2.0

false

metadataConfig

object

MetadataConfig は、リモートストレージへのシリーズメタデータの送信を設定します。

false

name

string

リモート書き込みキューの名前。指定する場合は一意である必要があります。この名前は、キューを区別するためにメトリックとロギングで使用されます。

Prometheus v2.15.0 以降が必要です。

false

noProxy

string

noProxy は、プロキシーから除外する IP、CIDR 表記、またはドメイン名が含まれる場合があるコンマ区切りの文字列です。IP およびドメイン名にはポート番号を含まれる場合があります。

Prometheus v2.43.0 以降または Alertmanager 0.25.0 以降が必要です。

false

oauth2

object

URL の OAuth2 設定。

  • Prometheus v2.27.0 以降が必要です。
  • sigv4authorizationbasicAuthazureAd と同時に設定することはできません。

false

proxyConnectHeader

map[string][]object

ProxyConnectHeader は、CONNECT リクエスト中にプロキシーに送信するヘッダーをオプションで指定します。

Prometheus v2.43.0 以降または Alertmanager 0.25.0 以降が必要です。

false

proxyFromEnvironment

boolean

環境変数 HTTP_PROXYHTTPS_PROXYNO_PROXY) によって定義されたプロキシー設定を使用するかどうか。

Prometheus v2.43.0 以降または Alertmanager 0.25.0 以降が必要です。

false

proxyUrl

string

proxyURL は、使用する HTTP プロキシーサーバーを定義します。

false

queueConfig

object

QueueConfig を使用すると、リモート書き込みキューパラメーターを調整できます。

false

remoteTimeout

string

リモート書き込みエンドポイントへの要求のタイムアウト。

false

sendExemplars

boolean

リモート書き込みによるエグザンプラーの送信を有効にします。エグザンプラーをスクレイピングするには、spec.enableFeatures オプションを使用して exemplar-storage 自体を有効にする必要があることに注意してください。

Prometheus v2.27.0 以降が必要です。

false

sendNativeHistograms

boolean

リモート書き込みによるネイティブヒストグラム (スパースヒストグラムとも呼ばれる) の送信を有効にします。

Prometheus v2.40.0 以降が必要です。

false

sigv4

object

Sigv4 を使用して、URL に対して AWS の Signature Verification 4 を設定できます。

  • Prometheus v2.26.0 以降が必要です。
  • authorizationbasicAuthoauth2azureAd と同時に設定することはできません。

false

tlsConfig

object

URL に使用する TLS 設定。

false

writeRelabelConfigs

[]object

リモート書き込み再ラベル付け設定のリスト。

false

6.18. MonitoringStack.spec.prometheusConfig.remoteWrite[index].authorization

URL の認可セクション。

  • Prometheus v2.26.0 以降が必要です。
  • sigv4basicAuthoauth2azureAd と同時に設定することはできません。
Expand
名前説明必須

credentials

object

認証の認証情報を含む、namespace 内の Secret のキーを選択します。

false

credentialsFile

string

シークレットを読み取るファイル。credentials とは相互に排他的です。

false

type

string

認証タイプを定義します。この値は大文字と小文字を区別しません。

"Basic" はサポートされている値ではありません。

デフォルト: "Bearer"

false

6.19. MonitoringStack.spec.prometheusConfig.remoteWrite[index].authorization.credentials

認証の認証情報を含む、namespace 内の Secret のキーを選択します。

Expand
名前説明必須

key

string

選択するシークレットのキー。有効な秘密鍵でなければなりません。

true

name

string

参照先の名前。このフィールドは実質的には必須ですが、下位互換性のため空でもかまいません。ここで空の値を持つこの型のインスタンスは、ほぼ間違いなく間違っています。詳細は、Kubernetes ドキュメント を参照してください。

false

optional

boolean

シークレットかそのキーを定義する必要があるかどうかを指定します。

false

6.20. MonitoringStack.spec.prometheusConfig.remoteWrite[index].azureAd

URL の AzureAD。

  • Prometheus 2.45.0 以降が必要です。
  • authorizationbasicAuthoauth2sigv4 と同時に設定することはできません。
Expand
名前説明必須

cloud

enum

Azure クラウド。オプションは、'AzurePublic'、'AzureChina'、'AzureGovernment' です。

Enum: AzureChina, AzureGovernment, AzurePublic

false

managedIdentity

object

ManagedIdentity は、Azure ユーザーが割り当てたマネージド ID を定義します。oauth または sdk と同時に設定することはできません。

false

oauth

object

OAuth は、認証に使用される oauth 設定を定義します。

  • managedIdentity または sdk と同時に設定することはできません。
  • Prometheus v2.48.0 以降が必要です。

false

sdk

object

SDK は、認証に使用される Azure SDK 設定を定義します。Azure SDK Authentication を参照してください。

  • oauth または managedIdentity と同時に設定することはできません。
  • Prometheus 2.52.0 以降が必要です。

false

6.21. MonitoringStack.spec.prometheusConfig.remoteWrite[index].azureAd.managedIdentity

managedIdentity は、Azure ユーザーが割り当てたマネージド ID を定義します。

  • oauth または sdk と同時に設定することはできません。
Expand
名前説明必須

clientId

string

クライアント ID

true

6.22. MonitoringStack.spec.prometheusConfig.remoteWrite[index].azureAd.oauth

OAuth は、認証に使用される oauth 設定を定義します。

  • managedIdentity または sdk と同時に設定することはできません。
  • Prometheus v2.48.0 以降が必要です。
Expand
名前説明必須

clientId

string

clientID は、認証に使用されている Azure Active Directory アプリケーションの clientId です。

true

clientSecret

object

clientSecret は、認証に使用される Azure Active Directory アプリケーションのクライアントシークレットを含む Secret のキーを指定します。

true

tenantId

string

tenantId は、認証に使用されている Azure Active Directory アプリケーションのテナント ID です。

true

6.23. MonitoringStack.spec.prometheusConfig.remoteWrite[index].azureAd.oauth.clientSecret

clientSecret は、認証に使用される Azure Active Directory アプリケーションのクライアントシークレットを含む Secret のキーを指定します。

Expand
名前タイプ説明必須

key

string

選択するシークレットのキー。有効な秘密鍵でなければなりません。

true

name

string

参照先の名前。このフィールドは実質的には必須ですが、下位互換性のため空でもかまいません。ここで空の値を持つこの型のインスタンスは、ほぼ間違いなく間違っています。

詳細は、Kubernetes ドキュメント を参照してください。

false

optional

boolean

シークレットかそのキーを定義する必要があるかどうかを指定します。

false

6.24. MonitoringStack.spec.prometheusConfig.remoteWrite[index].azureAd.sdk

SDK は、認証に使用される Azure SDK 設定を定義します。

詳細は、Azure SDK Authentication を参照してください。

  • oauth または managedIdentity と同時に設定することはできません。
  • Prometheus 2.52.0 以降が必要です。
Expand
名前タイプ説明必須

tenantId

string

tenantId は、認証に使用されている Azure Active Directory アプリケーションのテナント ID です。

false

6.25. MonitoringStack.spec.prometheusConfig.remoteWrite[index].basicAuth

URL の BasicAuth 設定。

  • sigv4authorizationoauth2azureAd と同時に設定することはできません。
Expand
名前タイプ説明必須

password

object

password は、認証用のパスワードを含むシークレットのキーを指定します。

false

username

object

username は、認証用のユーザー名を含むシークレットのキーを指定します。

false

6.26. MonitoringStack.spec.prometheusConfig.remoteWrite[index].basicAuth.password

password は、認証用のパスワードを含むシークレットのキーを指定します。

Expand
名前説明必須

key

string

選択するシークレットのキー。有効な秘密鍵でなければなりません。

true

name

string

参照先の名前。このフィールドは実質的には必須ですが、下位互換性のため空でもかまいません。ここで空の値を持つこの型のインスタンスは、ほぼ間違いなく間違っています。

詳細は、Kubernetes ドキュメント を参照してください。

false

optional

boolean

シークレットかそのキーを定義する必要があるかどうかを指定します。

false

6.27. MonitoringStack.spec.prometheusConfig.remoteWrite[index].basicAuth.username

username は、認証用のユーザー名を含むシークレットのキーを指定します。

Expand
名前説明必須

key

string

選択するシークレットのキー。有効な秘密鍵でなければなりません。

true

name

string

参照先の名前。このフィールドは実質的には必須ですが、下位互換性のため空でもかまいません。ここで空の値を持つこの型のインスタンスは、ほぼ間違いなく間違っています。

詳細は、Kubernetes ドキュメント を参照してください。

false

optional

boolean

シークレットかそのキーを定義する必要があるかどうかを指定します。

false

6.28. MonitoringStack.spec.prometheusConfig.remoteWrite[index].metadataConfig

MetadataConfig は、リモートストレージへのシリーズメタデータの送信を設定します。

Expand
名前説明必須

send

boolean

メトリクスメタデータをリモートストレージに送信するかどうかを定義します。

false

sendInterval

string

メトリクスメタデータをリモートストレージに送信する頻度を定義します。

false

6.29. MonitoringStack.spec.prometheusConfig.remoteWrite[index].oauth2

URL の OAuth2 設定。

  • Prometheus v2.27.0 以降が必要です。
  • sigv4authorizationbasicAuthazureAd と同時に設定することはできません。
Expand
名前説明必須

clientId

object

clientId は、OAuth2 クライアントの ID を含む Secret または ConfigMap オブジェクトのキーを指定します。

true

clientSecret

object

clientSecret は、OAuth2 クライアントのシークレットを含む Secret のキーを指定します。

true

tokenUrl

string

tokenURL は、トークンを取得する URL を設定します。

true

endpointParams

map[string]string

endpointParams は、トークン URL に追加する HTTP パラメーターを設定します。

false

noProxy

string

noProxy は、プロキシーから除外する IP、CIDR 表記、またはドメイン名が含まれる場合があるコンマ区切りの文字列です。IP およびドメイン名にはポート番号を含まれる場合があります。

Prometheus v2.43.0 以降または Alertmanager 0.25.0 以降が必要です。

false

proxyConnectHeader

map[string][]object

ProxyConnectHeader は、CONNECT リクエスト中にプロキシーに送信するヘッダーをオプションで指定します。

Prometheus v2.43.0 以降または Alertmanager 0.25.0 以降が必要です。

false

proxyFromEnvironment

boolean

環境変数 HTTP_PROXYHTTPS_PROXYNO_PROXY) によって定義されたプロキシー設定を使用するかどうか。

Prometheus v2.43.0 以降または Alertmanager 0.25.0 以降が必要です。

false

proxyUrl

string

proxyURL は、使用する HTTP プロキシーサーバーを定義します。

false

scopes

[]string

scopes は、トークン要求に使用される OAuth2 スコープを定義します。

false

tlsConfig

object

OAuth2 サーバーに接続するときに使用する TLS 設定。

Prometheus v2.43.0 以降が必要です。

false

6.30. MonitoringStack.spec.prometheusConfig.remoteWrite[index].oauth2.clientId

clientId は、OAuth2 クライアントの ID を含む Secret または ConfigMap のキーを指定します。

Expand
名前説明必須

configMap

object

ターゲットに使用するデータを含む ConfigMap。

false

secret

object

ターゲットに使用するデータを含むシークレット。

false

6.31. MonitoringStack.spec.prometheusConfig.remoteWrite[index].oauth2.clientId.configMap

ターゲットに使用するデータを含む ConfigMap。

Expand
名前説明必須

key

string

選択するキー。

true

name

string

参照先の名前。このフィールドは実質的には必須ですが、下位互換性のため空でもかまいません。ここで空の値を持つこの型のインスタンスは、ほぼ間違いなく間違っています。

詳細は、Kubernetes ドキュメント を参照してください。

false

optional

boolean

ConfigMap かそのキーを定義する必要があるかどうかを指定します。

false

6.32. MonitoringStack.spec.prometheusConfig.remoteWrite[index].oauth2.clientId.secret

ターゲットに使用するデータを含むシークレット。

Expand
名前説明必須

key

string

選択するシークレットのキー。有効な秘密鍵でなければなりません。

true

name

string

参照先の名前。このフィールドは実質的には必須ですが、下位互換性のため空でもかまいません。ここで空の値を持つこの型のインスタンスは、ほぼ間違いなく間違っています。

詳細は、Kubernetes ドキュメント を参照してください。

false

optional

boolean

シークレットかそのキーを定義する必要があるかどうかを指定します。

false

6.33. MonitoringStack.spec.prometheusConfig.remoteWrite[index].oauth2.clientSecret

clientSecret は、OAuth2 クライアントのシークレットを含む Secret のキーを指定します。

Expand
名前説明必須

key

string

選択するシークレットのキー。有効な秘密鍵でなければなりません。

true

name

string

参照先の名前。このフィールドは実質的には必須ですが、下位互換性のため空でもかまいません。ここで空の値を持つこの型のインスタンスは、ほぼ間違いなく間違っています。

詳細は、Kubernetes ドキュメント を参照してください。

false

optional

boolean

シークレットかそのキーを定義する必要があるかどうかを指定します。

false

6.34. MonitoringStack.spec.prometheusConfig.remoteWrite[index].oauth2.proxyConnectHeader[key][index]

SecretKeySelector は、シークレットのキーを選択します。

Expand
名前説明必須

key

string

選択するシークレットのキー。有効な秘密鍵でなければなりません。

true

name

string

参照先の名前。このフィールドは実質的には必須ですが、下位互換性のため空でもかまいません。ここで空の値を持つこの型のインスタンスは、ほぼ間違いなく間違っています。

詳細は、Kubernetes ドキュメント を参照してください。

false

optional

boolean

シークレットかそのキーを定義する必要があるかどうかを指定します。

false

6.35. MonitoringStack.spec.prometheusConfig.remoteWrite[index].oauth2.tlsConfig

OAuth2 サーバーに接続するときに使用する TLS 設定。

  • Prometheus v2.43.0 以降が必要です。
Expand
名前タイプ説明必須

ca

object

サーバー証明書の検証に使用される認証局。

false

cert

object

クライアント認証を行うときに提示するクライアント証明書。

false

insecureSkipVerify

boolean

ターゲット証明書の検証を無効にします。

false

keySecret

object

ターゲットのクライアントキーファイルを含むシークレット。

false

maxVersion

enum

許容可能な最大 TLS バージョン。

Prometheus v2.41.0 以降が必要です。

Enum: TLS10, TLS11, TLS12, TLS13

false

minVersion

enum

許容可能な最小 TLS バージョン。

Prometheus v2.35.0 以降が必要です。

Enum: TLS10, TLS11, TLS12, TLS13

false

serverName

string

ターゲットのホスト名を確認するために使用されます。

false

6.36. MonitoringStack.spec.prometheusConfig.remoteWrite[index].oauth2.tlsConfig.ca

サーバー証明書の検証に使用される認証局。

Expand
名前タイプ説明必須

configMap

object

ターゲットに使用するデータを含む ConfigMap。

false

secret

object

ターゲットに使用するデータを含むシークレット。

false

6.37. MonitoringStack.spec.prometheusConfig.remoteWrite[index].oauth2.tlsConfig.ca.configMap

ターゲットに使用するデータを含む ConfigMap。

Expand
名前タイプ説明必須

key

string

選択するキー。

true

name

string

参照先の名前。このフィールドは実質的には必須ですが、下位互換性のため空でもかまいません。ここで空の値を持つこの型のインスタンスは、ほぼ間違いなく間違っています。

詳細は、Kubernetes ドキュメント を参照してください。

false

optional

boolean

ConfigMap かそのキーを定義する必要があるかどうかを指定します。

false

6.38. MonitoringStack.spec.prometheusConfig.remoteWrite[index].oauth2.tlsConfig.ca.secret

ターゲットに使用するデータを含むシークレット。

Expand
名前タイプ説明必須

key

string

選択するシークレットのキー。有効な秘密鍵でなければなりません。

true

name

string

参照先の名前。このフィールドは実質的には必須ですが、下位互換性のため空でもかまいません。ここで空の値を持つこの型のインスタンスは、ほぼ間違いなく間違っています。

詳細は、Kubernetes ドキュメント を参照してください。

false

optional

boolean

シークレットかそのキーを定義する必要があるかどうかを指定します。

false

6.39. MonitoringStack.spec.prometheusConfig.remoteWrite[index].oauth2.tlsConfig.cert

クライアント認証を行うときに提示するクライアント証明書。

Expand
名前タイプ説明必須

configMap

object

ターゲットに使用するデータを含む ConfigMap。

false

secret

object

ターゲットに使用するデータを含むシークレット。

false

6.40. MonitoringStack.spec.prometheusConfig.remoteWrite[index].oauth2.tlsConfig.cert.configMap

ターゲットに使用するデータを含む ConfigMap。

Expand
名前タイプ説明必須

key

string

選択するキー。

true

name

string

参照先の名前。このフィールドは実質的には必須ですが、下位互換性のため空でもかまいません。ここで空の値を持つこの型のインスタンスは、ほぼ間違いなく間違っています。

詳細は、Kubernetes ドキュメント を参照してください。

false

optional

boolean

ConfigMap かそのキーを定義する必要があるかどうかを指定します。

false

6.41. MonitoringStack.spec.prometheusConfig.remoteWrite[index].oauth2.tlsConfig.cert.secret

ターゲットに使用するデータを含むシークレット。

Expand
名前タイプ説明必須

key

string

選択するシークレットのキー。有効な秘密鍵でなければなりません。

true

name

string

参照先の名前。このフィールドは実質的には必須ですが、下位互換性のため空でもかまいません。ここで空の値を持つこの型のインスタンスは、ほぼ間違いなく間違っています。

詳細は、Kubernetes ドキュメント を参照してください。

false

optional

boolean

シークレットかそのキーを定義する必要があるかどうかを指定します。

false

6.42. MonitoringStack.spec.prometheusConfig.remoteWrite[index].oauth2.tlsConfig.keySecret

ターゲットのクライアントキーファイルを含むシークレット。

Expand
名前タイプ説明必須

key

string

選択するシークレットのキー。有効な秘密鍵でなければなりません。

true

name

string

参照先の名前。このフィールドは実質的には必須ですが、下位互換性のため空でもかまいません。ここで空の値を持つこの型のインスタンスは、ほぼ間違いなく間違っています。

詳細は、Kubernetes ドキュメント を参照してください。

false

optional

boolean

シークレットかそのキーを定義する必要があるかどうかを指定します。

false

6.43. MonitoringStack.spec.prometheusConfig.remoteWrite[index].proxyConnectHeader[key][index]

SecretKeySelector は、シークレットのキーを選択します。

Expand
名前タイプ説明必須

key

string

選択するシークレットのキー。有効な秘密鍵でなければなりません。

true

name

string

参照先の名前。このフィールドは実質的には必須ですが、下位互換性のため空でもかまいません。ここで空の値を持つこの型のインスタンスは、ほぼ間違いなく間違っています。

詳細は、Kubernetes ドキュメント を参照してください。

false

optional

boolean

シークレットかそのキーを定義する必要があるかどうかを指定します。

false

6.44. MonitoringStack.spec.prometheusConfig.remoteWrite[index].queueConfig

QueueConfig を使用すると、リモート書き込みキューパラメーターを調整できます。

Expand
名前タイプ説明必須

batchSendDeadline

string

BatchSendDeadline は、サンプルがバッファーで待機する最大時間です。

false

capacity

integer

Capacity は、ドロップを開始する前にシャードごとにバッファリングするサンプルの数です。

false

maxBackoff

string

MaxBackoff は、最大再試行遅延です。

false

maxRetries

integer

MaxRetries は、回復可能なエラーでバッチを再試行する最大回数です。

false

maxSamplesPerSend

integer

MaxSamplesPerSend は、送信ごとのサンプルの最大数です。

false

maxShards

integer

MaxShards はシャードの最大数、つまり同時実行数です。

false

minBackoff

string

MinBackoff は、最初の再試行遅延です。再試行するたびに 2 倍になります。

false

minShards

integer

MinShards はシャードの最小数、つまり同時実行数です。

false

retryOnRateLimit

boolean

remote-write ストレージから 429 ステータスコードを受信すると再試行します。

これは 実験的な機能 であり、今後のリリースで重大な変更が加えられる可能性があります。

false

sampleAgeLimit

string

SampleAgeLimit は制限より古いサンプルを削除します。

Prometheus v2.50.0 以降が必要です。

false

6.45. MonitoringStack.spec.prometheusConfig.remoteWrite[index].sigv4

sigv4 を使用して、URL に対して AWS の Signature Verification 4 を設定できます。

  • Prometheus v2.26.0 以降が必要です。
  • authorizationbasicAuthoauth2azureAd と同時に設定することはできません。
Expand
名前タイプ説明必須

accessKey

object

AccessKey は AWS API キーです。指定されていない場合は、環境変数 AWS_ACCESS_KEY_ID が使用されます。

false

profile

string

Profile は、認証に使用される名前付き AWS プロファイルです。

false

region

string

Region は AWS リージョンです。空白の場合は、デフォルトの認証情報チェーンのリージョンが使用されます。

false

roleArn

string

RoleArn は、認証に使用される名前付き AWS プロファイルです。

false

secretKey

object

SecretKey は AWS API シークレットです。指定されていない場合は、環境変数 AWS_SECRET_ACCESS_KEY が使用されます。

false

6.46. MonitoringStack.spec.prometheusConfig.remoteWrite[index].sigv4.accessKey

AccessKey は AWS API キーです。指定されていない場合は、環境変数 AWS_ACCESS_KEY_ID が使用されます。

Expand
名前タイプ説明必須

key

string

選択するシークレットのキー。有効な秘密鍵でなければなりません。

true

name

string

参照先の名前。このフィールドは実質的には必須ですが、下位互換性のため空でもかまいません。ここで空の値を持つこの型のインスタンスは、ほぼ間違いなく間違っています。

詳細は、Kubernetes ドキュメント を参照してください。

false

optional

boolean

シークレットかそのキーを定義する必要があるかどうかを指定します。

false

6.47. MonitoringStack.spec.prometheusConfig.remoteWrite[index].sigv4.secretKey

SecretKey は AWS API シークレットです。指定されていない場合は、環境変数 AWS_SECRET_ACCESS_KEY が使用されます。

Expand
名前タイプ説明必須

key

string

選択するシークレットのキー。有効な秘密鍵でなければなりません。

true

name

string

参照先の名前。このフィールドは実質的には必須ですが、下位互換性のため空でもかまいません。ここで空の値を持つこの型のインスタンスは、ほぼ間違いなく間違っています。

詳細は、Kubernetes ドキュメント を参照してください。

false

optional

boolean

シークレットかそのキーを定義する必要があるかどうかを指定します。

false

6.48. MonitoringStack.spec.prometheusConfig.remoteWrite[index].tlsConfig

URL に使用する TLS 設定。

Expand
名前タイプ説明必須

ca

object

サーバー証明書の検証に使用される認証局。

false

caFile

string

ターゲットに使用する Prometheus コンテナー内の CA 証明書へのパス。

false

cert

object

クライアント認証を行うときに提示するクライアント証明書。

false

certFile

string

ターゲットの Prometheus コンテナー内のクライアント証明書ファイルへのパス。

false

insecureSkipVerify

boolean

ターゲット証明書の検証を無効にします。

false

keyFile

string

ターゲットの Prometheus コンテナー内のクライアントキーファイルへのパス。

false

keySecret

object

ターゲットのクライアントキーファイルを含むシークレット。

false

maxVersion

enum

許容可能な最大 TLS バージョン。

Prometheus v2.41.0 以降が必要です。

Enum: TLS10, TLS11, TLS12, TLS13

false

minVersion

enum

許容可能な最小 TLS バージョン。

Prometheus v2.35.0 以降が必要です。

Enum: TLS10, TLS11, TLS12, TLS13

false

serverName

string

ターゲットのホスト名を確認するために使用されます。

false

6.49. MonitoringStack.spec.prometheusConfig.remoteWrite[index].tlsConfig.ca

サーバー証明書の検証に使用される認証局。

Expand
名前説明必須

configMap

object

ターゲットに使用するデータを含む ConfigMap。

false

secret

object

ターゲットに使用するデータを含むシークレット。

false

6.50. MonitoringStack.spec.prometheusConfig.remoteWrite[index].tlsConfig.ca.configMap

ターゲットに使用するデータを含む ConfigMap。

Expand
名前タイプ説明必須

key

string

選択するキー。

true

name

string

参照先の名前。このフィールドは実質的には必須ですが、下位互換性のため空でもかまいません。ここで空の値を持つこの型のインスタンスは、ほぼ間違いなく間違っています。

詳細は、Kubernetes ドキュメント を参照してください。

false

optional

boolean

ConfigMap かそのキーを定義する必要があるかどうかを指定します。

false

6.51. MonitoringStack.spec.prometheusConfig.remoteWrite[index].tlsConfig.ca.secret

ターゲットに使用するデータを含むシークレット。

Expand
名前タイプ説明必須

key

string

選択するシークレットのキー。有効な秘密鍵でなければなりません。

true

name

string

参照先の名前。このフィールドは実質的には必須ですが、下位互換性のため空でもかまいません。ここで空の値を持つこの型のインスタンスは、ほぼ間違いなく間違っています。

詳細は、Kubernetes ドキュメント を参照してください。

false

optional

boolean

シークレットかそのキーを定義する必要があるかどうかを指定します。

false

6.52. MonitoringStack.spec.prometheusConfig.remoteWrite[index].tlsConfig.cert

クライアント認証を行うときに提示するクライアント証明書。

Expand
名前タイプ説明必須

configMap

object

ターゲットに使用するデータを含む ConfigMap。

false

secret

object

ターゲットに使用するデータを含むシークレット。

false

6.53. MonitoringStack.spec.prometheusConfig.remoteWrite[index].tlsConfig.cert.configMap

ターゲットに使用するデータを含む ConfigMap。

Expand
名前タイプ説明必須

key

string

選択するキー。

true

name

string

参照先の名前。このフィールドは実質的には必須ですが、下位互換性のため空でもかまいません。ここで空の値を持つこの型のインスタンスは、ほぼ間違いなく間違っています。

詳細は、Kubernetes ドキュメント を参照してください。

false

optional

boolean

ConfigMap かそのキーを定義する必要があるかどうかを指定します。

false

6.54. MonitoringStack.spec.prometheusConfig.remoteWrite[index].tlsConfig.cert.secret

ターゲットに使用するデータを含むシークレット。

Expand
名前タイプ説明必須

key

string

選択するシークレットのキー。有効な秘密鍵でなければなりません。

true

name

string

参照先の名前。このフィールドは実質的には必須ですが、下位互換性のため空でもかまいません。ここで空の値を持つこの型のインスタンスは、ほぼ間違いなく間違っています。

詳細は、Kubernetes ドキュメント を参照してください。

false

optional

boolean

シークレットかそのキーを定義する必要があるかどうかを指定します。

false

6.55. MonitoringStack.spec.prometheusConfig.remoteWrite[index].tlsConfig.keySecret

ターゲットのクライアントキーファイルを含むシークレット。

Expand
名前タイプ説明必須

key

string

選択するシークレットのキー。有効な秘密鍵でなければなりません。

true

name

string

参照先の名前。このフィールドは実質的には必須ですが、下位互換性のため空でもかまいません。ここで空の値を持つこの型のインスタンスは、ほぼ間違いなく間違っています。

詳細は、Kubernetes ドキュメント を参照してください。

false

optional

boolean

シークレットかそのキーを定義する必要があるかどうかを指定します。

false

6.56. MonitoringStack.spec.prometheusConfig.remoteWrite[index].writeRelabelConfigs[index]

RelabelConfig を使用すると、ターゲット、アラート、スクレイピングされたサンプル、リモート書き込みサンプルのラベルセットを動的に書き換えることができます。

詳細は、Prometheus のドキュメント を参照してください。

Expand
名前タイプ説明必須

action

enum

正規表現の一致に基づいて実行するアクション。

  • Uppercase および Lowercase アクションには Prometheus v2.36.0 以降が必要です。
  • DropEqual および KeepEqual アクションには Prometheus v2.41.0 以降が必要です。

Enum: replace, Replace, keep, Keep, drop, Drop, hashmod, HashMod, labelmap, LabelMap, labeldrop, LabelDrop, labelkeep, LabelKeep, lowercase, Lowercase, uppercase, Uppercase, keepequal, KeepEqual, dropequal, DropEqual

デフォルト: replace

false

modulus

integer

ソースラベル値のハッシュを取得するためのモジュラス。

アクションが HashMod の場合にのみ適用されます。

形式: int64

false

regex

string

抽出された値が一致する正規表現。

false

replacement

string

正規表現が一致する場合に置き換えアクションが実施される置換値。

正規表現キャプチャグループが利用可能です。

false

separator

string

Separator は連結された SourceLabels 間の文字列です。

false

sourceLabels

[]string

ソースラベルは、既存のラベルから値を選択します。それらのコンテンツは、設定されたセパレータを使用して連結され、設定された正規表現と照合されます。

false

targetLabel

string

結果の文字列が置換で書き込まれるラベル。

ReplaceHashModLowercaseUppercaseKeepEqualDropEqual アクションでは必須です。

正規表現キャプチャグループが利用可能です。

false

6.57. MonitoringStack.spec.prometheusConfig.webTLSConfig

Prometheus Web サーバーの TLS オプションを設定します。

Expand
名前タイプ説明必須

certificate

object

Web サーバーの TLS パブリック証明書への参照。

true

certificateAuthority

object

Web サーバーの証明書を検証するために使用されるルート認証局への参照。

true

privateKey

object

Web サーバーの TLS 秘密鍵への参照。

true

6.58. MonitoringStack.spec.prometheusConfig.webTLSConfig.certificate

Web サーバーの TLS パブリック証明書への参照。

Expand
名前タイプ説明必須

key

string

選択するシークレットのキー。有効な秘密鍵でなければなりません。

true

name

string

選択元となるオブジェクトの namespace 内にあるシークレットの名前。

true

6.59. MonitoringStack.spec.prometheusConfig.webTLSConfig.certificateAuthority

Web サーバーの証明書を検証するために使用されるルート認証局への参照。

Expand
名前タイプ説明必須

key

string

選択するシークレットのキー。有効な秘密鍵でなければなりません。

true

name

string

選択元となるオブジェクトの namespace 内にあるシークレットの名前。

true

6.60. MonitoringStack.spec.prometheusConfig.webTLSConfig.privateKey

Web サーバーの TLS 秘密鍵への参照。

Expand
名前タイプ説明必須

key

string

選択するシークレットのキー。有効な秘密鍵でなければなりません。

true

name

string

選択元となるオブジェクトの namespace 内にあるシークレットの名前。

true

6.61. MonitoringStack.spec.resourceSelector

MonitoringStack リソースのラベルセレクター。

  • すべてを監視するには、空のマップセレクターに設定します。たとえば、resourceSelector: {} です。
  • サービス検出を無効にするには、null に設定します。たとえば、resourceSelector: です。
Expand
名前タイプ説明必須

matchExpressions

[]object

matchExpressions はラベルセレクターの要件リストです。要件は AND で結合されます。

false

matchLabels

map[string]string

matchLabels は、{key,value} ペアのマップです。matchLabels マップの 1 つの {key,value} は matchExpressions の要素と同じで、キーフィールドには "key"、演算子には "In"、値配列には "value" のみが含まれます。要件は AND で結合されます。

false

6.62. MonitoringStack.spec.resourceSelector.matchExpressions[index]

ラベルセレクター要件は、値、キー、およびキーと値を関連付ける Operator を含むセレクターです。

Expand
名前タイプ説明必須

key

string

key は、セレクターの適用先のラベルキーです。

true

operator

string

operator はキーと値のセットの関係を表します。有効な演算子は InNotInExists、および DoesNotExist です。

true

values

[]string

values は文字列値の配列です。Operator が In または NotIn の場合は、values 配列を空白にできません。Operator が Exists または DoesNotExist の場合は、values 配列は空白でなければなりません。この配列は、ストラテジーに基づいたマージパッチの適用中に置き換えられます。

false

6.63. MonitoringStack.spec.resources

MonitoringStack Pod のリソース要求および制限を定義します。

Expand
名前タイプ説明必須

claims

[]object

Claims には、spec.resourceClaims で定義され、このコンテナーによって使用されるリソースの名前がリストされます。

これはアルファフィールドであり、DynamicResourceAllocation フィーチャーゲートを有効にする必要があります。

このフィールドは変更不可能です。これはコンテナーにのみ設定できます。

false

limits

map[string]int or string

Limits は、許可されるコンピュートリソースの最大量を示します。

詳細は、Kubernetes ドキュメント を参照してください。

false

requests

map[string]int or string

Requests は、必要なコンピュートリソースの最小量を示します。コンテナーで Requests が省略される場合、明示的に指定される場合にデフォルトで Limits に設定されます。指定しない場合は、実装定義の値に設定されます。RequestsLimits を超えることはできません。

詳細は、Kubernetes ドキュメント を参照してください。

false

6.64. MonitoringStack.spec.resources.claims[index]

ResourceClaim は、PodSpec.ResourceClaims 内の 1 つのエントリーを参照します。

Expand
名前タイプ説明必須

name

string

Name は、このフィールドが使用される Pod の pod.spec.resourceClaims に含まれる、1 つのエントリーの名前と一致する必要があります。これにより、そのリソースがコンテナー内で利用可能になります。

true

request

string

Request は、参照されるクレーム内のリクエストに対して選択された名前です。空の場合、クレームからのすべてのものが利用可能になり、それ以外の場合はこの request の結果のみが利用可能になります。

false

6.65. MonitoringStack.spec.tolerations[index]

この Toleration が割り当てられる Pod は、マッチング Operator <operator> を使用してトリプル <key,value,effect> と一致する taint を許容します。

Expand
名前タイプ説明必須

effect

string

Effect は、照合するテイントの効果を示します。空の場合は、すべての taint 効果に一致します。指定する場合、使用な可能な値は NoSchedulePreferNoSchedule、および NoExecute です。

false

key

string

Key は toleration が適用されるテイントキーです。空の場合は、すべての taint キーに一致します。キーが空の場合、Operator は Exists である必要があります。この組み合わせは、すべての値とすべてのキーに一致することを意味します。

false

operator

string

Operator はキーと値の関係を表します。有効な Operator は Exists および Equal です。デフォルトは Equal です。Exists は、値にワイルドカードを指定するのと同等です。そのため、Pod が特定カテゴリーのすべての taint を許容できます。

false

tolerationSeconds

integer

TolerationSeconds は、toleration (effect は NoExecute でなければならず、NoExecute 以外の場合このフィールドは無視されます) が taint を許容する期間を表します。デフォルトでは設定されていません。つまり、テイントを永久に許容します (エビクトしないでください)。ゼロ値と負の値は、システムによって 0 (すぐにエビクト) として扱われます。

形式: int64

false

value

string

Value は、toleration が一致するテイントの値です。Operator が Exists の場合、値は空である必要があります。それ以外の場合は、通常の文字列のみになります。

false

6.66. MonitoringStack.status

MonitoringStackStatus は、MonitoringStack インスタンスの観測された状態を定義します。常に、クラスターの状態や外から再構築できる必要があります。

Expand
名前タイプ説明必須

conditions

[]object

ConditionsMonitoringStack インスタンスに関するステータス情報を提供します。

true

6.67. MonitoringStack.status.conditions[index]

Expand
名前タイプ説明必須

lastTransitionTime

string

lastTransitionTime は、ある状態から別の状態に最後に遷移した時間です。これは、基礎となる条件が変更された時刻になるはずです。不明な場合には、API フィールドが変更された時点を使用することも可能です。

形式: date-time

true

message

string

message は、遷移の詳細を示す人が判読できるメッセージです。空の文字列の場合もあります。

true

reason

string

reason には、条件の最後の遷移の理由を示すプログラムによる識別子が含まれます。特定の条件タイプのプロデューサーは、このフィールドの期待値と意味、および値が保証された API と見なされるかどうかを定義できます。値は CamelCase 文字列である必要があります。このフィールドには空白を指定できません。

true

status

enum

条件のステータス。

Enum: True, False, Unknown, Degraded

true

type

string

CamelCase または foo.example.com/CamelCase の条件の type。一致する正規表現は (dns1123SubdomainFmt/)?(qualifiedNameFmt) です。

true

observedGeneration

integer

observedGeneration は、それをベースに条件が設定された .metadata.generation を表します。たとえば、.metadata.generation が現在 12 で、.status.conditions[x].observedGeneration が 9 の場合、インスタンスの現在の状態に対して条件が古くなっています。

形式: int64

最小値: 0

false

6.68. ThanosQuerier

ThanosQuerier は、このスタックによって管理される Thanos クエリーコンポーネントの概要を示します。

Expand
名前説明必須

apiVersion

string

monitoring.rhobs/v1alpha1

true

kind

string

ThanosQuerier

true

metadata

object

metadata フィールドのフィールドは、Kubernetes API ドキュメントを参照してください。

true

spec

object

ThanosQuerierSpec は、単一の Thanos Querier インスタンスを定義します。これは、クエリーを行う MonitoringStack インスタンスを選択するためのラベルセレクターと、オプションの namespace セレクター、および重複を排除するレプリカラベルのリストです。

false

status

object

ThanosQuerierStatus は、ThanosQuerier の観測された状態を定義します。常に、クラスターの状態や外から再構築できる必要があります。

false

6.69. ThanosQuerier.spec

ThanosQuerierSpec は、単一の Thanos Querier インスタンスを定義します。これは、クエリーを行う MonitoringStack インスタンスを選択するためのラベルセレクターと、オプションの namespace セレクター、および重複を排除するレプリカラベルのリストです。

Expand
名前説明必須

selector

object

統合するモニタリングスタックを選択するためのセレクター。

true

namespaceSelector

object

MonitoringStack オブジェクトが検出される namespace を選択するためのセレクター。

false

replicaLabels

[]string

 

false

webTLSConfig

object

Thanos Web サーバーの TLS オプションを設定します。

false

6.70. ThanosQuerier.spec.selector

統合するモニタリングスタックを選択するためのセレクター。

Expand
名前説明必須

matchExpressions

[]object

matchExpressions はラベルセレクターの要件リストです。要件は AND で結合されます。

false

matchLabels

map[string]string

matchLabels は、{key,value} ペアのマップです。matchLabels マップの 1 つの {key,value} は matchExpressions の要素と同じで、キーフィールドには "key"、演算子には "In"、値配列には "value" のみが含まれます。要件は AND で結合されます。

false

6.71. ThanosQuerier.spec.selector.matchExpressions[index]

ラベルセレクター要件は、値、キー、およびキーと値を関連付ける Operator を含むセレクターです。

Expand
名前説明必須

key

string

key は、セレクターの適用先のラベルキーです。

true

operator

string

operator はキーと値のセットの関係を表します。有効な演算子は InNotInExists、および DoesNotExist です。

true

values

[]string

values は文字列値の配列です。Operator が In または NotIn の場合は、values 配列を空白にできません。Operator が Exists または DoesNotExist の場合は、values 配列は空白でなければなりません。この配列は、ストラテジーに基づいたマージパッチの適用中に置き換えられます。

false

6.72. ThanosQuerier.spec.namespaceSelector

MonitoringStack オブジェクトが検出される namespace を選択するためのセレクター。

Expand
名前説明必須

any

boolean

それらを制限するリストとは対照的に、すべての namespace が選択されているかどうかを説明するブール値。

false

matchNames

[]string

名前空間名のリスト。

false

6.73. ThanosQuerier.spec.webTLSConfig

Thanos Web サーバーの TLS オプションを設定します。

Expand
名前説明必須

certificate

object

Web サーバーの TLS パブリック証明書への参照。

true

certificateAuthority

object

Web サーバーの証明書を検証するために使用されるルート認証局への参照。

true

privateKey

object

Web サーバーの TLS 秘密鍵への参照。

true

6.74. ThanosQuerier.spec.webTLSConfig.certificate

Web サーバーの TLS パブリック証明書への参照。

Expand
名前説明必須

key

string

選択するシークレットのキー。有効な秘密鍵でなければなりません。

true

name

string

選択元となるオブジェクトの namespace 内にあるシークレットの名前。

true

6.75. ThanosQuerier.spec.webTLSConfig.certificateAuthority

Web サーバーの証明書を検証するために使用されるルート認証局への参照。

Expand
名前説明必須

key

string

選択するシークレットのキー。有効な秘密鍵でなければなりません。

true

name

string

選択元となるオブジェクトの namespace 内にあるシークレットの名前。

true

6.76. ThanosQuerier.spec.webTLSConfig.privateKey

Web サーバーの TLS 秘密鍵への参照。

Expand
名前説明必須

key

string

選択するシークレットのキー。有効な秘密鍵でなければなりません。

true

name

string

選択元となるオブジェクトの namespace 内にあるシークレットの名前。

true

Legal Notice

Copyright © 2025 Red Hat

OpenShift documentation is licensed under the Apache License 2.0 (https://www.apache.org/licenses/LICENSE-2.0).

Modified versions must remove all Red Hat trademarks.

Portions adapted from https://github.com/kubernetes-incubator/service-catalog/ with modifications by Red Hat.

Red Hat, Red Hat Enterprise Linux, the Red Hat logo, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.

Linux® is the registered trademark of Linus Torvalds in the United States and other countries.

Java® is a registered trademark of Oracle and/or its affiliates.

XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.

MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.

Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.

The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation’s permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.

All other trademarks are the property of their respective owners.

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat