在AWS X Ray SDK中,可以使用“captureHTTPStatuses”选项来指定哪些HTTP状态代码将被记录。默认情况下,此选项设置为记录200到399之间的所有状态代码。因此,如果发生HTTP 404响应,AWS X Ray将记录它,但将其视为成功请求并将其归类为200响应。
要解决此问题,请在AWS X Ray SDK中设置“captureHTTPStatuses”选项以记录所有HTTP状态代码,例如:
const AWSXRay = require('aws-xray-sdk'); const AWS = AWSXRay.captureAWS(require('aws-sdk')); const express = require('express'); const app = express();
app.use(AWSXRay.express.openSegment('my-segment')); app.get('/', function(req, res) { // Code to handle HTTP requests res.status(404).send('404 Not Found'); });
app.use(AWSXRay.express.closeSegment()); app.listen(3000, function() { console.log('Listening on port 3000'); });
在上面的示例中,我们在AWS X Ray中打开了一个片段,指定“captureHTTPStatuses”选项,然后执行我们的处理程序。在处理HTTP请求时,我们返回一个HTTP 404响应。由于我们指定了记录所有HTTP状态代码,AWS X Ray将正确记录响应代码并将其视为错误请求。最后,我们在AWS X Ray中关闭我们的片段。
使用上述选项可以确保AWS X Ray记录所有HTTP状态代码,以便准确地监视请求和检测错误。