########################### Planifications with ddbmock ########################### DynamoDB-Mock has two main goals. Speeding up tests and helping you plan your real DynamoDB usage. This includes both the throughput and the disk usage. Getting disk usage ================== To get per table disk usage, feedback, one can issue a call to ``DescribeTable`` method. the informations returned are accurate in the sense of DynamoDB but beware, these are also by far *below* the real usage in ddbmock as there are asbsolutly no optimisations done on our side. Getting Throughput usage ======================== To get per table throughput usage you can rely on the dedicated logger ``utils.tp_logger``. By default, ``min``, ``max`` and ``average`` throughput are logged every 5 minutes and at the end of the program via an atexit handler. Note that the handler is hooked to ``NullHandler`` handler by default so that there should not be any noise in the console. To get statistics more often, you can change ``config.STAT_TP_AGGREG`` value **before** issueing any requests to ddbmock. ``__init__`` may be a good place to do so. For example, if you want to get statistics to the console every 15 seconds, you can use a code like this : :: from ddbmock import config from ddbmock.utils import tp_logger import logging config.STAT_TP_AGGREG = 15 # every 15 sec tp_logger.addHandler(logging.StreamHandler()) # to console Depending on how your your application scales, it may be interesting to run a representative secnario with multiples users and se how the throughput proportions. this will be a very valuable information when going live. General logging =============== Logger ``utils.req_logger`` traces request body, response and errors if applicable. Each log entry starts with ``request_id=...``. This allows you to keep track of each individual requests even in a higly concurent environnement. By default, all is logged to ``NullHandler`` and you should at leaste hook a ``logging.StreamHandler`` to have a console output.