in packages/core/lib/middleware/sampling/service_connector.js [24:64]
fetchSamplingRules: function fetchSamplingRules(callback) {
const body = '{}'; // Payload needed for GetSamplingRules POST request
const options = getOptions(this.samplingRulesPath, body.length);
const httpReq = this.httpClient.__request ? this.httpClient.__request : this.httpClient.request;
const req = httpReq(options, res => {
var data = '';
res.on('data', d => {
data += d;
});
res.on('error', error => {
callback(error);
});
res.on('end', () => {
var dataObj;
try {
dataObj = JSON.parse(data);
} catch (err) {
callback(err);
return;
}
if (!dataObj) {
callback(new Error('AWS X-Ray GetSamplingRules API returned empty response'));
return;
}
var newRules = assembleRules(dataObj);
callback(null, newRules);
});
});
req.on('error', () => {
callback(new Error(`Failed to connect to X-Ray daemon at ${options.hostname}:${options.port} to get sampling rules.`));
});
req.write(body);
req.end();
},