Deploy

Contents / C/C++ Edition / User Guide / Agent / Deploy

Typical deployment

This sections outlines some typical deployment environments for an ARM instrumented distributed system. Here we assume that the distributed system consists out of

The clients requests services from the application server through the web server. The application server will process the requests and will use the two database servers according to the type of request. Each box in the following diagram represents a host with the host name in parenthesis within our local domain "local":


Figure: Deployment overview

Within such an environment we recommend to setup a separate MyARM server which hosts the following applications:

Administration or the help desk can analyse performance trends or a specific performance problem using the MyARM web front ends.

Using TCP datasink

Once MyARM is installed on each host the configuration needs to be adopted to work properly. The following diagram gives an overview of our deployment example with black arrows representing writing data flow and gray arrows representing a reading data flow:


Figure: Deployment with TCP configuration

As shown in the diagram we can divide the diagram into three different areas:

  1. The "Application area" which needs the MyARM configuration how to write the measured ARM data into the destination database.
  2. The "MyARM area" where the myarmdaemon with the TCP server, the MySQL SQL database and the web server for providing the MyARM web front ends are running. Note: myarmadmin is used to administrate the MyARM infrastructure and is not taken into account here but shown for the sake of completeness.
  3. The "Analyse area" where some web browsers are used to analyse the measured performance and response time data.

We start to configure the MyARM installation within the "MyARM area":

So finally our "user.conf" for the host in the "MyARM area" looks as follows:

daemon.tcp.host = myarm.local
daemon.tcp.port = 5557
daemon.tcp.max_clients = 10
db_mysql.user = myarm
db_mysql.password = "dbpasswd"

Now we need to configure the MyARM installations within the "Application area":

sink_tcp.host = myarm.local
sink_tcp.port = 5557

For the "Analyse area" no additional configuration is needed. Depending on the web deployment you used the different MyARM web application can be reached with the following URLs:

Using file and TCP datasink

In the previous section we configured the MyARM agent to use directly a TCP connection to the myarmdaemon running on the "myarm.local". In some circumstances it is not wanted that each ARM instrumented application connects to a TCP server. For example if different command line tools are instrumented and are executed within a batch job its not a good idea to connect to the TCP server each time a batch command has some ARM measurements.

In such environments MyARM provides the file datasink to write ARM measurements to local hard disk instead of sending the data through a TCP connection. The myarmdaemon is used to collect these files on the "localhost" and sends the data to the myarmdaemon running on "myarm.local" using only one TCP connection:


Figure: Deployment with file and TCP configuration