The MySQL Enterprise Agent performs the following tasks:
Connects to a MySQL server and collects core information about it. The core data is called the inventory. The inventory includes details such as the MySQL server version number, supported storage engines and replication configuration. The data in the inventory helps to determine what other kinds of data can be collected from the MySQL server.
Collects a set of standard data items that constitute the bulk of the data sent to the MySQL Enterprise Service Manager. This includes all of the information about the configuration, database objects and other content.
Collects information about the host operating system on which the agent is running, including CPU, RAM, and file system information and statistics.
Collects query analyzer data by acting as a MySQL Proxy, collecting, and forwarding MySQL queries from clients and sending the collected query execution information to the MySQL Enterprise Service Manager. This is known as the MySQL Enterprise Agent Proxy Service.
Collects query analyzer data by acting as an aggregator of the query execution statistics for applications and languages that do not connect directly with the MySQL Enterprise Service Manager, but instead supply raw query-by-query statistics to the agent for distribution up to the MySQL Enterprise Service Manager. This is known as the MySQL Enterprise Agent Aggregator.
Collects any custom data items that you can optionally configure to provide unique monitoring and statistical information for your MySQL server.
The MySQL Enterprise Agent consists of a number of different components, such as the Aggregator and the Proxy. The documentation sometimes refers to these components by name to describe the functionality, configuration, and deployment of specific parts of the Agent.
The agent is a general purpose service that provides the basis for all this functionality and is the key component of MySQL Enterprise Monitor as it provides the MySQL Enterprise Service Manager with the information about each individual MySQL server.
Each MySQL Enterprise Agent requires a UUID to uniquely identify the MySQL Enterprise Agent to the MySQL Enterprise Service Manager. This UUID is independent of the UUID assigned to each monitored server. Do not copy the UUID from one instance of the agent to another, as that would cause duplicate agent UUID exceptions.
When the agent first starts, it performs the following operations:
Loads the configuration information.
Checks that the Agent UUID exists.
Generates what it thinks the current Host ID should be.
Starts the network thread and collector threads.
Compares whether the instance we are connected to has the same Host ID, to make sure we are not starting on a copied instance wrongly.
Registers with the MySQL Enterprise Service Manager and then sends a heartbeat signal.
Receives a "list known data items" call from the Service Manager.
Loads the list of data items, including any custom data items, to be read from the server.
Responds to the Service Manager with the known items.
Receives a "list instances" call from the Service Manager for certain data items.
Runs the inventory process to determine the core information about the MySQL server.
Responds to the Service Manager with the inventory.
Receives schedule information for each data item from the MySQL Enterprise Service Manager in "collect data" tasks.
Starts collecting data and sending it to the MySQL Enterprise Service Manager according to the schedule set during configuration.
Once running, each MySQL Enterprise Agent periodically collects information from the monitored MySQL server and sends it to MySQL Enterprise Service Manager.