doc/book/annexes/rql/debugging.rst
author Philippe Pepiot <ph@itsalwaysdns.eu>
Tue, 31 Mar 2020 18:22:05 +0200
changeset 12966 6cd938c29ca3
parent 12716 f5300acd8f4f
permissions -rw-r--r--
[server] Make connection pooler configurable and set better default values Drop the configuration connections-pool-size and add new configurations options: * connections-pool-min-size. Set to 0 by default so we open connections only when needed. This avoid opening min-size*processes connections at startup, which is, it think, a good default. * connections-pool-max-size. Set to 0 (unlimited) by default, so we move the bottleneck to postgresql. * connections-idle-timeout. Set to 10 minutes. I don't have arguments about this except that this is the default in pgbouncer.

.. -*- coding: utf-8 -*-

.. _DEBUGGING:

Debugging RQL
-------------

Available levels
~~~~~~~~~~~~~~~~

Server debugging flags. They may be combined using binary operators.

.. autodata:: cubicweb.server.DBG_NONE
.. autodata:: cubicweb.server.DBG_RQL
.. autodata:: cubicweb.server.DBG_SQL
.. autodata:: cubicweb.server.DBG_REPO
.. autodata:: cubicweb.server.DBG_HOOKS
.. autodata:: cubicweb.server.DBG_OPS
.. autodata:: cubicweb.server.DBG_MORE
.. autodata:: cubicweb.server.DBG_ALL


Enable verbose output
~~~~~~~~~~~~~~~~~~~~~

To debug your RQL statements, it can be useful to enable a verbose output:

.. sourcecode:: python

    from cubicweb import server
    server.set_debug(server.DBG_RQL|server.DBG_SQL|server.DBG_ALL)

.. autofunction:: cubicweb.server.set_debug

Another example showing how to debug hooks at a specific code site:

.. sourcecode:: python

    from cubicweb.server import debugged, DBG_HOOKS
    with debugged(DBG_HOOKS):
        person.cw_set(works_for=company)


Detect largest RQL queries
~~~~~~~~~~~~~~~~~~~~~~~~~~~

See `Profiling and performance` chapter (see :ref:`PROFILING`).


API
~~~

.. autoclass:: cubicweb.server.debugged