Architecture

Documentation / C/C++ Edition / User Guide / Agent / Architecture

Agent architecture

The MyARM agent architecture is designed to be flexible, efficient and robust. Figure "MyARM overall architecture" gives an overview:


Figure: MyARM overall architecture

Figure: MyARM overall architecture legend
  1. The ARM instrumented applications (C and C++) uses the ARM 4.0 interfaces to measure ARM transactions
  2. The MyARM agent implements the ARM 4.0 interfaces and is linked (dll or jar) against an the instrumented application
    1. The MyARM agent implementation uses a datasink (backend) concept to store the measured ARM data. The following different kinds of datasinks can be used.
      file datasink
      The file datasink writes the measured ARM data to a file which will be collected by a myarmdaemon
      tcp datasink
      The tcp datasink writes the measured ARM data over a TCP/IP connection to a myarmdaemon
      database datasink
      The database datasink writes the measured ARM data directly to the configured database
    2. The runtime configuration is used to change the behaviour of a running instrumented application. The runtime configuration is distributed to the instrumented application through a myarmdaemon process which receives runtime configuration data through a TCP/IP connection from the myarmadmin web application
    3. A handler uses runtime configurations to adopt the behaviour of the MyARM agent
    4. Filestorage component to write/read ARM data to/from a temporary file if the datasink is currently not able to store the data (database or TCP/IP connection down)
  3. The myarmdaemon is configured
    1. to read in any ARM data files which were written by the file datasink of an instrumented application
    2. It will forward the ARM data to a connected myarmdaemon configured as a TCP server
    3. reading runtime configurations from disk when new configuration were stored by the TCP datasink
  4. The myarmdaemon is configured
    1. to store any received ARM data within its configured database
    2. to receive runtime configuration data from the myarmadmin web application
    3. calculate real time statistics (rts handler) (Add-on)
  5. Multiple database connections can be opened to the MySQL or MariaDB database for high transaction loads (Add-on).
  6. Database support is provided for SQLite3, MySQL and MariaDB
  7. For the analysis of measured ARM data different analysis tools are provided:
    1. Each of these user interfaces use the database datasource API to retrieve data from the database
    2. Command line tools for batch processing and to import/export ARM data from/to a database using XML files or MyARM data files.
    3. Web administration user interface allows to create, manage and to distribute runtime configurations .