本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用適用於 Node.js 的 X-Ray 開發套件追蹤 SQL 查詢
注意
End-of-support通知 – 在 2027 年 2 月 25 日, AWS X-Ray 將停止支援 AWS X-Ray SDKs 和協助程式。2027 年 2 月 25 日之後,您將不再收到更新或版本。如需支援時間軸的詳細資訊,請參閱 X-Ray SDK 和協助程式終止支援時間表。建議您遷移至 OpenTelemetry。如需遷移至 OpenTelemetry 的詳細資訊,請參閱從 X-Ray 檢測遷移至 OpenTelemetry 檢測。
透過在對應的適用於 Node.js 的 X-Ray 開發套件用戶端方法中包裝 SQL 用戶端來檢測 SQL 資料庫查詢。
-
PostgreSQL –
AWSXRay.capturePostgres()
var AWSXRay = require('aws-xray-sdk');
var pg = AWSXRay.capturePostgres(
require('pg'))
; var client = new pg.Client(); -
MySQL –
AWSXRay.captureMySQL()
var AWSXRay = require('aws-xray-sdk');
var mysql = AWSXRay.captureMySQL(
require('mysql'))
; ... var connection = mysql.createConnection(config);
當您使用受檢測用戶端進行 SQL 查詢時,適用於 Node.js 的 X-Ray 開發套件會在子區段中記錄連線及查詢的相關資訊。
在 SQL 子區段中包含其他資料
您可以將其他資訊新增至為 SQL 查詢產生的子區段,只要它對應至允許清單的 SQL 欄位即可。例如,若要在子區段中記錄已淨化的 SQL 查詢字串,您可以將其直接新增至子區段的 SQL 物件。
範例 將 SQL 指派給子區段
const queryString = 'SELECT * FROM
MyTable
'; connection.query(queryString, ...); // Retrieve the most recently created subsegment const subs = AWSXRay.getSegment().subsegments; if (subs & & subs.length > 0) { var sqlSub = subs[subs.length - 1]; sqlSub.sql.sanitized_query = queryString; }
如需允許清單 SQL 欄位的完整清單,請參閱《 AWS X-Ray 開發人員指南》中的 SQL 查詢。