第3章 Java アプリケーションの設定


Cryostat が Java 仮想マシン (JVM) 上で実行されるターゲットアプリケーションに関する Java Flight Recorder (JFR) データを収集、保存、分析できるようにするには、Cryostat がアプリケーションを検出して接続できるようにアプリケーションを設定する必要があります。

アプリケーションは次のいずれかの方法で設定できます。

Cryostat エージェント

検出と接続には、Cryostat エージェントコンポーネントを使用できます。このコンポーネントは、Java Instrumentation Agent として実装され、JVM 上で実行されるアプリケーションのプラグインとして機能します。

Cryostat エージェントは、Cryostat サーバーがアプリケーションの JMX ポートの代わりに使用できる HTTP API を提供します。適切に設定された Cryostat エージェントを、デプロイするワークロードアプリケーションに割り当てることで、ターゲットアプリケーションで JMX ポートを公開する必要なく、Cryostat 機能セットをすべて使用できます。

Cryostat エージェントの HTTP API は、JMX ポートと比較して次の利点があります。

  • API 領域の縮小によりセキュリティーが向上する
  • Cryostat エージェントが Cryostat 検出プラグインとして 2 つの役割を果たすことでデプロイメントの柔軟性が向上する

詳細は、Cryostat エージェントの使用 を参照してください。

リモート Java Management Extensions (JMX) 接続

Java Management Extensions (JMX) 接続を許可するようにターゲットアプリケーションを設定できます。このタイプの設定では、検出に OpenShift サービスを使用し、接続に JMX を使用します。

JMX は、JVM 上で実行されるターゲットアプリケーションを監視および管理できる JVM の標準機能です。Cryostat が JMX を使用するには、JVM の起動時に JMX を有効にして設定する必要があります。これは、ターゲットアプリケーションによる JMX ポートの公開を Cryostat が必要とするためです。

Cryostat は、この JMX ポートを介してターゲットアプリケーションと通信して、JFR レコーディングを開始および停止し、ネットワーク経由で JFR データを取得することで、この JFR データを Cryostat で保存および分析できるようにします。リモート監視には、権限のない人がアプリケーションにアクセスできないようにするためのセキュリティーが必要です。Cryostat がアプリケーションの JFR レコーディングにアクセスする前に、Cryostat は認証情報の入力を求めるプロンプトを表示します。

詳細は、JMX 接続を使用するためのアプリケーションの設定 を参照してください。

Cryostat エージェントと JMX のハイブリッド

Cryostat エージェントと JMX の両方を使用するハイブリッドアプローチを使用するようにターゲットアプリケーションを設定できます。このアプローチでは、Cryostat エージェントを使用してターゲットアプリケーションを検出し、JMX を使用して JFR データを Cryostat に公開するため、高い柔軟性が得られます。

たとえば、エージェントを使用すると、特定のポート番号に依存せずにアプリケーションを検出したり、JMX 接続を使用して JFR フライトレコーディングをオンデマンドで開始および停止したりできます。

Cryostat エージェントがアプリケーション上でも JMX が設定されていることを検出すると、エージェントはエージェント HTTP API 定義と JMX URL 定義の両方を使用して自身を Cryostat サーバーに公開します。この場合は、任意の設定オプションを使用できます。

詳細は、Cryostat エージェントと JMX 接続を使用するためのアプリケーションの設定 を参照してください。

3.1. Cryostat エージェントの使用

Cryostat エージェントは、JVM で実行されるアプリケーションのプラグインとして機能する Java インストルメンテーションエージェントとして実装されます。Cryostat エージェントは、検出プラグインとしてエージェントのロールが 2 つあるため、JMX ポートよりも柔軟にデプロイできる HTTP API を提供します。検出と Cryostat との接続の両方にエージェントの HTTP API を使用するようにターゲットアプリケーションを設定できます。

3.1.1. Cryostat エージェントの特徴

Red Hat build of Cryostat は、Cryostat エージェントのさまざまなディストリビューションを提供し、エージェントのさまざまなデプロイおよび使用方法をサポートしています。次の情報を考慮して、ニーズに最適な Cryostat エージェントのデプロイタイプとユースケースを決定してください。

3.1.1.1. Cryostat エージェントの自動または手動設定

Cryostat Operator を使用して Cryostat エージェントを自動的に設定できます。または、必要に応じて、Cryostat エージェントを手動で設定することもできます。

エージェントの自動設定

