3773f17403
This patch does the following: * Adds osprofiler wsgi middleware This middleware is used for 2 things: - It checks that person who wants to trace is trusted and knows secret HMAC key. - It starts tracing in case of proper trace headers and adds first wsgi trace point, with info about HTTP request. * Adds initialization of osprofiler at start of service - Initialize and set an oslo.messaging based notifier instance to osprofiler, which will be used to send notifications to Ceilometer. * Traces HTTP/RPC/DB API calls and SQL requests NOTE to test this patch: 1) Make the following changes in localrc to configure DevStack to enable OSProfiler: enable_plugin panko https://git.openstack.org/openstack/panko enable_plugin ceilometer https://git.openstack.org/openstack/ceilometer enable_plugin osprofiler https://git.openstack.org/openstack/osprofiler # Enable the following services CEILOMETER_NOTIFICATION_TOPICS=notifications,profiler ENABLED_SERVICES+=,ceilometer-acompute,ceilometer-acentral ENABLED_SERVICES+=,ceilometer-anotification,ceilometer-collector ENABLED_SERVICES+=,ceilometer-alarm-evaluator,ceilometer-alarm-notifier ENABLED_SERVICES+=,ceilometer-api NOTE: the order of enabling plugins matters. 2) Run stack.sh. Once DevStack environment is setup, enable profiler options in ironic.conf and restart ironic services: [profiler] enabled = true hmac_keys = SECRET_KEY trace_sqlalchemy = true 3) Use openstackclient and run baremetal command with --os-profile SECRET_KEY [--profile can be used, but it is deprecated.] For example, the following will cause the <trace-id> to be printed after node list: $ openstack --os-profile SECRET_KEY baremetal node list ..... ..... Trace ID: <trace-id> Display trace with command: osprofiler trace show --html <trace-id> 4) The trace results can be saved using this command: $ osprofiler trace show --html <trace-id> --out trace.html OSprofiler spec: https://review.openstack.org/#/c/103825/ Co-Authored-By: Tovin Seven <vinhnt@vn.fujitsu.com> Co-Authored-By: Hieu LE <hieulq@vn.fujitsu.com> Partial-Bug: #1560704 Change-Id: Icd3d7c62cf7442de8a77fc67f119ae9b03725f02
18 lines
944 B
YAML
18 lines
944 B
YAML
---
|
|
features:
|
|
- |
|
|
Adds OSProfiler support. This cross-project profiling library
|
|
provides the ability to trace various OpenStack requests through all
|
|
OpenStack services that support it. To initiate OpenStack request tracing,
|
|
`--profile <HMAC_KEY>` option needs to be added to the CLI command.
|
|
As part of the output, there will be a message with <trace_id>.
|
|
To see the HTML graphs, the following command should be used -
|
|
`$ osprofiler trace show <trace_id> --html --out result.html`. See
|
|
OSProfiler documentation: http://docs.openstack.org/developer/osprofiler/.
|
|
security:
|
|
- OSProfiler support requires passing of trace information between
|
|
various OpenStack services. This information is securely signed
|
|
by one of HMAC keys, defined in ironic.conf configuration file.
|
|
To allow cross-project tracing, user should use the key that is
|
|
common among all OpenStack services he or she wants to trace.
|