A service for managing and provisioning Bare Metal servers.
Go to file
Ramamani Yeleswarapu 3773f17403 Enable OSProfiler support in Ironic
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
2017-07-07 15:58:28 -07:00
api-ref Move doc/source/dev to doc/source/contributor 2017-07-06 12:59:24 +01:00
devstack Fetch Glance endpoint from Keystone if it's not provided in the configuration 2017-06-23 16:42:40 +02:00
doc/source Enable OSProfiler support in Ironic 2017-07-07 15:58:28 -07:00
etc Enable OSProfiler support in Ironic 2017-07-07 15:58:28 -07:00
ironic Enable OSProfiler support in Ironic 2017-07-07 15:58:28 -07:00
ironic_tempest_plugin Merge "Replace test.attr with decorators.attr" 2017-05-29 21:10:01 +00:00
releasenotes Enable OSProfiler support in Ironic 2017-07-07 15:58:28 -07:00
tools Enable OSProfiler support in Ironic 2017-07-07 15:58:28 -07:00
.gitignore Move doc/source/dev to doc/source/contributor 2017-07-06 12:59:24 +01:00
.gitreview Added project infrastructure needs. 2013-05-02 14:55:43 -04:00
.mailmap Update mailmap for Joe Gordon 2013-10-28 10:19:15 +00:00
.testr.conf Prepare for functional testing 2015-09-28 21:27:01 +00:00
babel.cfg Run extract_messages 2013-07-22 09:51:10 +02:00
CONTRIBUTING.rst Workflow documentation is now in infra-manual 2014-12-05 16:55:23 +01:00
driver-requirements.txt Wait until iDRAC is ready before out-of-band cleaning 2017-06-15 10:06:40 -04:00
LICENSE Added project infrastructure needs. 2013-05-02 14:55:43 -04:00
README.rst Update README to point at new doc location 2017-07-06 13:06:08 +01:00
RELEASE-NOTES Add release notes for 4.0.0 2015-08-31 21:43:58 +00:00
requirements.txt Enable OSProfiler support in Ironic 2017-07-07 15:58:28 -07:00
setup.cfg Move doc/source/dev to doc/source/contributor 2017-07-06 12:59:24 +01:00
setup.py Updated from global requirements 2017-03-02 11:45:27 +00:00
test-requirements.txt switch from oslosphinx to openstackdocstheme 2017-07-04 15:32:27 +01:00
tox.ini Move install guide into new doc/source/install location 2017-07-05 12:16:37 +01:00
vagrant.yaml Added CORS support middleware to Ironic 2015-09-01 19:45:01 +00:00
Vagrantfile Change vagrant.yml to vagrant.yaml 2015-08-07 09:51:32 +00:00

Team and repository tags

image

Ironic

Ironic consists of an API and plug-ins for managing and provisioning physical machines in a security-aware and fault-tolerant manner. It can be used with nova as a hypervisor driver, or standalone service using bifrost. By default, it will use PXE and IPMI to interact with bare metal machines. Ironic also supports vendor-specific plug-ins which may implement additional functionality.

Ironic is distributed under the terms of the Apache License, Version 2.0. The full terms and conditions of this license are detailed in the LICENSE file.

Project resources

Project status, bugs, and requests for feature enhancements (RFEs) are tracked on Launchpad: https://launchpad.net/ironic

For information on how to contribute to ironic, see https://docs.openstack.org/ironic/latest/contributor