07e4c7df4d
1. Update URLs according to document migration 2. Update the dead and outdated links 3. Optimize (e.g. http -> https) Change-Id: I374aefe56d8fbe6c606e0f327314609a7375deb5
88 lines
3.3 KiB
ReStructuredText
88 lines
3.3 KiB
ReStructuredText
..
|
|
Copyright (c) 2017 OpenStack Foundation
|
|
All Rights Reserved.
|
|
|
|
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.
|
|
|
|
=======================
|
|
Guru Meditation Reports
|
|
=======================
|
|
|
|
Zaqar contains a mechanism whereby developers and system administrators can
|
|
generate a report about the state of a running Zaqar executable.
|
|
This report is called a *Guru Meditation Report* (*GMR* for short).
|
|
|
|
Generating a GMR
|
|
----------------
|
|
|
|
For wsgi and websocket mode, a *GMR* can be generated by sending the *USR2*
|
|
signal to any Zaqar process with support (see below).
|
|
The *GMR* will then be outputted standard error for that particular process.
|
|
|
|
For example, suppose that ``zaqar-server`` has process id ``8675``, and was
|
|
run with ``2>/var/log/zaqar/zaqar-server-err.log``.
|
|
Then, ``kill -USR2 8675`` will trigger the Guru Meditation report to be
|
|
printed to ``/var/log/zaqar/zaqar-server-err.log``.
|
|
|
|
For uwsgi mode, user should add a configuration in Zaqar's conf file::
|
|
|
|
[oslo_reports]
|
|
file_event_handler=['The path to a file to watch for changes to trigger '
|
|
'the reports, instead of signals. Setting this option '
|
|
'disables the signal trigger for the reports.']
|
|
file_event_handler_interval=['How many seconds to wait between polls when '
|
|
'file_event_handler is set, default value '
|
|
'is 1']
|
|
|
|
For example, you can specify "file_event_handler=/tmp/guru_report" and
|
|
"file_event_handler_interval=1" in Zaqar's conf file.
|
|
|
|
A *GMR* can be generated by "touch"ing the file which was specified in
|
|
file_event_handler. The *GMR* will then output to standard error for
|
|
that particular process.
|
|
|
|
For example, suppose that ``zaqar-server`` was run with
|
|
``2>/var/log/zaqar/zaqar-server-err.log``, and the file path is
|
|
``/tmp/guru_report``.
|
|
Then, ``touch /tmp/guru_report`` will trigger the Guru Meditation report to be
|
|
printed to ``/var/log/zaqar/zaqar-server-err.log``.
|
|
|
|
Structure of a GMR
|
|
------------------
|
|
|
|
The *GMR* is designed to be extensible; any particular executable may add
|
|
its own sections. However, the base *GMR* consists of several sections:
|
|
|
|
Package
|
|
Shows information about the package to which this process belongs,
|
|
including version information
|
|
|
|
Threads
|
|
Shows stack traces and thread ids for each of the threads within this process
|
|
|
|
Green Threads
|
|
Shows stack traces for each of the green threads within this process
|
|
(green threads don't have thread ids)
|
|
|
|
Configuration
|
|
Lists all the configuration options currently accessible via the CONF object
|
|
for the current process
|
|
|
|
Extending the GMR
|
|
-----------------
|
|
|
|
As mentioned above, additional sections can be added to the GMR for a
|
|
particular executable. For more information, see the inline documentation
|
|
about oslo.reports:
|
|
`oslo.reports <https://docs.openstack.org/oslo.reports/latest/>`_
|