OSprofiler - 跨项目性能分析

概述

OSProfiler 提供了一个微小但强大的库,被大多数(很快将是全部)OpenStack 项目及其相应的 python 客户端以及 Openstack 客户端使用。它提供了为每个请求生成一个 trace 的功能,该 trace 将穿过所有涉及的服务。然后可以提取此 trace 并用于构建调用树,这在各种情况下都非常有用(例如,在隔离跨项目性能问题时)。

Kolla 部署上的配置

/etc/kolla/globals.yml 文件中启用 OSprofiler

enable_osprofiler: "yes"
enable_elasticsearch: "yes"

验证操作

/etc/kolla/passwords.yml 获取存在的 osprofiler_secret 密钥。

可以通过使用 --profile 选项执行 OpenStack 客户端(Nova、Glance、Cinder、Heat、Keystone)或使用官方 Openstack 客户端并使用 --os-profile 创建 Profiler UUID。例如,要获取 openstack server create 命令的 OSprofiler trace UUID。

$ openstack --os-profile <OSPROFILER_SECRET> server create \
  --image cirros --flavor m1.tiny --key-name mykey \
  --nic net-id=${NETWORK_ID} demo

上述命令将输出检索 OSprofiler trace 的命令。

$ osprofiler trace show --html <TRACE_ID> --connection-string \
  elasticsearch://<api_interface_address>:9200

有关 OSprofiler 工作原理的更多信息,请参阅 OSProfiler – 跨项目性能分析库