第1章 Pluggable Discovery API
Pluggable Discovery API エンドポイント/api/v2.2/discovery を使用して、外部プラグインを Cryostat
に登録し、検出可能なアプリケーションターゲットに関する情報を Cryostat に提供できます。
Pluggable Discovery API の代わりに、Cryostat エージェントを Cryostat 検出プラグインとして使用できます。Cryostat エージェントは、JVM で実行されるアプリケーションのプラグインとして機能する Java インストルメンテーションエージェントとして実装されます。Cryostat エージェントは、検出プラグインとしてエージェントのロールが 2 つあるため、JMX ポートよりも柔軟にデプロイできる HTTP API を提供します。検出と Cryostat との接続の両方にエージェントの HTTP API を使用するようにターゲットアプリケーションを設定できます。Cryostat エージェントを使用するようにターゲットアプリケーションを設定する方法は、Java アプリケーションの設定 を参照してください。
1.1. Pluggable Discovery API の概要
Pluggable Discovery API エンドポイント/api/v2.2/discovery を使用して外部プラグインを Cryostat
に登録し、検出可能なアプリケーションターゲットに関する情報を Cryostat に提供できます。プラグインは、Cryostat への登録に成功した後にそれ自体を登録解除するか、ターゲットアプリケーションに関する更新を Cryostat に継続的にプッシュすることができます。
登録操作の目的は、Cryostat のセキュリティーを強化し、プラグインと Cryostat 間のデータの一貫性を維持することです。
Pluggable Discovery API は、Cryostat をデプロイメントスキーマに統合するための、OpenShift サービスアカウントメカニズムよりも柔軟な方法を提供します。
アプリケーション IP アドレスからポート番号への静的マップを作成するプラグインプログラムを作成する必要がある例を考えてみましょう。プラグインは Pluggable Discovery API を使用してこの情報を Cryostat に転送できるため、Cryostat はターゲットアプリケーションにより適切に接続できます。
Pluggable Discovery API は、次のハンドラーに依存して、/api/v2.2/discovery エンドポイントと Cryostat
から送信された要求を管理します。
-
DiscoveryRegistrationHandler
-
DiscoveryRegistrationCheckHandler
-
DiscoveryGetHandler
-
DiscoveryPostHandler
-
DiscoveryDeregistrationHandler
これらのハンドラーの詳細については、後続のドキュメントセクションを参照してください。
API のエンドポイントを使用して Cryostat と対話する前に、プラグインのソースであるクライアントが次の前提条件を満たしていることを確認する必要があります。
- JSON 応答を受け入れます。
- HTTP リクエストを Cryostat に送信できます。
-
POST
要求の Authorization ヘッダーに正しい Cryostat 認証情報を入力できます。 -
Cryostat からの
GET
およびPOST
リクエストを受信できます。 -
POST
リクエストを Cryostat に送信することにより、検出可能なターゲットに関する情報を JSON で公開します。
独自の検出プラグインプログラムを Cryostat に登録する必要がある場合は、Cryostat に組み込まれている検出メカニズムを無効にすることができます。組み込みの検出メカニズムを無効にすると、プラグインと Cryostat の両方が同じターゲットアプリケーション情報にアクセスできる場合に、Cryostat Web コンソールで開く可能性がある重複定義を減らすのに役立ちます。
2 つの類似した定義が同じ JVM を指していることを Cryostat が検出すると、Cryostat はアーカイブされた記録を、各定義がアクセスする同じストレージの場所に保存します。
Red Hat OpenShift コマンドラインコンソール (CLI) で次の環境変数を設定して、Cryostat の組み込み検出メカニズムを無効にすることができます。
CRYOSTAT_DISABLE_BUILTIN_DISCOVERY=true
また、Cryostat 組み込みディスカバリー実装の設定を保持することを検討してから、次のアクションのいずれかを完了することもできます。
- サービスロケーターを実装にアタッチするプログラムを作成します。
- ターゲットアプリケーションを変更して、ターゲット情報を実装に直接送信します。
前述のアクションは、高度な Cryostat の設定 ドキュメントの範囲外です。