Пример #1
0
 def send(self, logentry):
     try:
         # send() has a (max_block_ms) timeout and get() has a (max_block_ms) timeout
         # for an upper bound of 2x(max_block_ms) before guaranteed delivery
         future = self._producer.send(self.topic,
                                      logentry.to_dict(),
                                      timestamp_ms=epoch_ms(
                                          logentry.datetime))
         record_metadata = future.get(timeout=self.max_block_ms)
         assert future.succeeded
     except KafkaTimeoutError as kte:
         logger.exception(
             'KafkaLogsProducer timeout sending log to Kafka: %s', kte)
         raise LogSendException(
             'KafkaLogsProducer timeout sending log to Kafka: %s' % kte)
     except KafkaError as ke:
         logger.exception(
             'KafkaLogsProducer error sending log to Kafka: %s', ke)
         raise LogSendException(
             'KafkaLogsProducer error sending log to Kafka: %s' % ke)
     except Exception as e:
         logger.exception(
             'KafkaLogsProducer exception sending log to Kafka: %s', e)
         raise LogSendException(
             'KafkaLogsProducer exception sending log to Kafka: %s' % e)
Пример #2
0
 def send(self, logentry):
   try:
     data = logs_json_serializer(logentry)
     self._producer.put_record(
       StreamName=self._stream_name,
       Data=data,
       PartitionKey=_partition_key()
     )
   except ClientError as ce:
     logger.exception('KinesisStreamLogsProducer client error sending log to Kinesis: %s', ce)
     raise LogSendException('KinesisStreamLogsProducer client error sending log to Kinesis: %s' % ce)
   except Exception as e:
     logger.exception('KinesisStreamLogsProducer exception sending log to Kinesis: %s', e)
     raise LogSendException('KinesisStreamLogsProducer exception sending log to Kinesis: %s' % e)
Пример #3
0
 def send(self, logentry):
     try:
         logentry.save()
     except ElasticsearchException as ex:
         logger.exception("ElasticsearchLogsProducer error sending log to Elasticsearch: %s", ex)
         raise LogSendException(
             "ElasticsearchLogsProducer error sending log to Elasticsearch: %s" % ex
         )
     except Exception as e:
         logger.exception(
             "ElasticsearchLogsProducer exception sending log to Elasticsearch: %s", e
         )
         raise LogSendException(
             "ElasticsearchLogsProducer exception sending log to Elasticsearch: %s" % e
         )