您可以使用 OSProfiler 为 OpenStack 部署中的核心服务启用跟踪功能。跟踪功能将捕获 OpenStack 操作中所有 API、RPC、驱动程序和数据库调用的响应时间。
VMware Integrated OpenStack 支持探查 Cinder、Glance、Heat、Neutron、Nova 和 Keystone 命令。探查器跟踪数据存储在 vRealize Log Insight 中。
前提条件
部署并配置 vRealize Log Insight。请参阅 vRealize Log Insight 对应的入门文档。
过程
- 以
root
用户身份登录到 Integrated OpenStack Manager。
- 修改要探查的服务的配置。
viocli update service-name
- 创建
profiler
部分。
- 添加 enabled 参数并将其值设置为 true。
- 如果要跟踪数据库调用,请添加 trace_sqlalchemy 参数并将其值设置为 true。
- 添加 hmac_keys 参数,并输入 OSProfiler 的密码。
- 添加 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