Node.js SDK 용 X-Ray를 사용하여 세그먼트에 주석 및 메타데이터 추가 - AWS X-Ray

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Node.js SDK 용 X-Ray를 사용하여 세그먼트에 주석 및 메타데이터 추가

주석 및 메타데이터와 함께 요청, 환경 또는 애플리케이션에 대한 추가 정보를 기록할 수 있습니다. 주석과 메타데이터를 X-Ray에서 SDK 생성하는 세그먼트나 사용자가 만든 사용자 지정 하위 세그먼트에 추가할 수 있습니다.

주석은 문자열, 숫자 또는 부울 값과 결합한 키-값 페어입니다. 주석은 필터 표현식에서 사용하기 위해 인덱싱됩니다. 콘솔에서 또는 를 호출할 때 트레이스를 그룹화하는 데 사용할 데이터를 주석을 사용하여 기록할 수 있습니다. GetTraceSummariesAPI

메타데이터는 객체 및 목록을 포함한 모든 유형의 값을 가질 수 있는 키-값 페어지만, 필터 표현식에 사용할 수 있도록 인덱싱되지는 않습니다. 트레이스에 저장하고 싶지만 검색에는 사용하지 않을 추가 데이터는 메타데이터를 사용하여 기록하십시오.

세그먼트에는 주석과 메타데이터 외에 사용자 ID 문자열도 기록할 수 있습니다. 사용자는 세그먼트의 별도 필드에 IDs 기록되며 검색에 사용할 수 있도록 인덱싱됩니다.

Node.js SDK 용 X-Ray를 사용하여 주석 기록하기

주석을 사용하여 검색용으로 인덱싱할 정보를 세그먼트나 하위 세그먼트에 기록하십시오.

주석 요구 사항
  • — X-Ray 주석의 키는 최대 500자의 영숫자를 포함할 수 있습니다. 점이나 마침표 (.) 이외의 공백이나 기호는 사용할 수 없습니다.

  • — X-Ray 주석의 값은 최대 1,000개의 유니코드 문자를 포함할 수 있습니다.

  • 주석 수 — 트레이스당 최대 50개의 주석을 사용할 수 있습니다.

주석 기록 방법
  1. 현재 세그먼트나 하위 세그먼트의 참조를 가져옵니다.

    var AWSXRay = require('aws-xray-sdk'); ... var document = AWSXRay.getSegment();
  2. 문자열 키, 부울, 숫자 또는 문자열 값으로 addAnnotation을 호출합니다.

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

    다음 예제는 점과 부울, 숫자 또는 문자열 값이 포함된 String 키를 putAnnotation 사용하여 호출하는 방법을 보여줍니다.

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

주석을 세그먼트 문서의 annotations 개체에 키-값 쌍으로 SDK 기록합니다. 같은 키로 addAnnotation을 두 번 호출하면 같은 세그먼트나 하위 세그먼트에 기록했던 값을 덮어씁니다.

특정 값을 포함한 주석이 있는 트레이스를 찾으려면 annotation[key] 키워드를 필터 표현식에 사용하십시오.

예 app.js - 주석
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) { ...

Node.js SDK 용 X-Ray를 사용하여 메타데이터 기록하기

메타데이터를 이용해 검색용으로 인덱싱하지 않아도 되는 정보를 세그먼트나 하위 세그먼트에 기록하십시오. 메타데이터 값은 문자열, 숫자, 불리언 또는 객체나 배열로 직렬화할 수 있는 기타 JSON 객체일 수 있습니다.

메타데이터 기록 방법
  1. 현재 세그먼트나 하위 세그먼트의 참조를 가져옵니다.

    var AWSXRay = require('aws-xray-sdk'); ... var document = AWSXRay.getSegment();
  2. 문자열 키, 부울, 숫자, 문자열 또는 객체 값 및 문자열 네임스페이스로 addMetadata를 호출합니다.

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

    또는

    키와 값만 이용해 addMetadata를 호출합니다.

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

네임스페이스를 지정하지 않으면 네임스페이스가 사용됩니다. SDK default 같은 키로 addMetadata을 두 번 호출하면 같은 세그먼트나 하위 세그먼트에 기록했던 값을 덮어씁니다.

Node.js SDK 용 IDs X-Ray로 사용자 녹화하기

요청을 보낸 사용자를 IDs 식별하기 위해 요청 세그먼트에 사용자를 기록합니다. Lambda 환경의 세그먼트는 변경할 수 없으므로 이 작업은 AWS Lambda 함수와 호환되지 않습니다. setUser 호출은 하위 세그먼트가 아닌 세그먼트에만 적용할 수 있습니다.

사용자를 기록하려면 IDs
  1. 현재 세그먼트나 하위 세그먼트의 참조를 가져옵니다.

    var AWSXRay = require('aws-xray-sdk'); ... var document = AWSXRay.getSegment();
  2. 요청을 보낸 사용자의 문자열 ID로 setUser()를 호출합니다.

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

빠른 애플리케이션이 요청 처리를 시작하는 즉시 사용자 ID를 기록하기 위해 setUser를 호출할 수 있습니다. 사용자 ID 설정을 위해서만 세그먼트를 사용한다면 호출을 1줄로 연결할 수 있습니다.

예 app.js - 사용자 ID
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) { ...

사용자 ID의 트레이스를 찾으려면, user 키워드를 필터 표현식에 적용하십시오.