Cryostat Operator を使用して Cryostat エージェントを自動的に設定できます。この機能を有効にするには、Pod がどの Cryostat インスタンスと連携するかを識別する cryostat.io/name および cryostat.io/namespace ラベルをアプリケーションデプロイメントに追加します。Cryostat Operator が、アプリケーションに cryostat.io/name および cryostat.io/namespace ラベルがあることを検出すると、Operator はエージェント JAR ファイルを含むボリュームをこのアプリケーションにマウントします。

この自動設定機能の一部として、Cryostat は、作成時に Pod を変更して Cryostat エージェントを注入する mutating admission webhook を使用します。また、webhook は、選択された Cryostat インスタンスに自動的に接続するようにエージェントを設定します。この場合、必要な cryostat.io/name および cryostat.io/namespace ラベルを含む Pod のみが webhook を呼び出すため、任意の Pod での Cryostat エージェントのセットアップが簡素化されます。さらに、Operator は、これらのラベルが Cryostat インスタンスのターゲット namespace のリスト内のアプリケーションデプロイメントで指定されている場合にのみ動作します。それ以外の場合は、セキュリティー上の理由から、Operator はアプリケーションがこの Cryostat インスタンスと通信するように設定しません。

webhook は、Cryostat エージェントのコンテナーベースのディストリビューション (cryostat-agent-init) を使用して、選択した Pod へのエージェントの自動設定と注入を行います。webhook が cryostat-agent-init コンテナーイメージを使用するため、ユーザーは Red Hat Maven リポジトリーからエージェント JAR ファイルをダウンロードする必要がなくなります。

Cryostat Operator がエージェントを自動的に設定できるようにする方法の詳細は、Cryostat Operator によるエージェントの自動設定の有効化 を参照してください。

エージェントの手動設定

自動設定機能の代わりに、必要に応じて Cryostat エージェントを手動で設定することを選択できます。ただし、手動での設定では、Cryostat Operator による自動設定に比べて時間のオーバーヘッドが大きくなり、誤った設定が発生する可能性があります。Cryostat 4.0 より前は、Cryostat エージェントを設定する唯一の方法は手動での設定方法でした。

Red Hat build of Cryostat は、エージェントを手動で設定するために、Cryostat エージェントの JAR ファイルを 2 種類配布しています。

  • 自己完結型で、エージェントコードとそのすべての依存関係が含まれるオールインワンの "shaded" JAR ファイル

    この "shaded" JAR ファイルは、追加のエージェント JAR ファイルを 1 つだけ含める必要があるため、既存のアプリケーションに組み込むのに最も便利な形式の Cryostat エージェントを提供します。これは、同様のエージェントやツールの一般的な配布パターンです。Cryostat 2.4 より前は、Cryostat エージェントのディストリビューションで唯一利用できるのが “shaded” JAR ファイルがでした。“shaded” JAR ファイル名の形式は cryostat-agent-0.5.X.redhat-xxxxx-shaded.jar です。ここで、0.5.Xxxxxx は、それぞれエージェントのバージョンとビルド番号を表します。

  • 依存関係のないエージェントコードを含む標準 JAR ファイル

    このタイプの JAR ファイルは、エージェントとワークロードアプリケーションの間に依存関係の競合が存在することがわかっている場合に役立ちます。独自のストラテジーを適用して、エージェントとアプリケーションの両方の要件を満たすように、各依存関係の正しいバージョンを提供する場合は、スタンドアロン JAR ファイルを使用できます。標準の JAR ファイル名の形式は cryostat-agent-0.5.X.redhat-xxxxx.jar です。ここで、0.5.X および xxxxx は、それぞれエージェントのバージョンとビルド番号を表します。

注記

Cryostat エージェントを手動で設定する場合は、オールインワンの “shaded” JAR ファイルを使用してエージェントをデプロイすることを推奨します。手動で設定されたエージェントとワークロードアプリケーション間の依存関係の競合を解決するために独自のストラテジーを適用する意図がない限り、標準の JAR ファイルは使用しないでください。

これらのエージェント JAR ファイルは、Red Hat Maven リポジトリー からダウンロードできます。

3.1.1.2. JVM への静的または動的な割り当て

Cryostat エージェントは、要件に応じて、静的または動的な方法を使用して JVM に割り当てることができます。

JVM への静的割り当て

静的割り当てとは、ワークロードアプリケーションの JVM が JVM の起動時に Cryostat エージェントをロードして初期化することを意味します。

注記

