sdk_contrib/fetch/lib/subsegment_fetch.js (26 lines of code) (raw):

const {Subsegment} = require('aws-xray-sdk-core'); /** * Extends Subsegment to append remote request data to subsegment, similar to what * Subsegment.prototype.addRemoteRequestData does in core/lib/segments/attributes/subsegment.js * @param {Subsegment} subsegment * @param {Fetch Request} request * @param {Fetch Request or null|undefined} response * @param {boolean} downstreamXRayEnabled */ Subsegment.prototype.addFetchRequestData = function addFetchRequestData(request, response, downstreamXRayEnabled) { this.http = { request: { url: request.url?.toString() ?? '', method: request.method ?? '' } }; if (downstreamXRayEnabled) { this.traced = true; } if (response) { this.http.response = { status: response.status }; if (response.headers) { const clength = response.headers.get('content-length'); if (clength) { const v = parseInt(clength); if (! Number.isNaN(v)) { this.http.response.content_length = v; } } } } };