OSProfiler を使用すると、OpenStack デプロイ内で主要サービスのトレースを有効にできます。トレースが有効な場合は、OpenStack 処理の一部であるすべての API、RPC、ドライバ、データベースの呼び出しの応答時間がキャプチャされます。

VMware Integrated OpenStack は Cinder、Glance、Heat、Neutron、Nova、Keystone のコマンドをサポートします。プロファイラ トレース データは vRealize Log Insight に保存されます。

前提条件

vRealize Log Insight をデプロイおよび構成します。vRealize Log Insightスタート ガイドドキュメントを参照してください。

手順

  1. Integrated OpenStack Managerroot ユーザーとしてログインします。
    ssh root@mgmt-server-ip
  2. プロファイルを作成するサービスの設定を変更します。
    viocli update service-name
  3. profiler セクションを作成します。
  4. enabled パラメータを追加し、値として true を設定します。
  5. データベース呼び出しをトレースする場合は、trace_sqlalchemy パラメータを追加し、値として True を設定します。
  6. hmac_keys パラメータを追加し、OSProfiler のパスワードを入力します。
  7. connection_string パラメータを追加し、値として vRealize Log Insight サーバの場所を設定します。

    vRealize Log Insight サーバのアドレスを loginsight://username:password@loginsight-ip の形式で入力します。

    vRealize Log Insight デプロイに対して USER のロールを持つユーザーのユーザー名およびパスワードを指定します。ユーザー名またはパスワード内で特殊文字を使用する場合は、パーセント文字によるエンコーディングを使用します。たとえば、コロン (:) は %3A に、アット記号 (@) は %40 に置き換えます。

    構成ファイルは次のようになります。
    conf:
      [...]
    profiler:
      enabled: true
      trace_sqlalchemy: true
      hmac_keys: osprofiler-password
      connection_string: loginsight://username:password@loginsight-ip

結果

これで、OpenStack コマンドのプロファイリングを有効にできるようになりました。--profile パラメータを指定して目的のコマンドを実行し、OSProfiler のパスワードを指定します。このコマンドを実行すると、プロファイリング トレースの UUID が出力されます。次に、プロファイル トレース UUID と vRealize Log Insight アドレスを使用して OSProfiler を実行することにより、レポートを生成します。次の例では、openstack volume list コマンドのプロファイルを示しています。

openstack --profile osprofiler-password volume list
osprofiler trace show --connection-string "loginsight://username:password@loginsight-ip" --html profiling-uuid