Cryostat Operator がエージェントを自動的に設定するか、エージェントを手動で設定するかに関係なく、JVM への静的割り当てがサポートされます。Cryostat Operator でエージェントを自動的に設定する場合、エージェントを JVM に接続するための唯一のサポートされる方法は静的接続による方法です。

Cryostat Operator を使用してエージェントを自動的に設定する場合、Operator がすべての設定タスクを処理し、OpenShift Container Platform はアプリケーションを自動的に再デプロイします。

詳細は、Cryostat エージェントを使用するためのアプリケーションの設定 を参照してください。

JVM への動的割り当て

動的割り当てとは、Cryostat エージェントが、アプリケーションを再起動することなく、すでに実行中のアプリケーション JVM に動的に割り当てできることを意味します。

注記

JVM への動的な接続では、エージェントを手動で設定する必要があります。動的接続アプローチは、Cryostat Operator によって自動的に設定されるエージェントではサポートされません。

この動的割り当て機能には、以下の要件があります。

  • エージェントの JAR ファイルが JVM のファイルシステムにコピーされていることを確認する必要があります (たとえば、oc cp コマンドを使用します)。
  • エージェントを同じホスト上または同じアプリケーション内で別のプロセスとして実行できる必要があります (たとえば、oc exec コマンドを使用する)。

動的割り当て機能は、JVM が起動するたびにエージェントを割り当てる必要がない、アドホックな 1 回限りのプロファイリングまたはトラブルシューティングワークフローをサポートします。動的割り当ては、エージェントを割り当てる目的でアプリケーションの再設定を行うことができない場合や再設定しない場合に適しています。エージェントはアプリケーションを再起動せずに実行中の JVM に割り当てることができるため、アプリケーションのダウンタイムも発生しません。

詳細は、JVM への動的割り当てのスタンドアロンプロセスとして Cryostat エージェントを起動する を参照してください。

エージェント JAR ファイルをワークロードアプリケーションに含めるオプションは、エージェントの自動設定を使用するか手動設定を使用するか、および JVM への割り当てを静的にするか動的にするかによって異なります。

  • エージェントの自動設定の場合

    Cryostat Operator でエージェントを自動的に設定する場合、Operator は cryostat-agent-init コンテナーを使用して、エージェント JAR ファイルを含むボリュームを関連するアプリケーションにマウントします。この場合、アプリケーションデプロイメントに、Pod が連携する Cryostat インスタンスを識別するための cryostat.io/name ラベルと cryostat.io/namespace ラベルを含める必要があります。

  • JVM への動的割り当てによるエージェントの手動設定の場合

    実行中の JVM への動的な 1 回限りの割り当ての場合は、oc cp コマンドを使用してエージェントの JAR ファイルを JVM のファイルシステムにコピーできます。

3.1.1.4. エージェント設定プロパティー

エージェントを手動で設定することを選択した場合は、次の 2 つの方法のいずれかで Cryostat エージェントの設定プロパティーを指定できます。

  • アプリケーションで JVM システムプロパティーフラグを使用します (例: -Dcryostat.agent.api.writes-enabled=true)。
  • すべての文字を大文字にし、句読点をアンダースコアに置き換えて環境変数を使用します (例: CRYOSTAT_AGENT_API_WRITES_ENABLED=true)。
注記

Cryostat Operator を使用してエージェントを自動的に設定する場合、Operator は関連するプロパティーを設定します。

必須のエージェントプロパティー

エージェントを手動で設定する場合は、Cryostat エージェントが正常に動作するように次のプロパティーを設定する必要があります。

Expand

cryostat.agent.baseuri

