예제 #1
0
    def check_group(self, client, group):
        streams = self.manager.retry(client.describe_log_streams,
                                     logGroupName=group['logGroupName'],
                                     orderBy='LastEventTime',
                                     descending=True,
                                     limit=3).get('logStreams')
        group['streams'] = streams
        if not streams:
            last_timestamp = group['creationTime']
        elif 'lastIngestionTime' in streams[0]:
            last_timestamp = streams[0]['lastIngestionTime']
        else:
            last_timestamp = streams[0]['creationTime']

        last_write = parse_date(last_timestamp)
        group['lastWrite'] = last_write
        return self.date_threshold > last_write
예제 #2
0
 def process(self, resources, event=None):
     client = local_session(self.manager.session_factory).client('logs')
     self.date_threshold = parse_date(
         datetime.utcnow()) - timedelta(days=self.data['days'])
     return [r for r in resources if self.check_group(client, r)]