Documentation / Community 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++, 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.
    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. The myarmtcpd daemon will receive ARM data from its TCP clients (tcp datasink) and will store any received ARM data within its configured database.
  5. Database support is provided for SQLite3.
  6. 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.