您可以使用 OSProfiler 为 OpenStack 部署中的核心服务启用跟踪功能。跟踪功能将捕获 OpenStack 操作中所有 API、RPC、驱动程序和数据库调用的响应时间。

VMware Integrated OpenStack 支持探查 Cinder、Glance、Heat、Neutron、Nova 和 Keystone 命令。探查器跟踪数据存储在 vRealize Log Insight 中。

前提条件

部署并配置 vRealize Log Insight。请参阅 vRealize Log Insight 对应的入门文档。

过程

  1. root 用户身份登录到 Integrated OpenStack Manager
    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。然后,运行 OSProfiler 并使用探查跟踪 UUID 和 vRealize Log Insight 地址,以生成报告。以下示例将探查 openstack volume list 命令:

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