nodejs, получите список потоков aws cloudwatch

#node.js #amazon-web-services #amazon-cloudwatch

Вопрос:

Я попытался получить список потоков cloudwatch, но, похоже, официальный представитель не предоставляет соответствующего api. Я надеюсь, что смогу выполнить аналогичные функции, такие как получение последних 10 журналов потоков.

Самое похожее, что я вижу до сих пор, — это этот api:

 var params = {
  logGroupName: 'STRING_VALUE', /* required */
  time: 'NUMBER_VALUE'
};
cloudwatchlogs.getLogGroupFields(params, function(err, data) {
  if (err) console.log(err, err.stack); // an error occurred
  else     console.log(data);           // successful response
});
 

Но я не знаю, как управлять этим time параметром. Этот параметр не похож на формат времени iso и так далее, но количество секунд?

Поскольку я не знаю, когда был сгенерирован последний журнал, преобразование времени довольно неудобно. Есть ли лучший способ получить список журналов?

Ответ №1:

СОГЛАСНО Официальному документу SDK AWS CloudWatchLogs.

Поля getloggroup:

Возвращает список полей, включенных в события журнала в указанной группе журналов, а также процент событий журнала, содержащих каждое поле

Я думаю, что этот API не поможет вам достичь вашей цели. В соответствии с вашими требованиями используйте потоки описаний. Что может сделать следующее.

Перечисляет потоки журналов для указанной группы журналов. Вы можете перечислить все потоки журналов или отфильтровать результаты по префиксу. Вы также можете контролировать порядок упорядочения результатов.

 var params = {
  logGroupName: 'STRING_VALUE', /* required */
  descending: true || false,
  limit: 'NUMBER_VALUE',
  logStreamNamePrefix: 'STRING_VALUE',
  nextToken: 'STRING_VALUE',
  orderBy: LogStreamName | LastEventTime
};
cloudwatchlogs.describeLogStreams(params, function(err, data) {
  if (err) console.log(err, err.stack); // an error occurred
  else     console.log(data);           // successful response
});