Могу ли я получить время выполнения запроса, другие статистические данные с помощью AWS DynamoDB SDK для NodeJS? - PullRequest
1 голос
/ 31 января 2020

Я ищу способ получить статистику (например, время выполнения) запроса и затем прикрепить их к объекту 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 очень неясна.

...