MySQL agent

Prerequisites

  • For prerequisite checks for agent installation, see Prerequisite checks for agent installation.
  • URL/IP of the SixthSense collector (your tenant URL, which will be provided by Customer Support).
  • Access token from the SixthSense portal. For accessing the token, see Accessing your Access Token under Getting started with the Observability Portal.
  • mysql agent version "latest".
  • database details (host name, port, database name, database user credentials).
  • Package token to download the agent (which will be provided by Customer Support).

Downloading the Agent

For Windows and Linux based servers, use the following link.

curl --header "PRIVATE-TOKEN:{TOKEN}" --output meter-agent.zip "https://artifacts-observability.sixthsense.rakuten.com/api/v4/projects/32/packages/generic/METER-AGENT/latest/meter-agent.zip"
note

The agent depends on the Operating System and architecture.

Database User Permissions

To capture database metrics from the MySQL server, you must first create a MySQL user with replication and select permissions.

Perform the following steps to create user and grant permissions.

From the MySQL command line, create a user sixthsense@<your_host_name> with a specific password by running:

Create user

CREATE USER 'sixthsense'@'localhost' IDENTIFIED BY '<your_strong_password>' WITH MAX_USER_CONNECTIONS 5;

Grant replication privileges to sixthsense@<your_host_name> by running:

Grant replication permission

GRANT REPLICATION CLIENT ON *.* TO 'sixthsense'@'localhost';

Grant privileges to sixthsense@<your_host_name>, by running:

Grant select permission

GRANT SELECT ON *.* TO 'sixthsense'@'localhost';
note

Replace <your_host_name> and <your_strong_password> with your values.

Enable deadlock permission

SET GLOBAL innodb_print_all_deadlocks = ON;

Configuring the MySQL agent

Create a config.yaml file in the same directory as the agent.

# sixthsense-mysql-agent can be configured via yaml or environment variables
#
# Note: Environment Variables are given higher priority over yaml file
#
# Following are the environment variables that can be set:
# ENV VARIABLE CORRESPONDS TO
# SS_SERVICE_NAME service_name
# SS_AUTHENTICATION authentication
# SS_BACKEND sixthsense_backend
# SS_LOGGING logging
# SS_SECURE secure
sixthsense:
service_name: <custom-service-name>
# Login to Sixthsense UI --> Go to Settings on Side Navbar --> Copy Access Token
authentication: <custom-service-authKey>
logging: info
sixthsense_backend: <custom-sixthsense_backend-url>
# SSL connection with backend true|false
secure: <true|false>
# MY | ES | MS | CB | OR
type: MY
# cron optional
# cron: "* * * * *"
hostname: <hostIp>
port: <port> #3306
user: <user>
password: <password>
mysql:
isCluster: <true|false>
clusterName: <clusterName>
# database optional
# database: demo_db
# socket: /tmp/mysql.sock
# log file path
# logPath: logs/logs.log
queryLimit: 10 #no of queries
queryThresholdTime: 200 #millisecond
note

Use either the sql port or socket.

Running the agent

For Linux:

Run MySQL agent in the terminal using the following commnad.

./meter-agent path/to/config/ss-mysql-config.yaml

For Windows:

a. Open command prompt with run as Administrator and enter the following command:

nssm.exe install “Service_Name”

In the NSSM service installer screen, the Application tab is selected by default.

b. Enter the following details:

  • Path: meter-agent.exe full path
  • Startup directory: folder path
  • Arguments: yaml full name

c. Click the Details tab.

d. Enter the following details:

  • Display name: service display name
  • Description: service description
  • Setup type: select type for setup such as automatic.

e. Click the Log on tab. f. Select Local System account radio button. g. Select Allow service to interact with desktop check box. h. Click Install service.

Editing the configuration in the yaml file

In yaml file, add the following configuration details:

  1. service_name: Servive name will display on UI
  2. authentication: Get access token from dashboard under setting
  3. sixthsense_backend: Backend collector URL
  4. hostname: hostname
  5. port: port
  6. user: db_user
  7. password: db_user_password
note

It supports instance name also with hostname

Example:

hostname: Hostname/SQLExpress