.. _apimon_flow:

ApiMon Flow Process
===================


.. image:: training_images/apimon_data_flow.svg
   :target: /_images/apimon_data_flow.svg
   :alt: apimon_data_flow


#. Service squad adds test scenario to github repository.
#. Scheduler fetches test scenarios from Github and add them to queue.
#. Executor plays Ansible test scenario playbooks. Up to 8 parallel threads are enabled
#. Test scenario which has finished is being removed from the thread and next
   playbook in the queue is added to the free thread. The previous playbook is
   added to the queue on the last position.
#. Test scenario statistics are stored in the Postgresql database.
#. Metrics from HTTP requests are collected by Statsd.
#. Collected metrics are stored in time-series database Graphite.
#. Grafana uses metrics and statistics databases as the data sources for the
   dashboards. The dashboard with various panels show the real-time status of
   the platform. Grafana supports also historical views and trends.
#. Breached thresholds as well as failed test scenarios result in generated
   alerts on Alerta.
#. Notifications containing alert details are sent to Zulip
#. Every test scenario stores it's job output log into Swift object storage for further analysis and investigation.
