Concepts

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

Concepts

All MyARM supported ARM 4.0 language binding agents and analysis tools uses the following concepts.

Configuration

The adaption of the MyARM agent to the current hard- and software environment is done using a set of configuration files. Each file contains name value pairs so-called config properties. For example setting the basic.time.use_utc property to true will instruct MyARM to show time information only in UTC.

basic.time.use_utc = true

For more and detailed information about the MyARM read the configuration chapter.

All MyARM agents and tools are using the MYARM_CONFIG_URL to get the configuration file.

Logging

The ARM standard is designed to transparently plugin into an instrumented application. Also in any circumstances the ARM agent should not interfere the application. The MyARM ARM agent uses log messages to report the current configuration, state changes, warnings and errors. The log messages can be written to different kinds of output media such as normal files, Windows event log or Unix syslog.

MyARM supports the following levels of log messages:

error
Error log messages to report errors
warning
Warning log messages to report some unusal situations
status
Status log messages to report state changes within the ARM agent
info
Only informational messages
config
Logs the configuration used by the ARM agent

For more information read the section "Configuring Log facility".

ARM data buffer

During deployment of an instrumented application any measured and recorded ARM data is serialized and written to a so-called ARM data buffer. Therefore such an ARM data buffer can contain any kind of data like transaction response time measurements, log messages or even other kind of data like CPU utilization.

An ARM data buffer has a defined size in bytes which can be specified by a config property. Avoiding memory shortage due to high transaction measurements a maximum number of allocated ARM data buffers is defined. For more detailed information about configuring the ARM data buffer concept read the configuration properties section.

Datasink

The datasink concept is used to transport and store any kind of measured and recorded ARM data in a constistent way. Datasinks within MyARM are plugins which are loaded during initilization phase according to the current configuration.

With this concept it is possible to use a chain of datasinks which will:

  1. store any measured data onto disk (filesink)
  2. read the measured data from the disk and send it to a central server using TCP/IP (tcpsink)
  3. finally storing the measured data into a MySQL database (mysqlsink).

For a detailed description of all available datasinks read section datasinks.

Datasource

The datasource concept defines constistent interface to read in and manage measured and recorded ARM data stored in a database. Like datasinks they are implemented as plugins which are loaded during runtime. Each analysis tool uses this datasource concept to retrieve the measured ARM data from the database. A datasource exists for each supported database as described in section Databases.

File storage

The file storage concept is a sub-component of the MyARM agent which is used to read and write ARM data files. The reading and writing be used separately or combined within a program. It is used to efficiently store measured ARM data onto a hard disk and retrieve the data later from the hard disk within the following programs:

myarmfiled
uses the file storage concept to collect all measured ARM data for the whole host. The myarmfiled can be started as a Windows service or an Unix daemon process to collect all measured ARM data for the whole host.
myarmtcpd
can use the file storage concept to save any data received through TCP/IP onto disk. Therefore it is secured that any incoming data is first stored onto local hard drive before further processing. The myarmtcpd itself will read in the stored ARM data if its configured datasink (database or another myarmtcpd) is ready to accept data.
ARM agent
uses this concept to temporarily store ARM data if the configured datasink is currently not available (database or myarmtcpd are down). Later if the datasink resource is available again it will read in the ARM data and write it to the datasink.

For detailed information about configuring the file storage concept read the configuration properties section.

Resource watch dog

During deployment MyARM needs some resources (mainly memory) to operate correctly. The amount of memory needed depends highly on the number and frequency of transaction measurements. However MyARM should never interfere or to shorten the resources of the deployed application. Therefore MyARM provides various configuration properties to limit the amount of used resources. To monitor the used resouces by MyARM the resource watch dog (New since "1.3.x.4") provides a simple mechanism to log the used resources.

The resource watch dog can be separately configured for the following programs: