Architecture

Documentation / Enterprise 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/C++, C#, Java and Python) uses the ARM 4.0 interfaces to measure ARM transactions
  2. The ARM 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. Currently long running transactions can be cleared or discard (Add-on)
    3. 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. to listen for incoming runtime configuration TCP/IP connections from a myarmadmin web application
  4. The myarmdaemon is configured
    1. to receive ARM data from TCP clients (tcp datasink)
    2. to store any received ARM data within its configured database
    3. and calculate real time statistics (rts handler) (Add-on)
  5. Mulitple database connections can be opened to the MySQL or Oracle database for high transaction loads (Add-on).
  6. Database support is provided for SQLite3, MySQL and Oracle
  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 supports import and export of ARM data from or to a database using XML files
    3. Web administration user interface allows to create, manage and to distribute runtime configurations .