我一直在尝试将 AWS Xray 合并到一个用 Typescript 和 HAPI 框架编写的 API 中。我一直在使用 Hapi Xray 插件来附加要附加到请求对象上的段属性。这样做时,我可以看到正确记录的 X 射线轨迹,如下所示
] UDP message sent: {"trace_id":"1-5dd03512-d121706a724d3ef4d680d613","id":"3ce8baf950c74044","start_time":1573926161.723,"name":"myAPI Name","service":{"runtime":"node","runtime_version":"v10.16.0","version":"1.10.1","name":"my-api"},"aws":{"ecs":{"container":"cf95a5a8b538"},"xray":{"sdk":"X-Ray for Node.js","sdk_version":"2.4.0","package":"aws-xray-sdk"}},"origin":"AWS::ECS::Container","http":{"request":{"method":"GET","user_agent":"PostmanRuntime/7.19.0","client_ip":"172.29.0.1","url":"http://localhost:8080/myapi/urlParam"}},"annotations":{"SegmentName":"otherData"},"end_time":1573926161.816}
但在这个过程中,我看到了这个错误。
2019-11-16 12:42:41.957 -05:00 [ERROR] Error: No sub/segment specified. A sub/segment must be provided for manual mode.
at Object.contextMissingLogError [as contextMissing] (/app/node_modules/aws-xray-sdk-core/lib/context_utils.js:26:19)
at Object.resolveSegment (/app/node_modules/aws-xray-sdk-core/lib/context_utils.js:77:43)
at features.constructor.captureAWSRequest [as customRequestHandler] (/app/node_modules/aws-xray-sdk-core/lib/patchers/aws_p.js:66:29)
at features.constructor.addAllRequestListeners (/app/node_modules/aws-sdk/lib/service.js:279:34)
at features.constructor.makeRequest (/app/node_modules/aws-sdk/lib/service.js:203:10)
at features.constructor.svc.(anonymous function) [as getItem] (/app/node_modules/aws-sdk/lib/service.js:673:23)
at DocumentClient.makeServiceRequest (/app/node_modules/aws-sdk/lib/dynamodb/document_client.js:97:42)
at DocumentClient.get (/app/node_modules/aws-sdk/lib/dynamodb/document_client.js:263:17)
at DatabaseClient.get (/app/rocket-db/build/DatabaseClient.js:31:36)
有没有其他人看到过这样的事情?任何帮助,将不胜感激。