The MySQL Enterprise Agent performs the following tasks:
Connects to, and collects, the core information about a MySQL server. The core data is called the inventory. The inventory includes critical information (known items) about the server which is used to help determine the other information that can be collected. For example, the inventory includes details such as the MySQL server version number, supported storage engines and replication configuration.
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 various pieces of information about the host operating system on which the agent is running. This includes CPU, RAM and filesystem 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.
Although the MySQL Enterprise Agent consists of a number of different elements, the components are used collectively as a single application, the MySQL Enterprise Agent. However, in order to distinguish these different elements and their function, they are individually reference and recognized throughout the documentation so that their functionality, configuration, and deployment can be more easily described.
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 Agent.