Я ищу способ получить статистику (например, время выполнения) запроса и затем прикрепить их к объекту JSON вместе с фактическими полученными данными, чтобы затем я мог отправить их на клиентскую сторону.
Извините, если это глупый вопрос, но я попытался найти документацию и гуглил, но я думаю, что это либо невозможно, либо использует неправильные ключевые слова.
В случае, если это уместно, вот код:
var AWS = require('aws-sdk');
AWS.config.update({
region: 'us-west-2'
});
const docClient = new AWS.DynamoDB.DocumentClient();
let getLoginsByRole = function (a_role, a_site) {
const params = {
TableName: 'XXXXXXXXXXX',
FilterExpression: '#Role= :Role AND #Site= :Site',
ExpressionAttributeNames: {
'#Role': 'Role',
'#Site': 'Site'
},
ExpressionAttributeValues: {
':Role': a_role,
':Site': a_site
},
};
docClient.scan(params, function (err, data) {
if (err) {
console.log("Error when attempting table scan, see below:\n\n" + JSON.stringify(err, null, 2));
return err;
} else {
var matchingItems= [];
data.Items.forEach(element => matchingItems.push(element.alias))
var responseObject = JSON.parse('{"role":' + JSON.stringify(a_role) +
',"matchingItems":' + JSON.stringify(matchingItems) +
', "itemCount":' + data.Count + "}");
console.log(responseObject);
return responseObject;
}
})
}
getLoginsByRole("XXXXX", "XXX");
Как вы можете видеть, есть responseObject
, который выглядит как (добавлен комментарий рядом со статистикой, которую я хотел бы видеть):
{
role: 'Admin',
matchingItems: [
'billy',
'jim',
'pam',
'ryan',
'kerry',
'karen'
],
itemCount: 6,
queryExecTime: 356ms, //I'd like something like this line...
resultSetSize: 37kB //And this line
}
В любом случае спасибо для вашей помощи я изучаю DynamoDB, и там не так много вещей, а документация SDK очень неясна.