Metadata-Version: 1.1
Name: rabbitmq-alert
Version: 1.8.0
Summary: Send notifications when predefined conditions are met
Home-page: https://github.com/gfronza/rabbitmq-alert
Author: Germano Fronza (gfronza), Kostas Milonas (mylk), velika12, Robert Kopaczewski (23doors), Ivan Timeev (TeslA1402), Anderson Diego Kulpa Fachini (anderson-fachini)
Author-email: germano.inf@gmail.com
License: UNKNOWN
Download-URL: https://github.com/gfronza/rabbitmq-alert/tarball/1.8.0
Description: About RabbitMQ Alert
        ====================
        
        Send notifications when predefined conditions are met.
        
        Which conditions?
        =================
        
        -  Ready messages
        -  Unacknowledged messages
        -  Total queued messages
        -  Number of connected consumers
        -  Number of open connections
        -  Number of nodes running
        -  Memory used by each node in MBs
        
        | My inspiration to create this notification sender is to monitor a set
          of Celery workers. Sometimes they stop working and monitoring
        | the queue size seems to be an easy way to know when these situations
          happen. Additionally, automatically monitoring the queue sizes
        | is a great way to scale up/down the number of workers.
        
        What type of notifications?
        ===========================
        
        Currently the following are supported:
        
        -  E-mails
        -  Slack messages
        -  Telegram messages
        
        Installation
        ============
        
        Use the ``PIP`` command, which should already exist in your Linux installation:
        
        ::
        
            sudo pip install rabbitmq-alert
        
        Usage
        =====
        
        Execute with the global configuration file
        ------------------------------------------
        Copy the example configuration file to the default path of the global configuration file:
        
        ::
        
            sudo cp /etc/rabbitmq-alert/config.ini.example /etc/rabbitmq-alert/config.ini
        
        | Edit it with you preferred settings. Then you are ready to execute ``rabbitmq-alert``
        | using the global configuration file. Just execute:
        
        ::
        
            sudo rabbitmq-alert
        
        Execute with options
        --------------------
        
        | You can execute ``rabbitmq-alert`` along using the provided options,
          but first take a look at ``--help`` to see whats available
        | and the purpose of each option.
        
        Example:
        
        ::
        
            sudo rabbitmq-alert \
                --host=my-server --port=55672 --username=guest --password=guest \
                --vhost=%2F --queue=my_queue1,my_queue2 --ready-queue-size=3 --check-rate=300 \
                --email-to=admin@example.com --email-from=admin@example.com \
                --email-subject="RabbitMQ alert at %s - %s" --email-server=localhost
        
        Execute with a custom configuration file
        ----------------------------------------
        
        | Alternatively, you can use a custom configuration file.
          For the required format, take a look
        | at the ``/etc/rabbitmq-alert/config.ini.example`` file.
        
        Then execute ``rabbitmq-alert`` with the configuration file option:
        
        ::
        
            sudo rabbitmq-alert -c my_config.ini
        
        Execute as a daemon
        -------------------
        
        | A ``systemd`` script is created upon installation with ``PIP``.
        | Use the following commands to reload the ``systemd`` configuration
        | and start ``rabbitmq-alert`` as a daemon.
        
        ::
        
            sudo systemctl daemon-reload
            sudo systemctl start rabbitmq-alert
        
        To have ``rabbitmq-alert`` always started on boot:
        
        ::
        
            sudo systemctl enable rabbitmq-alert
        
        In case your system still uses ``init.d``, an ``init.d`` script has been created
        in ``/etc/init.d`` upon ``PIP`` installation. To start ``rabbitmq-alert`` as a daemon:
        
        ::
        
            sudo /etc/init.d/rabbitmq-alert start
        
        To have ``rabbitmq-alert`` always started on boot:
        
        ::
        
            sudo update-rc.d rabbitmq-alert defaults
        
        Different options per queue
        ---------------------------
        | Except conditions for all queues, you can also define queue specific conditions
        | in the configuration file, in case you want to have fine-tuned options for each queue.
        | Just create a ``[Conditions]`` section for each queue. Example:
        
        ::
        
            [Conditions:my-queue]
            ...
        
            [Conditions:my-other-queue]
            ...
        
        Note that queue names also have to be defined in the ``[Server]``
        section of the configuration file:
        
        ::
        
            [Server]
            ...
            queues=my-queue,my-other-queue
            ...
        
        Logging
        -------
        
        | You can find the logs of ``rabbitmq-alert`` to ``/var/log/rabbitmq-alert/``.
        | Log files are rotated in a daily basis.
        
        Execute in a container
        ----------------------
        
        | There is a docker image for the project. First, you have to create a configuration file
        | for ``rabbitmq-alert``, which will then be copied into the container. Then you can run
        | ``rabbitmq-alert`` inside a container.
        
        ::
        
            docker run -d --name rabbitmq-alert -v config.ini:/etc/rabbitmq-alert/config.ini \
            mylkoh/rabbitmq-alert:latest
        
        For the configuration file, advise the ``config.ini.example`` that exists in the project's repository.
        
        Contribute
        ==========
        
        | The project ``rabbitmq-alert`` is written in ``python2``.
        | Of course, you can contribute to the project. Take a look at the
          GitHub “Issues” page and pick an issue to implement / fix.
        | Fork the project, develop and then create a pull request, in order for
          your code to be added to the project.
        
        Prepare your environment
        ------------------------
        
        To start, you have to install the dev dependencies which are some
        required python packages:
        
        ::
        
            make deps-dev
        
        Run the tests!
        --------------
        
        After writing your awesomeness, run the test suites to ensure that
        everything is still fine:
        
        ::
        
            make test
        
        Firstly, ensure that you have removed the rabbitmqalert package from your system.
        Otherwise you may find yourself running the tests on the installed package
        instead of the source code.
        
        Do add tests yourself for the code you contribute to ensure the quality
        of the project.
        
        Happy coding :-)
        
        Build and publish a new container version
        -----------------------------------------
        
        To build a new image version of the project:
        
        ::
        
            docker build --no-cache -t mylkoh/rabbitmq-alert:1.2.2 -t mylkoh/rabbitmq-alert:latest .
        
        Publish the image:
        
        ::
        
            docker push mylkoh/rabbitmq-alert
        
        Testing the container
        ---------------------
        
        Create a network that all containers will belong to:
        
        ::
        
            docker network create rabbitmq-alert
        
        
        Run ``rabbitmq`` into a container:
        
        ::
        
            docker run -d --name some-rabbit --net rabbitmq-alert -p 8080:15672 rabbitmq:3-management
        
        | You can then go to http://localhost:8080 in a browser to use the management plugin.
        | The username and password are both ``guest``. Create a fake SMTP server:
        
        ::
        
            docker run -d --name fake-smtp --net rabbitmq-alert -p 25:25 munkyboy/fakesmtp
        
        Now, run ``rabbitmq-alert`` using the same network:
        
        ::
        
            docker run -d --name rabbitmq-alert --net rabbitmq-alert \
            -v config.ini:/etc/rabbitmq-alert/config.ini mylkoh/rabbitmq-alert:latest
        
        
Keywords: rabbitmq,alert,monitor
Platform: UNKNOWN
