MiniMot

A miniature performance monitoring application.

The principle is based on Graham Dumpleton blog's post.

There are two components to this project:

  • a client: the WSGI middleware acting on the requests of your WSGI app
  • a server: an async service/API receiving and exposing the stats from the

WSGI app

Development

If you wish to run the server side of application.

  • Install virtualenvwrapper
dnf install python-virtualenvwrapper
  • Create the virtualenv
mkvirtualenv -p python3 minimot
  • Install the dependencies
pip3 install -r requirements.txt
  • Create the database
python3 createdb.py
  • Start the server
./minimot-run
  • Generate some fake metadata
python3 generate_data.py

Architecture

The architecture of the project looks a little bit like this

 Without MiniMot            +            With MiniMot
                            |
                            |
 +------------+             |          +------------+
 |            |             |          |            |
 |   Client   |             |          |   Client   |
 |            |             |          |            |
 +-----+------+             |          +-----+------+
       |                    |                |
       |                    |                |
       |                    |          +-----v-----+  Redis  +---------------+  POST  +------------------+
       |                    |          |  MiniMot  +---------> Async Service +-------->  MiniMot Server  |
       |                    |          +-----+-----+         +---------------+        +------------------+
       |                    |                |
       |                    |                |
       v                    |                |
+------+-------+            |         +------v-------+
|              |            |         |              |
|   WSGI APP   |            |         |   WSGI APP   |
|              |            |         |              |
+--------------+            |         +--------------+
                            |
                            |
                            |
                            +