Merge "Add a doc for Zun integration with OSProfiler"
This commit is contained in:
commit
a6dd5a1220
77
doc/source/osprofiler.rst
Normal file
77
doc/source/osprofiler.rst
Normal file
@ -0,0 +1,77 @@
|
||||
..
|
||||
Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
not use this file except in compliance with the License. You may obtain
|
||||
a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
||||
======================
|
||||
Use OSProfiler in Zun
|
||||
======================
|
||||
|
||||
This is the demo for Zun integrating with osprofiler. `Zun
|
||||
<https://wiki.openstack.org/wiki/Zun>`_ is a OpenStack container
|
||||
management services, while `OSProfiler
|
||||
<https://docs.openstack.org/developer/osprofiler/>`_ provides
|
||||
a tiny but powerful library that is used by most OpenStack projects and
|
||||
their python clients.
|
||||
|
||||
Install Redis database
|
||||
----------------------
|
||||
|
||||
After osprofiler 1.4.0, user can choose mongodb or redis as the backend storage
|
||||
option without using ceilometer. Here just use Redis as an example, user
|
||||
can choose mongodb, elasticsearch, and `etc
|
||||
<https://github.com/openstack/osprofiler/tree/master/osprofiler/drivers>`_.
|
||||
Install Redis as the `centralized collector
|
||||
<https://github.com/openstack/osprofiler/blob/master/doc/source/collectors.rst>`_
|
||||
Redis in container is easy to launch, `choose Redis Docker
|
||||
<https://hub.docker.com/_/redis/>`_ and run::
|
||||
|
||||
docker run --name some-redis -p 6379:6379 -d redis
|
||||
|
||||
Now there is a redis database which has an expose port to access. OSProfiler
|
||||
will send data to this key-value database.
|
||||
|
||||
Change the configure file
|
||||
-------------------------
|
||||
|
||||
Change the /etc/zun/zun.conf, add the following lines, change the <ip-address>
|
||||
to the real IP::
|
||||
|
||||
[profiler]
|
||||
enabled = True
|
||||
trace_sqlalchemy = True
|
||||
hmac_keys = SECRET_KEY
|
||||
connection_string = redis://<ip-address>:6379/
|
||||
|
||||
Then restart zun-api and zun-compute (Attention, the newest version of
|
||||
Zun has move zun-api service to apache2 server. You can't restart the
|
||||
service just in screen. Use "systemctl restart apache2" will work)
|
||||
|
||||
Use below commands to get the trace information::
|
||||
|
||||
$ zun --profile SECRET_KEY list
|
||||
# you will get a <TRACE-ID> for trace
|
||||
$ osprofiler trace show <TRACE-ID> --connection-string=redis://<ip-address>:6379 --html
|
||||
|
||||
|
||||
Troubleshooting
|
||||
---------------
|
||||
|
||||
How to check whether the integration is fine:
|
||||
Stop the Redis container, then run the command::
|
||||
|
||||
zun --profile SECRET_KEY list
|
||||
|
||||
In the zun-api log, will see "ConnectionError: Error 111 connecting to
|
||||
<ip-address>:6379. ECONNREFUSED." That means that osprofiler will write
|
||||
the trace data to redis, but can't connect it. So the integration is fine.
|
||||
/etc/zun/api-paste.ini file changed (change the pipeline) need to re-deploy
|
||||
the devstack.
|
Loading…
Reference in New Issue
Block a user