これは、Cryostat エージェントが自身をアドバタイズする Cryostat サーバーバックエンド (つまり、内部 OpenShift サービスオブジェクト) の URL の場所 (https://my-cryostat.my-namespace.svc.cluster.local など) を指定します。

cryostat.agent.callback

これは、Cryostat エージェントインスタンスまたはアプリケーション自体の URL の場所を指定します。Cryostat は、この URL を使用してヘルスチェックを実行し、エージェントにデータを要求します。OpenShift/Kubernetes Downward API を使用して、このプロパティーを https://$(POD_IP):9977 などの値に設定することにより、この URL を動的に決定できます。詳細は、status.podIPKubernetes Downward API ドキュメント を参照してください。

cryostat.agent.authorization

これは、Cryostat エージェントが Cryostat サーバーへの API リクエストに含めることができるヘッダー値を指定します (例: Bearer abcd1234)。デフォルトでは空の文字列に設定されています。

注記

このプロパティーは、cryostat.agent.authorization.type および cryostat.agent.authorization.value よりも優先されます。このプロパティーに値を指定すると、エージェントが API リクエストのヘッダーでこの値を使用します。値を指定しないと、エージェントは cryostat.agent.authorization.typecryostat.agent.authorization.value に指定された値を使用します。

cryostat.agent.authorization.type

これは、cryostat.agent.authorization.value プロパティーと組み合わせて使用する認可タイプを指定します。認可タイプは、cryostat.agent.authorization.value のマッピングを実行して、Cryostat エージェントが Cryostat サーバーへの API リクエストに含めることができるヘッダーを生成します。

注記

cryostat.agent.authorization プロパティーに値を指定した場合、エージェントはこのプロパティーを無視します。

有効な認可タイプは次のとおりです。

  • basic

    これは、Base64 を使用して認可値をエンコードし、Basic base64(value) ヘッダーを生成します。

  • bearer

    これは、認可値を Bearer 値ヘッダーに直接埋め込みます。

  • kubernetes

    これは、認可値をファイルの場所として読み取り、Bearer fileAsString (value) ヘッダーを生成します。

  • none

    ヘッダーを生成しません。

  • auto

    これは、まず kubernetes オプションと同じ動作を試みます。それが失敗した場合、none に戻り、ヘッダーを生成しません。

このプロパティーはデフォルトで auto に設定されています。

cryostat.agent.authorization.value

これは、cryostat.agent.authorization.type プロパティーと組み合わせて使用する認可値を指定します。認可値は、認可タイプによってマッピングされ、Cryostat エージェントが Cryostat サーバーへの API リクエストに含めることができるヘッダーを生成します。

注記

cryostat.agent.authorization プロパティーに値を指定した場合、エージェントはこのプロパティーを無視します。

次のガイドラインを考慮してください。

  • 認可タイプが basic の場合は、エンコードされていない基本認証情報と一致する認可値を指定します (例: user:pass)。
  • 認可タイプが bearer の場合は、提示する必要があるトークンと一致する認可値を指定します。
  • 認可タイプが kubernetes の場合は、サービスアカウントトークンシークレットファイルへのファイルシステムパスと一致する認可値を指定します。
  • 認可タイプが none の場合、指定した値が無視されます。

デフォルトでは、このプロパティーは /var/run/secrets/kubernetes.io/serviceaccount/token に設定されています。これは、Kubernetes サービスアカウントトークンシークレットファイルの標準の場所です。

任意のエージェントプロパティー

セットアップ要件に応じて、エージェントを手動で設定する場合は、次のエージェントプロパティーも設定できます。

Expand

cryostat.agent.api.writes-enabled

これは、Cryostat エージェントが書き込み操作を許可するかどうかを示します。デフォルトで false に設定されています。Cryostat エージェントが JFR フライトレコーディングの開始、停止、または削除のリクエストを受け入れるようにするには、このプロパティーを true に設定する必要があります。

注記

このプロパティーが false に設定されている場合でも、エージェントはフライトレコーディングをリストしたり、個々のレコーディングファイルをダウンロードしたりするリクエストを実行できます。

cryostat.agent.webserver.port

これは、エージェントが HTTP API をバインドするために使用する HTTP ポート番号を指定します (デフォルトでは 9977)。これがアプリケーションまたは別のツールエージェントが使用する既存のポートと競合する場合は、別のポート番号を指定する必要があります。

cryostat.agent.app.name

これは、この Cryostat エージェントインスタンスがどのアプリケーションに割り当てられているかを識別するためのラベルを指定します (デフォルトでは、cryostat-agent)。これには、Downward API の metadata.name フィールド または metadata.labels[‘app’] フィールドを使用できます。詳細は、Kubernetes Downward API ドキュメント Kubernetes Downward API ドキュメント を参照してください。

上記のリストでは、Cryostat エージェントで使用可能な設定プロパティーの一部だけを説明しています。エージェントプロパティーの完全なリストは、Agent Properties を参照してください。

3.1.2. Cryostat エージェントを使用するためのアプリケーションの設定

Java Instrumentation Agent として実装された Cryostat エージェントを使用するようにターゲットアプリケーションを設定すると、Cryostat はこれらのアプリケーションを検出してデータを収集し、このデータを分析のために Cryostat に送信できます。

Cryostat エージェントは、次の設定ユースケースをサポートします。

3.1.2.1. Cryostat Operator によるエージェントの自動設定の有効化

Cryostat Operator がエージェントを自動的に設定できるようにするには、アプリケーションデプロイメントに特定のラベルを追加する必要があります。

手順

  1. アプリケーションデプロイメントで、cryostat.io/name および cryostat.io/namespace ラベルを追加します。

    apiVersion: apps/v1
    kind: Deployment
    ...
    spec:
      ...
      template:
        metadata:
          labels:
            ...
            cryostat.io/namespace: <namespace>
            cryostat.io/name: <namespace>

    上記の例で、<namespace> は Cryostat インスタンスのインストール namespace に置き換え、<name> は Cryostat CR の名前に置き換えます。

  2. デフォルトでは、エージェントのコールバックサーバーはコンテナーポート 9977 にバインドされます。Cryostat エージェントのコールバックサーバーに別のポート番号を指定する場合は、アプリケーションデプロイメントに cryostat.io/callback-port ラベルを追加します。

    apiVersion: apps/v1
    kind: Deployment
    ...
    spec:
      ...
      template:
        metadata:
          labels:
            ...
            cryostat.io/namespace: <namespace>
            cryostat.io/name: <namespace>
            cryostat.io/callback-port: <port>

    上記の例で、<port> はエージェントのコールバックサーバーをバインドするポート番号に置き換えます。

  3. エージェントを注入するコンテナーを指定する場合は、アプリケーションデプロイメントに cryostat.io/container ラベルを追加します。

    apiVersion: apps/v1
    kind: Deployment
    ...
    spec:
      ...
      template:
        metadata:
          labels:
            ...
            cryostat.io/namespace: <namespace>
            cryostat.io/name: <namespace>
            cryostat.io/callback-port: <port>
            cryostat.io/container: <container>

    上記の例で、<container> は関連するコンテナーの名前に置き換えます。

    注記

    同じ Pod 内で複数のコンテナーが実行されている場合、エージェント注入用に選択できるコンテナーは 1 つだけです。マルチコンテナー Pod では、エージェントを注入する Java コンテナーが 1 つしかない場合にこの機能が役立ちます。このラベルを含めない場合、ミューテーション webhook はデフォルトでエージェントを最初のコンテナーイメージに注入します。

  4. 注入されたエージェントに Pod への読み取り専用アクセス権を与える場合は、アプリケーションデプロイメントで cryostat.io/read-only ラベルを true に設定します。

    apiVersion: apps/v1
    kind: Deployment
    ...
    spec:
      ...
      template:
        metadata:
          labels:
            ...
            cryostat.io/namespace: <namespace>
            cryostat.io/name: <namespace>
            cryostat.io/callback-port: <port>
            cryostat.io/container: <container>
            cryostat.io/read-only: true

    注記

    この機能により、注入されたエージェントのセキュリティーをより詳細に制御できるようになります。

  5. デフォルトでは、Cryostat エージェントのロギングは無効になっています。エージェントのロギングを有効にする場合は、アプリケーションのデプロイメントに cryostat.io/log-level ラベルを追加します。

    有効な値は、tracedebuginfowarnerroroff です。デフォルト値は off です。

    apiVersion: apps/v1
    kind: Deployment
    ...
    spec:
      ...
      template:
        metadata:
          labels:
            ...
            cryostat.io/namespace: <namespace>
            cryostat.io/name: <namespace>
            cryostat.io/callback-port: <port>
            cryostat.io/container: <container>
            cryostat.io/read-only: true
            cryostat.io/log-level: debug

    注記

    この機能により、エージェントのロギングに使用する適切なレベルをより細かく制御できるようになります。これは、エージェント設定のトラブルシューティングやデバッグに役立ちます。

    エージェントロギングを有効にすると、これらのエージェントログがホストアプリケーションのログメッセージと混同される可能性があります。設定したロギングレベルによっては、エージェントログによって、警告またはエラーレベルのメッセージをチェックする他のアラートシステムがトリガーされる可能性があります。

Cryostat Operator が、アプリケーションデプロイメントに cryostat.io/name および cryostat.io/namespace ラベルがあることを検出すると、Operator は cryostat-agent-init を使用して、エージェント JAR ファイルを含むボリュームをこのアプリケーションにマウントします。この場合、Operator は、Cryostat インスタンスのターゲット namespace のリスト内のアプリケーションデプロイメントでこれらのラベルが指定されている場合にのみ動作します。それ以外の場合は、セキュリティー上の理由から、Operator はアプリケーションがこの Cryostat インスタンスと通信するように設定しません。

Cryostat エージェントをすでに実行中のアプリケーション JVM に動的に割り当てる場合は、エージェントをスタンドアロン Java プロセスとして起動できます。

注記

この手順は、Cryostat エージェントが実行中の JVM にアドホックに 1 回だけ割り当てできるようにする動的割り当て機能を使用する場合のみが対象です。ワークロードアプリケーションの JVM が JVM の起動時に Cryostat エージェントをロードして初期化するようにする場合は、エージェントの自動設定の有効化 を参照してください。

前提条件

  • oc cp コマンドを使用して、エージェントの JAR ファイルを JVM のファイルシステムにコピーしてある。

    注記

    最新の “shaded” JAR ファイルは、Red Hat Maven リポジトリー からダウンロードできます。“shaded” JAR ファイル名の形式は cryostat-agent-0.5.X.redhat-xxxxx-shaded.jar です。ここで、0.5.Xxxxxx は、それぞれエージェントのバージョンとビルド番号を表します。

手順

  • 以下のコマンドを入力します。

    $ java -jar target/<agent_jar_file> <pid>

    上記のコマンドの <agent_jar_file> は、エージェントの JAR ファイル名に置き換えます。<pid> は、エージェントを割り当てる JVM のプロセス ID (PID) に置き換えます。

    以下に例を示します。

    $ java -jar target/cryostat-agent-0.5.0.redhat-00001-shaded.jar 1234
    注記

    上記の例は説明のみを目的としており、“shaded” JAR ファイルの最新バージョンとビルドを反映していない可能性があります。

上記のコマンドを実行すると、エージェントプロセスは Attach プロバイダーを使用して、指定された PID を検索します。指定された PID が見つかった場合、エージェントプロセスはこの PID に割り当てられ、エージェントの JAR ファイルをこの JVM にロードしようとします。その後、この JVM が通常のエージェント起動プロセスにブートストラップします。

PID 値に基づくエージェントの起動動作

PID の値に応じて、エージェント起動動作に関する次のガイドラインを考慮してください。

  • 無効な PID を指定すると、エージェントは正常に起動できません。
  • PID 値としてワイルドカードのアスタリスク (*) を指定すると、エージェントの JAR ファイルは、検出されたすべての JVM へのブートストラップを試みます。
  • PID 値として 0 を指定するか、PID 値を指定しない場合は、エージェントは候補となる JVM が 1 つだけ使用可能かどうかを確認します。使用可能な JVM が 1 つだけの場合、エージェントはこの JVM へのブートストラップを試みます。JVM が複数ある場合または JVM が使用できない場合、エージェントは正常に起動できません。

遅延バインディング設定オプション

Cryostat エージェントをスタンドアロンプロセスとして起動する場合、コマンドラインオプションを使用して、エージェントランチャーに追加の遅延バインディング設定オプションを指定することもできます。

以下に例を示します。

$ java -jar target/cryostat-agent-0.5.0.redhat-00001-shaded.jar \
-Dcryostat.agent.baseuri=<cryostat_server_url> \
-Dcryostat.agent.callback=<cryostat_agent_url> \
-Dcryostat.agent.authorization=Bearer <authorization_value> \
--smartTrigger=[ProcessCpuLoad>0.2]~profile \
@/deployment/app/moreAgentArgs \
1234

使用可能なオプションとその動作の詳細を参照するには、java -jar target/<filename>.jar -h ヘルプコマンドを実行してください。<filename> は、コピーした “shaded” エージェント JAR ファイルの名前を表します。

Cryostat エージェントをスタンドアロンプロセスとして起動する場合は、前の例のように、-jar <path_to_jarfile> 引数の に、遅延バインディング設定オプションの -D フラグを指定してください。ここでは -D フラグの位置が重要です。

  • -jar <path_to_jarfile> 引数の前にシステムプロパティーの -D フラグを指定すると、そのプロパティーがスタンドアロンランチャー JVM プロセスに設定されます。これにより、エージェントをスタンドアロンプロセスとして起動する場合に予期しない問題が発生する可能性があります。
  • -jar <path_to_jarfile> 引数の後にシステムプロパティーの -D フラグを指定すると、そのプロパティーがエージェントランチャーに引数として渡されます。ランチャーがエージェントをホスト JVM にブートストラップすると、エージェントが起動時にそのプロパティーを JVM に適用します。

前の例のように、cryostat.agent.baseuricryostat.agent.callbackcryostat.agent.authorization などの必要なエージェントプロパティーが、エージェントランチャーの設定オプションとして指定されたことを確認してください。設定プロパティーの詳細は、エージェント設定プロパティー を参照してください。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2026 Red Hat
トップに戻る