## Requirements * AWS X-Ray SDK Core * MySQL 2.12.0 or greater ## AWS X-Ray and MySQL The AWS X-Ray MySQL package automatically records query information and request and response data. Simply patch the MySQL package via `captureMySQL` as shown below. The AWS X-Ray SDK Core has two modes - `manual` and `automatic`. Automatic mode uses the `cls-hooked` package and automatically tracks the current segment and subsegment. This is the default mode. Manual mode requires that you pass around the segment reference. See the examples below. ### Environment variables MYSQL_DATABASE_VERSION Sets additional data for the sql subsegment. MYSQL_DRIVER_VERSION Sets additional data for the sql subsegment. ### Lambda Example ```js var AWSXRay = require('aws-xray-sdk'); var pg = AWSXRay.captureMySQL(require('mysql')); ... exports.handler = function (event, context, callback) { // Make MySQL queries normally } ``` ## Automatic mode example ```js var AWSXRay = require('aws-xray-sdk-core'); var captureMySQL = require('aws-xray-sdk-mysql'); var mysql = captureMySQL(require('mysql')); var config = { ... }; ... var connection = mysql.createConnection(config); connection.query('SELECT * FROM cats', function(err, rows) { //Automatically captures query information and errors (if any) }); ... var pool = mysql.createPool(config); pool.query('SELECT * FROM cats', function(err, rows, fields) { //Automatically captures query information and errors (if any) } ``` ## Manual mode example ```js var AWSXRay = require('aws-xray-sdk-core'); var captureMySQL = require('aws-xray-sdk-mysql'); var mysql = captureMySQL(require('mysql')); var config = { ... }; ... var connection = mysql.createConnection(config); connection.query('SELECT * FROM cats', function(err, rows) { //Automatically captures query information and errors (if any) }, segment); ... var pool = mysql.createPool(config); pool.query('SELECT * FROM cats', function(err, rows, fields) { //Automatically captures query information and errors (if any) }, segment); ```