Documentation / Standard 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
  1. The ARM instrumented applications (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.
  3. The MyARM agent implementation uses a datasink (backend) concept to store and/or process 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 the myarmfiled daemon.
    tcp datasink
    The tcp datasink writes the measured ARM data over a TCP/IP connection to the myarmtcpd daemon.
    database datasink
    The database datasink writes the measured ARM data directly to the configured database.
  4. Filestorage component to write/read ARM data to/from a temporary file if the datasink is (not) available.
  5. The myarmfiled daemon reads in any ARM data files which were written by the file datasink of an instrumented application. It will forward the ARM data to connected myarmtcpd.
  6. The myarmtcpd daemon will receive ARM data from its TCP clients (tcp datasink) and will process (trigger) and store any received ARM data within its configured database.
  7. Database support is provided for SQLite3 and MySQL.
  8. For the analysis of measured ARM data the analysis tools are provided:
    • GUI analysis tool provides an easy to use graphical user interface.
    • Web analysis tool provides an easy to use web-based user interface.
    • Command line tools for batch processing and supports import and export of ARM data from or to a database using XML files.