View a markdown version of this page

Tambahkan anotasi dan metadata ke segmen dengan SDK untuk X-Ray Node.js - AWS X-Ray

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Tambahkan anotasi dan metadata ke segmen dengan SDK untuk X-Ray Node.js

catatan

X-Ray SDK/Daemon Pemberitahuan Pemeliharaan — Pada 25 Februari 2026, AWS X-Ray SDKs/Daemon akan memasuki mode pemeliharaan, di mana AWS akan membatasi rilis X-Ray SDK dan Daemon untuk mengatasi masalah keamanan saja. Untuk informasi selengkapnya tentang garis waktu dukungan, lihatGaris waktu Dukungan X-Ray SDK dan Daemon. Kami merekomendasikan untuk bermigrasi ke OpenTelemetry. Untuk informasi selengkapnya tentang migrasi ke OpenTelemetry, lihat Migrasi dari X-Ray instrumentasi ke instrumentasi. OpenTelemetry

Anda dapat mencatat informasi tambahan tentang permintaan, lingkungan, atau aplikasi Anda dengan anotasi dan metadata. Anda dapat menambahkan anotasi dan metadata ke segmen yang dibuat X-Ray SDK, atau ke subsegmen khusus yang Anda buat.

Anotasi adalah pasangan kunci-nilai dengan string, nomor, atau nilai-nilai Boolean. Anotasi diindekskan untuk digunakan dengan Ekspresi filter. Gunakan anotasi untuk mencatat data yang ingin Anda gunakan untuk mengelompokkan pelacakan di konsol tersebut, atau saat memanggil API GetTraceSummaries.

Metadata adalah pasangan kunci-nilai yang dapat memiliki nilai dari setiap tipe, termasuk objek dan daftar, tetapi tidak diindekskan untuk digunakan dengan ekspresi filter. Gunakan metadata untuk mencatat data tambahan yang ingin disimpan dalam pelacakan tetapi tidak perlu digunakan dengan pencarian.

Selain anotasi dan metadata, Anda juga dapat mencatat string ID pengguna pada segmen. ID Pengguna dicatat dalam bidang terpisah pada segmen dan diindeks untuk digunakan dengan penelusuran.

Merekam anotasi dengan X-Ray SDK untuk Node.js

Gunakan anotasi untuk mencatat informasi pada segmen atau subsegmen yang ingin diindeks untuk pencarian.

Persyaratan Anotasi
  • Kunci — Kunci untuk X-Ray anotasi dapat memiliki hingga 500 karakter alfanumerik. Anda tidak dapat menggunakan spasi atau simbol selain titik atau titik (.)

  • Nilai — Nilai untuk X-Ray anotasi dapat memiliki hingga 1.000 karakter Unicode.

  • Jumlah Anotasi — Anda dapat menggunakan hingga 50 anotasi per jejak.

Untuk mencatat anotasi
  1. Dapatkan referensi ke segmen atau subsegmen saat ini.

    var AWSXRay = require('aws-xray-sdk'); ... var document = AWSXRay.getSegment();
  2. Panggil addAnnotation dengan kunci String, serta nilai Boolean, Nomor, atau String.

    document.addAnnotation("mykey", "my value");

    Contoh berikut menunjukkan cara memanggil addAnnotation dengan kunci String yang mencakup titik, dan nilai Boolean, Number, atau String.

    document.addAnnotation("testkey.test", "my value");

SDK mencatat penjelasan sebagai pasangan nilai kunci dalam objek annotations di dokumen segmen. Memanggil addAnnotation dua kali dengan tombol yang sama akan menimpa nilai yang tercatat sebelumnya pada segmen atau subsegmen yang sama.

Untuk menemukan penelusuran yang memiliki anotasi dengan nilai-nilai tertentu, gunakan kata kunci annotation[key] dalam ekspresi filter.

contoh app.js - anotasi
var AWS = require('aws-sdk'); var AWSXRay = require('aws-xray-sdk'); var ddb = AWSXRay.captureAWSClient(new AWS.DynamoDB()); ... app.post('/signup', function(req, res) { var item = { 'email': {'S': req.body.email}, 'name': {'S': req.body.name}, 'preview': {'S': req.body.previewAccess}, 'theme': {'S': req.body.theme} }; var seg = AWSXRay.getSegment(); seg.addAnnotation('theme', req.body.theme); ddb.putItem({ 'TableName': ddbTable, 'Item': item, 'Expected': { email: { Exists: false } } }, function(err, data) { ...

Merekam metadata dengan SDK untuk X-Ray Node.js

Gunakan metadata untuk mencatat informasi pada segmen atau subsegmen yang tidak perlu diindeks untuk pencarian. Nilai metadata dapat berupa string, angka, Boolean, atau objek yang dapat diserialisasikan ke dalam objek atau baris JSON.

Untuk mencatat metadata
  1. Dapatkan referensi ke segmen atau subsegmen saat ini.

    var AWSXRay = require('aws-xray-sdk'); ... var document = AWSXRay.getSegment();
  2. Panggil addMetadata dengan kunci String, Boolean, Nomor, String, atau nilai objek, dan namespace string.

    document.addMetadata("my key", "my value", "my namespace");

    atau

    Panggil addMetadata hanya dengan kunci dan nilai.

    document.addMetadata("my key", "my value");

Jika Anda tidak menentukan namespace, SDK menggunakan default. Memanggil addMetadata dua kali dengan tombol yang sama akan menimpa nilai yang tercatat sebelumnya pada segmen atau subsegmen yang sama.

Merekam ID pengguna dengan X-Ray SDK untuk Node.js

Catat ID pengguna pada segmen permintaan untuk mengidentifikasi pengguna yang mengirim permintaan. Operasi ini tidak kompatibel dengan AWS Lambda fungsi karena segmen di lingkungan Lambda tidak dapat diubah. Panggilan setUser dapat diterapkan hanya untuk segmen, bukan subsegment.

Untuk mencatat ID pengguna
  1. Dapatkan referensi ke segmen atau subsegmen saat ini.

    var AWSXRay = require('aws-xray-sdk'); ... var document = AWSXRay.getSegment();
  2. Panggil setUser() dengan ID String pengguna yang mengirim permintaan.

    var user = 'john123'; AWSXRay.getSegment().setUser(user);

Anda dapat memanggil setUser untuk mencatat ID pengguna segera setelah aplikasi mulai memproses permintaan. Jika Anda akan menggunakan segmen untuk mengatur ID pengguna, Anda dapat mengaitkan panggilan dalam satu baris.

contoh app.js - ID pengguna
var AWS = require('aws-sdk'); var AWSXRay = require('aws-xray-sdk'); var uuidv4 = require('uuid/v4'); var ddb = AWSXRay.captureAWSClient(new AWS.DynamoDB()); ... app.post('/signup', function(req, res) { var userId = uuidv4(); var item = { 'userId': {'S': userId}, 'email': {'S': req.body.email}, 'name': {'S': req.body.name} }; var seg = AWSXRay.getSegment().setUser(userId); ddb.putItem({ 'TableName': ddbTable, 'Item': item, 'Expected': { email: { Exists: false } } }, function(err, data) { ...

Untuk menemukan penelusuran pada ID pengguna, gunakan kata kunci user dalam ekspresi filter.