async function getLogGroupInfo() { return await getPaginatedResults(async (NextMarker) => { const logGroups = await logs.describeLogGroups({nextToken: NextMarker}).promise(); return { marker: logGroups.nextToken, results: logGroups.logGroups, }; }); }
static getSubscriptionFilterDestinationArn(logGroupName) { return new Promise((resolve, reject) => { const cloudWatchLogs = new AWS.CloudWatchLogs(); const params = { logGroupName, }; cloudWatchLogs.describeSubscriptionFilters(params).promise() .then((data) => { if (data.subscriptionFilters.length === 0) { return resolve(); } return resolve(data.subscriptionFilters[0].destinationArn); }) .catch((err) => { reject(err); }); }); }
// A log stream is a sequence of log events that originate from a single source, // such as an application instance or a resource that is being monitored. const initalizeLogStream = function(id){ var params = { logGroupName: settings.log_group, logStreamName: id }; return new Promise(function(resolve, reject) { var createLogStreamPromise = cloudwatchlogs.createLogStream(params).promise(); createLogStreamPromise.then(function(data) { log('%start:green LogStream created: %s', id); resolve(); }).catch(function(err) { if (err.code == 'ResourceAlreadyExistsException') { if (config.debug) log('%data:green LogStream already exists: %s', id); resolve(); } else { reject(err) } }); }); }
async function getLogGroupStats() { let now = moment(); return await getPaginatedResults(async (NextMarker) => { const logGroups = await logs.describeLogGroups({limit: pageSize, nextToken: NextMarker}).promise(); const metrics = await Promise.all(logGroups.logGroups.map(async lg=>{ let m = await cloudwatch.getMetricStatistics({ Namespace: 'AWS/Logs', MetricName:'IncomingBytes', Dimensions: [{Name: 'LogGroupName', Value: lg.logGroupName}], StartTime: moment().subtract(7, 'day').toISOString(), EndTime: now.toISOString(), Period: 3600*24*7, Statistics: ['Sum'], Unit: 'Bytes' }).promise(); return { logGroupName: lg, IncomingBytes: m.Datapoints } })); return { marker: logGroups.nextToken, results: metrics }; }) }
var putLogsPromise = cloudwatchlogs.putLogEvents(params).promise(); putLogsPromise.then(function(data) { resolve(data);
getLogGroupArn(logGroupName, nextToken = null) { return new Promise((resolve, reject) => { const cloudWatchLogs = new AWS.CloudWatchLogs(); const params = { logGroupNamePrefix: logGroupName, nextToken, }; cloudWatchLogs.describeLogGroups(params).promise() .then((data) => { const logGroups = data.logGroups; if (logGroups.length === 0) { return reject(new Error('LogGroup not found')); } const logGroup = _.find(logGroups, { logGroupName }); if (!logGroup) { return this.getLogGroupArn(logGroupName, data.nextToken); } return resolve(logGroup.arn); }) .catch((err) => { reject(err); }); }); }